From 96f84b2b99950cc786e05c86654016ce6e883f0c Mon Sep 17 00:00:00 2001 From: Robert Resch Date: Tue, 28 Oct 2025 10:33:10 +0100 Subject: [PATCH] Sort homeassistant json files (#155285) --- .pre-commit-config.yaml | 3 + .prettierrc.js | 24 + homeassistant/components/abode/strings.json | 82 +- homeassistant/components/acaia/icons.json | 10 +- homeassistant/components/acaia/strings.json | 12 +- .../components/accuweather/strings.json | 56 +- homeassistant/components/acmeda/strings.json | 16 +- .../components/actron_air/strings.json | 40 +- homeassistant/components/adax/strings.json | 48 +- homeassistant/components/adguard/icons.json | 40 +- homeassistant/components/adguard/strings.json | 142 +- homeassistant/components/ads/strings.json | 20 +- .../components/advantage_air/strings.json | 14 +- .../components/aftership/strings.json | 84 +- homeassistant/components/agent_dvr/icons.json | 18 +- .../components/agent_dvr/strings.json | 54 +- homeassistant/components/ai_task/strings.json | 60 +- .../components/airgradient/icons.json | 38 +- .../components/airgradient/strings.json | 148 +- homeassistant/components/airly/strings.json | 50 +- homeassistant/components/airnow/icons.json | 6 +- homeassistant/components/airnow/strings.json | 36 +- homeassistant/components/airos/strings.json | 102 +- homeassistant/components/airq/strings.json | 122 +- .../components/airthings/strings.json | 28 +- .../components/airthings_ble/icons.json | 4 +- .../components/airthings_ble/strings.json | 54 +- .../components/airtouch4/strings.json | 4 +- .../components/airtouch5/strings.json | 18 +- homeassistant/components/airvisual/icons.json | 6 +- .../components/airvisual/strings.json | 72 +- .../components/airvisual_pro/strings.json | 32 +- homeassistant/components/airzone/strings.json | 26 +- .../components/airzone_cloud/strings.json | 8 +- .../components/aladdin_connect/strings.json | 36 +- .../components/alarm_control_panel/icons.json | 10 +- .../alarm_control_panel/strings.json | 190 +- .../components/alarmdecoder/strings.json | 128 +- homeassistant/components/alert/strings.json | 16 +- .../components/alexa_devices/strings.json | 168 +- .../components/altruist/strings.json | 36 +- .../components/amberelectric/icons.json | 28 +- .../components/amberelectric/strings.json | 42 +- .../components/ambient_network/icons.json | 6 +- .../components/ambient_network/strings.json | 58 +- .../components/ambient_station/strings.json | 214 +- homeassistant/components/amcrest/icons.json | 20 +- homeassistant/components/amcrest/strings.json | 192 +- .../analytics_insights/strings.json | 60 +- .../components/android_ip_webcam/icons.json | 6 +- .../components/android_ip_webcam/strings.json | 28 +- homeassistant/components/androidtv/icons.json | 6 +- .../components/androidtv/strings.json | 190 +- .../components/androidtv_remote/strings.json | 128 +- homeassistant/components/anova/icons.json | 6 +- homeassistant/components/anova/strings.json | 76 +- .../components/anthemav/strings.json | 14 +- .../components/anthropic/strings.json | 56 +- homeassistant/components/aosmith/strings.json | 40 +- homeassistant/components/apcupsd/icons.json | 70 +- homeassistant/components/apcupsd/strings.json | 134 +- .../components/apple_tv/manifest.json | 24 +- .../components/apple_tv/strings.json | 114 +- .../components/aprilaire/strings.json | 98 +- .../components/apsystems/strings.json | 46 +- homeassistant/components/aquacell/icons.json | 4 +- .../components/aquacell/strings.json | 32 +- homeassistant/components/aranet/icons.json | 4 +- homeassistant/components/aranet/manifest.json | 8 +- homeassistant/components/aranet/strings.json | 34 +- homeassistant/components/arve/strings.json | 20 +- .../components/aseko_pool_live/strings.json | 34 +- .../components/assist_pipeline/strings.json | 6 +- .../components/assist_satellite/icons.json | 6 +- .../components/assist_satellite/strings.json | 168 +- homeassistant/components/asuswrt/icons.json | 38 +- homeassistant/components/asuswrt/strings.json | 142 +- homeassistant/components/atag/strings.json | 18 +- homeassistant/components/august/strings.json | 62 +- homeassistant/components/aurora/strings.json | 32 +- .../components/aurora_abb_powerone/icons.json | 6 +- .../aurora_abb_powerone/strings.json | 46 +- .../components/aussie_broadband/icons.json | 32 +- .../components/aussie_broadband/strings.json | 108 +- homeassistant/components/autarco/icons.json | 60 +- homeassistant/components/autarco/strings.json | 84 +- homeassistant/components/auth/strings.json | 76 +- .../components/automation/icons.json | 14 +- .../components/automation/strings.json | 76 +- homeassistant/components/awair/manifest.json | 4 +- homeassistant/components/awair/strings.json | 54 +- homeassistant/components/aws_s3/strings.json | 36 +- homeassistant/components/axis/manifest.json | 16 +- homeassistant/components/axis/strings.json | 46 +- .../azure_data_explorer/strings.json | 24 +- .../components/azure_devops/strings.json | 30 +- .../components/azure_event_hub/strings.json | 60 +- .../components/azure_storage/strings.json | 58 +- homeassistant/components/backup/strings.json | 82 +- homeassistant/components/baf/manifest.json | 8 +- homeassistant/components/baf/strings.json | 82 +- homeassistant/components/balboa/icons.json | 12 +- homeassistant/components/balboa/strings.json | 88 +- .../components/bang_olufsen/icons.json | 6 +- .../components/bang_olufsen/strings.json | 190 +- .../components/bayesian/strings.json | 432 +-- .../components/binary_sensor/strings.json | 136 +- .../components/blackbird/strings.json | 12 +- homeassistant/components/blebox/strings.json | 10 +- homeassistant/components/blink/icons.json | 10 +- homeassistant/components/blink/strings.json | 200 +- .../components/blue_current/icons.json | 46 +- .../components/blue_current/strings.json | 202 +- .../components/bluemaestro/manifest.json | 4 +- .../components/bluemaestro/strings.json | 24 +- homeassistant/components/bluesound/icons.json | 10 +- .../components/bluesound/strings.json | 144 +- .../components/bluetooth/strings.json | 58 +- .../components/bluetooth_tracker/strings.json | 4 +- .../components/bmw_connected_drive/icons.json | 76 +- .../bmw_connected_drive/strings.json | 254 +- homeassistant/components/bond/icons.json | 140 +- homeassistant/components/bond/strings.json | 116 +- .../components/bosch_alarm/icons.json | 126 +- .../components/bosch_alarm/strings.json | 254 +- homeassistant/components/bosch_shc/icons.json | 6 +- .../components/bosch_shc/manifest.json | 4 +- .../components/bosch_shc/strings.json | 82 +- .../components/braviatv/manifest.json | 4 +- .../components/braviatv/strings.json | 82 +- homeassistant/components/bring/icons.json | 20 +- homeassistant/components/bring/strings.json | 208 +- .../components/broadlink/strings.json | 94 +- homeassistant/components/brother/icons.json | 10 +- .../components/brother/manifest.json | 4 +- homeassistant/components/brother/strings.json | 244 +- .../components/brottsplatskartan/strings.json | 8 +- homeassistant/components/browser/strings.json | 8 +- homeassistant/components/brunt/strings.json | 36 +- .../components/bryant_evolution/strings.json | 38 +- homeassistant/components/bsblan/manifest.json | 4 +- homeassistant/components/bsblan/strings.json | 150 +- homeassistant/components/bthome/strings.json | 64 +- .../components/buienradar/strings.json | 610 +-- homeassistant/components/button/icons.json | 6 +- homeassistant/components/button/strings.json | 14 +- homeassistant/components/caldav/strings.json | 40 +- homeassistant/components/calendar/icons.json | 4 +- .../components/calendar/strings.json | 132 +- .../components/cambridge_audio/icons.json | 22 +- .../components/cambridge_audio/strings.json | 78 +- homeassistant/components/camera/strings.json | 118 +- homeassistant/components/canary/strings.json | 22 +- homeassistant/components/cast/strings.json | 62 +- homeassistant/components/ccm15/strings.json | 14 +- .../components/cert_expiry/strings.json | 36 +- .../components/chacon_dio/strings.json | 18 +- homeassistant/components/channels/icons.json | 6 +- .../components/channels/strings.json | 20 +- homeassistant/components/climate/icons.json | 48 +- homeassistant/components/climate/strings.json | 340 +- homeassistant/components/cloud/strings.json | 102 +- .../components/cloudflare/strings.json | 62 +- .../components/co2signal/strings.json | 34 +- .../components/coinbase/strings.json | 56 +- .../components/color_extractor/strings.json | 16 +- homeassistant/components/comelit/icons.json | 10 +- homeassistant/components/comelit/strings.json | 122 +- .../components/command_line/strings.json | 4 +- homeassistant/components/compit/strings.json | 38 +- .../components/configurator/strings.json | 4 +- .../components/conversation/strings.json | 80 +- homeassistant/components/cookidoo/icons.json | 30 +- .../components/cookidoo/strings.json | 108 +- .../components/coolmaster/strings.json | 20 +- homeassistant/components/counter/strings.json | 28 +- homeassistant/components/cover/strings.json | 94 +- .../components/cpuspeed/strings.json | 16 +- .../components/crownstone/strings.json | 58 +- homeassistant/components/cync/strings.json | 38 +- homeassistant/components/daikin/icons.json | 12 +- homeassistant/components/daikin/strings.json | 64 +- homeassistant/components/datadog/strings.json | 46 +- homeassistant/components/date/strings.json | 12 +- .../components/datetime/strings.json | 12 +- homeassistant/components/deako/strings.json | 8 +- homeassistant/components/debugpy/strings.json | 4 +- homeassistant/components/deconz/strings.json | 204 +- homeassistant/components/deluge/strings.json | 56 +- homeassistant/components/demo/icons.json | 24 +- homeassistant/components/demo/strings.json | 94 +- .../components/denonavr/manifest.json | 48 +- .../components/denonavr/strings.json | 80 +- .../components/derivative/strings.json | 26 +- .../components/devialet/strings.json | 26 +- .../components/device_tracker/strings.json | 50 +- .../devolo_home_control/strings.json | 36 +- .../devolo_home_network/manifest.json | 4 +- .../devolo_home_network/strings.json | 48 +- homeassistant/components/dexcom/icons.json | 18 +- homeassistant/components/dexcom/strings.json | 62 +- .../components/dialogflow/strings.json | 12 +- .../components/directv/manifest.json | 4 +- homeassistant/components/directv/strings.json | 14 +- homeassistant/components/discord/strings.json | 32 +- .../components/discovergy/strings.json | 100 +- homeassistant/components/dlink/strings.json | 50 +- .../components/dlna_dmr/strings.json | 68 +- .../components/dlna_dms/strings.json | 26 +- homeassistant/components/dnsip/strings.json | 60 +- homeassistant/components/dominos/strings.json | 8 +- homeassistant/components/doorbird/icons.json | 6 +- .../components/doorbird/manifest.json | 4 +- .../components/doorbird/strings.json | 116 +- .../components/dormakaba_dkey/strings.json | 40 +- .../components/downloader/strings.json | 40 +- .../components/dremel_3d_printer/icons.json | 36 +- .../components/dremel_3d_printer/strings.json | 98 +- .../components/drop_connect/icons.json | 42 +- .../components/drop_connect/strings.json | 34 +- homeassistant/components/droplet/strings.json | 52 +- homeassistant/components/dsmr/icons.json | 4 +- homeassistant/components/dsmr/strings.json | 154 +- .../components/dsmr_reader/icons.json | 358 +- .../components/dsmr_reader/strings.json | 382 +- homeassistant/components/duckdns/strings.json | 8 +- .../components/duke_energy/strings.json | 18 +- homeassistant/components/dunehd/strings.json | 20 +- .../components/duotecno/strings.json | 18 +- .../dwd_weather_warnings/icons.json | 4 +- .../dwd_weather_warnings/strings.json | 74 +- .../components/dynalite/strings.json | 52 +- homeassistant/components/eafm/strings.json | 14 +- .../components/easyenergy/icons.json | 16 +- .../components/easyenergy/strings.json | 166 +- homeassistant/components/ebusd/strings.json | 8 +- homeassistant/components/ecobee/icons.json | 6 +- homeassistant/components/ecobee/manifest.json | 8 +- homeassistant/components/ecobee/strings.json | 312 +- .../components/ecoforest/strings.json | 106 +- homeassistant/components/econet/strings.json | 18 +- homeassistant/components/ecovacs/icons.json | 44 +- homeassistant/components/ecovacs/strings.json | 86 +- homeassistant/components/ecowitt/strings.json | 6 +- homeassistant/components/edl21/icons.json | 30 +- homeassistant/components/edl21/strings.json | 116 +- homeassistant/components/efergy/strings.json | 54 +- .../components/eheimdigital/icons.json | 18 +- .../components/eheimdigital/manifest.json | 2 +- .../components/eheimdigital/strings.json | 46 +- .../components/eight_sleep/strings.json | 4 +- .../components/ekeybionyx/strings.json | 76 +- .../components/electrasmart/strings.json | 30 +- .../components/electric_kiwi/icons.json | 28 +- .../components/electric_kiwi/strings.json | 66 +- .../components/elevenlabs/strings.json | 46 +- homeassistant/components/elgato/strings.json | 22 +- homeassistant/components/elkm1/icons.json | 30 +- homeassistant/components/elkm1/strings.json | 292 +- homeassistant/components/elmax/strings.json | 88 +- homeassistant/components/elvia/strings.json | 30 +- homeassistant/components/emoncms/strings.json | 118 +- .../components/emonitor/strings.json | 22 +- .../components/emulated_roku/strings.json | 4 +- .../energenie_power_sockets/strings.json | 22 +- homeassistant/components/energy/strings.json | 110 +- .../components/energyzero/icons.json | 12 +- .../components/energyzero/strings.json | 124 +- homeassistant/components/enigma2/strings.json | 36 +- homeassistant/components/enocean/strings.json | 20 +- .../components/enphase_envoy/icons.json | 52 +- .../components/enphase_envoy/strings.json | 670 ++-- .../components/environment_canada/icons.json | 6 +- .../environment_canada/strings.json | 82 +- .../components/envisalink/strings.json | 24 +- .../components/epic_games_store/strings.json | 34 +- homeassistant/components/epion/strings.json | 8 +- homeassistant/components/epson/strings.json | 38 +- .../components/eq3btsmart/icons.json | 12 +- .../components/eq3btsmart/manifest.json | 12 +- .../components/eq3btsmart/strings.json | 32 +- homeassistant/components/escea/strings.json | 8 +- homeassistant/components/esphome/strings.json | 220 +- .../components/eufylife_ble/strings.json | 30 +- homeassistant/components/event/strings.json | 10 +- .../components/evil_genius_labs/strings.json | 10 +- homeassistant/components/evohome/icons.json | 16 +- homeassistant/components/evohome/strings.json | 96 +- homeassistant/components/ezviz/icons.json | 6 +- homeassistant/components/ezviz/strings.json | 254 +- .../components/faa_delays/icons.json | 18 +- .../components/faa_delays/strings.json | 118 +- homeassistant/components/fan/strings.json | 206 +- .../components/fastdotcom/strings.json | 6 +- .../components/feedreader/strings.json | 38 +- homeassistant/components/ffmpeg/strings.json | 24 +- homeassistant/components/fibaro/strings.json | 50 +- homeassistant/components/file/strings.json | 118 +- homeassistant/components/filesize/icons.json | 10 +- .../components/filesize/strings.json | 42 +- homeassistant/components/filter/strings.json | 304 +- homeassistant/components/fing/strings.json | 46 +- .../components/firefly_iii/icons.json | 10 +- .../components/firefly_iii/strings.json | 110 +- .../components/fireservicerota/strings.json | 36 +- homeassistant/components/fitbit/strings.json | 101 +- homeassistant/components/fivem/strings.json | 26 +- .../components/fjaraskupan/manifest.json | 4 +- .../components/fjaraskupan/strings.json | 24 +- .../components/flexit_bacnet/icons.json | 18 +- .../components/flexit_bacnet/strings.json | 112 +- .../components/flick_electric/strings.json | 42 +- homeassistant/components/flipr/strings.json | 56 +- homeassistant/components/flo/icons.json | 8 +- homeassistant/components/flo/strings.json | 80 +- homeassistant/components/flume/icons.json | 6 +- homeassistant/components/flume/strings.json | 76 +- homeassistant/components/flux_led/icons.json | 36 +- .../components/flux_led/manifest.json | 32 +- .../components/flux_led/strings.json | 178 +- .../components/folder_watcher/strings.json | 54 +- .../components/forecast_solar/strings.json | 62 +- .../components/forked_daapd/strings.json | 50 +- homeassistant/components/foscam/icons.json | 98 +- homeassistant/components/foscam/strings.json | 144 +- homeassistant/components/freebox/strings.json | 28 +- .../components/freedompro/strings.json | 14 +- homeassistant/components/fritz/icons.json | 54 +- homeassistant/components/fritz/strings.json | 214 +- homeassistant/components/fritzbox/icons.json | 12 +- .../components/fritzbox/strings.json | 90 +- .../fritzbox_callmonitor/icons.json | 2 +- .../fritzbox_callmonitor/strings.json | 96 +- homeassistant/components/fronius/icons.json | 24 +- homeassistant/components/fronius/strings.json | 524 +-- homeassistant/components/frontend/icons.json | 6 +- .../components/frontend/strings.json | 40 +- .../components/frontier_silicon/strings.json | 44 +- .../components/fujitsu_fglair/strings.json | 54 +- .../components/fully_kiosk/strings.json | 116 +- homeassistant/components/fyta/icons.json | 28 +- homeassistant/components/fyta/strings.json | 200 +- .../components/garages_amsterdam/icons.json | 8 +- .../components/garages_amsterdam/strings.json | 40 +- .../gardena_bluetooth/manifest.json | 4 +- .../components/gardena_bluetooth/strings.json | 56 +- homeassistant/components/gdacs/strings.json | 16 +- homeassistant/components/generic/strings.json | 118 +- .../components/generic_hygrostat/strings.json | 14 +- .../generic_thermostat/strings.json | 90 +- homeassistant/components/geniushub/icons.json | 6 +- .../components/geniushub/strings.json | 118 +- .../components/geo_json_events/strings.json | 18 +- .../components/geo_location/strings.json | 4 +- .../components/geocaching/icons.json | 40 +- .../components/geocaching/strings.json | 74 +- .../components/geofency/strings.json | 12 +- .../components/geonetnz_quakes/strings.json | 12 +- .../components/geonetnz_volcano/strings.json | 12 +- homeassistant/components/gios/strings.json | 108 +- homeassistant/components/github/icons.json | 24 +- homeassistant/components/github/strings.json | 50 +- homeassistant/components/glances/icons.json | 82 +- homeassistant/components/glances/strings.json | 172 +- homeassistant/components/go2rtc/strings.json | 4 +- .../components/goalzero/strings.json | 92 +- .../components/gogogate2/strings.json | 18 +- homeassistant/components/goodwe/icons.json | 6 +- homeassistant/components/goodwe/strings.json | 36 +- homeassistant/components/google/strings.json | 188 +- .../components/google_assistant/strings.json | 8 +- .../google_assistant_sdk/strings.json | 106 +- .../components/google_cloud/strings.json | 28 +- .../components/google_drive/strings.json | 62 +- .../strings.json | 208 +- .../components/google_mail/strings.json | 116 +- .../components/google_photos/strings.json | 132 +- .../components/google_sheets/strings.json | 78 +- .../components/google_tasks/strings.json | 54 +- .../components/google_translate/strings.json | 6 +- .../google_travel_time/strings.json | 118 +- .../components/govee_ble/manifest.json | 116 +- .../components/govee_ble/strings.json | 60 +- .../components/govee_light_local/strings.json | 26 +- homeassistant/components/gpsd/icons.json | 16 +- homeassistant/components/gpsd/strings.json | 34 +- .../components/gpslogger/strings.json | 12 +- homeassistant/components/gree/icons.json | 6 +- homeassistant/components/gree/strings.json | 20 +- homeassistant/components/group/icons.json | 6 +- homeassistant/components/group/strings.json | 390 +- .../components/growatt_server/strings.json | 674 ++-- homeassistant/components/guardian/icons.json | 6 +- .../components/guardian/strings.json | 82 +- homeassistant/components/habitica/icons.json | 518 +-- .../components/habitica/strings.json | 2224 +++++------ homeassistant/components/harmony/icons.json | 6 +- .../components/harmony/manifest.json | 4 +- homeassistant/components/harmony/strings.json | 64 +- homeassistant/components/hassio/icons.json | 18 +- homeassistant/components/hassio/strings.json | 764 ++-- .../components/hdmi_cec/strings.json | 60 +- homeassistant/components/heos/icons.json | 16 +- homeassistant/components/heos/strings.json | 268 +- .../components/here_travel_time/strings.json | 158 +- .../components/hisense_aehw4a1/strings.json | 8 +- .../components/history_stats/strings.json | 88 +- homeassistant/components/hive/icons.json | 6 +- homeassistant/components/hive/strings.json | 176 +- homeassistant/components/hko/strings.json | 4 +- .../components/hlk_sw16/strings.json | 26 +- homeassistant/components/holiday/strings.json | 30 +- .../components/home_connect/icons.json | 300 +- .../components/home_connect/strings.json | 3086 +++++++-------- .../components/homeassistant/icons.json | 30 +- .../components/homeassistant/strings.json | 448 +-- .../homeassistant_alerts/strings.json | 4 +- .../homeassistant_connect_zbt2/manifest.json | 12 +- .../homeassistant_connect_zbt2/strings.json | 374 +- .../homeassistant_green/strings.json | 36 +- .../homeassistant_hardware/strings.json | 174 +- .../homeassistant_sky_connect/manifest.json | 12 +- .../homeassistant_sky_connect/strings.json | 374 +- .../homeassistant_yellow/strings.json | 218 +- homeassistant/components/homee/icons.json | 8 +- homeassistant/components/homee/manifest.json | 4 +- homeassistant/components/homee/strings.json | 134 +- homeassistant/components/homekit/strings.json | 106 +- .../components/homekit_controller/icons.json | 22 +- .../homekit_controller/manifest.json | 4 +- .../homekit_controller/strings.json | 150 +- homeassistant/components/homematic/icons.json | 20 +- .../components/homematic/strings.json | 172 +- .../components/homematicip_cloud/icons.json | 6 +- .../components/homematicip_cloud/strings.json | 174 +- .../components/homewizard/strings.json | 230 +- .../components/homeworks/strings.json | 60 +- .../components/honeywell/strings.json | 114 +- homeassistant/components/html5/strings.json | 34 +- homeassistant/components/http/strings.json | 4 +- .../components/huawei_lte/icons.json | 164 +- .../components/huawei_lte/strings.json | 366 +- homeassistant/components/hue/icons.json | 20 +- homeassistant/components/hue/strings.json | 178 +- .../components/huisbaasje/icons.json | 6 +- .../components/huisbaasje/strings.json | 56 +- .../components/humidifier/strings.json | 110 +- .../hunterdouglas_powerview/strings.json | 40 +- .../husqvarna_automower_ble/manifest.json | 4 +- .../husqvarna_automower_ble/strings.json | 62 +- homeassistant/components/huum/strings.json | 22 +- .../components/hvv_departures/strings.json | 74 +- homeassistant/components/hydrawise/icons.json | 30 +- .../components/hydrawise/strings.json | 98 +- .../components/hyperion/strings.json | 136 +- homeassistant/components/ialarm/strings.json | 14 +- .../components/iammeter/strings.json | 54 +- .../components/iaqualink/strings.json | 20 +- .../components/ibeacon/manifest.json | 4 +- homeassistant/components/ibeacon/strings.json | 40 +- homeassistant/components/icloud/icons.json | 12 +- homeassistant/components/icloud/strings.json | 164 +- .../components/idasen_desk/strings.json | 22 +- homeassistant/components/ifttt/strings.json | 44 +- .../components/igloohome/strings.json | 20 +- homeassistant/components/ihc/icons.json | 10 +- homeassistant/components/ihc/strings.json | 120 +- homeassistant/components/image/strings.json | 12 +- .../components/image_processing/strings.json | 8 +- homeassistant/components/imap/icons.json | 12 +- homeassistant/components/imap/strings.json | 296 +- .../components/imeon_inverter/icons.json | 124 +- .../components/imeon_inverter/manifest.json | 2 +- .../components/imeon_inverter/strings.json | 178 +- .../components/imgw_pib/strings.json | 20 +- homeassistant/components/immich/strings.json | 120 +- .../components/improv_ble/manifest.json | 4 +- .../components/improv_ble/strings.json | 48 +- homeassistant/components/incomfort/icons.json | 38 +- .../components/incomfort/strings.json | 160 +- homeassistant/components/inels/icons.json | 4 +- homeassistant/components/inels/strings.json | 22 +- .../components/inkbird/manifest.json | 52 +- homeassistant/components/inkbird/strings.json | 22 +- .../components/input_boolean/icons.json | 6 +- .../components/input_boolean/strings.json | 28 +- .../components/input_button/strings.json | 16 +- .../components/input_datetime/icons.json | 6 +- .../components/input_datetime/strings.json | 40 +- .../components/input_number/icons.json | 6 +- .../components/input_number/strings.json | 32 +- .../components/input_select/icons.json | 18 +- .../components/input_select/strings.json | 64 +- .../components/input_text/icons.json | 6 +- .../components/input_text/strings.json | 28 +- homeassistant/components/insteon/icons.json | 24 +- homeassistant/components/insteon/strings.json | 354 +- .../components/integration/strings.json | 36 +- .../components/intellifire/icons.json | 44 +- .../components/intellifire/strings.json | 160 +- .../components/intent_script/strings.json | 4 +- homeassistant/components/iometer/icons.json | 2 +- homeassistant/components/iometer/strings.json | 58 +- homeassistant/components/ios/strings.json | 6 +- .../components/iotawatt/strings.json | 24 +- homeassistant/components/iotty/strings.json | 30 +- homeassistant/components/iperf3/strings.json | 8 +- homeassistant/components/ipma/strings.json | 42 +- homeassistant/components/ipp/icons.json | 6 +- homeassistant/components/ipp/strings.json | 46 +- homeassistant/components/iqvia/strings.json | 18 +- homeassistant/components/irm_kmi/strings.json | 36 +- homeassistant/components/iron_os/icons.json | 192 +- .../components/iron_os/manifest.json | 4 +- homeassistant/components/iron_os/strings.json | 340 +- homeassistant/components/iskra/strings.json | 152 +- .../islamic_prayer_times/strings.json | 120 +- .../components/israel_rail/icons.json | 6 +- .../components/israel_rail/strings.json | 12 +- homeassistant/components/iss/strings.json | 6 +- .../components/ista_ecotrend/icons.json | 4 +- .../components/ista_ecotrend/strings.json | 52 +- homeassistant/components/isy994/icons.json | 30 +- homeassistant/components/isy994/manifest.json | 4 +- homeassistant/components/isy994/strings.json | 306 +- homeassistant/components/ituran/strings.json | 44 +- homeassistant/components/izone/icons.json | 6 +- homeassistant/components/izone/strings.json | 36 +- .../components/jellyfin/strings.json | 36 +- .../components/jewish_calendar/icons.json | 40 +- .../components/jewish_calendar/strings.json | 282 +- .../components/juicenet/strings.json | 4 +- .../components/justnimbus/icons.json | 16 +- .../components/justnimbus/strings.json | 24 +- .../components/jvc_projector/icons.json | 6 +- .../components/jvc_projector/strings.json | 54 +- .../components/kaleidescape/icons.json | 52 +- .../components/kaleidescape/manifest.json | 4 +- .../components/kaleidescape/strings.json | 78 +- homeassistant/components/keba/icons.json | 20 +- homeassistant/components/keba/strings.json | 76 +- .../components/keenetic_ndms2/strings.json | 58 +- homeassistant/components/kef/icons.json | 24 +- homeassistant/components/kef/strings.json | 140 +- homeassistant/components/kegtron/strings.json | 24 +- homeassistant/components/keyboard/icons.json | 20 +- .../components/keyboard/strings.json | 38 +- .../components/keymitt_ble/strings.json | 60 +- .../components/kitchen_sink/icons.json | 4 +- .../components/kitchen_sink/strings.json | 128 +- .../components/kmtronic/strings.json | 36 +- homeassistant/components/knocki/strings.json | 18 +- homeassistant/components/knx/icons.json | 22 +- homeassistant/components/knx/strings.json | 1298 +++---- homeassistant/components/kodi/strings.json | 126 +- .../components/konnected/strings.json | 156 +- .../components/kostal_plenticore/strings.json | 36 +- homeassistant/components/kraken/strings.json | 76 +- .../components/kulersky/strings.json | 14 +- .../components/lacrosse_view/strings.json | 50 +- .../components/lamarzocco/icons.json | 88 +- .../components/lamarzocco/strings.json | 114 +- homeassistant/components/lametric/icons.json | 4 +- .../components/lametric/strings.json | 260 +- .../landisgyr_heat_meter/strings.json | 26 +- .../components/lannouncer/strings.json | 4 +- homeassistant/components/lastfm/strings.json | 40 +- .../components/launch_library/strings.json | 18 +- homeassistant/components/laundrify/icons.json | 4 +- .../components/laundrify/strings.json | 48 +- .../components/lawn_mower/strings.json | 26 +- homeassistant/components/lcn/icons.json | 42 +- homeassistant/components/lcn/strings.json | 714 ++-- .../components/ld2410_ble/manifest.json | 2 +- .../components/ld2410_ble/strings.json | 44 +- homeassistant/components/leaone/strings.json | 22 +- homeassistant/components/led_ble/strings.json | 20 +- .../components/lektrico/manifest.json | 4 +- .../components/lektrico/strings.json | 168 +- homeassistant/components/letpot/strings.json | 40 +- .../components/lg_netcast/strings.json | 38 +- .../components/lg_soundbar/strings.json | 14 +- homeassistant/components/lg_thinq/icons.json | 848 ++-- .../components/lg_thinq/strings.json | 1240 +++--- .../libre_hardware_monitor/strings.json | 6 +- homeassistant/components/lidarr/strings.json | 48 +- homeassistant/components/life360/strings.json | 4 +- homeassistant/components/lifx/icons.json | 24 +- homeassistant/components/lifx/strings.json | 398 +- homeassistant/components/light/strings.json | 284 +- .../components/linkplay/strings.json | 54 +- homeassistant/components/litejet/strings.json | 22 +- .../components/litterrobot/icons.json | 26 +- .../components/litterrobot/strings.json | 156 +- homeassistant/components/livisi/strings.json | 14 +- .../components/local_calendar/strings.json | 28 +- .../components/local_file/strings.json | 26 +- .../components/local_ip/strings.json | 8 +- .../components/local_todo/strings.json | 12 +- .../components/locative/strings.json | 12 +- homeassistant/components/lock/strings.json | 94 +- homeassistant/components/logbook/strings.json | 32 +- homeassistant/components/logger/strings.json | 38 +- .../london_underground/strings.json | 40 +- homeassistant/components/lookin/strings.json | 32 +- homeassistant/components/loqed/manifest.json | 4 +- homeassistant/components/loqed/strings.json | 22 +- .../components/lovelace/strings.json | 12 +- .../components/luftdaten/strings.json | 16 +- .../components/lunatone/strings.json | 50 +- homeassistant/components/lupusec/strings.json | 22 +- homeassistant/components/lutron/strings.json | 34 +- .../components/lutron_caseta/manifest.json | 16 +- .../components/lutron_caseta/strings.json | 82 +- homeassistant/components/lyric/strings.json | 72 +- homeassistant/components/madvr/icons.json | 128 +- homeassistant/components/madvr/strings.json | 176 +- homeassistant/components/mailgun/strings.json | 12 +- .../components/mastodon/strings.json | 148 +- homeassistant/components/matrix/strings.json | 72 +- homeassistant/components/matter/icons.json | 118 +- homeassistant/components/matter/strings.json | 648 ++-- homeassistant/components/mazda/strings.json | 4 +- homeassistant/components/mcp/strings.json | 80 +- .../components/mcp_server/strings.json | 16 +- homeassistant/components/mealie/icons.json | 28 +- homeassistant/components/mealie/strings.json | 410 +- homeassistant/components/meater/strings.json | 64 +- .../components/medcom_ble/strings.json | 26 +- .../components/media_extractor/icons.json | 6 +- .../components/media_extractor/strings.json | 40 +- .../components/media_player/strings.json | 450 +-- .../components/media_source/strings.json | 6 +- .../components/melcloud/strings.json | 124 +- homeassistant/components/melnor/icons.json | 14 +- homeassistant/components/melnor/strings.json | 14 +- homeassistant/components/met/strings.json | 34 +- .../components/met_eireann/strings.json | 24 +- .../components/meteo_france/strings.json | 32 +- .../components/meteo_lt/strings.json | 28 +- .../components/meteoclimatic/strings.json | 14 +- .../components/metoffice/strings.json | 38 +- homeassistant/components/microbees/icons.json | 16 +- .../components/microbees/strings.json | 56 +- .../components/microsoft_face/strings.json | 64 +- homeassistant/components/miele/icons.json | 68 +- homeassistant/components/miele/strings.json | 502 +-- .../components/mikrotik/strings.json | 54 +- homeassistant/components/mill/strings.json | 56 +- homeassistant/components/min_max/strings.json | 18 +- .../components/minecraft_server/icons.json | 16 +- .../components/minecraft_server/strings.json | 54 +- homeassistant/components/minio/strings.json | 52 +- homeassistant/components/mjpeg/strings.json | 24 +- homeassistant/components/moat/manifest.json | 4 +- homeassistant/components/moat/strings.json | 22 +- .../components/mobile_app/strings.json | 10 +- homeassistant/components/modbus/icons.json | 12 +- homeassistant/components/modbus/strings.json | 158 +- .../components/modem_callerid/manifest.json | 4 +- .../components/modem_callerid/strings.json | 30 +- .../components/modern_forms/icons.json | 22 +- .../components/modern_forms/manifest.json | 4 +- .../components/modern_forms/strings.json | 72 +- .../moehlenhoff_alpha2/strings.json | 18 +- .../components/mold_indicator/strings.json | 24 +- .../components/monarch_money/icons.json | 6 +- .../components/monarch_money/strings.json | 51 +- homeassistant/components/monoprice/icons.json | 6 +- .../components/monoprice/strings.json | 34 +- homeassistant/components/monzo/strings.json | 56 +- homeassistant/components/moon/strings.json | 4 +- homeassistant/components/mopeka/manifest.json | 54 +- homeassistant/components/mopeka/strings.json | 32 +- .../components/motion_blinds/strings.json | 110 +- .../components/motionblinds_ble/manifest.json | 4 +- .../components/motionblinds_ble/strings.json | 84 +- homeassistant/components/motioneye/icons.json | 6 +- .../components/motioneye/strings.json | 122 +- .../components/motionmount/strings.json | 96 +- homeassistant/components/mpd/strings.json | 14 +- homeassistant/components/mqtt/icons.json | 6 +- homeassistant/components/mqtt/strings.json | 1384 +++---- .../components/music_assistant/icons.json | 10 +- .../components/music_assistant/strings.json | 386 +- .../components/mutesync/strings.json | 10 +- homeassistant/components/myq/strings.json | 4 +- .../components/mysensors/strings.json | 136 +- homeassistant/components/mystrom/strings.json | 16 +- .../components/myuplink/strings.json | 32 +- homeassistant/components/nam/manifest.json | 8 +- homeassistant/components/nam/strings.json | 136 +- .../components/nanoleaf/strings.json | 44 +- homeassistant/components/nasweb/icons.json | 4 +- homeassistant/components/nasweb/strings.json | 74 +- homeassistant/components/neato/strings.json | 56 +- .../nederlandse_spoorwegen/strings.json | 90 +- .../components/ness_alarm/strings.json | 20 +- homeassistant/components/nest/strings.json | 128 +- homeassistant/components/netatmo/icons.json | 70 +- homeassistant/components/netatmo/strings.json | 380 +- homeassistant/components/netgear/icons.json | 156 +- .../components/netgear/manifest.json | 4 +- homeassistant/components/netgear/strings.json | 202 +- .../components/netgear_lte/icons.json | 48 +- .../components/netgear_lte/strings.json | 124 +- homeassistant/components/network/strings.json | 16 +- homeassistant/components/nexia/icons.json | 4 +- homeassistant/components/nexia/strings.json | 110 +- homeassistant/components/nextbus/strings.json | 46 +- homeassistant/components/nextcloud/icons.json | 20 +- .../components/nextcloud/strings.json | 38 +- homeassistant/components/nextdns/icons.json | 106 +- homeassistant/components/nextdns/strings.json | 48 +- .../components/nfandroidtv/strings.json | 42 +- .../components/nibe_heatpump/strings.json | 84 +- homeassistant/components/nice_go/icons.json | 10 +- homeassistant/components/nice_go/strings.json | 66 +- .../components/nightscout/strings.json | 36 +- .../components/niko_home_control/strings.json | 32 +- homeassistant/components/nina/strings.json | 56 +- .../nintendo_parental_controls/strings.json | 60 +- .../components/nissan_leaf/strings.json | 16 +- .../components/nmap_tracker/strings.json | 68 +- homeassistant/components/nmbs/strings.json | 16 +- .../components/nobo_hub/strings.json | 58 +- homeassistant/components/nordpool/icons.json | 48 +- .../components/nordpool/strings.json | 240 +- homeassistant/components/notify/strings.json | 124 +- homeassistant/components/notion/strings.json | 42 +- homeassistant/components/ntfy/icons.json | 108 +- homeassistant/components/ntfy/strings.json | 542 +-- homeassistant/components/nuheat/strings.json | 22 +- homeassistant/components/nuki/strings.json | 78 +- homeassistant/components/number/strings.json | 28 +- homeassistant/components/nut/strings.json | 160 +- homeassistant/components/nws/strings.json | 34 +- homeassistant/components/nx584/strings.json | 16 +- homeassistant/components/nyt_games/icons.json | 26 +- .../components/nyt_games/strings.json | 42 +- homeassistant/components/nzbget/strings.json | 70 +- homeassistant/components/obihai/strings.json | 36 +- .../components/octoprint/manifest.json | 4 +- .../components/octoprint/strings.json | 74 +- homeassistant/components/ohme/icons.json | 26 +- homeassistant/components/ohme/strings.json | 156 +- homeassistant/components/ollama/strings.json | 154 +- homeassistant/components/ombi/icons.json | 6 +- homeassistant/components/ombi/strings.json | 44 +- .../components/omnilogic/strings.json | 30 +- .../components/onboarding/strings.json | 4 +- homeassistant/components/oncue/strings.json | 4 +- .../components/ondilo_ico/icons.json | 6 +- .../components/ondilo_ico/strings.json | 32 +- homeassistant/components/onedrive/icons.json | 24 +- .../components/onedrive/strings.json | 202 +- homeassistant/components/onewire/strings.json | 26 +- homeassistant/components/onkyo/manifest.json | 36 +- homeassistant/components/onkyo/strings.json | 136 +- homeassistant/components/onvif/strings.json | 136 +- .../components/open_meteo/strings.json | 16 +- .../components/open_router/strings.json | 68 +- .../components/openai_conversation/icons.json | 6 +- .../openai_conversation/strings.json | 328 +- .../components/openexchangerates/strings.json | 24 +- .../components/opengarage/strings.json | 16 +- .../components/openhome/strings.json | 8 +- homeassistant/components/openrgb/strings.json | 58 +- homeassistant/components/opensky/strings.json | 30 +- .../components/opentherm_gw/icons.json | 12 +- .../components/opentherm_gw/strings.json | 752 ++-- homeassistant/components/openuv/strings.json | 46 +- .../components/openweathermap/strings.json | 132 +- homeassistant/components/opower/strings.json | 200 +- homeassistant/components/oralb/icons.json | 56 +- homeassistant/components/oralb/strings.json | 106 +- homeassistant/components/osoenergy/icons.json | 6 +- .../components/osoenergy/strings.json | 216 +- homeassistant/components/otbr/strings.json | 30 +- homeassistant/components/otp/strings.json | 34 +- .../components/ourgroceries/strings.json | 16 +- homeassistant/components/overkiz/icons.json | 24 +- .../components/overkiz/manifest.json | 8 +- homeassistant/components/overkiz/strings.json | 186 +- homeassistant/components/overseerr/icons.json | 36 +- .../components/overseerr/strings.json | 150 +- .../components/ovo_energy/icons.json | 6 +- .../components/ovo_energy/strings.json | 46 +- .../components/owntracks/strings.json | 12 +- .../components/p1_monitor/strings.json | 112 +- .../components/palazzetti/strings.json | 158 +- .../components/panasonic_viera/strings.json | 40 +- .../components/paperless_ngx/icons.json | 84 +- .../components/paperless_ngx/strings.json | 154 +- homeassistant/components/peblar/icons.json | 6 +- homeassistant/components/peblar/manifest.json | 2 +- homeassistant/components/peco/icons.json | 12 +- homeassistant/components/peco/strings.json | 36 +- .../components/pegel_online/icons.json | 6 +- .../components/pegel_online/strings.json | 40 +- homeassistant/components/permobil/icons.json | 28 +- .../components/permobil/strings.json | 88 +- .../persistent_notification/strings.json | 36 +- homeassistant/components/person/strings.json | 8 +- homeassistant/components/pglab/strings.json | 34 +- .../components/philips_js/icons.json | 12 +- .../components/philips_js/strings.json | 70 +- homeassistant/components/pi_hole/icons.json | 16 +- homeassistant/components/pi_hole/strings.json | 87 +- homeassistant/components/picnic/icons.json | 60 +- homeassistant/components/picnic/strings.json | 126 +- homeassistant/components/pilight/strings.json | 8 +- homeassistant/components/ping/strings.json | 52 +- homeassistant/components/plaato/strings.json | 72 +- homeassistant/components/plant/strings.json | 4 +- .../components/playstation_network/icons.json | 98 +- .../playstation_network/strings.json | 250 +- homeassistant/components/plex/strings.json | 102 +- homeassistant/components/plugwise/icons.json | 12 +- .../components/plugwise/strings.json | 338 +- .../components/plum_lightpad/strings.json | 4 +- homeassistant/components/point/strings.json | 16 +- homeassistant/components/pooldose/icons.json | 38 +- .../components/pooldose/strings.json | 126 +- homeassistant/components/poolsense/icons.json | 6 +- .../components/poolsense/strings.json | 24 +- homeassistant/components/portainer/icons.json | 50 +- .../components/portainer/strings.json | 96 +- .../components/powerfox/manifest.json | 4 +- .../components/powerfox/strings.json | 84 +- .../components/powerwall/strings.json | 272 +- .../components/private_ble_device/icons.json | 6 +- .../private_ble_device/strings.json | 28 +- .../components/probe_plus/manifest.json | 4 +- .../components/probe_plus/strings.json | 12 +- homeassistant/components/profiler/icons.json | 48 +- .../components/profiler/strings.json | 148 +- .../components/progettihwsw/strings.json | 46 +- .../components/prosegur/strings.json | 40 +- homeassistant/components/prowl/strings.json | 20 +- .../components/proximity/strings.json | 46 +- homeassistant/components/prusalink/icons.json | 20 +- .../components/prusalink/strings.json | 148 +- homeassistant/components/ps4/strings.json | 68 +- .../components/pterodactyl/icons.json | 30 +- .../components/pterodactyl/strings.json | 78 +- .../components/pure_energie/manifest.json | 4 +- .../components/pure_energie/strings.json | 20 +- homeassistant/components/purpleair/icons.json | 8 +- .../components/purpleair/strings.json | 156 +- .../components/pushbullet/strings.json | 4 +- .../components/pushover/strings.json | 16 +- .../components/pvoutput/strings.json | 40 +- .../pvpc_hourly_pricing/strings.json | 68 +- homeassistant/components/pyload/icons.json | 12 +- homeassistant/components/pyload/strings.json | 150 +- .../components/python_script/strings.json | 4 +- .../components/qbittorrent/icons.json | 4 +- .../components/qbittorrent/strings.json | 144 +- homeassistant/components/qbus/strings.json | 14 +- .../components/qingping/manifest.json | 12 +- .../components/qingping/strings.json | 24 +- homeassistant/components/qnap/icons.json | 60 +- homeassistant/components/qnap/strings.json | 102 +- .../components/qnap_qsw/strings.json | 8 +- homeassistant/components/qvr_pro/strings.json | 16 +- .../components/rabbitair/strings.json | 18 +- homeassistant/components/rachio/icons.json | 22 +- homeassistant/components/rachio/manifest.json | 4 +- homeassistant/components/rachio/strings.json | 154 +- homeassistant/components/radarr/strings.json | 48 +- .../components/radiotherm/strings.json | 38 +- homeassistant/components/rainbird/icons.json | 6 +- .../components/rainbird/strings.json | 100 +- .../components/rainforest_eagle/strings.json | 32 +- .../components/rainforest_raven/icons.json | 6 +- .../components/rainforest_raven/manifest.json | 16 +- .../components/rainmachine/icons.json | 12 +- .../components/rainmachine/manifest.json | 4 +- .../components/rainmachine/strings.json | 308 +- homeassistant/components/random/strings.json | 18 +- .../components/rapt_ble/manifest.json | 8 +- .../components/rapt_ble/strings.json | 22 +- homeassistant/components/rdw/strings.json | 14 +- .../components/recollect_waste/strings.json | 32 +- homeassistant/components/recorder/icons.json | 12 +- .../components/recorder/strings.json | 146 +- homeassistant/components/refoss/strings.json | 20 +- homeassistant/components/rehlko/icons.json | 12 +- homeassistant/components/rehlko/strings.json | 126 +- .../components/remember_the_milk/icons.json | 6 +- .../components/remember_the_milk/strings.json | 36 +- homeassistant/components/remote/strings.json | 178 +- .../components/remote_calendar/strings.json | 26 +- homeassistant/components/renault/icons.json | 34 +- homeassistant/components/renault/strings.json | 176 +- homeassistant/components/renson/icons.json | 6 +- homeassistant/components/renson/strings.json | 292 +- homeassistant/components/reolink/icons.json | 696 ++-- homeassistant/components/reolink/strings.json | 1350 +++---- homeassistant/components/rest/strings.json | 4 +- .../components/rest_command/strings.json | 18 +- homeassistant/components/rflink/strings.json | 12 +- homeassistant/components/rfxtrx/strings.json | 260 +- homeassistant/components/ridwell/strings.json | 36 +- homeassistant/components/ring/icons.json | 28 +- homeassistant/components/ring/strings.json | 156 +- homeassistant/components/risco/strings.json | 118 +- .../rituals_perfume_genie/strings.json | 20 +- homeassistant/components/roborock/icons.json | 108 +- .../components/roborock/strings.json | 582 +-- homeassistant/components/roku/manifest.json | 4 +- homeassistant/components/roku/strings.json | 66 +- homeassistant/components/romy/icons.json | 26 +- homeassistant/components/romy/strings.json | 78 +- homeassistant/components/roomba/icons.json | 36 +- homeassistant/components/roomba/manifest.json | 8 +- homeassistant/components/roomba/strings.json | 166 +- homeassistant/components/roon/strings.json | 42 +- homeassistant/components/route53/strings.json | 4 +- .../route_b_smart_meter/strings.json | 42 +- homeassistant/components/rova/strings.json | 42 +- .../components/rpi_power/strings.json | 10 +- .../components/ruckus_unleashed/strings.json | 28 +- .../components/russound_rio/strings.json | 56 +- .../components/ruuvi_gateway/strings.json | 16 +- .../components/ruuvitag_ble/manifest.json | 8 +- .../components/ruuvitag_ble/strings.json | 24 +- homeassistant/components/rympro/strings.json | 28 +- homeassistant/components/sabnzbd/strings.json | 64 +- .../components/samsungtv/manifest.json | 4 +- .../components/samsungtv/strings.json | 92 +- homeassistant/components/sanix/strings.json | 28 +- .../components/satel_integra/strings.json | 228 +- homeassistant/components/scene/icons.json | 12 +- homeassistant/components/scene/strings.json | 82 +- homeassistant/components/schedule/icons.json | 6 +- .../components/schedule/strings.json | 20 +- homeassistant/components/schlage/strings.json | 36 +- homeassistant/components/scrape/strings.json | 142 +- .../components/screenlogic/strings.json | 256 +- homeassistant/components/script/icons.json | 8 +- homeassistant/components/script/strings.json | 40 +- homeassistant/components/season/icons.json | 2 +- homeassistant/components/season/strings.json | 12 +- homeassistant/components/select/strings.json | 96 +- homeassistant/components/sense/strings.json | 62 +- homeassistant/components/sensibo/icons.json | 26 +- homeassistant/components/sensibo/strings.json | 758 ++-- .../components/sensirion_ble/strings.json | 24 +- homeassistant/components/sensor/strings.json | 58 +- .../components/sensorpro/manifest.json | 8 +- .../components/sensorpro/strings.json | 24 +- .../components/sensorpush/manifest.json | 6 +- .../components/sensorpush/strings.json | 22 +- .../components/sensorpush_cloud/strings.json | 18 +- .../components/sensoterra/strings.json | 44 +- homeassistant/components/sentry/strings.json | 14 +- homeassistant/components/senz/strings.json | 32 +- .../components/seventeentrack/icons.json | 28 +- .../components/seventeentrack/strings.json | 182 +- homeassistant/components/sfr_box/strings.json | 22 +- .../components/sftp_storage/strings.json | 44 +- homeassistant/components/sharkiq/strings.json | 72 +- .../components/shell_command/strings.json | 6 +- homeassistant/components/shelly/icons.json | 26 +- homeassistant/components/shelly/manifest.json | 4 +- homeassistant/components/shelly/strings.json | 314 +- .../components/shopping_list/icons.json | 14 +- .../components/shopping_list/strings.json | 140 +- homeassistant/components/sia/strings.json | 52 +- .../components/simplefin/strings.json | 28 +- .../components/simplepush/strings.json | 24 +- .../components/simplisafe/strings.json | 112 +- homeassistant/components/siren/strings.json | 48 +- .../components/sky_remote/strings.json | 10 +- homeassistant/components/skybell/icons.json | 4 +- homeassistant/components/skybell/strings.json | 38 +- homeassistant/components/slack/strings.json | 20 +- .../components/sleep_as_android/icons.json | 38 +- .../components/sleep_as_android/strings.json | 140 +- homeassistant/components/sleepiq/strings.json | 40 +- .../components/slide_local/manifest.json | 4 +- .../components/slide_local/strings.json | 74 +- .../components/slimproto/strings.json | 6 +- homeassistant/components/sma/strings.json | 26 +- .../components/smappee/manifest.json | 12 +- homeassistant/components/smappee/strings.json | 62 +- homeassistant/components/smarla/icons.json | 16 +- homeassistant/components/smarla/strings.json | 22 +- .../components/smart_meter_texas/strings.json | 18 +- .../components/smartthings/icons.json | 138 +- .../components/smartthings/strings.json | 694 ++-- homeassistant/components/smarttub/icons.json | 6 +- .../components/smarttub/strings.json | 108 +- homeassistant/components/smarty/strings.json | 42 +- homeassistant/components/smhi/icons.json | 18 +- homeassistant/components/smhi/strings.json | 50 +- homeassistant/components/smlight/icons.json | 22 +- homeassistant/components/smlight/strings.json | 150 +- homeassistant/components/sms/icons.json | 6 +- homeassistant/components/sms/strings.json | 22 +- homeassistant/components/smtp/strings.json | 12 +- homeassistant/components/snapcast/icons.json | 12 +- .../components/snapcast/strings.json | 104 +- homeassistant/components/snips/strings.json | 56 +- homeassistant/components/snoo/strings.json | 112 +- homeassistant/components/snooz/icons.json | 6 +- homeassistant/components/snooz/strings.json | 64 +- homeassistant/components/solaredge/icons.json | 16 +- .../components/solaredge/strings.json | 250 +- homeassistant/components/solarlog/icons.json | 48 +- .../components/solarlog/strings.json | 188 +- homeassistant/components/solax/strings.json | 18 +- homeassistant/components/soma/strings.json | 4 +- .../components/somfy_mylink/strings.json | 30 +- homeassistant/components/sonarr/strings.json | 46 +- .../components/songpal/manifest.json | 4 +- homeassistant/components/songpal/strings.json | 38 +- homeassistant/components/sonos/icons.json | 46 +- homeassistant/components/sonos/strings.json | 278 +- .../components/soundtouch/icons.json | 8 +- .../components/soundtouch/strings.json | 88 +- .../components/speedtestdotnet/icons.json | 4 +- .../components/speedtestdotnet/strings.json | 110 +- homeassistant/components/spider/strings.json | 4 +- homeassistant/components/spotify/strings.json | 40 +- homeassistant/components/sql/strings.json | 148 +- .../components/squeezebox/icons.json | 24 +- .../components/squeezebox/strings.json | 316 +- .../components/srp_energy/strings.json | 24 +- homeassistant/components/starline/icons.json | 60 +- .../components/starline/strings.json | 164 +- homeassistant/components/starlink/icons.json | 24 +- .../components/starlink/strings.json | 48 +- .../components/statistics/strings.json | 90 +- .../components/steam_online/strings.json | 44 +- .../components/steamist/manifest.json | 4 +- .../components/steamist/strings.json | 42 +- .../components/stiebel_eltron/strings.json | 34 +- .../components/stookwijzer/strings.json | 52 +- .../components/streamlabswater/strings.json | 44 +- homeassistant/components/subaru/icons.json | 14 +- homeassistant/components/subaru/strings.json | 134 +- .../components/suez_water/strings.json | 42 +- homeassistant/components/sun/icons.json | 24 +- homeassistant/components/sun/strings.json | 52 +- .../sunricher_dali_center/strings.json | 34 +- homeassistant/components/sunweg/strings.json | 4 +- .../components/surepetcare/strings.json | 62 +- .../swiss_public_transport/icons.json | 18 +- .../swiss_public_transport/strings.json | 144 +- homeassistant/components/switch/icons.json | 12 +- homeassistant/components/switch/strings.json | 52 +- .../components/switch_as_x/strings.json | 8 +- .../components/switchbee/strings.json | 28 +- homeassistant/components/switchbot/icons.json | 208 +- .../components/switchbot/manifest.json | 24 +- .../components/switchbot/strings.json | 464 +-- .../components/switchbot_cloud/icons.json | 34 +- .../components/switchbot_cloud/strings.json | 52 +- .../components/switcher_kis/icons.json | 16 +- .../components/switcher_kis/strings.json | 72 +- homeassistant/components/syncthing/icons.json | 4 +- .../components/syncthing/strings.json | 22 +- .../components/syncthru/strings.json | 40 +- .../components/synology_dsm/icons.json | 72 +- .../components/synology_dsm/manifest.json | 8 +- .../components/synology_dsm/strings.json | 172 +- .../components/system_bridge/icons.json | 6 +- .../components/system_bridge/strings.json | 176 +- .../components/system_log/strings.json | 54 +- .../components/systemmonitor/strings.json | 46 +- homeassistant/components/tado/icons.json | 12 +- homeassistant/components/tado/strings.json | 210 +- homeassistant/components/tag/strings.json | 10 +- .../components/tailscale/strings.json | 40 +- .../components/tailwind/manifest.json | 4 +- .../components/tailwind/strings.json | 72 +- homeassistant/components/tami4/icons.json | 24 +- homeassistant/components/tami4/strings.json | 84 +- .../components/tankerkoenig/icons.json | 4 +- .../components/tankerkoenig/strings.json | 184 +- homeassistant/components/tasmota/strings.json | 28 +- homeassistant/components/tautulli/icons.json | 12 +- .../components/tautulli/strings.json | 86 +- .../components/technove/strings.json | 46 +- homeassistant/components/tedee/icons.json | 4 +- homeassistant/components/tedee/strings.json | 80 +- .../components/telegram/strings.json | 4 +- .../components/telegram_bot/icons.json | 72 +- .../components/telegram_bot/strings.json | 1798 ++++----- .../components/tellduslive/strings.json | 24 +- .../components/template/strings.json | 646 ++-- .../components/tesla_fleet/icons.json | 152 +- .../components/tesla_fleet/strings.json | 310 +- .../tesla_wall_connector/strings.json | 104 +- .../components/teslemetry/icons.json | 602 +-- .../components/teslemetry/strings.json | 1224 +++--- homeassistant/components/tessie/icons.json | 120 +- homeassistant/components/tessie/strings.json | 708 ++-- homeassistant/components/text/strings.json | 16 +- .../components/thermobeacon/manifest.json | 46 +- .../components/thermobeacon/strings.json | 24 +- .../components/thermopro/manifest.json | 16 +- .../components/thermopro/strings.json | 22 +- .../components/thethingsnetwork/strings.json | 28 +- .../components/threshold/strings.json | 26 +- homeassistant/components/tibber/strings.json | 206 +- homeassistant/components/tile/strings.json | 48 +- .../components/tilt_ble/manifest.json | 4 +- .../components/tilt_ble/strings.json | 22 +- homeassistant/components/tilt_pi/strings.json | 14 +- homeassistant/components/time/strings.json | 12 +- .../components/time_date/strings.json | 80 +- homeassistant/components/timer/icons.json | 18 +- homeassistant/components/timer/strings.json | 60 +- homeassistant/components/tod/strings.json | 10 +- homeassistant/components/todo/strings.json | 176 +- homeassistant/components/todoist/strings.json | 110 +- homeassistant/components/togrill/icons.json | 8 +- .../components/togrill/manifest.json | 4 +- homeassistant/components/togrill/strings.json | 130 +- homeassistant/components/tolo/icons.json | 14 +- homeassistant/components/tolo/strings.json | 62 +- .../components/tomorrowio/icons.json | 34 +- .../components/tomorrowio/strings.json | 202 +- homeassistant/components/toon/strings.json | 48 +- .../components/totalconnect/strings.json | 170 +- .../components/touchline_sl/strings.json | 18 +- homeassistant/components/tplink/icons.json | 240 +- homeassistant/components/tplink/strings.json | 620 +-- .../components/tplink_omada/icons.json | 22 +- .../components/tplink_omada/strings.json | 126 +- homeassistant/components/traccar/strings.json | 12 +- .../components/traccar_server/icons.json | 6 +- .../components/traccar_server/strings.json | 68 +- homeassistant/components/tractive/icons.json | 12 +- .../components/tractive/strings.json | 24 +- homeassistant/components/tradfri/strings.json | 26 +- .../components/trafikverket_camera/icons.json | 6 +- .../trafikverket_camera/strings.json | 38 +- .../components/trafikverket_ferry/icons.json | 12 +- .../trafikverket_ferry/strings.json | 60 +- .../components/trafikverket_train/icons.json | 30 +- .../trafikverket_train/strings.json | 156 +- .../trafikverket_weatherstation/icons.json | 12 +- .../trafikverket_weatherstation/strings.json | 62 +- .../components/transmission/strings.json | 186 +- homeassistant/components/trend/strings.json | 40 +- .../components/triggercmd/strings.json | 18 +- homeassistant/components/tts/strings.json | 72 +- homeassistant/components/tuya/icons.json | 482 +-- homeassistant/components/tuya/strings.json | 1348 +++---- .../components/twentemilieu/icons.json | 4 +- .../components/twentemilieu/strings.json | 38 +- homeassistant/components/twilio/strings.json | 12 +- homeassistant/components/twinkly/strings.json | 18 +- homeassistant/components/twitch/strings.json | 44 +- .../components/ukraine_alarm/icons.json | 6 +- .../components/ukraine_alarm/strings.json | 32 +- homeassistant/components/unifi/icons.json | 48 +- homeassistant/components/unifi/strings.json | 80 +- .../components/unifiprotect/icons.json | 10 +- .../components/unifiprotect/strings.json | 1200 +++--- .../components/universal/strings.json | 4 +- homeassistant/components/upb/icons.json | 12 +- homeassistant/components/upb/strings.json | 154 +- homeassistant/components/upcloud/strings.json | 10 +- homeassistant/components/update/strings.json | 86 +- homeassistant/components/upnp/icons.json | 32 +- homeassistant/components/upnp/strings.json | 54 +- homeassistant/components/uptime/strings.json | 4 +- .../components/uptime_kuma/icons.json | 16 +- .../components/uptime_kuma/strings.json | 158 +- .../components/uptimerobot/icons.json | 4 +- .../components/uptimerobot/strings.json | 48 +- .../components/utility_meter/icons.json | 16 +- .../components/utility_meter/strings.json | 50 +- homeassistant/components/v2c/icons.json | 42 +- homeassistant/components/v2c/strings.json | 136 +- homeassistant/components/vacuum/strings.json | 106 +- homeassistant/components/vallox/icons.json | 24 +- homeassistant/components/vallox/strings.json | 202 +- homeassistant/components/valve/strings.json | 44 +- homeassistant/components/vegehub/strings.json | 38 +- homeassistant/components/velbus/icons.json | 10 +- homeassistant/components/velbus/manifest.json | 16 +- homeassistant/components/velbus/strings.json | 164 +- homeassistant/components/velux/strings.json | 42 +- homeassistant/components/venstar/strings.json | 52 +- homeassistant/components/vera/strings.json | 14 +- homeassistant/components/verisure/icons.json | 6 +- .../components/verisure/strings.json | 78 +- homeassistant/components/version/strings.json | 16 +- homeassistant/components/vesync/icons.json | 4 +- homeassistant/components/vesync/strings.json | 130 +- homeassistant/components/vicare/icons.json | 74 +- homeassistant/components/vicare/strings.json | 774 ++-- .../victron_remote_monitoring/strings.json | 136 +- homeassistant/components/vilfo/icons.json | 6 +- homeassistant/components/vilfo/strings.json | 30 +- homeassistant/components/vizio/strings.json | 98 +- .../components/vlc_telnet/strings.json | 48 +- .../components/vodafone_station/icons.json | 12 +- .../components/vodafone_station/strings.json | 122 +- homeassistant/components/voip/strings.json | 32 +- homeassistant/components/volumio/strings.json | 24 +- homeassistant/components/volvo/icons.json | 48 +- homeassistant/components/volvo/strings.json | 92 +- .../components/volvooncall/strings.json | 10 +- .../components/wake_on_lan/strings.json | 28 +- homeassistant/components/wallbox/icons.json | 6 +- homeassistant/components/wallbox/strings.json | 132 +- homeassistant/components/waqi/icons.json | 40 +- homeassistant/components/waqi/strings.json | 88 +- .../components/water_heater/strings.json | 114 +- homeassistant/components/watergate/icons.json | 6 +- .../components/watergate/strings.json | 96 +- .../components/watttime/strings.json | 76 +- .../components/waze_travel_time/strings.json | 150 +- homeassistant/components/weather/strings.json | 80 +- .../components/weatherflow/icons.json | 16 +- .../components/weatherflow/strings.json | 52 +- .../components/weatherflow_cloud/icons.json | 18 +- .../components/weatherflow_cloud/strings.json | 32 +- .../components/weatherkit/strings.json | 36 +- homeassistant/components/webdav/strings.json | 46 +- homeassistant/components/webmin/icons.json | 70 +- homeassistant/components/webmin/strings.json | 110 +- homeassistant/components/webostv/strings.json | 190 +- homeassistant/components/weheat/icons.json | 62 +- homeassistant/components/weheat/strings.json | 150 +- homeassistant/components/wemo/icons.json | 6 +- homeassistant/components/wemo/strings.json | 52 +- homeassistant/components/whirlpool/icons.json | 10 +- .../components/whirlpool/strings.json | 276 +- homeassistant/components/whois/strings.json | 36 +- homeassistant/components/wiffi/strings.json | 16 +- homeassistant/components/wilight/icons.json | 12 +- homeassistant/components/wilight/strings.json | 60 +- homeassistant/components/withings/icons.json | 180 +- .../components/withings/strings.json | 412 +- homeassistant/components/wiz/icons.json | 6 +- homeassistant/components/wiz/strings.json | 42 +- homeassistant/components/wled/icons.json | 40 +- homeassistant/components/wled/strings.json | 92 +- homeassistant/components/wmspro/strings.json | 20 +- .../components/wolflink/strings.json | 140 +- homeassistant/components/workday/strings.json | 346 +- .../components/worldclock/strings.json | 8 +- homeassistant/components/ws66i/strings.json | 20 +- homeassistant/components/wyoming/strings.json | 84 +- homeassistant/components/xbox/icons.json | 36 +- homeassistant/components/xbox/manifest.json | 8 +- homeassistant/components/xbox/strings.json | 70 +- .../components/xiaomi_aqara/strings.json | 108 +- .../components/xiaomi_ble/strings.json | 210 +- .../components/xiaomi_miio/icons.json | 80 +- .../components/xiaomi_miio/strings.json | 974 ++--- homeassistant/components/yale/strings.json | 48 +- .../components/yale_smart_alarm/strings.json | 70 +- .../components/yalexs_ble/strings.json | 76 +- homeassistant/components/yamaha/strings.json | 32 +- .../components/yamaha_musiccast/strings.json | 110 +- homeassistant/components/yardian/icons.json | 22 +- homeassistant/components/yardian/strings.json | 40 +- homeassistant/components/yeelight/icons.json | 20 +- .../components/yeelight/manifest.json | 4 +- .../components/yeelight/strings.json | 304 +- homeassistant/components/yolink/icons.json | 16 +- homeassistant/components/yolink/strings.json | 194 +- homeassistant/components/youless/strings.json | 76 +- homeassistant/components/youtube/strings.json | 44 +- homeassistant/components/zamg/strings.json | 24 +- homeassistant/components/zengge/strings.json | 4 +- .../components/zeroconf/strings.json | 4 +- homeassistant/components/zerproc/strings.json | 8 +- .../components/zeversolar/icons.json | 6 +- .../components/zeversolar/strings.json | 18 +- homeassistant/components/zha/icons.json | 300 +- homeassistant/components/zha/manifest.json | 124 +- homeassistant/components/zha/strings.json | 3414 ++++++++--------- homeassistant/components/zimi/strings.json | 54 +- homeassistant/components/zodiac/icons.json | 20 +- homeassistant/components/zodiac/strings.json | 10 +- homeassistant/components/zone/strings.json | 4 +- .../components/zoneminder/strings.json | 8 +- .../components/zwave_js/manifest.json | 16 +- .../components/zwave_js/strings.json | 184 +- .../components/zwave_me/manifest.json | 4 +- .../components/zwave_me/strings.json | 22 +- homeassistant/strings.json | 12 +- 1293 files changed, 56310 insertions(+), 56286 deletions(-) create mode 100644 .prettierrc.js diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b7e91d2e8b3..e347b21b922 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,6 +37,9 @@ repos: rev: v3.6.2 hooks: - id: prettier + additional_dependencies: + - prettier@3.6.2 + - prettier-plugin-sort-json@4.1.1 - repo: https://github.com/cdce8p/python-typing-update rev: v0.6.0 hooks: diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000000..0a8397c489c --- /dev/null +++ b/.prettierrc.js @@ -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", + }), + }, + }, + ], +}; diff --git a/homeassistant/components/abode/strings.json b/homeassistant/components/abode/strings.json index c6887d78042..063bcafea8a 100644 --- a/homeassistant/components/abode/strings.json +++ b/homeassistant/components/abode/strings.json @@ -1,70 +1,70 @@ { "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": { "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": { "capture_image": { - "name": "Capture image", "description": "Requests a new image capture from a camera device.", "fields": { "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": { - "name": "Change setting", "description": "Changes an Abode system setting.", "fields": { "setting": { - "name": "Setting", - "description": "Setting to change." + "description": "Setting to change.", + "name": "Setting" }, "value": { - "name": "Value", - "description": "Value of the setting." + "description": "Value of the setting.", + "name": "Value" } - } + }, + "name": "Change setting" }, "trigger_automation": { - "name": "Trigger automation", "description": "Triggers an Abode automation.", "fields": { "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" } } } diff --git a/homeassistant/components/acaia/icons.json b/homeassistant/components/acaia/icons.json index 59b316a36ce..2bb842cb4bc 100644 --- a/homeassistant/components/acaia/icons.json +++ b/homeassistant/components/acaia/icons.json @@ -4,20 +4,20 @@ "timer_running": { "default": "mdi:timer", "state": { - "on": "mdi:timer-play", - "off": "mdi:timer-off" + "off": "mdi:timer-off", + "on": "mdi:timer-play" } } }, "button": { - "tare": { - "default": "mdi:scale-balance" - }, "reset_timer": { "default": "mdi:timer-refresh" }, "start_stop": { "default": "mdi:timer-play" + }, + "tare": { + "default": "mdi:scale-balance" } } } diff --git a/homeassistant/components/acaia/strings.json b/homeassistant/components/acaia/strings.json index e0e97b7c2ff..ac88960206e 100644 --- a/homeassistant/components/acaia/strings.json +++ b/homeassistant/components/acaia/strings.json @@ -1,6 +1,5 @@ { "config": { - "flow_title": "{name}", "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", @@ -10,18 +9,19 @@ "device_not_found": "Device could not be found.", "unknown": "[%key:common::config_flow::error::unknown%]" }, + "flow_title": "{name}", "step": { "bluetooth_confirm": { "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" }, "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", "data": { "address": "[%key:common::config_flow::data::device%]" }, "data_description": { "address": "Select Acaia scale you want to set up" - } + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } } }, @@ -32,14 +32,14 @@ } }, "button": { - "tare": { - "name": "Tare" - }, "reset_timer": { "name": "Reset timer" }, "start_stop": { "name": "Start/stop timer" + }, + "tare": { + "name": "Tare" } } } diff --git a/homeassistant/components/accuweather/strings.json b/homeassistant/components/accuweather/strings.json index b46393acf78..221452a63c9 100644 --- a/homeassistant/components/accuweather/strings.json +++ b/homeassistant/components/accuweather/strings.json @@ -1,25 +1,8 @@ { "config": { - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - }, - "data_description": { - "api_key": "API key generated in the AccuWeather APIs portal." - } - }, - "reauth_confirm": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::accuweather::config::step::user::data_description::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "create_entry": { "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%]", "requests_exceeded": "The allowed number of requests to the AccuWeather API has been exceeded. You have to wait or change the API key." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::accuweather::config::step::user::data_description::api_key%]" + } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "api_key": "API key generated in the AccuWeather APIs portal." + } + } } }, "entity": { @@ -120,9 +120,9 @@ "pressure_tendency": { "name": "Pressure tendency", "state": { - "steady": "Steady", + "falling": "Falling", "rising": "Rising", - "falling": "Falling" + "steady": "Steady" }, "state_attributes": { "options": { @@ -227,9 +227,6 @@ "wet_bulb_temperature": { "name": "Wet bulb temperature" }, - "wind_speed": { - "name": "[%key:component::weather::entity_component::_::state_attributes::wind_speed::name%]" - }, "wind_chill_temperature": { "name": "Wind chill temperature" }, @@ -242,6 +239,9 @@ "wind_gust_speed_night": { "name": "Wind gust speed night {forecast_day}" }, + "wind_speed": { + "name": "[%key:component::weather::entity_component::_::state_attributes::wind_speed::name%]" + }, "wind_speed_day": { "name": "Wind speed day {forecast_day}" }, diff --git a/homeassistant/components/acmeda/strings.json b/homeassistant/components/acmeda/strings.json index f6c94581052..8482c9c0b6c 100644 --- a/homeassistant/components/acmeda/strings.json +++ b/homeassistant/components/acmeda/strings.json @@ -1,15 +1,15 @@ { "config": { - "step": { - "user": { - "title": "Pick a hub to add", - "data": { - "id": "Host ID" - } - } - }, "abort": { "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "step": { + "user": { + "data": { + "id": "Host ID" + }, + "title": "Pick a hub to add" + } } } } diff --git a/homeassistant/components/actron_air/strings.json b/homeassistant/components/actron_air/strings.json index 989bcfb8054..a89689850bf 100644 --- a/homeassistant/components/actron_air/strings.json +++ b/homeassistant/components/actron_air/strings.json @@ -1,29 +1,29 @@ { "config": { - "step": { - "user": { - "title": "Actron Air OAuth2 Authorization" - }, - "timeout": { - "title": "Authorization timeout", - "description": "The authorization process timed out. Please try again.", - "data": {} - }, - "connection_error": { - "title": "Connection error", - "description": "Failed to connect to Actron Air. Please check your internet connection and try again.", - "data": {} - } - }, - "progress": { - "wait_for_authorization": "To authenticate, open the following URL and login at Actron Air:\n{verification_uri}\nIf the code is not automatically copied, paste the following code to authorize the integration:\n\n```{user_code}```\n\n\nThe login attempt will time out after {expires_minutes} minutes." + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "oauth2_error": "Failed to start OAuth2 flow" }, "error": { "oauth2_error": "Failed to start OAuth2 flow. Please try again later." }, - "abort": { - "oauth2_error": "Failed to start OAuth2 flow", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "progress": { + "wait_for_authorization": "To authenticate, open the following URL and login at Actron Air:\n{verification_uri}\nIf the code is not automatically copied, paste the following code to authorize the integration:\n\n```{user_code}```\n\n\nThe login attempt will time out after {expires_minutes} minutes." + }, + "step": { + "connection_error": { + "data": {}, + "description": "Failed to connect to Actron Air. Please check your internet connection and try again.", + "title": "Connection error" + }, + "timeout": { + "data": {}, + "description": "The authorization process timed out. Please try again.", + "title": "Authorization timeout" + }, + "user": { + "title": "Actron Air OAuth2 Authorization" + } } } } diff --git a/homeassistant/components/adax/strings.json b/homeassistant/components/adax/strings.json index 9ba497a9aca..0b0c405ef51 100644 --- a/homeassistant/components/adax/strings.json +++ b/homeassistant/components/adax/strings.json @@ -1,34 +1,34 @@ { "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": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "heater_not_available": "Heater not available. Try to reset the heater by pressing + and OK for some seconds.", "heater_not_found": "Heater not found. Try to move the heater closer to Home Assistant computer.", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "cloud": { + "data": { + "account_id": "Account ID", + "password": "[%key:common::config_flow::data::password%]" + } + }, + "local": { + "data": { + "wifi_pswd": "Wi-Fi password", + "wifi_ssid": "Wi-Fi SSID" + }, + "description": "Reset the heater by pressing + and OK until display shows 'Reset'. Then press and hold OK button on the heater until the blue LED starts blinking before pressing Submit. Configuring heater might take some minutes." + }, + "user": { + "data": { + "connection_type": "Select connection type" + }, + "description": "Select connection type. Local requires heaters with Bluetooth" + } } } } diff --git a/homeassistant/components/adguard/icons.json b/homeassistant/components/adguard/icons.json index 18527c0ed98..bf475115645 100644 --- a/homeassistant/components/adguard/icons.json +++ b/homeassistant/components/adguard/icons.json @@ -1,6 +1,9 @@ { "entity": { "sensor": { + "average_processing_speed": { + "default": "mdi:speedometer" + }, "dns_queries": { "default": "mdi:magnify" }, @@ -13,21 +16,18 @@ "parental_control_blocked": { "default": "mdi:human-male-girl" }, + "rules_count": { + "default": "mdi:counter" + }, "safe_browsing_blocked": { "default": "mdi:shield-half-full" }, "safe_searches_enforced": { "default": "mdi:shield-search" - }, - "average_processing_speed": { - "default": "mdi:speedometer" - }, - "rules_count": { - "default": "mdi:counter" } }, "switch": { - "protection": { + "filtering": { "default": "mdi:shield-check", "state": { "off": "mdi:shield-off" @@ -39,7 +39,13 @@ "off": "mdi:shield-off" } }, - "safe_search": { + "protection": { + "default": "mdi:shield-check", + "state": { + "off": "mdi:shield-off" + } + }, + "query_log": { "default": "mdi:shield-check", "state": { "off": "mdi:shield-off" @@ -51,13 +57,7 @@ "off": "mdi:shield-off" } }, - "filtering": { - "default": "mdi:shield-check", - "state": { - "off": "mdi:shield-off" - } - }, - "query_log": { + "safe_search": { "default": "mdi:shield-check", "state": { "off": "mdi:shield-off" @@ -69,17 +69,17 @@ "add_url": { "service": "mdi:link-plus" }, - "remove_url": { - "service": "mdi:link-off" + "disable_url": { + "service": "mdi:link-variant-off" }, "enable_url": { "service": "mdi:link-variant" }, - "disable_url": { - "service": "mdi:link-variant-off" - }, "refresh": { "service": "mdi:refresh" + }, + "remove_url": { + "service": "mdi:link-off" } } } diff --git a/homeassistant/components/adguard/strings.json b/homeassistant/components/adguard/strings.json index 44f4a388e6e..0e4b94cc439 100644 --- a/homeassistant/components/adguard/strings.json +++ b/homeassistant/components/adguard/strings.json @@ -1,35 +1,38 @@ { "config": { - "step": { - "user": { - "description": "Set up your AdGuard Home instance to allow monitoring and control.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "port": "[%key:common::config_flow::data::port%]", - "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}?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "existing_instance_updated": "Updated existing configuration." }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "existing_instance_updated": "Updated existing configuration.", - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "hassio_confirm": { + "description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the add-on: {addon}?", + "title": "AdGuard Home via Home Assistant add-on" + }, + "user": { + "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": { "sensor": { + "average_processing_speed": { + "name": "Average processing speed" + }, "dns_queries": { "name": "DNS queries" }, @@ -42,94 +45,91 @@ "parental_control_blocked": { "name": "Parental control blocked" }, + "rules_count": { + "name": "Rules count" + }, "safe_browsing_blocked": { "name": "Safe browsing blocked" }, "safe_searches_enforced": { "name": "Safe searches enforced" - }, - "average_processing_speed": { - "name": "Average processing speed" - }, - "rules_count": { - "name": "Rules count" } }, "switch": { - "protection": { - "name": "Protection" + "filtering": { + "name": "Filtering" }, "parental": { "name": "Parental control" }, - "safe_search": { - "name": "Safe search" + "protection": { + "name": "Protection" + }, + "query_log": { + "name": "Query log" }, "safe_browsing": { "name": "Safe browsing" }, - "filtering": { - "name": "Filtering" - }, - "query_log": { - "name": "Query log" + "safe_search": { + "name": "Safe search" } } }, "services": { "add_url": { - "name": "Add URL", "description": "Adds a new filter subscription to AdGuard Home.", "fields": { "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": { - "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%]" } - } - }, - "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." - } - } + }, + "name": "Add URL" }, "disable_url": { - "name": "Disable URL", "description": "Disables a filter subscription in AdGuard Home.", "fields": { "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "The filter subscription URL to disable." + "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": { - "name": "Refresh", "description": "Refreshes all filter subscriptions in AdGuard Home.", "fields": { "force": { - "name": "Force", - "description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh." + "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" } } } diff --git a/homeassistant/components/ads/strings.json b/homeassistant/components/ads/strings.json index fd34973a21d..61775b18cfd 100644 --- a/homeassistant/components/ads/strings.json +++ b/homeassistant/components/ads/strings.json @@ -1,22 +1,22 @@ { "services": { "write_data_by_name": { - "name": "Write data by name", "description": "Write a value to the connected ADS device.", "fields": { - "adsvar": { - "name": "ADS variable", - "description": "The name of the variable to write to." - }, "adstype": { - "name": "ADS type", - "description": "The data type of the variable to write to." + "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": { - "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" } } } diff --git a/homeassistant/components/advantage_air/strings.json b/homeassistant/components/advantage_air/strings.json index de8bde6897e..719356e0cf2 100644 --- a/homeassistant/components/advantage_air/strings.json +++ b/homeassistant/components/advantage_air/strings.json @@ -1,11 +1,11 @@ { "config": { - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { @@ -19,14 +19,14 @@ }, "services": { "set_time_to": { - "name": "Set time to", "description": "Controls timers to turn the system on or off after a set number of minutes.", "fields": { "minutes": { - "name": "Minutes", - "description": "Minutes until action." + "description": "Minutes until action.", + "name": "Minutes" } - } + }, + "name": "Set time to" } } } diff --git a/homeassistant/components/aftership/strings.json b/homeassistant/components/aftership/strings.json index c3817a0cd24..508cba4574f 100644 --- a/homeassistant/components/aftership/strings.json +++ b/homeassistant/components/aftership/strings.json @@ -1,57 +1,57 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" } } - }, - "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": { "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" } } } diff --git a/homeassistant/components/agent_dvr/icons.json b/homeassistant/components/agent_dvr/icons.json index 7dfb4a847f6..c4987a08da9 100644 --- a/homeassistant/components/agent_dvr/icons.json +++ b/homeassistant/components/agent_dvr/icons.json @@ -1,19 +1,19 @@ { "services": { + "disable_alerts": { + "service": "mdi:bell-off" + }, + "enable_alerts": { + "service": "mdi:bell-alert" + }, + "snapshot": { + "service": "mdi:camera" + }, "start_recording": { "service": "mdi:record-rec" }, "stop_recording": { "service": "mdi:stop" - }, - "enable_alerts": { - "service": "mdi:bell-alert" - }, - "disable_alerts": { - "service": "mdi:bell-off" - }, - "snapshot": { - "service": "mdi:camera" } } } diff --git a/homeassistant/components/agent_dvr/strings.json b/homeassistant/components/agent_dvr/strings.json index cbfc2e87a4d..c5093a6f098 100644 --- a/homeassistant/components/agent_dvr/strings.json +++ b/homeassistant/components/agent_dvr/strings.json @@ -1,45 +1,45 @@ { "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": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "user": { + "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": { - "start_recording": { - "name": "Start recording", - "description": "Enables continuous recording." - }, - "stop_recording": { - "name": "Stop recording", - "description": "Disables continuous recording." + "disable_alerts": { + "description": "Disables alerts.", + "name": "Disable alerts" }, "enable_alerts": { - "name": "Enable alerts", - "description": "Enables alerts." - }, - "disable_alerts": { - "name": "Disable alerts", - "description": "Disables alerts." + "description": "Enables alerts.", + "name": "Enable alerts" }, "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" } } } diff --git a/homeassistant/components/ai_task/strings.json b/homeassistant/components/ai_task/strings.json index 3ec366afb0d..4c70a37329f 100644 --- a/homeassistant/components/ai_task/strings.json +++ b/homeassistant/components/ai_task/strings.json @@ -1,52 +1,52 @@ { "services": { "generate_data": { - "name": "Generate data", "description": "Uses AI to run a task that generates data.", "fields": { - "task_name": { - "name": "Task name", - "description": "Name of the task." - }, - "instructions": { - "name": "Instructions", - "description": "Instructions on what needs to be done." + "attachments": { + "description": "List of files to attach for multi-modal AI analysis.", + "name": "Attachments" }, "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": { - "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": { - "name": "Attachments", - "description": "List of files to attach for multi-modal AI analysis." + "task_name": { + "description": "Name of the task.", + "name": "Task name" } - } + }, + "name": "Generate data" }, "generate_image": { - "name": "Generate image", "description": "Uses AI to generate image.", "fields": { - "task_name": { - "name": "Task name", - "description": "Name of the task." - }, - "instructions": { - "name": "Instructions", - "description": "Instructions that explains the image to be generated." + "attachments": { + "description": "List of files to attach for using as references.", + "name": "Attachments" }, "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": { - "name": "Attachments", - "description": "List of files to attach for using as references." + "instructions": { + "description": "Instructions that explains the image to be generated.", + "name": "Instructions" + }, + "task_name": { + "description": "Name of the task.", + "name": "Task name" } - } + }, + "name": "Generate image" } } } diff --git a/homeassistant/components/airgradient/icons.json b/homeassistant/components/airgradient/icons.json index 22188d72faa..954158efddb 100644 --- a/homeassistant/components/airgradient/icons.json +++ b/homeassistant/components/airgradient/icons.json @@ -9,14 +9,17 @@ } }, "number": { - "led_bar_brightness": { + "display_brightness": { "default": "mdi:brightness-percent" }, - "display_brightness": { + "led_bar_brightness": { "default": "mdi:brightness-percent" } }, "select": { + "co2_automatic_baseline_calibration": { + "default": "mdi:molecule-co2" + }, "configuration_control": { "default": "mdi:cloud-cog" }, @@ -31,23 +34,11 @@ }, "voc_index_learning_time_offset": { "default": "mdi:clock-outline" - }, - "co2_automatic_baseline_calibration": { - "default": "mdi:molecule-co2" } }, "sensor": { - "total_volatile_organic_component_index": { - "default": "mdi:molecule" - }, - "nitrogen_index": { - "default": "mdi:molecule" - }, - "pm003_count": { - "default": "mdi:blur" - }, - "led_bar_brightness": { - "default": "mdi:brightness-percent" + "co2_automatic_baseline_calibration": { + "default": "mdi:molecule-co2" }, "display_brightness": { "default": "mdi:brightness-percent" @@ -55,17 +46,26 @@ "display_temperature_unit": { "default": "mdi:thermometer-lines" }, + "led_bar_brightness": { + "default": "mdi:brightness-percent" + }, "led_bar_mode": { "default": "mdi:led-strip" }, + "nitrogen_index": { + "default": "mdi:molecule" + }, "nox_index_learning_time_offset": { "default": "mdi:clock-outline" }, + "pm003_count": { + "default": "mdi:blur" + }, + "total_volatile_organic_component_index": { + "default": "mdi:molecule" + }, "voc_index_learning_time_offset": { "default": "mdi:clock-outline" - }, - "co2_automatic_baseline_calibration": { - "default": "mdi:molecule-co2" } }, "switch": { diff --git a/homeassistant/components/airgradient/strings.json b/homeassistant/components/airgradient/strings.json index 6342fa5392a..68f32684954 100644 --- a/homeassistant/components/airgradient/strings.json +++ b/homeassistant/components/airgradient/strings.json @@ -1,19 +1,5 @@ { "config": { - "flow_title": "{model}", - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Airgradient device." - } - }, - "discovery_confirm": { - "description": "Do you want to set up {model}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -24,6 +10,20 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{model}", + "step": { + "discovery_confirm": { + "description": "Do you want to set up {model}?" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Airgradient device." + } + } } }, "entity": { @@ -36,14 +36,25 @@ } }, "number": { - "led_bar_brightness": { - "name": "LED bar brightness" - }, "display_brightness": { "name": "Display brightness" + }, + "led_bar_brightness": { + "name": "LED bar brightness" } }, "select": { + "co2_automatic_baseline_calibration": { + "name": "CO2 automatic baseline duration", + "state": { + "0": "[%key:common::state::off%]", + "1": "1 day", + "8": "8 days", + "30": "30 days", + "90": "90 days", + "180": "180 days" + } + }, "configuration_control": { "name": "Configuration source", "state": { @@ -51,13 +62,6 @@ "local": "Local" } }, - "display_temperature_unit": { - "name": "Display temperature unit", - "state": { - "c": "Celsius", - "f": "Fahrenheit" - } - }, "display_pm_standard": { "name": "Display PM standard", "state": { @@ -65,11 +69,18 @@ "us_aqi": "US AQI" } }, + "display_temperature_unit": { + "name": "Display temperature unit", + "state": { + "c": "Celsius", + "f": "Fahrenheit" + } + }, "led_bar_mode": { "name": "LED bar mode", "state": { - "off": "[%key:common::state::off%]", "co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", + "off": "[%key:common::state::off%]", "pm": "Particulate matter" } }, @@ -92,37 +103,14 @@ "360": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::state::360%]", "720": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::state::720%]" } - }, - "co2_automatic_baseline_calibration": { - "name": "CO2 automatic baseline duration", - "state": { - "1": "1 day", - "8": "8 days", - "30": "30 days", - "90": "90 days", - "180": "180 days", - "0": "[%key:common::state::off%]" - } } }, "sensor": { - "total_volatile_organic_component_index": { - "name": "VOC index" + "co2_automatic_baseline_calibration_days": { + "name": "Carbon dioxide automatic baseline calibration" }, - "nitrogen_index": { - "name": "NOx index" - }, - "pm003_count": { - "name": "PM0.3" - }, - "raw_total_volatile_organic_component": { - "name": "Raw VOC" - }, - "raw_nitrogen": { - "name": "Raw NOx" - }, - "raw_pm02": { - "name": "Raw PM2.5" + "display_brightness": { + "name": "[%key:component::airgradient::entity::number::display_brightness::name%]" }, "display_pm_standard": { "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%]" } }, - "co2_automatic_baseline_calibration_days": { - "name": "Carbon dioxide automatic baseline calibration" - }, - "nox_learning_offset": { - "name": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::name%]" - }, - "tvoc_learning_offset": { - "name": "[%key:component::airgradient::entity::select::voc_index_learning_time_offset::name%]" - }, - "led_bar_mode": { - "name": "[%key:component::airgradient::entity::select::led_bar_mode::name%]", - "state": { - "off": "[%key:common::state::off%]", - "co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", - "pm": "[%key:component::airgradient::entity::select::led_bar_mode::state::pm%]" - } - }, - "led_bar_brightness": { - "name": "[%key:component::airgradient::entity::number::led_bar_brightness::name%]" - }, "display_temperature_unit": { "name": "[%key:component::airgradient::entity::select::display_temperature_unit::name%]", "state": { @@ -158,8 +126,40 @@ "f": "[%key:component::airgradient::entity::select::display_temperature_unit::state::f%]" } }, - "display_brightness": { - "name": "[%key:component::airgradient::entity::number::display_brightness::name%]" + "led_bar_brightness": { + "name": "[%key:component::airgradient::entity::number::led_bar_brightness::name%]" + }, + "led_bar_mode": { + "name": "[%key:component::airgradient::entity::select::led_bar_mode::name%]", + "state": { + "co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", + "off": "[%key:common::state::off%]", + "pm": "[%key:component::airgradient::entity::select::led_bar_mode::state::pm%]" + } + }, + "nitrogen_index": { + "name": "NOx index" + }, + "nox_learning_offset": { + "name": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::name%]" + }, + "pm003_count": { + "name": "PM0.3" + }, + "raw_nitrogen": { + "name": "Raw NOx" + }, + "raw_pm02": { + "name": "Raw PM2.5" + }, + "raw_total_volatile_organic_component": { + "name": "Raw VOC" + }, + "total_volatile_organic_component_index": { + "name": "VOC index" + }, + "tvoc_learning_offset": { + "name": "[%key:component::airgradient::entity::select::voc_index_learning_time_offset::name%]" } }, "switch": { diff --git a/homeassistant/components/airly/strings.json b/homeassistant/components/airly/strings.json index 056858caab8..6f53c7ed23c 100644 --- a/homeassistant/components/airly/strings.json +++ b/homeassistant/components/airly/strings.json @@ -1,30 +1,23 @@ { "config": { - "step": { - "user": { - "description": "To generate API key go to {developer_registration_url}", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - } - } - }, - "error": { - "wrong_location": "No Airly measuring stations in this area.", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", "wrong_location": "[%key:component::airly::config::error::wrong_location%]" - } - }, - "system_health": { - "info": { - "can_reach_server": "Reach Airly server", - "requests_remaining": "Remaining allowed requests", - "requests_per_day": "Allowed requests per day" + }, + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "wrong_location": "No Airly measuring stations in this area." + }, + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "To generate API key go to {developer_registration_url}" + } } }, "entity": { @@ -38,11 +31,18 @@ } }, "exceptions": { - "update_error": { - "message": "An error occurred while retrieving data from the Airly API for {entry}: {error}" - }, "no_station": { "message": "An error occurred while retrieving data from the Airly API for {entry}: no measuring stations in this area" + }, + "update_error": { + "message": "An error occurred while retrieving data from the Airly API for {entry}: {error}" + } + }, + "system_health": { + "info": { + "can_reach_server": "Reach Airly server", + "requests_per_day": "Allowed requests per day", + "requests_remaining": "Remaining allowed requests" } } } diff --git a/homeassistant/components/airnow/icons.json b/homeassistant/components/airnow/icons.json index 96f97e06df6..b9e9fb7fd94 100644 --- a/homeassistant/components/airnow/icons.json +++ b/homeassistant/components/airnow/icons.json @@ -4,15 +4,15 @@ "aqi": { "default": "mdi:blur" }, + "o3": { + "default": "mdi:blur" + }, "pm10": { "default": "mdi:blur" }, "pm25": { "default": "mdi:blur" }, - "o3": { - "default": "mdi:blur" - }, "station": { "default": "mdi:blur" } diff --git a/homeassistant/components/airnow/strings.json b/homeassistant/components/airnow/strings.json index f6ccf858314..20aed65cc0f 100644 --- a/homeassistant/components/airnow/strings.json +++ b/homeassistant/components/airnow/strings.json @@ -1,15 +1,7 @@ { "config": { - "step": { - "user": { - "description": "To generate API key go to {api_key_url}", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "radius": "Station radius (miles; optional)" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "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.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { "step": { - "init": { + "user": { "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)" + } + } + } } } diff --git a/homeassistant/components/airos/strings.json b/homeassistant/components/airos/strings.json index 46c4e287321..a8f052a29ab 100644 --- a/homeassistant/components/airos/strings.json +++ b/homeassistant/components/airos/strings.json @@ -1,5 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "Re-authentication should be used for the same device not a new one" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "key_data_missing": "Expected data not returned from the device, check the documentation for supported devices", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "Ubiquiti airOS device", "step": { "reauth_confirm": { @@ -19,7 +31,6 @@ }, "sections": { "advanced_settings": { - "name": "[%key:component::airos::config::step::user::sections::advanced_settings::name%]", "data": { "ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data::ssl%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" @@ -27,24 +38,24 @@ "data_description": { "ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data_description::ssl%]", "verify_ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data_description::verify_ssl%]" - } + }, + "name": "[%key:component::airos::config::step::user::sections::advanced_settings::name%]" } } }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", - "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": { "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": { "advanced_settings": { - "name": "Advanced settings", "data": { "ssl": "Use HTTPS", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" @@ -52,28 +63,17 @@ "data_description": { "ssl": "Whether the connection should be encrypted (required for most devices)", "verify_ssl": "Whether the certificate should be verified when using HTTPS. This should be off for self-signed certificates" - } + }, + "name": "Advanced settings" } } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "key_data_missing": "Expected data not returned from the device, check the documentation for supported devices", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "unique_id_mismatch": "Re-authentication should be used for the same device not a new one" } }, "entity": { "binary_sensor": { - "port_forwarding": { - "name": "Port forwarding" + "dhcp6_server": { + "name": "DHCPv6 server" }, "dhcp_client": { "name": "DHCP client" @@ -81,8 +81,8 @@ "dhcp_server": { "name": "DHCP server" }, - "dhcp6_server": { - "name": "DHCPv6 server" + "port_forwarding": { + "name": "Port forwarding" }, "pppoe": { "name": "PPPoE link" @@ -99,20 +99,27 @@ "router": "Router" } }, - "wireless_frequency": { - "name": "Wireless frequency" - }, - "wireless_essid": { - "name": "Wireless SSID" + "host_uptime": { + "name": "Uptime" }, "wireless_antenna_gain": { "name": "Antenna gain" }, - "wireless_throughput_tx": { - "name": "Throughput transmit (actual)" + "wireless_distance": { + "name": "Wireless distance" }, - "wireless_throughput_rx": { - "name": "Throughput receive (actual)" + "wireless_essid": { + "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": { "name": "Download capacity" @@ -123,12 +130,6 @@ "wireless_remote_hostname": { "name": "Remote hostname" }, - "host_uptime": { - "name": "Uptime" - }, - "wireless_distance": { - "name": "Wireless distance" - }, "wireless_role": { "name": "Wireless role", "state": { @@ -136,27 +137,26 @@ "station": "Station" } }, - "wireless_mode": { - "name": "Wireless mode", - "state": { - "point_to_point": "Point-to-point", - "point_to_multipoint": "Point-to-multipoint" - } + "wireless_throughput_rx": { + "name": "Throughput receive (actual)" + }, + "wireless_throughput_tx": { + "name": "Throughput transmit (actual)" } } }, "exceptions": { - "invalid_auth": { - "message": "[%key:common::config_flow::error::invalid_auth%]" - }, "cannot_connect": { "message": "[%key:common::config_flow::error::cannot_connect%]" }, - "key_data_missing": { - "message": "Key data not returned from device" - }, "error_data_missing": { "message": "Data incomplete or missing" + }, + "invalid_auth": { + "message": "[%key:common::config_flow::error::invalid_auth%]" + }, + "key_data_missing": { + "message": "Key data not returned from device" } } } diff --git a/homeassistant/components/airq/strings.json b/homeassistant/components/airq/strings.json index e38c5b9fdfe..57d3382f162 100644 --- a/homeassistant/components/airq/strings.json +++ b/homeassistant/components/airq/strings.json @@ -1,36 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Identify the device", - "description": "Provide the IP address or mDNS of the device and its password", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]", "invalid_input": "[%key:common::config_flow::error::invalid_host%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { "step": { - "init": { - "title": "Configure air-Q integration", + "user": { "data": { - "return_average": "Show values averaged by the device", - "clip_negatives": "Clip negative values" + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "return_average": "air-Q allows to poll both the noisy sensor readings as well as the values averaged on the device (default)", - "clip_negatives": "For baseline calibration purposes, certain sensor values may briefly become negative. The default behavior is to clip such values to 0" - } + "description": "Provide the IP address or mDNS of the device and its password", + "title": "Identify the device" } } }, @@ -53,8 +38,11 @@ "bromine": { "name": "Bromine" }, - "methanethiol": { - "name": "Methanethiol" + "carbon_disulfide": { + "name": "Carbon disulfide" + }, + "carbon_monoxide": { + "name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]" }, "chlorine": { "name": "Chlorine" @@ -62,12 +50,6 @@ "chlorine_dioxide": { "name": "Chlorine dioxide" }, - "carbon_disulfide": { - "name": "Carbon disulfide" - }, - "carbon_monoxide": { - "name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]" - }, "dew_point": { "name": "Dew point" }, @@ -77,36 +59,51 @@ "ethylene": { "name": "Ethylene" }, - "formaldehyde": { - "name": "Formaldehyde" - }, "fluorine": { "name": "Fluorine" }, - "hydrogen_sulfide": { - "name": "Hydrogen sulfide" + "formaldehyde": { + "name": "Formaldehyde" + }, + "health_index": { + "name": "Health index" }, "hydrochloric_acid": { "name": "Hydrochloric acid" }, + "hydrogen": { + "name": "Hydrogen" + }, "hydrogen_cyanide": { "name": "Hydrogen cyanide" }, "hydrogen_fluoride": { "name": "Hydrogen fluoride" }, - "health_index": { - "name": "Health index" - }, - "hydrogen": { - "name": "Hydrogen" - }, "hydrogen_peroxide": { "name": "Hydrogen peroxide" }, + "hydrogen_phosphide": { + "name": "Hydrogen phosphide" + }, + "hydrogen_sulfide": { + "name": "Hydrogen sulfide" + }, + "industrial_volatile_organic_compounds": { + "name": "VOCs (industrial)" + }, + "maximum_noise": { + "name": "Noise (maximum)" + }, "methane": { "name": "Methane" }, + "methanethiol": { + "name": "Methanethiol" + }, + "noise": { + "name": "Noise" + }, "organic_acid": { "name": "Organic acid" }, @@ -116,36 +113,39 @@ "performance_index": { "name": "Performance index" }, - "hydrogen_phosphide": { - "name": "Hydrogen phosphide" - }, - "relative_pressure": { - "name": "Relative pressure" - }, "propane": { "name": "Propane" }, - "refigerant": { - "name": "Refrigerant" - }, - "silicon_hydride": { - "name": "Silicon hydride" - }, - "noise": { - "name": "Noise" - }, - "maximum_noise": { - "name": "Noise (maximum)" - }, "radon": { "name": "Radon" }, - "industrial_volatile_organic_compounds": { - "name": "VOCs (industrial)" + "refigerant": { + "name": "Refrigerant" + }, + "relative_pressure": { + "name": "Relative pressure" + }, + "silicon_hydride": { + "name": "Silicon hydride" }, "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" + } + } } } diff --git a/homeassistant/components/airthings/strings.json b/homeassistant/components/airthings/strings.json index 2994c25ed43..5e6d58addbe 100644 --- a/homeassistant/components/airthings/strings.json +++ b/homeassistant/components/airthings/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -8,29 +16,21 @@ }, "description": "Log in at {url} to find your credentials" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" } }, "entity": { "sensor": { - "radon": { - "name": "Radon" - }, "light": { "name": "Light" }, - "virus_risk": { - "name": "Virus Risk" - }, "mold": { "name": "Mold" + }, + "radon": { + "name": "Radon" + }, + "virus_risk": { + "name": "Virus Risk" } } } diff --git a/homeassistant/components/airthings_ble/icons.json b/homeassistant/components/airthings_ble/icons.json index 4cc618ef98c..17ad64e8d26 100644 --- a/homeassistant/components/airthings_ble/icons.json +++ b/homeassistant/components/airthings_ble/icons.json @@ -4,10 +4,10 @@ "radon_1day_avg": { "default": "mdi:radioactive" }, - "radon_longterm_avg": { + "radon_1day_level": { "default": "mdi:radioactive" }, - "radon_1day_level": { + "radon_longterm_avg": { "default": "mdi:radioactive" }, "radon_longterm_level": { diff --git a/homeassistant/components/airthings_ble/strings.json b/homeassistant/components/airthings_ble/strings.json index 2755866cdb6..f1dc92591a8 100644 --- a/homeassistant/components/airthings_ble/strings.json +++ b/homeassistant/components/airthings_ble/strings.json @@ -1,49 +1,49 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "firmware_upgrade_required": "Your device requires a firmware upgrade. Please use the Airthings app (Android/iOS) to upgrade it.", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unsupported_device": "Unsupported device" + }, "flow_title": "{name}", "step": { + "bluetooth_confirm": { + "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", "data": { "address": "[%key:common::config_flow::data::device%]" }, "data_description": { "address": "The Airthings devices discovered via Bluetooth." - } - }, - "bluetooth_confirm": { - "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "firmware_upgrade_required": "Your device requires a firmware upgrade. Please use the Airthings app (Android/iOS) to upgrade it.", - "unsupported_device": "Unsupported device", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { "sensor": { - "radon_1day_avg": { - "name": "Radon 1-day average" - }, - "radon_longterm_avg": { - "name": "Radon longterm average" - }, - "radon_1day_level": { - "name": "Radon 1-day level" - }, - "radon_longterm_level": { - "name": "Radon longterm level" + "ambient_noise": { + "name": "Ambient noise" }, "illuminance": { "name": "[%key:component::sensor::entity_component::illuminance::name%]" }, - "ambient_noise": { - "name": "Ambient noise" + "radon_1day_avg": { + "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" } } } diff --git a/homeassistant/components/airtouch4/strings.json b/homeassistant/components/airtouch4/strings.json index 04c2e54cc7e..73e513ca347 100644 --- a/homeassistant/components/airtouch4/strings.json +++ b/homeassistant/components/airtouch4/strings.json @@ -9,13 +9,13 @@ }, "step": { "user": { - "title": "Set up your AirTouch 4 connection details.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your AirTouch controller." - } + }, + "title": "Set up your AirTouch 4 connection details." } } } diff --git a/homeassistant/components/airtouch5/strings.json b/homeassistant/components/airtouch5/strings.json index effeb0c72e0..af435f02bdb 100644 --- a/homeassistant/components/airtouch5/strings.json +++ b/homeassistant/components/airtouch5/strings.json @@ -1,18 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "host": "[%key:common::config_flow::data::host%]" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -21,8 +21,8 @@ "state_attributes": { "fan_mode": { "state": { - "turbo": "Turbo", - "intelligent_auto": "Intelligent Auto" + "intelligent_auto": "Intelligent Auto", + "turbo": "Turbo" } } } diff --git a/homeassistant/components/airvisual/icons.json b/homeassistant/components/airvisual/icons.json index 9197830cb63..fc6fcb75eb8 100644 --- a/homeassistant/components/airvisual/icons.json +++ b/homeassistant/components/airvisual/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "pollutant_level": { - "default": "mdi:gauge" - }, "pollutant_label": { "default": "mdi:chemical-weapon" + }, + "pollutant_level": { + "default": "mdi:gauge" } } } diff --git a/homeassistant/components/airvisual/strings.json b/homeassistant/components/airvisual/strings.json index 9d53be4dee7..0f116b5fd31 100644 --- a/homeassistant/components/airvisual/strings.json +++ b/homeassistant/components/airvisual/strings.json @@ -1,54 +1,44 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "location_not_found": "Location not found", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "geography_by_coords": { - "title": "Configure a geography", - "description": "Use the AirVisual cloud API to monitor a latitude/longitude.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]" - } + }, + "description": "Use the AirVisual cloud API to monitor a latitude/longitude.", + "title": "Configure a geography" }, "geography_by_name": { - "title": "[%key:component::airvisual::config::step::geography_by_coords::title%]", - "description": "Use the AirVisual cloud API to monitor a city/state/country.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "city": "City", - "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": { - "title": "Re-authenticate AirVisual", "data": { "api_key": "[%key:common::config_flow::data::api_key%]" - } + }, + "title": "Re-authenticate AirVisual" }, "user": { - "title": "Configure AirVisual", - "description": "Pick what type of AirVisual data you want to monitor." - } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "location_not_found": "Location not found", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { - "title": "[%key:component::airvisual::config::step::user::title%]", - "data": { - "show_on_map": "Show monitored geography on the map" - } + "description": "Pick what type of AirVisual data you want to monitor.", + "title": "Configure AirVisual" } } }, @@ -67,19 +57,29 @@ "pollutant_level": { "state": { "good": "Good", + "hazardous": "Hazardous", "moderate": "Moderate", "unhealthy": "Unhealthy", "unhealthy_sensitive": "Unhealthy for sensitive groups", - "very_unhealthy": "Very unhealthy", - "hazardous": "Hazardous" + "very_unhealthy": "Very unhealthy" } } } }, "issues": { "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%]" + } } } } diff --git a/homeassistant/components/airvisual_pro/strings.json b/homeassistant/components/airvisual_pro/strings.json index 641fa8963da..5591968f18d 100644 --- a/homeassistant/components/airvisual_pro/strings.json +++ b/homeassistant/components/airvisual_pro/strings.json @@ -1,40 +1,40 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "reauth_confirm": { - "description": "[%key:component::airvisual_pro::config::step::user::description%]", "data": { "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "[%key:component::airvisual_pro::config::step::user::description%]" }, "user": { - "description": "The password can be retrieved from the AirVisual Pro's UI.", "data": { "ip_address": "[%key:common::config_flow::data::host%]", "password": "[%key:common::config_flow::data::password%]" }, "data_description": { "ip_address": "The hostname or IP address of your AirVisual Pro device." - } + }, + "description": "The password can be retrieved from the AirVisual Pro's UI." } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { "sensor": { - "pm01": { - "name": "PM0.1" - }, "outdoor_air_quality_index": { "name": "Outdoor air quality index" + }, + "pm01": { + "name": "PM0.1" } } } diff --git a/homeassistant/components/airzone/strings.json b/homeassistant/components/airzone/strings.json index 0b783769803..647d5eaad18 100644 --- a/homeassistant/components/airzone/strings.json +++ b/homeassistant/components/airzone/strings.json @@ -10,15 +10,15 @@ "step": { "discovered_connection": { "data": { - "id": "[%key:component::airzone::config::step::user::data::id%]", "host": "[%key:common::config_flow::data::host%]", + "id": "[%key:component::airzone::config::step::user::data::id%]", "port": "[%key:common::config_flow::data::port%]" } }, "user": { "data": { - "id": "System ID", "host": "[%key:common::config_flow::data::host%]", + "id": "System ID", "port": "[%key:common::config_flow::data::port%]" } } @@ -37,19 +37,19 @@ "grille_angles": { "name": "Cold angle", "state": { - "90deg": "90°", - "50deg": "50°", + "40deg": "40°", "45deg": "45°", - "40deg": "40°" + "50deg": "50°", + "90deg": "90°" } }, "heat_angles": { "name": "Heat angle", "state": { - "90deg": "[%key:component::airzone::entity::select::grille_angles::state::90deg%]", - "50deg": "[%key:component::airzone::entity::select::grille_angles::state::50deg%]", + "40deg": "[%key:component::airzone::entity::select::grille_angles::state::40deg%]", "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": { @@ -66,20 +66,20 @@ "q_adapt": { "name": "Q-Adapt", "state": { - "standard": "Standard", + "maximum": "Maximum", + "minimum": "Minimum", "power": "Power", "silence": "Silence", - "minimum": "Minimum", - "maximum": "Maximum" + "standard": "Standard" } }, "sleep_times": { "name": "Sleep", "state": { - "off": "[%key:common::state::off%]", "30m": "30 minutes", "60m": "60 minutes", - "90m": "90 minutes" + "90m": "90 minutes", + "off": "[%key:common::state::off%]" } } }, diff --git a/homeassistant/components/airzone_cloud/strings.json b/homeassistant/components/airzone_cloud/strings.json index 5481bfbc984..fea0d282c34 100644 --- a/homeassistant/components/airzone_cloud/strings.json +++ b/homeassistant/components/airzone_cloud/strings.json @@ -10,8 +10,8 @@ "user": { "data": { "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": { "name": "Air Quality mode", "state": { + "auto": "[%key:common::state::auto%]", "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "auto": "[%key:common::state::auto%]" + "on": "[%key:common::state::on%]" } }, "modes": { diff --git a/homeassistant/components/aladdin_connect/strings.json b/homeassistant/components/aladdin_connect/strings.json index c452ba66865..fbb09667fc4 100644 --- a/homeassistant/components/aladdin_connect/strings.json +++ b/homeassistant/components/aladdin_connect/strings.json @@ -1,34 +1,34 @@ { "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": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml.", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "You are authenticated with a different account than the one set up. Please authenticate with the configured account.", - "cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml." + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "You are authenticated with a different account than the one set up. Please authenticate with the configured account." }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "step": { + "oauth_discovery": { + "description": "Home Assistant has found an Aladdin Connect device on your network. Press **Submit** to continue setting up Aladdin Connect." + }, + "pick_implementation": { + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "Aladdin Connect needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } } } } diff --git a/homeassistant/components/alarm_control_panel/icons.json b/homeassistant/components/alarm_control_panel/icons.json index 0295699bae9..7b03e386bdf 100644 --- a/homeassistant/components/alarm_control_panel/icons.json +++ b/homeassistant/components/alarm_control_panel/icons.json @@ -18,23 +18,23 @@ "alarm_arm_away": { "service": "mdi:shield-lock" }, + "alarm_arm_custom_bypass": { + "service": "mdi:security" + }, "alarm_arm_home": { "service": "mdi:shield-home" }, "alarm_arm_night": { "service": "mdi:shield-moon" }, - "alarm_arm_custom_bypass": { - "service": "mdi:security" + "alarm_arm_vacation": { + "service": "mdi:shield-airplane" }, "alarm_disarm": { "service": "mdi:shield-off" }, "alarm_trigger": { "service": "mdi:bell-ring" - }, - "alarm_arm_vacation": { - "service": "mdi:shield-airplane" } } } diff --git a/homeassistant/components/alarm_control_panel/strings.json b/homeassistant/components/alarm_control_panel/strings.json index ed02b2d0ee8..62aefe71490 100644 --- a/homeassistant/components/alarm_control_panel/strings.json +++ b/homeassistant/components/alarm_control_panel/strings.json @@ -1,5 +1,4 @@ { - "title": "Alarm control panel", "device_automation": { "action_type": { "arm_away": "Arm {entity_name} away", @@ -10,24 +9,24 @@ "trigger": "Trigger {entity_name}" }, "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_home": "{entity_name} is armed home", "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": { "code": "Code", "for": "[%key:common::device_automation::extra_fields::for%]" }, "trigger_type": { - "triggered": "{entity_name} triggered", - "disarmed": "{entity_name} disarmed", - "armed_home": "{entity_name} armed home", "armed_away": "{entity_name} armed away", + "armed_home": "{entity_name} armed home", "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": { @@ -35,106 +34,34 @@ "name": "[%key:component::alarm_control_panel::title%]", "state": { "armed": "Armed", - "disarmed": "Disarmed", - "armed_home": "Armed home", "armed_away": "Armed away", + "armed_custom_bypass": "Armed custom bypass", + "armed_home": "Armed home", "armed_night": "Armed night", "armed_vacation": "Armed vacation", - "armed_custom_bypass": "Armed custom bypass", - "pending": "Pending", "arming": "Arming", + "disarmed": "Disarmed", "disarming": "Disarming", + "pending": "Pending", "triggered": "Triggered" }, "state_attributes": { - "code_format": { - "name": "Code format", - "state": { - "text": "Text", - "number": "Number" - } - }, "changed_by": { "name": "Changed by" }, "code_arm_required": { "name": "Code for arming", "state": { - "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": { "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" } diff --git a/homeassistant/components/alarmdecoder/strings.json b/homeassistant/components/alarmdecoder/strings.json index 3bc8363b90d..fb33d35844c 100644 --- a/homeassistant/components/alarmdecoder/strings.json +++ b/homeassistant/components/alarmdecoder/strings.json @@ -1,101 +1,101 @@ { "config": { - "step": { - "user": { - "title": "Choose AlarmDecoder protocol", - "data": { - "protocol": "Protocol" - } - }, - "protocol": { - "title": "Configure connection settings", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "device_baudrate": "Device baud rate", - "device_path": "Device path" - }, - "data_description": { - "host": "The hostname or IP address of the AlarmDecoder device that is connected to your alarm panel.", - "port": "The port on which AlarmDecoder is accessible (for example, 10000)" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "create_entry": { + "default": "Successfully connected to AlarmDecoder." }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "create_entry": { - "default": "Successfully connected to AlarmDecoder." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "protocol": { + "data": { + "device_baudrate": "Device baud rate", + "device_path": "Device path", + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "The hostname or IP address of the AlarmDecoder device that is connected to your alarm panel.", + "port": "The port on which AlarmDecoder is accessible (for example, 10000)" + }, + "title": "Configure connection settings" + }, + "user": { + "data": { + "protocol": "Protocol" + }, + "title": "Choose AlarmDecoder protocol" + } } }, "options": { + "error": { + "int": "The field below must be an integer.", + "loop_range": "'RF loop' must be an integer between 1 and 4.", + "loop_rfid": "'RF loop' cannot be used without 'RF serial'.", + "relay_inclusive": "'Relay address' and 'Relay channel' are codependent and must be included together." + }, "step": { + "arm_settings": { + "data": { + "alt_night_mode": "Alternative night mode", + "auto_bypass": "Auto-bypass on arm", + "code_arm_required": "Code required for arming" + }, + "title": "[%key:component::alarmdecoder::options::step::init::title%]" + }, "init": { - "title": "Configure AlarmDecoder", - "description": "What would you like to edit?", "data": { "edit_selection": "Edit" - } - }, - "arm_settings": { - "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" - } + }, + "description": "What would you like to edit?", + "title": "Configure AlarmDecoder" }, "zone_details": { - "title": "[%key:component::alarmdecoder::options::step::init::title%]", - "description": "Enter details for zone {zone_number}. To delete zone {zone_number}, leave 'Zone name' blank.", "data": { - "zone_name": "Zone name", - "zone_type": "Zone type", - "zone_rfid": "RF serial", "zone_loop": "RF loop", + "zone_name": "Zone name", "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": { "alarm_keypress": { - "name": "Key press", "description": "Sends custom keypresses to the alarm.", "fields": { "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": { - "name": "Toggle chime", "description": "Sends the alarm the toggle chime command.", "fields": { "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" } } } diff --git a/homeassistant/components/alert/strings.json b/homeassistant/components/alert/strings.json index f8c1b2ede72..2356e537a37 100644 --- a/homeassistant/components/alert/strings.json +++ b/homeassistant/components/alert/strings.json @@ -1,5 +1,4 @@ { - "title": "Alert", "entity_component": { "_": { "name": "[%key:component::alert::title%]", @@ -12,16 +11,17 @@ }, "services": { "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles alert's notifications." + "description": "Toggles alert's notifications.", + "name": "[%key:common::action::toggle%]" }, "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": { - "name": "[%key:common::action::turn_on%]", - "description": "Resets alert's notifications." + "description": "Resets alert's notifications.", + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Alert" } diff --git a/homeassistant/components/alexa_devices/strings.json b/homeassistant/components/alexa_devices/strings.json index f6b850f0920..12015fdb38e 100644 --- a/homeassistant/components/alexa_devices/strings.json +++ b/homeassistant/components/alexa_devices/strings.json @@ -1,47 +1,12 @@ { "common": { "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_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." }, "config": { - "flow_title": "{username}", - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "code": "[%key:component::alexa_devices::common::data_code%]" - }, - "data_description": { - "username": "[%key:component::alexa_devices::common::data_description_username%]", - "password": "[%key:component::alexa_devices::common::data_description_password%]", - "code": "[%key:component::alexa_devices::common::data_description_code%]" - } - }, - "reauth_confirm": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "code": "[%key:component::alexa_devices::common::data_code%]" - }, - "data_description": { - "password": "[%key:component::alexa_devices::common::data_description_password%]", - "code": "[%key:component::alexa_devices::common::data_description_code%]" - } - }, - "reconfigure": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "code": "[%key:component::alexa_devices::common::data_code%]" - }, - "data_description": { - "password": "[%key:component::alexa_devices::common::data_description_password%]", - "code": "[%key:component::alexa_devices::common::data_description_code%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -55,15 +20,50 @@ "cannot_retrieve_data": "Unable to retrieve data from Amazon. Please try again later.", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{username}", + "step": { + "reauth_confirm": { + "data": { + "code": "[%key:component::alexa_devices::common::data_code%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "code": "[%key:component::alexa_devices::common::data_description_code%]", + "password": "[%key:component::alexa_devices::common::data_description_password%]" + } + }, + "reconfigure": { + "data": { + "code": "[%key:component::alexa_devices::common::data_code%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "code": "[%key:component::alexa_devices::common::data_description_code%]", + "password": "[%key:component::alexa_devices::common::data_description_password%]" + } + }, + "user": { + "data": { + "code": "[%key:component::alexa_devices::common::data_code%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "code": "[%key:component::alexa_devices::common::data_description_code%]", + "password": "[%key:component::alexa_devices::common::data_description_password%]", + "username": "[%key:component::alexa_devices::common::data_description_username%]" + } + } } }, "entity": { "notify": { - "speak": { - "name": "Speak" - }, "announce": { "name": "Announce" + }, + "speak": { + "name": "Speak" } }, "switch": { @@ -72,34 +72,24 @@ } } }, - "services": { - "send_sound": { - "name": "Send sound", - "description": "Sends a sound to a device", - "fields": { - "device_id": { - "name": "Device", - "description": "[%key:component::alexa_devices::common::device_id_description%]" - }, - "sound": { - "name": "Alexa Skill sound file", - "description": "The sound file to play." - } - } + "exceptions": { + "cannot_connect_with_error": { + "message": "Error connecting: {error}" }, - "send_text_command": { - "name": "Send text command", - "description": "Sends a text command to a device", - "fields": { - "text_command": { - "name": "Alexa text command", - "description": "The text command to send." - }, - "device_id": { - "name": "Device", - "description": "[%key:component::alexa_devices::common::device_id_description%]" - } - } + "cannot_retrieve_data_with_error": { + "message": "Error retrieving data: {error}" + }, + "device_serial_number_missing": { + "message": "Device serial number missing: {device_id}" + }, + "entry_not_loaded": { + "message": "Entry not loaded: {entry}" + }, + "invalid_device_id": { + "message": "Invalid device ID specified: {device_id}" + }, + "invalid_sound_value": { + "message": "Invalid sound {sound} specified" } }, "selector": { @@ -149,24 +139,34 @@ } } }, - "exceptions": { - "cannot_connect_with_error": { - "message": "Error connecting: {error}" + "services": { + "send_sound": { + "description": "Sends a sound to a device", + "fields": { + "device_id": { + "description": "[%key:component::alexa_devices::common::device_id_description%]", + "name": "Device" + }, + "sound": { + "description": "The sound file to play.", + "name": "Alexa Skill sound file" + } + }, + "name": "Send sound" }, - "cannot_retrieve_data_with_error": { - "message": "Error retrieving data: {error}" - }, - "device_serial_number_missing": { - "message": "Device serial number missing: {device_id}" - }, - "invalid_device_id": { - "message": "Invalid device ID specified: {device_id}" - }, - "invalid_sound_value": { - "message": "Invalid sound {sound} specified" - }, - "entry_not_loaded": { - "message": "Entry not loaded: {entry}" + "send_text_command": { + "description": "Sends a text command to a device", + "fields": { + "device_id": { + "description": "[%key:component::alexa_devices::common::device_id_description%]", + "name": "Device" + }, + "text_command": { + "description": "The text command to send.", + "name": "Alexa text command" + } + }, + "name": "Send text command" } } } diff --git a/homeassistant/components/altruist/strings.json b/homeassistant/components/altruist/strings.json index a466e1e3c9d..24806c775c0 100644 --- a/homeassistant/components/altruist/strings.json +++ b/homeassistant/components/altruist/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "error": { + "no_device_found": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "discovery_confirm": { @@ -14,37 +21,30 @@ }, "description": "Fill in Altruist IP address or hostname in your local network" } - }, - "abort": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "error": { - "no_device_found": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "sensor": { + "co2": { + "name": "{sensor_name} CO2" + }, "humidity": { "name": "{sensor_name} humidity" }, - "pressure": { - "name": "{sensor_name} pressure" - }, - "temperature": { - "name": "{sensor_name} temperature" - }, - "noise_max": { - "name": "Maximum noise" - }, "noise_avg": { "name": "Average noise" }, - "co2": { - "name": "{sensor_name} CO2" + "noise_max": { + "name": "Maximum noise" + }, + "pressure": { + "name": "{sensor_name} pressure" }, "radiation": { "name": "Radiation level" + }, + "temperature": { + "name": "{sensor_name} temperature" } } } diff --git a/homeassistant/components/amberelectric/icons.json b/homeassistant/components/amberelectric/icons.json index a2d0a0a5486..c7cee8b07ec 100644 --- a/homeassistant/components/amberelectric/icons.json +++ b/homeassistant/components/amberelectric/icons.json @@ -1,19 +1,5 @@ { "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": { "demand_window": { "default": "mdi:meter-electric", @@ -21,6 +7,20 @@ "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": { diff --git a/homeassistant/components/amberelectric/strings.json b/homeassistant/components/amberelectric/strings.json index f9eba4a1f27..0e04aa6bf03 100644 --- a/homeassistant/components/amberelectric/strings.json +++ b/homeassistant/components/amberelectric/strings.json @@ -22,40 +22,40 @@ } } }, - "services": { - "get_forecasts": { - "name": "Get price forecasts", - "description": "Retrieves price forecasts from Amber Electric for a site.", - "fields": { - "config_entry_id": { - "description": "The config entry of the site to get forecasts for.", - "name": "Config entry" - }, - "channel_type": { - "name": "Channel type", - "description": "The channel to get forecasts for." - } - } - } - }, "exceptions": { + "channel_not_found": { + "message": "There is no {channel_type} channel at this site." + }, "integration_not_found": { "message": "Config entry \"{target}\" not found in registry." }, "not_loaded": { "message": "{target} is not loaded." - }, - "channel_not_found": { - "message": "There is no {channel_type} channel at this site." } }, "selector": { "channel_type": { "options": { - "general": "General", "controlled_load": "Controlled load", - "feed_in": "Feed-in" + "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" + } } } diff --git a/homeassistant/components/ambient_network/icons.json b/homeassistant/components/ambient_network/icons.json index a7abebce187..b06c9c47f5e 100644 --- a/homeassistant/components/ambient_network/icons.json +++ b/homeassistant/components/ambient_network/icons.json @@ -4,15 +4,15 @@ "last_rain": { "default": "mdi:water" }, + "lightning_distance": { + "default": "mdi:lightning-bolt" + }, "lightning_strikes_per_day": { "default": "mdi:lightning-bolt" }, "lightning_strikes_per_hour": { "default": "mdi:lightning-bolt" }, - "lightning_distance": { - "default": "mdi:lightning-bolt" - }, "wind_direction": { "default": "mdi:compass-outline" } diff --git a/homeassistant/components/ambient_network/strings.json b/homeassistant/components/ambient_network/strings.json index 7d18c40d902..10f4efa5609 100644 --- a/homeassistant/components/ambient_network/strings.json +++ b/homeassistant/components/ambient_network/strings.json @@ -1,42 +1,30 @@ { "config": { - "step": { - "user": { - "title": "Select region", - "description": "Choose the region you want to survey in order to locate Ambient personal weather stations." - }, - "station": { - "title": "Select station", - "description": "Select the weather station you want to add to Home Assistant.", - "data": { - "station": "Station" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "no_stations_found": "Did not find any stations in the selected region." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "station": { + "data": { + "station": "Station" + }, + "description": "Select the weather station you want to add to Home Assistant.", + "title": "Select station" + }, + "user": { + "description": "Choose the region you want to survey in order to locate Ambient personal weather stations.", + "title": "Select region" + } } }, "entity": { "sensor": { - "pm25_24h_average": { - "name": "PM2.5 (24 hour average)" - }, - "pm25_aqi": { - "name": "PM2.5 AQI" - }, - "pm25_aqi_24h_average": { - "name": "PM2.5 AQI (24 hour average)" - }, "absolute_pressure": { "name": "Absolute pressure" }, - "relative_pressure": { - "name": "Relative pressure" - }, "daily_rain": { "name": "Daily rain" }, @@ -52,21 +40,33 @@ "last_rain": { "name": "Last rain" }, + "lightning_distance": { + "name": "Lightning distance" + }, "lightning_strikes_per_day": { "name": "Lightning strikes per day" }, "lightning_strikes_per_hour": { "name": "Lightning strikes per hour" }, - "lightning_distance": { - "name": "Lightning distance" - }, "max_daily_gust": { "name": "Max daily gust" }, "monthly_rain": { "name": "Monthly rain" }, + "pm25_24h_average": { + "name": "PM2.5 (24 hour average)" + }, + "pm25_aqi": { + "name": "PM2.5 AQI" + }, + "pm25_aqi_24h_average": { + "name": "PM2.5 AQI (24 hour average)" + }, + "relative_pressure": { + "name": "Relative pressure" + }, "uv_index": { "name": "UV index" }, diff --git a/homeassistant/components/ambient_station/strings.json b/homeassistant/components/ambient_station/strings.json index 25006dce0e9..fc80d9d6bc7 100644 --- a/homeassistant/components/ambient_station/strings.json +++ b/homeassistant/components/ambient_station/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "title": "Fill in your information", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "app_key": "Application Key" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "invalid_key": "[%key:common::config_flow::error::invalid_api_key%]", "no_devices": "No devices found in account" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "app_key": "Application Key" + }, + "title": "Fill in your information" + } } }, "entity": { @@ -22,6 +22,9 @@ "battery_1": { "name": "Battery 1" }, + "battery_10": { + "name": "Battery 10" + }, "battery_2": { "name": "Battery 2" }, @@ -46,59 +49,11 @@ "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": { "name": "Carbon dioxide battery" }, - "lightning_detector_battery": { - "name": "Lightning detector battery" + "interior_battery": { + "name": "Interior battery" }, "leak_detector_1": { "name": "Leak detector 1" @@ -112,15 +67,33 @@ "leak_detector_4": { "name": "Leak detector 4" }, - "pm25_indoor_battery": { - "name": "PM25 indoor 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" + }, + "lightning_detector_battery": { + "name": "Lightning detector battery" }, "pm25_battery": { "name": "PM25 battery" }, + "pm25_indoor_battery": { + "name": "PM25 indoor battery" + }, "relay_1": { "name": "Relay 1" }, + "relay_10": { + "name": "Relay 10" + }, "relay_2": { "name": "Relay 2" }, @@ -145,32 +118,44 @@ "relay_9": { "name": "Relay 9" }, - "relay_10": { - "name": "Relay 10" + "soil_monitor_battery_1": { + "name": "Soil monitor battery 1" + }, + "soil_monitor_battery_10": { + "name": "Soil monitor battery 10" + }, + "soil_monitor_battery_2": { + "name": "Soil monitor battery 2" + }, + "soil_monitor_battery_3": { + "name": "Soil monitor battery 3" + }, + "soil_monitor_battery_4": { + "name": "Soil monitor battery 4" + }, + "soil_monitor_battery_5": { + "name": "Soil monitor battery 5" + }, + "soil_monitor_battery_6": { + "name": "Soil monitor battery 6" + }, + "soil_monitor_battery_7": { + "name": "Soil monitor battery 7" + }, + "soil_monitor_battery_8": { + "name": "Soil monitor battery 8" + }, + "soil_monitor_battery_9": { + "name": "Soil monitor battery 9" } }, "sensor": { "24_hour_rain": { "name": "Rain 24 hours" }, - "pm25_aqi": { - "name": "PM2.5 AQI" - }, - "pm25_aqi_24h_average": { - "name": "PM2.5 AQI 24 hour average" - }, - "pm25_indoor_aqi": { - "name": "PM2.5 indoor AQI" - }, - "pm25_indoor_aqi_24h_average": { - "name": "PM2.5 indoor AQI" - }, "absolute_pressure": { "name": "Absolute pressure" }, - "relative_pressure": { - "name": "Relative pressure" - }, "daily_rain": { "name": "Daily rain" }, @@ -186,6 +171,9 @@ "humidity_1": { "name": "Humidity 1" }, + "humidity_10": { + "name": "Humidity 10" + }, "humidity_2": { "name": "Humidity 2" }, @@ -210,14 +198,11 @@ "humidity_9": { "name": "Humidity 9" }, - "humidity_10": { - "name": "Humidity 10" - }, "humidity_indoor": { "name": "Humidity indoor" }, - "last_rain": { - "name": "Last rain" + "inside_temperature": { + "name": "Inside temperature" }, "last_lightning_strike": { "name": "Last Lightning strike" @@ -225,6 +210,12 @@ "last_lightning_strike_distance": { "name": "Last Lightning strike distance" }, + "last_rain": { + "name": "Last rain" + }, + "lifetime_rain": { + "name": "Lifetime rain" + }, "lightning_strikes_per_day": { "name": "Lightning strikes per day" }, @@ -240,15 +231,33 @@ "pm25_24h_average": { "name": "PM2.5 24 hour average" }, + "pm25_aqi": { + "name": "PM2.5 AQI" + }, + "pm25_aqi_24h_average": { + "name": "PM2.5 AQI 24 hour average" + }, "pm25_indoor": { "name": "PM2.5 indoor" }, "pm25_indoor_24h_average": { "name": "PM2.5 indoor 24 hour average" }, + "pm25_indoor_aqi": { + "name": "PM2.5 indoor AQI" + }, + "pm25_indoor_aqi_24h_average": { + "name": "PM2.5 indoor AQI" + }, + "relative_pressure": { + "name": "Relative pressure" + }, "soil_humidity_1": { "name": "Soil humidity 1" }, + "soil_humidity_10": { + "name": "Soil humidity 10" + }, "soil_humidity_2": { "name": "Soil humidity 2" }, @@ -273,12 +282,12 @@ "soil_humidity_9": { "name": "Soil humidity 9" }, - "soil_humidity_10": { - "name": "Soil humidity 10" - }, "soil_temperature_1": { "name": "Soil temperature 1" }, + "soil_temperature_10": { + "name": "Soil temperature 10" + }, "soil_temperature_2": { "name": "Soil temperature 2" }, @@ -303,12 +312,12 @@ "soil_temperature_9": { "name": "Soil temperature 9" }, - "soil_temperature_10": { - "name": "Soil temperature 10" - }, "temperature_1": { "name": "Temperature 1" }, + "temperature_10": { + "name": "Temperature 10" + }, "temperature_2": { "name": "Temperature 2" }, @@ -333,21 +342,18 @@ "temperature_9": { "name": "Temperature 9" }, - "temperature_10": { - "name": "Temperature 10" - }, - "inside_temperature": { - "name": "Inside temperature" - }, - "lifetime_rain": { - "name": "Lifetime rain" - }, "uv_index": { "name": "UV index" }, "weekly_rain": { "name": "Weekly rain" }, + "wind_average_10m": { + "name": "Wind average 10 minutes" + }, + "wind_average_2m": { + "name": "Wind average 2 minutes" + }, "wind_direction": { "name": "Wind direction" }, @@ -357,17 +363,11 @@ "wind_direction_average_2m": { "name": "Wind direction average 2 minutes" }, - "wind_gust_direction": { - "name": "Wind gust direction" - }, "wind_gust": { "name": "Wind gust" }, - "wind_average_10m": { - "name": "Wind average 10 minutes" - }, - "wind_average_2m": { - "name": "Wind average 2 minutes" + "wind_gust_direction": { + "name": "Wind gust direction" }, "yearly_rain": { "name": "Yearly rain" diff --git a/homeassistant/components/amcrest/icons.json b/homeassistant/components/amcrest/icons.json index e284bc15259..bb09abeeb8f 100644 --- a/homeassistant/components/amcrest/icons.json +++ b/homeassistant/components/amcrest/icons.json @@ -1,7 +1,10 @@ { "services": { - "enable_recording": { - "service": "mdi:record-rec" + "disable_audio": { + "service": "mdi:volume-off" + }, + "disable_motion_recording": { + "service": "mdi:motion-sensor-off" }, "disable_recording": { "service": "mdi:stop" @@ -9,18 +12,18 @@ "enable_audio": { "service": "mdi:volume-high" }, - "disable_audio": { - "service": "mdi:volume-off" - }, "enable_motion_recording": { "service": "mdi:motion-sensor" }, - "disable_motion_recording": { - "service": "mdi:motion-sensor-off" + "enable_recording": { + "service": "mdi:record-rec" }, "goto_preset": { "service": "mdi:pan" }, + "ptz_control": { + "service": "mdi:pan" + }, "set_color_bw": { "service": "mdi:palette" }, @@ -29,9 +32,6 @@ }, "stop_tour": { "service": "mdi:panorama-outline" - }, - "ptz_control": { - "service": "mdi:pan" } } } diff --git a/homeassistant/components/amcrest/strings.json b/homeassistant/components/amcrest/strings.json index 807c75e1ac8..3071b249dc2 100644 --- a/homeassistant/components/amcrest/strings.json +++ b/homeassistant/components/amcrest/strings.json @@ -1,130 +1,130 @@ { "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": { - "name": "Disable audio", "description": "Disables audio stream.", "fields": { "entity_id": { - "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]", - "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]" + "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]", + "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]" } - } - }, - "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%]" - } - } + }, + "name": "Disable audio" }, "disable_motion_recording": { - "name": "Disable motion recording", "description": "Disables recording a clip to camera storage when motion is detected.", "fields": { "entity_id": { - "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]", - "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]" + "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": { - "name": "Go to preset", "description": "Moves camera to PTZ preset.", "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%]" + "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]", + "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]" }, "preset": { - "name": "Preset", - "description": "Preset number." + "description": "Preset number.", + "name": "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%]" - } - } + }, + "name": "Go to preset" }, "ptz_control": { - "name": "PTZ control", "description": "Moves (pan/tilt) and/or zoom a PTZ camera.", "fields": { "entity_id": { - "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]", - "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]" + "description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]", + "name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]" }, "movement": { - "name": "Movement", - "description": "Direction to move the camera." + "description": "Direction to move the camera.", + "name": "Movement" }, "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" } } } diff --git a/homeassistant/components/analytics_insights/strings.json b/homeassistant/components/analytics_insights/strings.json index 222906efa0b..d56640eb6e2 100644 --- a/homeassistant/components/analytics_insights/strings.json +++ b/homeassistant/components/analytics_insights/strings.json @@ -1,47 +1,25 @@ { "config": { - "step": { - "user": { - "data": { - "tracked_addons": "Add-ons", - "tracked_integrations": "Integrations", - "tracked_custom_integrations": "Custom integrations" - }, - "data_description": { - "tracked_addons": "Select the add-ons you want to track", - "tracked_integrations": "Select the integrations you want to track", - "tracked_custom_integrations": "Select the custom integrations you want to track" - } - } - }, "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "no_integrations_selected": "You must select at least one integration to track" - } - }, - "options": { + }, "step": { - "init": { + "user": { "data": { - "tracked_addons": "[%key:component::analytics_insights::config::step::user::data::tracked_addons%]", - "tracked_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_integrations%]", - "tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_custom_integrations%]" + "tracked_addons": "Add-ons", + "tracked_custom_integrations": "Custom integrations", + "tracked_integrations": "Integrations" }, "data_description": { - "tracked_addons": "[%key:component::analytics_insights::config::step::user::data_description::tracked_addons%]", - "tracked_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_integrations%]", - "tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_custom_integrations%]" + "tracked_addons": "Select the add-ons you want to track", + "tracked_custom_integrations": "Select the custom integrations you want to track", + "tracked_integrations": "Select the integrations you want to track" } } - }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "error": { - "no_integrations_selected": "[%key:component::analytics_insights::config::error::no_integrations_selected%]" } }, "entity": { @@ -56,5 +34,27 @@ "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%]" + } + } + } } } diff --git a/homeassistant/components/android_ip_webcam/icons.json b/homeassistant/components/android_ip_webcam/icons.json index 9fa537705e2..41afc251d34 100644 --- a/homeassistant/components/android_ip_webcam/icons.json +++ b/homeassistant/components/android_ip_webcam/icons.json @@ -51,11 +51,11 @@ "torch": { "default": "mdi:white-balance-sunny" }, - "whitebalance_lock": { - "default": "mdi:white-balance-auto" - }, "video_recording": { "default": "mdi:record-rec" + }, + "whitebalance_lock": { + "default": "mdi:white-balance-auto" } } } diff --git a/homeassistant/components/android_ip_webcam/strings.json b/homeassistant/components/android_ip_webcam/strings.json index 57e5452b900..174324e40ba 100644 --- a/homeassistant/components/android_ip_webcam/strings.json +++ b/homeassistant/components/android_ip_webcam/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "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." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "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." + } + } } } } diff --git a/homeassistant/components/androidtv/icons.json b/homeassistant/components/androidtv/icons.json index d7c646dfdfc..5f0a87553da 100644 --- a/homeassistant/components/androidtv/icons.json +++ b/homeassistant/components/androidtv/icons.json @@ -6,11 +6,11 @@ "download": { "service": "mdi:download" }, - "upload": { - "service": "mdi:upload" - }, "learn_sendevent": { "service": "mdi:remote" + }, + "upload": { + "service": "mdi:upload" } } } diff --git a/homeassistant/components/androidtv/strings.json b/homeassistant/components/androidtv/strings.json index ce921072e27..edbf3d71224 100644 --- a/homeassistant/components/androidtv/strings.json +++ b/homeassistant/components/androidtv/strings.json @@ -1,112 +1,112 @@ { "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": { "already_configured": "[%key:common::config_flow::abort::already_configured_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": { - "invalid_det_rules": "Invalid state detection rules" - } - }, - "services": { - "adb_command": { - "name": "ADB command", - "description": "Sends an ADB command to an Android / Fire TV device.", - "fields": { - "command": { - "name": "Command", - "description": "Either a key command or an ADB shell command." + "adbkey_not_file": "ADB key file not found", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "key_and_server": "Only provide ADB Key or ADB Server", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "adb_server_ip": "IP address of the ADB server (leave empty to not use)", + "adb_server_port": "Port of the ADB server", + "adbkey": "Path to your ADB key file (leave empty to auto generate)", + "device_class": "The type of device", + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" } } - }, - "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": { "failed_send": { "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" + } } } diff --git a/homeassistant/components/androidtv_remote/strings.json b/homeassistant/components/androidtv_remote/strings.json index b9a7db74bbe..e1d768f0adc 100644 --- a/homeassistant/components/androidtv_remote/strings.json +++ b/homeassistant/components/androidtv_remote/strings.json @@ -1,42 +1,11 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Enter the IP address of the Android TV you want to add to Home Assistant. It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Android TV device." - } - }, - "reconfigure": { - "description": "Update the IP address of this previously configured Android TV device.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Android TV device." - } - }, - "zeroconf_confirm": { - "title": "Discovered Android TV", - "description": "Do you want to add the Android TV ({name}) to Home Assistant? It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen." - }, - "pair": { - "description": "Enter the pairing code displayed on the Android TV ({name}).", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - }, - "data_description": { - "pin": "Pairing code displayed on the Android TV device." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "You need to pair again with the Android TV ({name}). It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen." - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "Please ensure you reconfigure against the same device." }, "error": { "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -44,41 +13,42 @@ "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%]", - "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": { + "flow_title": "{name}", "step": { - "init": { + "pair": { "data": { - "apps": "Configure applications list", - "enable_ime": "Enable IME" + "pin": "[%key:common::config_flow::data::pin%]" }, "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." - } + "pin": "Pairing code displayed on the Android TV device." + }, + "description": "Enter the pairing code displayed on the Android TV ({name})." }, - "apps": { - "title": "Configure Android apps", - "description": "Configure application ID {app_id}", + "reauth_confirm": { + "description": "You need to pair again with the Android TV ({name}). It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { "data": { - "app_name": "Application name", - "app_id": "Application ID", - "app_icon": "Application icon", - "app_delete": "Check to delete this application" + "host": "[%key:common::config_flow::data::host%]" }, "data_description": { - "app_name": "Name of the application as you would like it to be displayed in Home Assistant.", - "app_id": "E.g. {example_app_id} for {example_app_play_store_url}", - "app_icon": "Image URL. From the Play Store app page, right click on the icon and select 'Copy image address' and then paste it here. Alternatively, download the image, upload it under /config/www/ and use the URL /local/filename", - "app_delete": "Check this box to delete the application from the list." - } + "host": "The hostname or IP address of the Android TV device." + }, + "description": "Update the IP address of this previously configured Android TV device." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Android TV device." + }, + "description": "Enter the IP address of the Android TV you want to add to Home Assistant. It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen." + }, + "zeroconf_confirm": { + "description": "Do you want to add the Android TV ({name}) to Home Assistant? It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.", + "title": "Discovered Android TV" } } }, @@ -93,6 +63,36 @@ "message": "Invalid media type: {media_type}" } }, + "options": { + "step": { + "apps": { + "data": { + "app_delete": "Check to delete this application", + "app_icon": "Application icon", + "app_id": "Application ID", + "app_name": "Application name" + }, + "data_description": { + "app_delete": "Check this box to delete the application from the list.", + "app_icon": "Image URL. From the Play Store app page, right click on the icon and select 'Copy image address' and then paste it here. Alternatively, download the image, upload it under /config/www/ and use the URL /local/filename", + "app_id": "E.g. {example_app_id} for {example_app_play_store_url}", + "app_name": "Name of the application as you would like it to be displayed in Home Assistant." + }, + "description": "Configure application ID {app_id}", + "title": "Configure Android apps" + }, + "init": { + "data": { + "apps": "Configure applications list", + "enable_ime": "Enable IME" + }, + "data_description": { + "apps": "Here you can define the list of applications, specify names and icons that will be displayed in the UI.", + "enable_ime": "Enable this option to be able to get the current app name and send text as keyboard input. Disable it for devices that show 'Use keyboard on mobile device screen' instead of the on-screen keyboard." + } + } + } + }, "selector": { "apps": { "options": { diff --git a/homeassistant/components/anova/icons.json b/homeassistant/components/anova/icons.json index 9e0e88178d3..466af2a38c0 100644 --- a/homeassistant/components/anova/icons.json +++ b/homeassistant/components/anova/icons.json @@ -4,15 +4,15 @@ "cook_time": { "default": "mdi:clock-outline" }, - "target_temperature": { - "default": "mdi:thermometer" - }, "cook_time_remaining": { "default": "mdi:clock-outline" }, "heater_temperature": { "default": "mdi:thermometer" }, + "target_temperature": { + "default": "mdi:thermometer" + }, "triac_temperature": { "default": "mdi:thermometer" }, diff --git a/homeassistant/components/anova/strings.json b/homeassistant/components/anova/strings.json index e9905e4cce5..10de896b3f6 100644 --- a/homeassistant/components/anova/strings.json +++ b/homeassistant/components/anova/strings.json @@ -1,19 +1,19 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + } + } } }, "entity": { @@ -21,39 +21,39 @@ "cook_time": { "name": "Cook time" }, - "state": { - "name": "State", - "state": { - "preheating": "Preheating", - "cooking": "Cooking", - "maintaining": "Maintaining", - "timer_expired": "Timer expired", - "set_timer": "Set timer", - "no_state": "No state" - } - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "state": { - "startup": "Startup", - "idle": "[%key:common::state::idle%]", - "cook": "Cooking", - "low_water": "Low water", - "ota": "OTA update", - "provisioning": "Provisioning", - "high_temp": "High temperature", - "device_failure": "Device failure" - } - }, - "target_temperature": { - "name": "Target temperature" - }, "cook_time_remaining": { "name": "Cook time remaining" }, "heater_temperature": { "name": "Heater temperature" }, + "mode": { + "name": "[%key:common::config_flow::data::mode%]", + "state": { + "cook": "Cooking", + "device_failure": "Device failure", + "high_temp": "High temperature", + "idle": "[%key:common::state::idle%]", + "low_water": "Low water", + "ota": "OTA update", + "provisioning": "Provisioning", + "startup": "Startup" + } + }, + "state": { + "name": "State", + "state": { + "cooking": "Cooking", + "maintaining": "Maintaining", + "no_state": "No state", + "preheating": "Preheating", + "set_timer": "Set timer", + "timer_expired": "Timer expired" + } + }, + "target_temperature": { + "name": "Target temperature" + }, "triac_temperature": { "name": "Triac temperature" }, diff --git a/homeassistant/components/anthemav/strings.json b/homeassistant/components/anthemav/strings.json index 774785f9d29..b7456e3203e 100644 --- a/homeassistant/components/anthemav/strings.json +++ b/homeassistant/components/anthemav/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "cannot_receive_deviceinfo": "Failed to retrieve MAC address. Make sure the device is turned on" + }, "step": { "user": { "data": { @@ -7,13 +14,6 @@ "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%]" } } } diff --git a/homeassistant/components/anthropic/strings.json b/homeassistant/components/anthropic/strings.json index 7ac8f57c491..7d46b8a6113 100644 --- a/homeassistant/components/anthropic/strings.json +++ b/homeassistant/components/anthropic/strings.json @@ -1,61 +1,61 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "authentication_error": "[%key:common::config_flow::error::invalid_auth%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "authentication_error": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "config_subentries": { "conversation": { - "initiate_flow": { - "user": "Add conversation agent", - "reconfigure": "Reconfigure conversation agent" + "abort": { + "entry_not_loaded": "Cannot add things while the configuration is disabled.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "entry_type": "Conversation agent", + "error": { + "thinking_budget_too_large": "Maximum tokens must be greater than the thinking budget.", + "web_search_unsupported_model": "Web search is not supported by the selected model. Please choose a compatible model or disable web search." + }, + "initiate_flow": { + "reconfigure": "Reconfigure conversation agent", + "user": "Add conversation agent" + }, "step": { "set_options": { "data": { + "chat_model": "[%key:common::generic::model%]", + "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", + "max_tokens": "Maximum tokens to return in response", "name": "[%key:common::config_flow::data::name%]", "prompt": "[%key:common::config_flow::data::prompt%]", - "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", + "temperature": "Temperature", "thinking_budget": "Thinking budget", + "user_location": "Include home location", "web_search": "Enable web search", - "web_search_max_uses": "Maximum web searches", - "user_location": "Include home location" + "web_search_max_uses": "Maximum web searches" }, "data_description": { "prompt": "Instruct how the LLM should respond. This can be a template.", "thinking_budget": "The number of tokens the model can use to think about the response out of the total maximum number of tokens. Set to 1024 or greater to enable extended thinking.", + "user_location": "Localize search results based on home location", "web_search": "The web search tool gives Claude direct access to real-time web content, allowing it to answer questions with up-to-date information beyond its knowledge cutoff", - "web_search_max_uses": "Limit the number of searches performed per response", - "user_location": "Localize search results based on home location" + "web_search_max_uses": "Limit the number of searches performed per response" } } - }, - "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." } } } diff --git a/homeassistant/components/aosmith/strings.json b/homeassistant/components/aosmith/strings.json index fa2d5a67020..ccfcba5bd8e 100644 --- a/homeassistant/components/aosmith/strings.json +++ b/homeassistant/components/aosmith/strings.json @@ -1,28 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please update your password for {email}", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" }, "description": "Please enter your A. O. Smith credentials." - }, - "reauth_confirm": { - "description": "Please update your password for {email}", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -30,19 +30,19 @@ "hot_water_plus_level": { "name": "Hot Water+ level", "state": { - "off": "[%key:common::state::off%]", "level1": "Level 1", "level2": "Level 2", - "level3": "Level 3" + "level3": "Level 3", + "off": "[%key:common::state::off%]" } } }, "sensor": { - "hot_water_availability": { - "name": "Hot water availability" - }, "energy_usage": { "name": "Energy usage" + }, + "hot_water_availability": { + "name": "Hot water availability" } } } diff --git a/homeassistant/components/apcupsd/icons.json b/homeassistant/components/apcupsd/icons.json index 886cf713c5f..84c383785a3 100644 --- a/homeassistant/components/apcupsd/icons.json +++ b/homeassistant/components/apcupsd/icons.json @@ -9,11 +9,14 @@ "alarm_delay": { "default": "mdi:alarm" }, + "apc_model": { + "default": "mdi:information-outline" + }, "apc_status": { "default": "mdi:information-outline" }, - "apc_model": { - "default": "mdi:information-outline" + "apparent_power": { + "default": "mdi:gauge" }, "bad_batteries": { "default": "mdi:information-outline" @@ -27,30 +30,18 @@ "cable_type": { "default": "mdi:ethernet-cable" }, - "total_time_on_battery": { - "default": "mdi:timer-outline" - }, "date": { "default": "mdi:calendar-clock" }, + "date_and_time": { + "default": "mdi:calendar-clock" + }, "dip_switch_settings": { "default": "mdi:information-outline" }, - "low_battery_signal": { - "default": "mdi:clock-alert" - }, "driver": { "default": "mdi:information-outline" }, - "shutdown_delay": { - "default": "mdi:timer-outline" - }, - "wake_delay": { - "default": "mdi:timer-outline" - }, - "date_and_time": { - "default": "mdi:calendar-clock" - }, "external_batteries": { "default": "mdi:information-outline" }, @@ -72,8 +63,8 @@ "load_capacity": { "default": "mdi:gauge" }, - "apparent_power": { - "default": "mdi:gauge" + "low_battery_signal": { + "default": "mdi:clock-alert" }, "manufacture_date": { "default": "mdi:calendar" @@ -81,20 +72,20 @@ "master_update": { "default": "mdi:information-outline" }, - "max_time": { - "default": "mdi:timer-off-outline" - }, "max_battery_charge": { "default": "mdi:battery-alert" }, + "max_time": { + "default": "mdi:timer-off-outline" + }, "min_time": { "default": "mdi:timer-outline" }, "model": { "default": "mdi:information-outline" }, - "transfer_count": { - "default": "mdi:counter" + "online_status": { + "default": "mdi:information-outline" }, "register_1_fault": { "default": "mdi:information-outline" @@ -108,6 +99,9 @@ "restore_capacity": { "default": "mdi:battery-alert" }, + "self_test_interval": { + "default": "mdi:information-outline" + }, "self_test_result": { "default": "mdi:information-outline" }, @@ -117,24 +111,33 @@ "serial_number": { "default": "mdi:information-outline" }, + "shutdown_delay": { + "default": "mdi:timer-outline" + }, "startup_time": { "default": "mdi:calendar-clock" }, - "online_status": { - "default": "mdi:information-outline" - }, "status": { "default": "mdi:information-outline" }, - "self_test_interval": { - "default": "mdi:information-outline" - }, "time_left": { "default": "mdi:clock-alert" }, "time_on_battery": { "default": "mdi:timer-outline" }, + "total_time_on_battery": { + "default": "mdi:timer-outline" + }, + "transfer_count": { + "default": "mdi:counter" + }, + "transfer_from_battery": { + "default": "mdi:transfer" + }, + "transfer_to_battery": { + "default": "mdi:transfer" + }, "ups_mode": { "default": "mdi:information-outline" }, @@ -144,11 +147,8 @@ "version": { "default": "mdi:information-outline" }, - "transfer_from_battery": { - "default": "mdi:transfer" - }, - "transfer_to_battery": { - "default": "mdi:transfer" + "wake_delay": { + "default": "mdi:timer-outline" } } } diff --git a/homeassistant/components/apcupsd/strings.json b/homeassistant/components/apcupsd/strings.json index 8f237fd41fe..07ea917b54f 100644 --- a/homeassistant/components/apcupsd/strings.json +++ b/homeassistant/components/apcupsd/strings.json @@ -2,24 +2,13 @@ "config": { "abort": { "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": { "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 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": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -30,6 +19,17 @@ "port": "[%key:component::apcupsd::config::step::user::data_description::port%]" }, "description": "[%key:component::apcupsd::config::step::user::description%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "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": { "name": "Ambient temperature" }, - "apc_status": { - "name": "Status data" - }, "apc_model": { "name": "Model" }, + "apc_status": { + "name": "Status data" + }, + "apparent_power": { + "name": "Load apparent power" + }, "bad_batteries": { "name": "Bad batteries" }, + "battery_nominal_voltage": { + "name": "Battery nominal voltage" + }, "battery_replacement_date": { "name": "Battery replaced" }, @@ -67,45 +73,36 @@ "cable_type": { "name": "Cable type" }, - "total_time_on_battery": { - "name": "Total time on battery" - }, "date": { "name": "Status date" }, + "date_and_time": { + "name": "Date and time" + }, "dip_switch_settings": { "name": "DIP switch settings" }, - "low_battery_signal": { - "name": "Low battery signal" - }, "driver": { "name": "Driver" }, - "shutdown_delay": { - "name": "Shutdown delay" - }, - "wake_delay": { - "name": "Wake delay" - }, - "date_and_time": { - "name": "Date and time" - }, "external_batteries": { "name": "External batteries" }, "firmware_version": { "name": "Firmware version" }, - "transfer_high": { - "name": "Transfer high" - }, "hostname": { "name": "Hostname" }, "humidity": { "name": "Ambient humidity" }, + "input_voltage_high": { + "name": "Input voltage high" + }, + "input_voltage_low": { + "name": "Input voltage low" + }, "internal_temperature": { "name": "Internal temperature" }, @@ -127,11 +124,8 @@ "load_capacity": { "name": "Load" }, - "apparent_power": { - "name": "Load apparent power" - }, - "transfer_low": { - "name": "Transfer low" + "low_battery_signal": { + "name": "Low battery signal" }, "manufacture_date": { "name": "Manufacture date" @@ -139,17 +133,11 @@ "master_update": { "name": "Master update" }, - "input_voltage_high": { - "name": "Input voltage high" - }, - "max_time": { - "name": "Battery timeout" - }, "max_battery_charge": { "name": "Battery shutdown" }, - "input_voltage_low": { - "name": "Input voltage low" + "max_time": { + "name": "Battery timeout" }, "min_time": { "name": "Shutdown time" @@ -157,23 +145,20 @@ "model": { "name": "Model" }, - "battery_nominal_voltage": { - "name": "Battery nominal voltage" + "nominal_apparent_power": { + "name": "Nominal apparent power" }, "nominal_input_voltage": { "name": "Nominal input voltage" }, - "nominal_output_voltage": { - "name": "Nominal output voltage" - }, "nominal_output_power": { "name": "Nominal output power" }, - "nominal_apparent_power": { - "name": "Nominal apparent power" + "nominal_output_voltage": { + "name": "Nominal output voltage" }, - "transfer_count": { - "name": "Transfer count" + "online_status": { + "name": "Status flag" }, "output_current": { "name": "Output current" @@ -193,6 +178,9 @@ "restore_capacity": { "name": "Restore requirement" }, + "self_test_interval": { + "name": "Self-test interval" + }, "self_test_result": { "name": "Self-test result" }, @@ -202,24 +190,39 @@ "serial_number": { "name": "Serial number" }, + "shutdown_delay": { + "name": "Shutdown delay" + }, "startup_time": { "name": "Startup time" }, - "online_status": { - "name": "Status flag" - }, "status": { "name": "Status" }, - "self_test_interval": { - "name": "Self-test interval" - }, "time_left": { "name": "Time left" }, "time_on_battery": { "name": "Time on battery" }, + "total_time_on_battery": { + "name": "Total time on battery" + }, + "transfer_count": { + "name": "Transfer count" + }, + "transfer_from_battery": { + "name": "Transfer from battery" + }, + "transfer_high": { + "name": "Transfer high" + }, + "transfer_low": { + "name": "Transfer low" + }, + "transfer_to_battery": { + "name": "Transfer to battery" + }, "ups_mode": { "name": "Mode" }, @@ -229,11 +232,8 @@ "version": { "name": "Daemon version" }, - "transfer_from_battery": { - "name": "Transfer from battery" - }, - "transfer_to_battery": { - "name": "Transfer to battery" + "wake_delay": { + "name": "Wake delay" } } }, diff --git a/homeassistant/components/apple_tv/manifest.json b/homeassistant/components/apple_tv/manifest.json index ac618221526..4e1d2903fce 100644 --- a/homeassistant/components/apple_tv/manifest.json +++ b/homeassistant/components/apple_tv/manifest.json @@ -17,40 +17,40 @@ "_appletv-v2._tcp.local.", "_hscp._tcp.local.", { - "type": "_airplay._tcp.local.", "properties": { "model": "appletv*" - } + }, + "type": "_airplay._tcp.local." }, { - "type": "_airplay._tcp.local.", "properties": { "model": "audioaccessory*" - } + }, + "type": "_airplay._tcp.local." }, { - "type": "_airplay._tcp.local.", "properties": { "am": "airport*" - } + }, + "type": "_airplay._tcp.local." }, { - "type": "_raop._tcp.local.", "properties": { "am": "appletv*" - } + }, + "type": "_raop._tcp.local." }, { - "type": "_raop._tcp.local.", "properties": { "am": "audioaccessory*" - } + }, + "type": "_raop._tcp.local." }, { - "type": "_raop._tcp.local.", "properties": { "am": "airport*" - } + }, + "type": "_raop._tcp.local." } ] } diff --git a/homeassistant/components/apple_tv/strings.json b/homeassistant/components/apple_tv/strings.json index 4efe80f7bef..f1efedde150 100644 --- a/homeassistant/components/apple_tv/strings.json +++ b/homeassistant/components/apple_tv/strings.json @@ -1,74 +1,74 @@ { "config": { - "flow_title": "{name} ({type})", - "step": { - "user": { - "title": "Set up a new Apple TV", - "description": "Start by entering the device name (e.g. Kitchen or Bedroom) or IP address of the Apple TV you want to add.\n\nIf you cannot see your device or experience any issues, try specifying the device IP address.", - "data": { - "device_input": "[%key:common::config_flow::data::device%]" - } - }, - "restore_device": { - "title": "Device reconfiguration", - "description": "Reconfigure this device to restore its functionality." - }, - "pair_with_pin": { - "title": "Pairing", - "description": "Pairing is required for the `{protocol}` protocol. Please enter the PIN code displayed on screen. Leading zeros shall be omitted, i.e. enter 123 if the displayed code is 0123.", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - }, - "pair_no_pin": { - "title": "Pairing", - "description": "Pairing is required for the `{protocol}` service. Please enter PIN {pin} on your device to continue." - }, - "protocol_disabled": { - "title": "Pairing not possible", - "description": "Pairing is required for `{protocol}` but it is disabled on the device. Please review potential access restrictions (e.g. allow all devices on the local network to connect) on the device.\n\nYou may continue without pairing this protocol, but some functionality will be limited." - }, - "confirm": { - "title": "Confirm adding Apple TV", - "description": "You are about to add `{name}` of type `{type}` to Home Assistant.\n\n**To complete the process, you may have to enter multiple PIN codes.**\n\nPlease note that you will *not* be able to power off your Apple TV with this integration. Only the media player in Home Assistant will turn off!" - }, - "service_problem": { - "title": "Failed to add service", - "description": "A problem occurred while pairing protocol `{protocol}`. It will be ignored." - }, - "password": { - "title": "Password required", - "description": "A password is required by `{protocol}`. This is not yet supported, please disable password to continue." - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "backoff": "Device does not accept pairing requests at this time (you might have entered an invalid PIN code too many times), try again later.", + "device_did_not_pair": "No attempt to finish pairing process was made from the device.", + "device_not_found": "Device was not found during discovery, please try adding it again.", + "inconsistent_device": "Expected protocols were not found during discovery. This normally indicates a problem with multicast DNS (Zeroconf). Please try adding the device again.", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "ipv6_not_supported": "IPv6 is not supported.", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "setup_failed": "Failed to set up device.", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "ipv6_not_supported": "IPv6 is not supported.", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "device_did_not_pair": "No attempt to finish pairing process was made from the device.", - "backoff": "Device does not accept pairing requests at this time (you might have entered an invalid PIN code too many times), try again later.", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "setup_failed": "Failed to set up device.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "device_not_found": "Device was not found during discovery, please try adding it again.", - "inconsistent_device": "Expected protocols were not found during discovery. This normally indicates a problem with multicast DNS (Zeroconf). Please try adding the device again." + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name} ({type})", + "step": { + "confirm": { + "description": "You are about to add `{name}` of type `{type}` to Home Assistant.\n\n**To complete the process, you may have to enter multiple PIN codes.**\n\nPlease note that you will *not* be able to power off your Apple TV with this integration. Only the media player in Home Assistant will turn off!", + "title": "Confirm adding Apple TV" + }, + "pair_no_pin": { + "description": "Pairing is required for the `{protocol}` service. Please enter PIN {pin} on your device to continue.", + "title": "Pairing" + }, + "pair_with_pin": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Pairing is required for the `{protocol}` protocol. Please enter the PIN code displayed on screen. Leading zeros shall be omitted, i.e. enter 123 if the displayed code is 0123.", + "title": "Pairing" + }, + "password": { + "description": "A password is required by `{protocol}`. This is not yet supported, please disable password to continue.", + "title": "Password required" + }, + "protocol_disabled": { + "description": "Pairing is required for `{protocol}` but it is disabled on the device. Please review potential access restrictions (e.g. allow all devices on the local network to connect) on the device.\n\nYou may continue without pairing this protocol, but some functionality will be limited.", + "title": "Pairing not possible" + }, + "restore_device": { + "description": "Reconfigure this device to restore its functionality.", + "title": "Device reconfiguration" + }, + "service_problem": { + "description": "A problem occurred while pairing protocol `{protocol}`. It will be ignored.", + "title": "Failed to add service" + }, + "user": { + "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": { "step": { "init": { - "description": "Configure general device settings", "data": { "start_off": "Do not turn device on when starting Home Assistant" - } + }, + "description": "Configure general device settings" } } } diff --git a/homeassistant/components/aprilaire/strings.json b/homeassistant/components/aprilaire/strings.json index e8122fe0a7b..4988467f915 100644 --- a/homeassistant/components/aprilaire/strings.json +++ b/homeassistant/components/aprilaire/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "connection_failed": "Connection failed. Please check that the host and port is correct." + }, "step": { "user": { "data": { @@ -10,12 +16,6 @@ "port": "Usually 7000 or 8000" } } - }, - "error": { - "connection_failed": "Connection failed. Please check that the host and port is correct." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -25,96 +25,96 @@ } }, "humidifier": { - "humidifier": { - "name": "[%key:component::humidifier::title%]" - }, "dehumidifier": { "name": "[%key:component::humidifier::entity_component::dehumidifier::name%]" + }, + "humidifier": { + "name": "[%key:component::humidifier::title%]" } }, "select": { "air_cleaning_event": { "name": "Air cleaning event", "state": { - "off": "[%key:common::state::off%]", + "allergies": "Allergies (24 hour)", "event_clean": "Event clean (3 hour)", - "allergies": "Allergies (24 hour)" + "off": "[%key:common::state::off%]" } }, "air_cleaning_mode": { "name": "Air cleaning mode", "state": { - "off": "[%key:common::state::off%]", + "automatic": "Automatic", "constant_clean": "Constant clean", - "automatic": "Automatic" + "off": "[%key:common::state::off%]" } }, "fresh_air_event": { "name": "Fresh air event", "state": { - "off": "[%key:common::state::off%]", "3hour": "3 hour event", - "24hour": "24 hour event" + "24hour": "24 hour event", + "off": "[%key:common::state::off%]" } }, "fresh_air_mode": { "name": "Fresh air mode", "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": { - "indoor_humidity_controlling_sensor": { - "name": "Indoor humidity controlling sensor" - }, - "outdoor_humidity_controlling_sensor": { - "name": "Outdoor humidity controlling sensor" - }, - "indoor_temperature_controlling_sensor": { - "name": "Indoor temperature controlling sensor" - }, - "outdoor_temperature_controlling_sensor": { - "name": "Outdoor temperature controlling sensor" + "air_cleaning_status": { + "name": "Air cleaning status", + "state": { + "idle": "[%key:common::state::idle%]", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } }, "dehumidification_status": { "name": "Dehumidification status", "state": { "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": { "name": "Humidification status", "state": { "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": { "name": "Ventilation status", "state": { "idle": "[%key:common::state::idle%]", - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]" - } - }, - "air_cleaning_status": { - "name": "Air cleaning status", - "state": { - "idle": "[%key:common::state::idle%]", - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]" - } - }, - "fan_status": { - "name": "Fan status", - "state": { - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]" + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" } } } diff --git a/homeassistant/components/apsystems/strings.json b/homeassistant/components/apsystems/strings.json index bdcd464ee9c..e2bd201b691 100644 --- a/homeassistant/components/apsystems/strings.json +++ b/homeassistant/components/apsystems/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { @@ -10,39 +16,29 @@ "port": "The integration will default to 8050, if not set, which should be suitable for most installs" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "binary_sensor": { - "off_grid_status": { - "name": "Off-grid status" - }, "dc_1_short_circuit_error_status": { "name": "DC 1 short circuit error status" }, "dc_2_short_circuit_error_status": { "name": "DC 2 short circuit error status" }, + "off_grid_status": { + "name": "Off-grid status" + }, "output_fault_status": { "name": "Output fault status" } }, + "number": { + "max_output": { + "name": "Max output" + } + }, "sensor": { - "total_power": { - "name": "Total power" - }, - "total_power_p1": { - "name": "Power of P1" - }, - "total_power_p2": { - "name": "Power of P2" - }, "lifetime_production": { "name": "Total lifetime production" }, @@ -60,11 +56,15 @@ }, "today_production_p2": { "name": "Production of today from P2" - } - }, - "number": { - "max_output": { - "name": "Max output" + }, + "total_power": { + "name": "Total power" + }, + "total_power_p1": { + "name": "Power of P1" + }, + "total_power_p2": { + "name": "Power of P2" } }, "switch": { diff --git a/homeassistant/components/aquacell/icons.json b/homeassistant/components/aquacell/icons.json index 255a964d218..653adcce126 100644 --- a/homeassistant/components/aquacell/icons.json +++ b/homeassistant/components/aquacell/icons.json @@ -13,9 +13,9 @@ "wi_fi_strength": { "default": "mdi:wifi", "state": { + "high": "mdi:wifi-strength-4", "low": "mdi:wifi-strength-1", - "medium": "mdi:wifi-strength-2", - "high": "mdi:wifi-strength-4" + "medium": "mdi:wifi-strength-2" } } } diff --git a/homeassistant/components/aquacell/strings.json b/homeassistant/components/aquacell/strings.json index d2052fbd08e..caa36e3dda3 100644 --- a/homeassistant/components/aquacell/strings.json +++ b/homeassistant/components/aquacell/strings.json @@ -1,22 +1,22 @@ { "config": { - "step": { - "user": { - "description": "Select the brand of the softener and fill in your softener mobile app credentials", - "data": { - "brand": "Brand", - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "brand": "Brand", + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Select the brand of the softener and fill in your softener mobile app credentials" + } } }, "entity": { @@ -27,21 +27,21 @@ "salt_left_side_percentage": { "name": "Salt left side percentage" }, - "salt_right_side_percentage": { - "name": "Salt right side percentage" - }, "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": { "name": "Salt right side time remaining" }, "wi_fi_strength": { "name": "Wi-Fi strength", "state": { + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" + "medium": "[%key:common::state::medium%]" } } } diff --git a/homeassistant/components/aranet/icons.json b/homeassistant/components/aranet/icons.json index 8e2b66c0150..aceb51880ca 100644 --- a/homeassistant/components/aranet/icons.json +++ b/homeassistant/components/aranet/icons.json @@ -1,10 +1,10 @@ { "entity": { "sensor": { - "radiation_total": { + "radiation_rate": { "default": "mdi:radioactive" }, - "radiation_rate": { + "radiation_total": { "default": "mdi:radioactive" }, "radon_concentration": { diff --git a/homeassistant/components/aranet/manifest.json b/homeassistant/components/aranet/manifest.json index 3131b00cda6..469f05d01d8 100644 --- a/homeassistant/components/aranet/manifest.json +++ b/homeassistant/components/aranet/manifest.json @@ -3,14 +3,14 @@ "name": "Aranet", "bluetooth": [ { + "connectable": false, "manufacturer_id": 1794, - "service_uuid": "f0cd1400-95da-4f4b-9ac8-aa55d312af0c", - "connectable": false + "service_uuid": "f0cd1400-95da-4f4b-9ac8-aa55d312af0c" }, { + "connectable": false, "manufacturer_id": 1794, - "service_uuid": "0000fce0-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "0000fce0-0000-1000-8000-00805f9b34fb" } ], "codeowners": ["@aschmitz", "@thecode", "@anrijs"], diff --git a/homeassistant/components/aranet/strings.json b/homeassistant/components/aranet/strings.json index bb2ea3b2887..f972bb59250 100644 --- a/homeassistant/components/aranet/strings.json +++ b/homeassistant/components/aranet/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", - "data": { - "address": "[%key:common::config_flow::data::device%]" - } - }, - "bluetooth_confirm": { - "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" - } - }, - "flow_title": "{name}", - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "integrations_disabled": "This device doesn't have integrations enabled. Please enable smart home integrations using the app and try again.", "no_devices_found": "No unconfigured Aranet devices found.", "outdated_version": "This device is using outdated firmware. Please update it to at least v1.2.0 and try again." + }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name}", + "step": { + "bluetooth_confirm": { + "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" + } } }, "entity": { @@ -28,8 +28,8 @@ "state": { "error": "[%key:common::state::error%]", "green": "Green", - "yellow": "Yellow", - "red": "Red" + "red": "Red", + "yellow": "Yellow" } } } diff --git a/homeassistant/components/arve/strings.json b/homeassistant/components/arve/strings.json index cbfe3c6b065..885d92d9f36 100644 --- a/homeassistant/components/arve/strings.json +++ b/homeassistant/components/arve/strings.json @@ -1,19 +1,19 @@ { "config": { - "step": { - "user": { - "description": "Set up your Arve device", - "data": { - "access_token": "Arve token", - "client_secret": "Arve customer token" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "access_token": "Arve token", + "client_secret": "Arve customer token" + }, + "description": "Set up your Arve device" + } } }, "entity": { diff --git a/homeassistant/components/aseko_pool_live/strings.json b/homeassistant/components/aseko_pool_live/strings.json index 2805b60cdfd..fbd2329d340 100644 --- a/homeassistant/components/aseko_pool_live/strings.json +++ b/homeassistant/components/aseko_pool_live/strings.json @@ -1,28 +1,28 @@ { "config": { - "step": { - "user": { - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unique_id_mismatch": "The user identifier does not match the previous identifier" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "The user identifier does not match the previous identifier" + "step": { + "reauth_confirm": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + } + }, + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + } + } } }, "entity": { diff --git a/homeassistant/components/assist_pipeline/strings.json b/homeassistant/components/assist_pipeline/strings.json index abcd6cbd21e..adff3fdce2d 100644 --- a/homeassistant/components/assist_pipeline/strings.json +++ b/homeassistant/components/assist_pipeline/strings.json @@ -15,8 +15,8 @@ "vad_sensitivity": { "name": "Finished speaking detection", "state": { - "default": "Default", "aggressive": "Aggressive", + "default": "Default", "relaxed": "Relaxed" } } @@ -24,14 +24,14 @@ }, "issues": { "assist_in_progress_deprecated": { - "title": "{integration_name} in progress binary sensors are deprecated", "fix_flow": { "step": { "confirm_disable_entity": { "description": "The {integration_name} in progress binary sensor `{entity_id}` is deprecated.\n\nMigrate your configuration to use the corresponding `{assist_satellite_domain}` entity and then click SUBMIT to disable the in progress binary sensor and fix this issue." } } - } + }, + "title": "{integration_name} in progress binary sensors are deprecated" } } } diff --git a/homeassistant/components/assist_satellite/icons.json b/homeassistant/components/assist_satellite/icons.json index fc2589ea506..dd237749031 100644 --- a/homeassistant/components/assist_satellite/icons.json +++ b/homeassistant/components/assist_satellite/icons.json @@ -8,11 +8,11 @@ "announce": { "service": "mdi:bullhorn" }, - "start_conversation": { - "service": "mdi:forum" - }, "ask_question": { "service": "mdi:microphone-question" + }, + "start_conversation": { + "service": "mdi:forum" } } } diff --git a/homeassistant/components/assist_satellite/strings.json b/homeassistant/components/assist_satellite/strings.json index 52df2492480..6f519bf3c01 100644 --- a/homeassistant/components/assist_satellite/strings.json +++ b/homeassistant/components/assist_satellite/strings.json @@ -1,93 +1,12 @@ { - "title": "Assist satellite", "entity_component": { "_": { "name": "Assist satellite", "state": { "idle": "[%key:common::state::idle%]", "listening": "Listening", - "responding": "Responding", - "processing": "Processing" - } - } - }, - "services": { - "announce": { - "name": "Announce", - "description": "Lets a satellite announce a message.", - "fields": { - "message": { - "name": "Message", - "description": "The message to announce." - }, - "media_id": { - "name": "Media ID", - "description": "The media ID to announce instead of using text-to-speech." - }, - "preannounce": { - "name": "Preannounce", - "description": "Play a sound before the announcement." - }, - "preannounce_media_id": { - "name": "Preannounce media ID", - "description": "Custom media ID to play before the announcement." - } - } - }, - "start_conversation": { - "name": "Start conversation", - "description": "Starts a conversation from a satellite.", - "fields": { - "start_message": { - "name": "Message", - "description": "The message to start with." - }, - "start_media_id": { - "name": "Media ID", - "description": "The media ID to start with instead of using text-to-speech." - }, - "extra_system_prompt": { - "name": "Extra system prompt", - "description": "Provide background information to the AI about the request." - }, - "preannounce": { - "name": "Preannounce", - "description": "Play a sound before the start message or media." - }, - "preannounce_media_id": { - "name": "Preannounce media ID", - "description": "Custom media ID to play before the start message or media." - } - } - }, - "ask_question": { - "name": "Ask question", - "description": "Asks a question and gets the user's response.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Assist satellite entity to ask the question on." - }, - "question": { - "name": "Question", - "description": "The question to ask." - }, - "question_media_id": { - "name": "Question media ID", - "description": "The media ID of the question to use instead of text-to-speech." - }, - "preannounce": { - "name": "Preannounce", - "description": "Play a sound before the start message or media." - }, - "preannounce_media_id": { - "name": "Preannounce media ID", - "description": "Custom media ID to play before the start message or media." - }, - "answers": { - "name": "Answers", - "description": "Possible answers to the question." - } + "processing": "Processing", + "responding": "Responding" } } }, @@ -98,5 +17,86 @@ "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" } diff --git a/homeassistant/components/asuswrt/icons.json b/homeassistant/components/asuswrt/icons.json index b5b2c35f742..a7ce0e9d2cb 100644 --- a/homeassistant/components/asuswrt/icons.json +++ b/homeassistant/components/asuswrt/icons.json @@ -1,20 +1,23 @@ { "entity": { "sensor": { + "cpu_core_usage": { + "default": "mdi:cpu-32-bit" + }, + "cpu_usage": { + "default": "mdi:cpu-32-bit" + }, "devices_connected": { "default": "mdi:router-network" }, - "download_speed": { - "default": "mdi:download-network" - }, - "upload_speed": { - "default": "mdi:upload-network" - }, "download": { "default": "mdi:download" }, - "upload": { - "default": "mdi:upload" + "download_speed": { + "default": "mdi:download-network" + }, + "load_avg_15m": { + "default": "mdi:cpu-32-bit" }, "load_avg_1m": { "default": "mdi:cpu-32-bit" @@ -22,23 +25,20 @@ "load_avg_5m": { "default": "mdi:cpu-32-bit" }, - "load_avg_15m": { - "default": "mdi:cpu-32-bit" - }, - "cpu_usage": { - "default": "mdi:cpu-32-bit" - }, - "cpu_core_usage": { - "default": "mdi:cpu-32-bit" + "memory_free": { + "default": "mdi:memory" }, "memory_usage": { "default": "mdi:memory" }, - "memory_free": { - "default": "mdi:memory" - }, "memory_used": { "default": "mdi:memory" + }, + "upload": { + "default": "mdi:upload" + }, + "upload_speed": { + "default": "mdi:upload-network" } } } diff --git a/homeassistant/components/asuswrt/strings.json b/homeassistant/components/asuswrt/strings.json index cac37c0cfd0..b3b1c93b4e6 100644 --- a/homeassistant/components/asuswrt/strings.json +++ b/homeassistant/components/asuswrt/strings.json @@ -1,26 +1,8 @@ { "config": { - "step": { - "user": { - "description": "Set required parameter to connect to your router", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "ssh_key": "Path to your SSH key file (instead of password)", - "protocol": "Communication protocol to use", - "port": "Port (leave empty for protocol default)" - }, - "data_description": { - "host": "The hostname or IP address of your ASUSWRT router." - } - }, - "legacy": { - "description": "Set required parameters to connect to your router", - "data": { - "mode": "Router operating mode" - } - } + "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" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -30,40 +12,66 @@ "ssh_not_file": "SSH key file not found", "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": { - "init": { + "legacy": { "data": { - "consider_home": "Seconds to wait before considering a device away", - "track_unknown": "Track unknown / unnamed devices", - "interface": "The interface that you want statistics from (e.g. eth0, eth1 etc)", - "dnsmasq": "The location of the dnsmasq.leases file in the router", - "require_ip": "Devices must have IP (for access point mode)" - } + "mode": "Router operating mode" + }, + "description": "Set required parameters to connect to your router" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "Port (leave empty for protocol default)", + "protocol": "Communication protocol to use", + "ssh_key": "Path to your SSH key file (instead of password)", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your ASUSWRT router." + }, + "description": "Set required parameter to connect to your router" } } }, "entity": { "sensor": { + "5ghz_2_temperature": { + "name": "5GHz temperature (Radio 2)" + }, + "5ghz_temperature": { + "name": "5GHz temperature" + }, + "6ghz_temperature": { + "name": "6GHz temperature" + }, + "24ghz_temperature": { + "name": "2.4GHz temperature" + }, + "cpu_core_usage": { + "name": "CPU core {core_id} usage" + }, + "cpu_temperature": { + "name": "CPU temperature" + }, + "cpu_usage": { + "name": "CPU usage" + }, "devices_connected": { "name": "Devices connected" }, - "download_speed": { - "name": "Download speed" - }, - "upload_speed": { - "name": "Upload speed" - }, "download": { "name": "Download" }, - "upload": { - "name": "Upload" + "download_speed": { + "name": "Download speed" + }, + "last_boot": { + "name": "Last boot" + }, + "load_avg_15m": { + "name": "Average load (15 min)" }, "load_avg_1m": { "name": "Average load (1 min)" @@ -71,52 +79,44 @@ "load_avg_5m": { "name": "Average load (5 min)" }, - "load_avg_15m": { - "name": "Average load (15 min)" - }, - "24ghz_temperature": { - "name": "2.4GHz temperature" - }, - "5ghz_temperature": { - "name": "5GHz temperature" - }, - "cpu_temperature": { - "name": "CPU temperature" - }, - "5ghz_2_temperature": { - "name": "5GHz temperature (Radio 2)" - }, - "6ghz_temperature": { - "name": "6GHz temperature" - }, - "cpu_usage": { - "name": "CPU usage" - }, - "cpu_core_usage": { - "name": "CPU core {core_id} usage" + "memory_free": { + "name": "Memory free" }, "memory_usage": { "name": "Memory usage" }, - "memory_free": { - "name": "Memory free" - }, "memory_used": { "name": "Memory used" }, - "last_boot": { - "name": "Last boot" + "upload": { + "name": "Upload" + }, + "upload_speed": { + "name": "Upload speed" }, "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": { "protocols": { "options": { - "https": "HTTPS", "http": "HTTP", + "https": "HTTPS", "ssh": "SSH", "telnet": "Telnet" } diff --git a/homeassistant/components/atag/strings.json b/homeassistant/components/atag/strings.json index 82070c0209f..722655332c1 100644 --- a/homeassistant/components/atag/strings.json +++ b/homeassistant/components/atag/strings.json @@ -1,23 +1,23 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unauthorized": "Pairing denied, check device for auth request" + }, "step": { "user": { - "description": "Connect to the device", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" }, "data_description": { "host": "The hostname or IP address of the Atag device." - } + }, + "description": "Connect to the device" } - }, - "error": { - "unauthorized": "Pairing denied, check device for auth request", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/august/strings.json b/homeassistant/components/august/strings.json index c2f351abdd8..38068193760 100644 --- a/homeassistant/components/august/strings.json +++ b/homeassistant/components/august/strings.json @@ -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": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_invalid_user": "Reauthenticate must use the same account.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "reauth_invalid_user": "Reauthenticate must use the same account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { @@ -55,11 +49,6 @@ "name": "[%key:component::camera::title%]" } }, - "sensor": { - "operator": { - "name": "Operator" - } - }, "event": { "doorbell": { "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" } } } diff --git a/homeassistant/components/aurora/strings.json b/homeassistant/components/aurora/strings.json index 5ba3a1273fd..e37b65c05b4 100644 --- a/homeassistant/components/aurora/strings.json +++ b/homeassistant/components/aurora/strings.json @@ -1,28 +1,18 @@ { - "title": "NOAA Aurora Sensor", "config": { - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "latitude": "[%key:common::config_flow::data::latitude%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { + }, "step": { - "init": { + "user": { "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" } } - } + }, + "options": { + "step": { + "init": { + "data": { + "forecast_threshold": "Threshold (%)" + } + } + } + }, + "title": "NOAA Aurora Sensor" } diff --git a/homeassistant/components/aurora_abb_powerone/icons.json b/homeassistant/components/aurora_abb_powerone/icons.json index 3a097df67ce..a512b52b2a3 100644 --- a/homeassistant/components/aurora_abb_powerone/icons.json +++ b/homeassistant/components/aurora_abb_powerone/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "r_iso": { - "default": "mdi:omega" - }, "alarm": { "default": "mdi:alert-octagon" + }, + "r_iso": { + "default": "mdi:omega" } } } diff --git a/homeassistant/components/aurora_abb_powerone/strings.json b/homeassistant/components/aurora_abb_powerone/strings.json index 96e7ac7bcd7..0a0b43dba91 100644 --- a/homeassistant/components/aurora_abb_powerone/strings.json +++ b/homeassistant/components/aurora_abb_powerone/strings.json @@ -1,37 +1,34 @@ { "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": { "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." + }, + "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": { "sensor": { - "grid_voltage": { - "name": "Grid voltage" + "alarm": { + "name": "Alarm status" }, "grid_current": { "name": "Grid current" }, - "alarm": { - "name": "Alarm status" - }, - "power_output": { - "name": "Power output" + "grid_voltage": { + "name": "Grid voltage" }, "i_leak_dcdc": { "name": "DC-DC leak current" @@ -39,11 +36,14 @@ "i_leak_inverter": { "name": "Inverter leak current" }, - "total_energy": { - "name": "Total energy" + "power_output": { + "name": "Power output" }, "r_iso": { "name": "Isolation resistance" + }, + "total_energy": { + "name": "Total energy" } } } diff --git a/homeassistant/components/aussie_broadband/icons.json b/homeassistant/components/aussie_broadband/icons.json index 2b1a2439904..78528eb095c 100644 --- a/homeassistant/components/aussie_broadband/icons.json +++ b/homeassistant/components/aussie_broadband/icons.json @@ -1,38 +1,38 @@ { "entity": { "sensor": { + "billing_cycle_length": { + "default": "mdi:calendar-range" + }, + "billing_cycle_remaining": { + "default": "mdi:calendar-clock" + }, "data_used": { "default": "mdi:network" }, "downloaded": { "default": "mdi:download-network" }, - "uploaded": { - "default": "mdi:upload-network" - }, - "national_calls": { - "default": "mdi:phone" + "international_calls": { + "default": "mdi:phone-plus" }, "mobile_calls": { "default": "mdi:phone" }, - "international_calls": { - "default": "mdi:phone-plus" - }, - "sms_sent": { - "default": "mdi:message-processing" - }, - "voicemail_calls": { + "national_calls": { "default": "mdi:phone" }, "other_calls": { "default": "mdi:phone" }, - "billing_cycle_length": { - "default": "mdi:calendar-range" + "sms_sent": { + "default": "mdi:message-processing" }, - "billing_cycle_remaining": { - "default": "mdi:calendar-clock" + "uploaded": { + "default": "mdi:upload-network" + }, + "voicemail_calls": { + "default": "mdi:phone" } } } diff --git a/homeassistant/components/aussie_broadband/strings.json b/homeassistant/components/aussie_broadband/strings.json index 276844a8806..82f27dbef71 100644 --- a/homeassistant/components/aussie_broadband/strings.json +++ b/homeassistant/components/aussie_broadband/strings.json @@ -1,86 +1,86 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "service": { - "title": "Select Services", - "data": { - "services": "Services" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Update password for {username}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "no_services_found": "No services were found for this account", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { + }, + "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": { - "init": { - "title": "[%key:component::aussie_broadband::config::step::service::title%]", + "reauth_confirm": { "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": { "sensor": { + "billing_cycle_length": { + "name": "Billing cycle length" + }, + "billing_cycle_remaining": { + "name": "Billing cycle remaining" + }, "data_used": { "name": "Data used" }, "downloaded": { "name": "Downloaded" }, - "uploaded": { - "name": "Uploaded" - }, - "national_calls": { - "name": "National calls" + "international_calls": { + "name": "International calls" }, "mobile_calls": { "name": "Mobile calls" }, - "international_calls": { - "name": "International calls" - }, - "sms_sent": { - "name": "SMS sent" - }, - "voicemail_calls": { - "name": "Voicemail calls" + "national_calls": { + "name": "National calls" }, "other_calls": { "name": "Other calls" }, - "billing_cycle_length": { - "name": "Billing cycle length" + "sms_sent": { + "name": "SMS sent" }, - "billing_cycle_remaining": { - "name": "Billing cycle remaining" + "uploaded": { + "name": "Uploaded" + }, + "voicemail_calls": { + "name": "Voicemail calls" + } + } + }, + "options": { + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "init": { + "data": { + "services": "[%key:component::aussie_broadband::config::step::service::data::services%]" + }, + "title": "[%key:component::aussie_broadband::config::step::service::title%]" } } } diff --git a/homeassistant/components/autarco/icons.json b/homeassistant/components/autarco/icons.json index 782e8b604bb..1374de2d22d 100644 --- a/homeassistant/components/autarco/icons.json +++ b/homeassistant/components/autarco/icons.json @@ -1,47 +1,47 @@ { "entity": { "sensor": { - "power_production": { - "default": "mdi:flash" + "charged_month": { + "default": "mdi:battery-arrow-up" }, - "energy_production_today": { - "default": "mdi:solar-power" + "charged_today": { + "default": "mdi:battery-arrow-up" }, - "energy_production_month": { - "default": "mdi:solar-power" - }, - "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" + "charged_total": { + "default": "mdi:battery-arrow-up" }, "discharged_month": { "default": "mdi:battery-arrow-down" }, + "discharged_today": { + "default": "mdi:battery-arrow-down" + }, "discharged_total": { "default": "mdi:battery-arrow-down" }, - "charged_today": { - "default": "mdi:battery-arrow-up" + "energy_production_month": { + "default": "mdi:solar-power" }, - "charged_month": { - "default": "mdi:battery-arrow-up" + "energy_production_today": { + "default": "mdi:solar-power" }, - "charged_total": { - "default": "mdi:battery-arrow-up" + "energy_production_total": { + "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" } } } diff --git a/homeassistant/components/autarco/strings.json b/homeassistant/components/autarco/strings.json index a053cd36e09..b306e5c755d 100644 --- a/homeassistant/components/autarco/strings.json +++ b/homeassistant/components/autarco/strings.json @@ -1,8 +1,25 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::autarco::config::step::user::data_description::password%]" + }, + "description": "The password for {email} is no longer valid.", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { - "description": "Connect to your Autarco account, to get information about your sites.", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -10,71 +27,54 @@ "data_description": { "email": "The email address of your Autarco account.", "password": "The password of your Autarco account." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The password for {email} is no longer valid.", - "data": { - "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "password": "[%key:component::autarco::config::step::user::data_description::password%]" - } + "description": "Connect to your Autarco account, to get information about your sites." } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { "sensor": { - "flow_now": { - "name": "Flow now" - }, - "state_of_charge": { - "name": "State of charge" - }, - "discharged_today": { - "name": "Discharged today" - }, - "discharged_month": { - "name": "Discharged month" - }, - "discharged_total": { - "name": "Discharged total" + "charged_month": { + "name": "Charged month" }, "charged_today": { "name": "Charged today" }, - "charged_month": { - "name": "Charged month" - }, "charged_total": { "name": "Charged total" }, - "power_production": { - "name": "Power production" + "discharged_month": { + "name": "Discharged month" }, - "energy_production_today": { - "name": "Energy production today" + "discharged_today": { + "name": "Discharged today" + }, + "discharged_total": { + "name": "Discharged total" }, "energy_production_month": { "name": "Energy production month" }, + "energy_production_today": { + "name": "Energy production today" + }, "energy_production_total": { "name": "Energy production total" }, + "flow_now": { + "name": "Flow now" + }, + "out_ac_energy_total": { + "name": "Energy AC output total" + }, "out_ac_power": { "name": "Power AC output" }, - "out_ac_energy_total": { - "name": "Energy AC output total" + "power_production": { + "name": "Power production" + }, + "state_of_charge": { + "name": "State of charge" } } } diff --git a/homeassistant/components/auth/strings.json b/homeassistant/components/auth/strings.json index cae69673ceb..14b72adcfdb 100644 --- a/homeassistant/components/auth/strings.json +++ b/homeassistant/components/auth/strings.json @@ -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": { + "user_not_found": { + "message": "User not found" + }, "username_already_exists": { "message": "Username \"{username}\" already exists" }, "username_not_normalized": { "message": "Username \"{new_username}\" is not normalized. Please make sure the username is lowercase and does not contain any whitespace." - }, - "user_not_found": { - "message": "User not found" } }, "issues": { "homeassistant_provider_not_normalized_usernames": { - "title": "Not normalized usernames detected", - "description": "The Home Assistant auth provider is running in legacy mode because we detected not normalized usernames. The legacy mode is deprecated and will be removed. Please change the following usernames:\n\n{usernames}\n\nNormalized usernames are case folded (lower case) and stripped of whitespaces." + "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" } } } diff --git a/homeassistant/components/automation/icons.json b/homeassistant/components/automation/icons.json index f1e0f26ef65..349858eafff 100644 --- a/homeassistant/components/automation/icons.json +++ b/homeassistant/components/automation/icons.json @@ -9,11 +9,8 @@ } }, "services": { - "turn_on": { - "service": "mdi:robot" - }, - "turn_off": { - "service": "mdi:robot-off" + "reload": { + "service": "mdi:reload" }, "toggle": { "service": "mdi:robot" @@ -21,8 +18,11 @@ "trigger": { "service": "mdi:robot" }, - "reload": { - "service": "mdi:reload" + "turn_off": { + "service": "mdi:robot-off" + }, + "turn_on": { + "service": "mdi:robot" } } } diff --git a/homeassistant/components/automation/strings.json b/homeassistant/components/automation/strings.json index 88410658afc..5dc96dff442 100644 --- a/homeassistant/components/automation/strings.json +++ b/homeassistant/components/automation/strings.json @@ -2,7 +2,6 @@ "common": { "validation_failed_title": "Automation {name} failed to set up" }, - "title": "Automation", "entity_component": { "_": { "name": "[%key:component::automation::title%]", @@ -37,69 +36,70 @@ }, "issues": { "service_not_found": { - "title": "{name} uses an unknown action", "fix_flow": { "step": { "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": { - "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": { - "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": { - "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": { - "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": { - "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": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Enables an automation." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Disables an automation.", - "fields": { - "stop_actions": { - "name": "Stop actions", - "description": "Stops currently running actions." - } - } + "reload": { + "description": "Reloads the automation configuration.", + "name": "[%key:common::action::reload%]" }, "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles (enable / disable) an automation." + "description": "Toggles (enable / disable) an automation.", + "name": "[%key:common::action::toggle%]" }, "trigger": { - "name": "Trigger", "description": "Triggers the actions of an automation.", "fields": { "skip_condition": { - "name": "Skip conditions", - "description": "Defines whether or not the conditions will be skipped." + "description": "Defines whether or not the conditions will be skipped.", + "name": "Skip conditions" } - } + }, + "name": "Trigger" }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads the automation configuration." + "turn_off": { + "description": "Disables an automation.", + "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" } diff --git a/homeassistant/components/awair/manifest.json b/homeassistant/components/awair/manifest.json index a0fbd350dab..587aba4b747 100644 --- a/homeassistant/components/awair/manifest.json +++ b/homeassistant/components/awair/manifest.json @@ -9,8 +9,8 @@ "requirements": ["python-awair==0.2.4"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "awair*" + "name": "awair*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/awair/strings.json b/homeassistant/components/awair/strings.json index 30425d2e1bc..b50be5121fb 100644 --- a/homeassistant/components/awair/strings.json +++ b/homeassistant/components/awair/strings.json @@ -1,12 +1,29 @@ { "config": { + "abort": { + "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", + "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unreachable": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unreachable": "[%key:common::config_flow::error::cannot_connect%]" + }, + "flow_title": "{model} ({device_id})", "step": { "cloud": { - "description": "You must register for an Awair developer access token at: {url}", "data": { "access_token": "[%key:common::config_flow::data::access_token%]", "email": "[%key:common::config_flow::data::email%]" - } + }, + "description": "You must register for an Awair developer access token at: {url}" + }, + "discovery_confirm": { + "description": "Do you want to set up {model} ({device_id})?" }, "local": { "description": "Follow [these instructions]({url}) on how to enable the Awair Local API.\n\nSelect **Submit** when done." @@ -18,48 +35,31 @@ } }, "reauth_confirm": { - "description": "Please re-enter your Awair developer access token.", "data": { "access_token": "[%key:common::config_flow::data::access_token%]", "email": "[%key:common::config_flow::data::email%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up {model} ({device_id})?" + }, + "description": "Please re-enter your Awair developer access token." }, "user": { + "description": "Pick local for the best experience. Only use cloud if the device is not connected to the same network as Home Assistant, or if you have a legacy device.", "menu_options": { "cloud": "Connect via the cloud", "local": "Connect locally (preferred)" - }, - "description": "Pick local for the best experience. Only use cloud if the device is not connected to the same network as Home Assistant, or if you have a legacy device." + } } - }, - "error": { - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "unreachable": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", - "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "unreachable": "[%key:common::config_flow::error::cannot_connect%]" - }, - "flow_title": "{model} ({device_id})" + } }, "entity": { "sensor": { + "dew_point": { + "name": "Dew point" + }, "score": { "name": "Score" }, "sound_level": { "name": "Sound level" - }, - "dew_point": { - "name": "Dew point" } } } diff --git a/homeassistant/components/aws_s3/strings.json b/homeassistant/components/aws_s3/strings.json index 84a7f68c850..8eb935355c2 100644 --- a/homeassistant/components/aws_s3/strings.json +++ b/homeassistant/components/aws_s3/strings.json @@ -1,21 +1,7 @@ { "config": { - "step": { - "user": { - "data": { - "access_key_id": "Access key ID", - "secret_access_key": "Secret access key", - "bucket": "Bucket name", - "endpoint_url": "Endpoint URL" - }, - "data_description": { - "access_key_id": "Access key ID to connect to AWS S3 API", - "secret_access_key": "Secret access key to connect to AWS S3 API", - "bucket": "Bucket must already exist and be writable by the provided credentials.", - "endpoint_url": "Endpoint URL provided to [Boto3 Session]({boto3_docs_url}). Region-specific [AWS S3 endpoints]({aws_s3_docs_url}) are available in their docs." - }, - "title": "Add AWS S3 bucket" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "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_endpoint_url": "Invalid endpoint URL. Please make sure it's a valid AWS S3 endpoint URL." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "access_key_id": "Access key ID", + "bucket": "Bucket name", + "endpoint_url": "Endpoint URL", + "secret_access_key": "Secret access key" + }, + "data_description": { + "access_key_id": "Access key ID to connect to AWS S3 API", + "bucket": "Bucket must already exist and be writable by the provided credentials.", + "endpoint_url": "Endpoint URL provided to [Boto3 Session]({boto3_docs_url}). Region-specific [AWS S3 endpoints]({aws_s3_docs_url}) are available in their docs.", + "secret_access_key": "Secret access key to connect to AWS S3 API" + }, + "title": "Add AWS S3 bucket" + } } }, "exceptions": { diff --git a/homeassistant/components/axis/manifest.json b/homeassistant/components/axis/manifest.json index 1a125516130..dd0c863b615 100644 --- a/homeassistant/components/axis/manifest.json +++ b/homeassistant/components/axis/manifest.json @@ -37,28 +37,28 @@ ], "zeroconf": [ { - "type": "_axis-video._tcp.local.", "properties": { "macaddress": "00408c*" - } + }, + "type": "_axis-video._tcp.local." }, { - "type": "_axis-video._tcp.local.", "properties": { "macaddress": "accc8e*" - } + }, + "type": "_axis-video._tcp.local." }, { - "type": "_axis-video._tcp.local.", "properties": { "macaddress": "b8a44f*" - } + }, + "type": "_axis-video._tcp.local." }, { - "type": "_axis-video._tcp.local.", "properties": { "macaddress": "e82725*" - } + }, + "type": "_axis-video._tcp.local." } ] } diff --git a/homeassistant/components/axis/strings.json b/homeassistant/components/axis/strings.json index da1963deacd..886ba3098ca 100644 --- a/homeassistant/components/axis/strings.json +++ b/homeassistant/components/axis/strings.json @@ -1,28 +1,5 @@ { "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": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "link_local_address": "Link local addresses are not supported", @@ -30,6 +7,29 @@ "reauth_successful": "[%key:common::config_flow::abort::reauth_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" + }, + "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": { diff --git a/homeassistant/components/azure_data_explorer/strings.json b/homeassistant/components/azure_data_explorer/strings.json index b4734ad2262..bbb943afcde 100644 --- a/homeassistant/components/azure_data_explorer/strings.json +++ b/homeassistant/components/azure_data_explorer/strings.json @@ -1,14 +1,20 @@ { "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": { "user": { - "title": "Set up Azure Data Explorer", - "description": "Enter connection details", "data": { - "cluster_ingest_uri": "Cluster ingestion URI", "authority_id": "Authority ID", "client_id": "Client ID", "client_secret": "Client secret", + "cluster_ingest_uri": "Cluster ingestion URI", "database": "Database name", "table": "Table name", "use_queued_ingestion": "Use queued ingestion" @@ -16,16 +22,10 @@ "data_description": { "cluster_ingest_uri": "Ingestion URI of the 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%]" } } } diff --git a/homeassistant/components/azure_devops/strings.json b/homeassistant/components/azure_devops/strings.json index 611a8b9a758..ad69f5e1351 100644 --- a/homeassistant/components/azure_devops/strings.json +++ b/homeassistant/components/azure_devops/strings.json @@ -1,32 +1,32 @@ { "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": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "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." }, + "flow_title": "{project_url}", "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": { "data": { "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.", "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": { diff --git a/homeassistant/components/azure_event_hub/strings.json b/homeassistant/components/azure_event_hub/strings.json index 8ec559ac8b7..77004602e13 100644 --- a/homeassistant/components/azure_event_hub/strings.json +++ b/homeassistant/components/azure_event_hub/strings.json @@ -1,47 +1,47 @@ { "config": { - "step": { - "user": { - "title": "Set up Azure Event Hub", - "data": { - "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" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "Connecting with the credentials from the configuration.yaml failed, please remove from yaml and use the config flow.", + "unknown": "Connecting with the credentials from the configuration.yaml failed with an unknown error, please remove from yaml and use the config flow." }, "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_service%]", - "cannot_connect": "Connecting with the credentials from the configuration.yaml failed, please remove from yaml and use the config flow.", - "unknown": "Connecting with the credentials from the configuration.yaml failed with an unknown error, please remove from yaml and use the config flow." + "step": { + "conn_string": { + "data": { + "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": { "step": { "init": { - "title": "Options for Azure Event Hub.", "data": { "send_interval": "Interval between sending batches to the hub." - } + }, + "title": "Options for Azure Event Hub." } } } diff --git a/homeassistant/components/azure_storage/strings.json b/homeassistant/components/azure_storage/strings.json index e9053f113cc..13d16dd596e 100644 --- a/homeassistant/components/azure_storage/strings.json +++ b/homeassistant/components/azure_storage/strings.json @@ -1,25 +1,16 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { - "user": { - "data": { - "storage_account_key": "Storage account key", - "account_name": "Account name", - "container_name": "Container name" - }, - "data_description": { - "storage_account_key": "Storage account access key used for authorization", - "account_name": "Name of the storage account", - "container_name": "Name of the storage container to be used (will be created if it does not exist)" - }, - "description": "Set up an Azure (Blob) storage account to be used for backups.", - "title": "Add Azure storage account" - }, "reauth_confirm": { "data": { "storage_account_key": "[%key:component::azure_storage::config::step::user::data::storage_account_key%]" @@ -41,18 +32,21 @@ }, "description": "Change the settings of the Azure storage integration.", "title": "Reconfigure Azure storage account" + }, + "user": { + "data": { + "account_name": "Account name", + "container_name": "Container name", + "storage_account_key": "Storage account key" + }, + "data_description": { + "account_name": "Name of the storage account", + "container_name": "Name of the storage container to be used (will be created if it does not exist)", + "storage_account_key": "Storage account access key used for authorization" + }, + "description": "Set up an Azure (Blob) storage account to be used for backups.", + "title": "Add Azure storage account" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "issues": { - "container_not_found": { - "title": "Storage container not found", - "description": "The storage container {container_name} has not been found in the storage account. Please re-create it manually, then fix this issue." } }, "exceptions": { @@ -62,11 +56,17 @@ "cannot_connect": { "message": "Can not connect to storage account {account_name}" }, - "invalid_auth": { - "message": "Authentication failed for storage account {account_name}" - }, "container_not_found": { "message": "Storage container {container_name} not found" + }, + "invalid_auth": { + "message": "Authentication failed for storage account {account_name}" + } + }, + "issues": { + "container_not_found": { + "description": "The storage container {container_name} has not been found in the storage account. Please re-create it manually, then fix this issue.", + "title": "Storage container not found" } } } diff --git a/homeassistant/components/backup/strings.json b/homeassistant/components/backup/strings.json index e2a3ad844b8..2562c704ee0 100644 --- a/homeassistant/components/backup/strings.json +++ b/homeassistant/components/backup/strings.json @@ -1,45 +1,10 @@ { - "issues": { - "automatic_backup_agents_unavailable": { - "title": "The backup location {agent_id} is unavailable", - "description": "The backup location `{agent_id}` is unavailable but is still configured for automatic backups.\n\nPlease visit the [automatic backup configuration page]({backup_settings}) to review and update your backup locations. Backups will not be uploaded to selected locations that are unavailable." - }, - "automatic_backup_failed_create": { - "title": "Automatic backup could not be created", - "description": "The automatic backup could not be created. Please check the logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured." - }, - "automatic_backup_failed_upload_agents": { - "title": "Automatic backup could not be uploaded to the configured locations", - "description": "The automatic backup could not be uploaded to the configured locations {failed_agents}. Please check the logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured." - }, - "automatic_backup_failed_addons": { - "title": "Not all add-ons could be included in automatic backup", - "description": "Add-ons {failed_addons} could not be included in automatic backup. Please check the Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured." - }, - "automatic_backup_failed_agents_addons_folders": { - "title": "Automatic backup was created with errors", - "description": "The automatic backup was created with errors:\n* Locations which the backup could not be uploaded to: {failed_agents}\n* Add-ons which could not be backed up: {failed_addons}\n* Folders which could not be backed up: {failed_folders}\n\nPlease check the Core and Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured." - }, - "automatic_backup_failed_folders": { - "title": "Not all folders could be included in automatic backup", - "description": "Folders {failed_folders} could not be included in automatic backup. Please check the Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured." - } - }, - "services": { - "create": { - "name": "Create backup", - "description": "Creates a new backup." - }, - "create_automatic": { - "name": "Create automatic backup", - "description": "Creates a new backup with automatic backup settings." - } - }, "entity": { "event": { "automatic_backup_event": { "name": "Automatic backup", "state_attributes": { + "backup_stage": { "name": "Backup stage" }, "event_type": { "state": { "completed": "Completed successfully", @@ -47,7 +12,6 @@ "in_progress": "In progress" } }, - "backup_stage": { "name": "Backup stage" }, "failed_reason": { "name": "Failure reason" } } } @@ -56,21 +20,57 @@ "backup_manager_state": { "name": "Backup Manager state", "state": { - "idle": "[%key:common::state::idle%]", "create_backup": "Creating a backup", + "idle": "[%key:common::state::idle%]", "receive_backup": "Receiving a backup", "restore_backup": "Restoring a backup" } }, - "next_scheduled_automatic_backup": { - "name": "Next scheduled automatic backup" - }, "last_attempted_automatic_backup": { "name": "Last attempted automatic backup" }, "last_successful_automatic_backup": { "name": "Last successful automatic backup" + }, + "next_scheduled_automatic_backup": { + "name": "Next scheduled automatic backup" } } + }, + "issues": { + "automatic_backup_agents_unavailable": { + "description": "The backup location `{agent_id}` is unavailable but is still configured for automatic backups.\n\nPlease visit the [automatic backup configuration page]({backup_settings}) to review and update your backup locations. Backups will not be uploaded to selected locations that are unavailable.", + "title": "The backup location {agent_id} is unavailable" + }, + "automatic_backup_failed_addons": { + "description": "Add-ons {failed_addons} could not be included in automatic backup. Please check the Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured.", + "title": "Not all add-ons could be included in automatic backup" + }, + "automatic_backup_failed_agents_addons_folders": { + "description": "The automatic backup was created with errors:\n* Locations which the backup could not be uploaded to: {failed_agents}\n* Add-ons which could not be backed up: {failed_addons}\n* Folders which could not be backed up: {failed_folders}\n\nPlease check the Core and Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured.", + "title": "Automatic backup was created with errors" + }, + "automatic_backup_failed_create": { + "description": "The automatic backup could not be created. Please check the logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured.", + "title": "Automatic backup could not be created" + }, + "automatic_backup_failed_folders": { + "description": "Folders {failed_folders} could not be included in automatic backup. Please check the Supervisor logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured.", + "title": "Not all folders could be included in automatic backup" + }, + "automatic_backup_failed_upload_agents": { + "description": "The automatic backup could not be uploaded to the configured locations {failed_agents}. Please check the logs for more information. Another attempt will be made at the next scheduled time if a backup schedule is configured.", + "title": "Automatic backup could not be uploaded to the configured locations" + } + }, + "services": { + "create": { + "description": "Creates a new backup.", + "name": "Create backup" + }, + "create_automatic": { + "description": "Creates a new backup with automatic backup settings.", + "name": "Create automatic backup" + } } } diff --git a/homeassistant/components/baf/manifest.json b/homeassistant/components/baf/manifest.json index 497b3638fce..3e73ab67657 100644 --- a/homeassistant/components/baf/manifest.json +++ b/homeassistant/components/baf/manifest.json @@ -8,16 +8,16 @@ "requirements": ["aiobafi6==0.9.0"], "zeroconf": [ { - "type": "_api._tcp.local.", "properties": { "model": "haiku*" - } + }, + "type": "_api._tcp.local." }, { - "type": "_api._tcp.local.", "properties": { "model": "i6*" - } + }, + "type": "_api._tcp.local." } ] } diff --git a/homeassistant/components/baf/strings.json b/homeassistant/components/baf/strings.json index 629a3041df5..343186fa808 100644 --- a/homeassistant/components/baf/strings.json +++ b/homeassistant/components/baf/strings.json @@ -1,23 +1,23 @@ { "config": { - "flow_title": "{name} - {model} ({ip_address})", - "step": { - "user": { - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up {name} - {model} ({ip_address})?" - } - }, "abort": { - "ipv6_not_supported": "IPv6 is not supported.", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "ipv6_not_supported": "IPv6 is not supported." }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name} - {model} ({ip_address})", + "step": { + "discovery_confirm": { + "description": "Do you want to set up {name} - {model} ({ip_address})?" + }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]" + } + } } }, "entity": { @@ -38,57 +38,63 @@ } }, "number": { - "comfort_min_speed": { - "name": "Auto Comfort minimum speed" + "comfort_heat_assist_speed": { + "name": "Auto Comfort Heat Assist speed" }, "comfort_max_speed": { "name": "Auto Comfort maximum speed" }, - "comfort_heat_assist_speed": { - "name": "Auto Comfort Heat Assist speed" + "comfort_min_speed": { + "name": "Auto Comfort minimum speed" }, - "return_to_auto_timeout": { - "name": "Return to Auto timeout" - }, - "motion_sense_timeout": { - "name": "Motion sense timeout" + "light_auto_motion_timeout": { + "name": "Light motion sense timeout" }, "light_return_to_auto_timeout": { "name": "Light return to Auto timeout" }, - "light_auto_motion_timeout": { - "name": "Light motion sense timeout" + "motion_sense_timeout": { + "name": "Motion sense timeout" + }, + "return_to_auto_timeout": { + "name": "Return to Auto timeout" } }, "sensor": { "current_rpm": { "name": "Current RPM" }, + "ip_address": { + "name": "[%key:common::config_flow::data::ip%]" + }, "target_rpm": { "name": "Target RPM" }, "wifi_ssid": { "name": "Wi-Fi SSID" - }, - "ip_address": { - "name": "[%key:common::config_flow::data::ip%]" } }, "switch": { - "legacy_ir_remote_enable": { - "name": "Legacy IR remote" - }, - "led_indicators_enable": { - "name": "LED indicators" - }, "comfort_heat_assist_enable": { "name": "Auto Comfort Heat Assist" }, + "eco_enable": { + "name": "Eco mode" + }, "fan_beep_enable": { "name": "Beep" }, - "eco_enable": { - "name": "Eco mode" + "led_indicators_enable": { + "name": "LED indicators" + }, + "legacy_ir_remote_enable": { + "name": "Legacy IR remote" + }, + "light_dim_to_warm_enable": { + "name": "Dim to Warm" + }, + "light_return_to_auto_enable": { + "name": "Light return to Auto" }, "motion_sense_enable": { "name": "Motion sense" @@ -98,12 +104,6 @@ }, "whoosh_enable": { "name": "Whoosh" - }, - "light_dim_to_warm_enable": { - "name": "Dim to Warm" - }, - "light_return_to_auto_enable": { - "name": "Light return to Auto" } } } diff --git a/homeassistant/components/balboa/icons.json b/homeassistant/components/balboa/icons.json index 40ed55a2725..59a78ae5e04 100644 --- a/homeassistant/components/balboa/icons.json +++ b/homeassistant/components/balboa/icons.json @@ -1,6 +1,12 @@ { "entity": { "binary_sensor": { + "circ_pump": { + "default": "mdi:pump", + "state": { + "off": "mdi:pump-off" + } + }, "filter_1": { "default": "mdi:sync", "state": { @@ -12,12 +18,6 @@ "state": { "off": "mdi:sync-off" } - }, - "circ_pump": { - "default": "mdi:pump", - "state": { - "off": "mdi:pump-off" - } } }, "climate": { diff --git a/homeassistant/components/balboa/strings.json b/homeassistant/components/balboa/strings.json index 8297e2e3b9f..e84ee2b40b6 100644 --- a/homeassistant/components/balboa/strings.json +++ b/homeassistant/components/balboa/strings.json @@ -1,47 +1,38 @@ { "config": { - "flow_title": "{model}", - "step": { - "user": { - "description": "Connect to the Balboa Wi-Fi device", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Balboa Spa Wi-Fi Device. For example, 192.168.1.58." - } - }, - "confirm_discovery": { - "description": "Do you want to set up the spa at {host}?" - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { + "flow_title": "{model}", "step": { - "init": { + "confirm_discovery": { + "description": "Do you want to set up the spa at {host}?" + }, + "user": { "data": { - "sync_time": "Keep your Balboa spa's time synchronized with Home Assistant" - } + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Balboa Spa Wi-Fi Device. For example, 192.168.1.58." + }, + "description": "Connect to the Balboa Wi-Fi device" } } }, "entity": { "binary_sensor": { + "circ_pump": { + "name": "Circulation pump" + }, "filter_1": { "name": "Filter cycle 1" }, "filter_2": { "name": "Filter cycle 2" - }, - "circ_pump": { - "name": "Circulation pump" } }, "climate": { @@ -50,8 +41,8 @@ "preset_mode": { "state": { "ready": "Ready", - "rest": "Rest", - "ready_in_rest": "Ready-in-rest" + "ready_in_rest": "Ready-in-rest", + "rest": "Rest" } } } @@ -63,24 +54,24 @@ "state_attributes": { "event_type": { "state": { - "sensor_out_of_sync": "Sensors are out of sync", - "low_flow": "The water flow is low", - "flow_failed": "The water flow has failed", - "settings_reset": "The settings have been reset", - "priming_mode": "Priming mode", "clock_failed": "The clock has failed", - "memory_failure": "Program memory failure", - "service_sensor_sync": "Sensors are out of sync -- call for service", + "flow_failed": "The water flow has failed", + "gfci_test_failed": "The GFCI test failed", "heater_dry": "The heater is dry", "heater_may_be_dry": "The heater may be dry", - "water_too_hot": "The water is too hot", "heater_too_hot": "The heater is too hot", + "hot_fault": "Hot fault", + "low_flow": "The water flow is low", + "memory_failure": "Program memory failure", + "priming_mode": "Priming mode", + "pump_stuck": "A pump may be stuck on", "sensor_a_fault": "Sensor A fault", "sensor_b_fault": "Sensor B fault", - "pump_stuck": "A pump may be stuck on", - "hot_fault": "Hot fault", - "gfci_test_failed": "The GFCI test failed", - "standby_mode": "Standby mode (hold mode)" + "sensor_out_of_sync": "Sensors are out of sync", + "service_sensor_sync": "Sensors are out of sync -- call for service", + "settings_reset": "The settings have been reset", + "standby_mode": "Standby mode (hold mode)", + "water_too_hot": "The water is too hot" } } } @@ -103,8 +94,8 @@ "temperature_range": { "name": "Temperature range", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]" } } }, @@ -114,11 +105,20 @@ } }, "time": { - "filter_cycle_start": { - "name": "Filter cycle {index} start" - }, "filter_cycle_end": { "name": "Filter cycle {index} end" + }, + "filter_cycle_start": { + "name": "Filter cycle {index} start" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "sync_time": "Keep your Balboa spa's time synchronized with Home Assistant" + } } } } diff --git a/homeassistant/components/bang_olufsen/icons.json b/homeassistant/components/bang_olufsen/icons.json index fec0bf20937..1a4938c9cf5 100644 --- a/homeassistant/components/bang_olufsen/icons.json +++ b/homeassistant/components/bang_olufsen/icons.json @@ -1,9 +1,9 @@ { "services": { - "beolink_join": { "service": "mdi:location-enter" }, + "beolink_allstandby": { "service": "mdi:close-circle-multiple-outline" }, "beolink_expand": { "service": "mdi:location-enter" }, - "beolink_unexpand": { "service": "mdi:location-exit" }, + "beolink_join": { "service": "mdi:location-enter" }, "beolink_leave": { "service": "mdi:close-circle-outline" }, - "beolink_allstandby": { "service": "mdi:close-circle-multiple-outline" } + "beolink_unexpand": { "service": "mdi:location-exit" } } } diff --git a/homeassistant/components/bang_olufsen/strings.json b/homeassistant/components/bang_olufsen/strings.json index bacd32fa77e..294aa9ab72f 100644 --- a/homeassistant/components/bang_olufsen/strings.json +++ b/homeassistant/components/bang_olufsen/strings.json @@ -9,16 +9,16 @@ "very_long_press_timeout": "Very long press" }, "config": { - "error": { - "api_exception": "[%key:common::config_flow::error::cannot_connect%]", - "client_connector_error": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_error": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_ip": "Invalid IPv4 address" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" }, + "error": { + "api_exception": "[%key:common::config_flow::error::cannot_connect%]", + "client_connector_error": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_ip": "Invalid IPv4 address", + "timeout_error": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "user": { @@ -29,8 +29,8 @@ "description": "Manually configure your Bang & Olufsen device." }, "zeroconf_confirm": { - "title": "Set up Bang & Olufsen device", - "description": "Confirm the configuration of the {model}-{serial_number} @ {host}." + "description": "Confirm the configuration of the {model}-{serial_number} @ {host}.", + "title": "Set up Bang & Olufsen device" } } }, @@ -41,11 +41,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -55,11 +55,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -69,11 +69,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -83,11 +83,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -97,11 +97,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -111,11 +111,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -125,11 +125,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -139,11 +139,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -153,11 +153,11 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } @@ -167,28 +167,48 @@ "state_attributes": { "event_type": { "state": { - "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", - "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", "long_press_release": "[%key:component::bang_olufsen::common::long_press_release%]", - "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]", - "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]" + "long_press_timeout": "[%key:component::bang_olufsen::common::long_press_timeout%]", + "short_press_release": "[%key:component::bang_olufsen::common::short_press_release%]", + "very_long_press_release": "[%key:component::bang_olufsen::common::very_long_press_release%]", + "very_long_press_timeout": "[%key:component::bang_olufsen::common::very_long_press_timeout%]" } } } } } }, + "exceptions": { + "invalid_grouping_entity": { + "message": "Entity with ID {entity_id} can't be added to the Beolink session. Is the entity a Bang & Olufsen media_player?" + }, + "invalid_media_type": { + "message": "{invalid_media_type} is an invalid type. Valid values are: {valid_media_types}." + }, + "invalid_sound_mode": { + "message": "{invalid_sound_mode} is an invalid sound mode. Valid values are: {valid_sound_modes}." + }, + "invalid_source": { + "message": "Invalid source: {invalid_source}. Valid sources are: {valid_sources}" + }, + "m3u_invalid_format": { + "message": "Media sources with the .m3u extension are not supported." + }, + "play_media_error": { + "message": "An error occurred while attempting to play {media_type}: {error_message}." + } + }, "selector": { "source_ids": { "options": { - "beoradio": "ASE Beoradio", - "deezer": "ASE / Mozart Deezer", - "spotify": "ASE / Mozart Spotify", - "tidal": "Mozart Tidal", "aux_a": "Beolink Converter NL/ML AUX_A", + "beoradio": "ASE Beoradio", "cd": "Beolink Converter NL/ML CD", + "deezer": "ASE / Mozart Deezer", "ph": "Beolink Converter NL/ML PH", "radio": "Beolink Converter NL/ML RADIO", + "spotify": "ASE / Mozart Spotify", + "tidal": "Mozart Tidal", "tp1": "Beolink Converter NL/ML TP1", "tp2": "Beolink Converter NL/ML TP2" } @@ -196,88 +216,68 @@ }, "services": { "beolink_allstandby": { - "name": "Beolink all standby", - "description": "Sets all connected Beolink devices to standby." + "description": "Sets all connected Beolink devices to standby.", + "name": "Beolink all standby" }, "beolink_expand": { - "name": "Beolink expand", "description": "Adds devices to the current Beolink experience.", "fields": { "all_discovered": { - "name": "All discovered", - "description": "Expand Beolink experience to all discovered devices." + "description": "Expand Beolink experience to all discovered devices.", + "name": "All discovered" }, "beolink_jids": { - "name": "Beolink JIDs", - "description": "Specify which Beolink JIDs will join current Beolink experience." + "description": "Specify which Beolink JIDs will join current Beolink experience.", + "name": "Beolink JIDs" } }, + "name": "Beolink expand", "sections": { "jid_options": { - "name": "[%key:component::bang_olufsen::common::jid_options_name%]", - "description": "[%key:component::bang_olufsen::common::jid_options_description%]" + "description": "[%key:component::bang_olufsen::common::jid_options_description%]", + "name": "[%key:component::bang_olufsen::common::jid_options_name%]" } } }, "beolink_join": { - "name": "Beolink join", "description": "Joins a Beolink experience.", "fields": { "beolink_jid": { - "name": "Beolink JID", - "description": "Manually specify Beolink JID to join." + "description": "Manually specify Beolink JID to join.", + "name": "Beolink JID" }, "source_id": { - "name": "Source", - "description": "Specify which source to join, behavior varies between hardware platforms. Source names prefaced by a platform name can only be used when connecting to that platform. For example \"ASE Beoradio\" can only be used when joining an ASE device, while ”ASE / Mozart Deezer” can be used with ASE or Mozart devices. A defined Beolink JID is required." + "description": "Specify which source to join, behavior varies between hardware platforms. Source names prefaced by a platform name can only be used when connecting to that platform. For example \"ASE Beoradio\" can only be used when joining an ASE device, while ”ASE / Mozart Deezer” can be used with ASE or Mozart devices. A defined Beolink JID is required.", + "name": "Source" } }, + "name": "Beolink join", "sections": { "jid_options": { - "name": "[%key:component::bang_olufsen::common::jid_options_name%]", - "description": "[%key:component::bang_olufsen::common::jid_options_description%]" + "description": "[%key:component::bang_olufsen::common::jid_options_description%]", + "name": "[%key:component::bang_olufsen::common::jid_options_name%]" } } }, "beolink_leave": { - "name": "Beolink leave", - "description": "Leaves a Beolink experience." + "description": "Leaves a Beolink experience.", + "name": "Beolink leave" }, "beolink_unexpand": { - "name": "Beolink unexpand", "description": "Removes devices from the current Beolink experience.", "fields": { "beolink_jids": { - "name": "Beolink JIDs", - "description": "Specify which Beolink JIDs will leave from current Beolink experience." + "description": "Specify which Beolink JIDs will leave from current Beolink experience.", + "name": "Beolink JIDs" } }, + "name": "Beolink unexpand", "sections": { "jid_options": { - "name": "[%key:component::bang_olufsen::common::jid_options_name%]", - "description": "[%key:component::bang_olufsen::common::jid_options_description%]" + "description": "[%key:component::bang_olufsen::common::jid_options_description%]", + "name": "[%key:component::bang_olufsen::common::jid_options_name%]" } } } - }, - "exceptions": { - "m3u_invalid_format": { - "message": "Media sources with the .m3u extension are not supported." - }, - "invalid_source": { - "message": "Invalid source: {invalid_source}. Valid sources are: {valid_sources}" - }, - "invalid_media_type": { - "message": "{invalid_media_type} is an invalid type. Valid values are: {valid_media_types}." - }, - "play_media_error": { - "message": "An error occurred while attempting to play {media_type}: {error_message}." - }, - "invalid_grouping_entity": { - "message": "Entity with ID {entity_id} can't be added to the Beolink session. Is the entity a Bang & Olufsen media_player?" - }, - "invalid_sound_mode": { - "message": "{invalid_sound_mode} is an invalid sound mode. Valid values are: {valid_sound_modes}." - } } } diff --git a/homeassistant/components/bayesian/strings.json b/homeassistant/components/bayesian/strings.json index 8bfd2642f3d..3bf271d4f3b 100644 --- a/homeassistant/components/bayesian/strings.json +++ b/homeassistant/components/bayesian/strings.json @@ -1,4 +1,205 @@ { + "config": { + "error": { + "above_below": "Invalid range: 'Above' must be less than 'Below' when both are set.", + "above_or_below": "Invalid range: At least one of 'Above' or 'Below' must be set.", + "equal_probabilities": "If 'Probability given true' and 'Probability given false' are equal, this observation can have no effect, and is therefore redundant", + "extreme_prior_error": "'Prior' set to 0% means that it is impossible for the sensor to show 'on' and 100% means it will never show 'off', use a close number like 0.1% or 99.9% instead", + "extreme_prob_given_error": "If either 'Probability given false' or 'Probability given true' is 0 or 100 this will create certainties that override all other observations, use numbers close to 0 or 100 instead", + "extreme_threshold_error": "'Probability threshold' set to 0% means that the sensor will always be 'on' and 100% mean it will always be 'off', use a close number like 0.1% or 99.9% instead", + "overlapping_ranges": "Invalid range: The 'Above' and 'Below' values overlap with another observation for the same entity." + }, + "step": { + "numeric_state": { + "data": { + "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::above%]", + "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::below%]", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]" + }, + "data_description": { + "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::above%]", + "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::below%]", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]" + }, + "description": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::description%]", + "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]" + }, + "observation_selector": { + "description": "[%key:component::bayesian::config_subentries::observation::step::user::description%]", + "menu_options": { + "finish": "Finish", + "numeric_state": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::numeric_state%]", + "state": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::state%]", + "template": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::template%]" + }, + "title": "[%key:component::bayesian::config_subentries::observation::step::user::title%]" + }, + "state": { + "data": { + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", + "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data::to_state%]" + }, + "data_description": { + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", + "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::to_state%]" + }, + "description": "[%key:component::bayesian::config_subentries::observation::step::state::description%]", + + "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]" + }, + "template": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", + "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data::value_template%]" + }, + "data_description": { + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", + "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data_description::value_template%]" + }, + "description": "[%key:component::bayesian::config_subentries::observation::step::template::description%]", + "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]" + }, + "user": { + "data": { + "device_class": "Device class", + "name": "[%key:common::config_flow::data::name%]", + "prior": "Prior", + "probability_threshold": "Probability threshold" + }, + "data_description": { + "device_class": "Choose the device class you would like the sensor to show as.", + "prior": "The baseline probability the sensor should be 'on', this is usually the percentage of time it is true. For example, for a sensor 'Everyone sleeping' it might be 8 hours a day, 33%.", + "probability_threshold": "The probability above which the sensor will show as 'on'. 50% should produce the most accurate result. Use numbers greater than 50% if avoiding false positives is important, or vice-versa." + }, + "description": "Create a binary sensor which observes the state of multiple sensors to estimate whether an event is occurring, or if something is true. See [the documentation]({url}) for more details.", + "title": "Add a Bayesian sensor" + } + } + }, + "config_subentries": { + "observation": { + "abort": { + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "entry_type": "Observation", + "error": { + "above_below": "[%key:component::bayesian::config::error::above_below%]", + "above_or_below": "[%key:component::bayesian::config::error::above_or_below%]", + "equal_probabilities": "[%key:component::bayesian::config::error::equal_probabilities%]", + "extreme_prob_given_error": "[%key:component::bayesian::config::error::extreme_prob_given_error%]", + "overlapping_ranges": "[%key:component::bayesian::config::error::overlapping_ranges%]" + }, + "initiate_flow": { + "user": "[%key:component::bayesian::config_subentries::observation::step::user::title%]" + }, + "step": { + "numeric_state": { + "data": { + "above": "Above", + "below": "Below", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]" + }, + "data_description": { + "above": "Optional - the lower end of the numeric range. Values exactly matching this will not count", + "below": "Optional - the upper end of the numeric range. Values exactly matching this will only count if more than one range is configured for the same entity.", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]" + }, + "description": "Add an observation which evaluates to `True` when a numeric sensor is within a chosen range.", + "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]" + }, + "reconfigure": { + "data": { + "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::above%]", + "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::below%]", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", + "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data::to_state%]", + "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data::value_template%]" + }, + "data_description": { + "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::above%]", + "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::below%]", + "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", + "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::to_state%]", + "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data_description::value_template%]" + }, + "description": "[%key:component::bayesian::config_subentries::observation::step::state::description%]", + "title": "Edit observation" + }, + "state": { + "data": { + "entity_id": "Entity", + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "Probability when {parent_sensor_name} is {device_class_off}", + "prob_given_true": "Probability when {parent_sensor_name} is {device_class_on}", + "to_state": "To state" + }, + "data_description": { + "entity_id": "An entity that is correlated with `{parent_sensor_name}`.", + "name": "This name will be used for to identify this observation for editing in the future.", + "prob_given_false": "The estimated probability or proportion of time this observation is `True` while `{parent_sensor_name}` is, or should be, `{device_class_off}`.", + "prob_given_true": "The estimated probability or proportion of time this observation is `True` while `{parent_sensor_name}` is, or should be, `{device_class_on}`.", + "to_state": "The state of the sensor for which the observation will be considered `True`." + }, + "description": "Add an observation which evaluates to `True` when the value of the sensor exactly matches *'To state'*. When `False`, it will update the prior with probabilities that are the inverse of those set below. This behavior can be overridden by adding observations for the same entity's other states.", + + "title": "Add a Bayesian sensor" + }, + "template": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", + "value_template": "Template" + }, + "data_description": { + "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", + "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]", + "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", + "value_template": "A template that evaluates to `True` will update the prior accordingly, A template that returns `False` or `None` will update the prior with inverse probabilities. A template that returns an error will not update probabilities. Results are coerced into being `True` or `False`" + }, + "description": "Add a custom observation which evaluates whether a template is observed (`True`) or not (`False`).", + "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]" + }, + "user": { + "description": "'Observations' are the sensor or template values that are monitored and then combined in order to inform the Bayesian sensor's final probability. Each observation will update the probability of the Bayesian sensor if it is detected, or if it is not detected. If the state of the entity becomes `unavailable` or `unknown` it will be ignored. If more than one state or more than one numeric range is configured for the same entity then inverse detections will be ignored.", + "menu_options": { + "numeric_state": "Add an observation for a numeric range", + "state": "Add an observation for a sensor's state", + "template": "Add an observation for a template" + }, + "title": "Add an observation" + } + } + } + }, "issues": { "manual_migration": { "description": "The Bayesian integration now also updates the probability if the observed `to_state`, `above`, `below`, or `value_template` evaluates to `False` rather than only `True`. So it is no longer required to have duplicate, complementary entries for each binary state. Please remove the mirrored entry for `{entity}`.", @@ -9,234 +210,27 @@ "title": "Manual YAML addition required for Bayesian" } }, - "services": { - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads Bayesian sensors from the YAML-configuration." - } - }, "options": { "error": { - "extreme_prior_error": "[%key:component::bayesian::config::error::extreme_prior_error%]", - "extreme_threshold_error": "[%key:component::bayesian::config::error::extreme_threshold_error%]", "equal_probabilities": "[%key:component::bayesian::config::error::equal_probabilities%]", - "extreme_prob_given_error": "[%key:component::bayesian::config::error::extreme_prob_given_error%]" + "extreme_prior_error": "[%key:component::bayesian::config::error::extreme_prior_error%]", + "extreme_prob_given_error": "[%key:component::bayesian::config::error::extreme_prob_given_error%]", + "extreme_threshold_error": "[%key:component::bayesian::config::error::extreme_threshold_error%]" }, "step": { "init": { - "title": "Sensor options", - "description": "These options affect how much evidence is required for the Bayesian sensor to be considered 'on'.", "data": { - "probability_threshold": "[%key:component::bayesian::config::step::user::data::probability_threshold%]", - "prior": "[%key:component::bayesian::config::step::user::data::prior%]", "device_class": "[%key:component::bayesian::config::step::user::data::device_class%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "probability_threshold": "[%key:component::bayesian::config::step::user::data_description::probability_threshold%]", - "prior": "[%key:component::bayesian::config::step::user::data_description::prior%]" - } - } - } - }, - "config": { - "error": { - "extreme_prior_error": "'Prior' set to 0% means that it is impossible for the sensor to show 'on' and 100% means it will never show 'off', use a close number like 0.1% or 99.9% instead", - "extreme_threshold_error": "'Probability threshold' set to 0% means that the sensor will always be 'on' and 100% mean it will always be 'off', use a close number like 0.1% or 99.9% instead", - "equal_probabilities": "If 'Probability given true' and 'Probability given false' are equal, this observation can have no effect, and is therefore redundant", - "extreme_prob_given_error": "If either 'Probability given false' or 'Probability given true' is 0 or 100 this will create certainties that override all other observations, use numbers close to 0 or 100 instead", - "above_below": "Invalid range: 'Above' must be less than 'Below' when both are set.", - "above_or_below": "Invalid range: At least one of 'Above' or 'Below' must be set.", - "overlapping_ranges": "Invalid range: The 'Above' and 'Below' values overlap with another observation for the same entity." - }, - "step": { - "user": { - "title": "Add a Bayesian sensor", - "description": "Create a binary sensor which observes the state of multiple sensors to estimate whether an event is occurring, or if something is true. See [the documentation]({url}) for more details.", - "data": { - "probability_threshold": "Probability threshold", - "prior": "Prior", - "device_class": "Device class", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "probability_threshold": "The probability above which the sensor will show as 'on'. 50% should produce the most accurate result. Use numbers greater than 50% if avoiding false positives is important, or vice-versa.", - "prior": "The baseline probability the sensor should be 'on', this is usually the percentage of time it is true. For example, for a sensor 'Everyone sleeping' it might be 8 hours a day, 33%.", - "device_class": "Choose the device class you would like the sensor to show as." - } - }, - "observation_selector": { - "title": "[%key:component::bayesian::config_subentries::observation::step::user::title%]", - "description": "[%key:component::bayesian::config_subentries::observation::step::user::description%]", - "menu_options": { - "state": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::state%]", - "numeric_state": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::numeric_state%]", - "template": "[%key:component::bayesian::config_subentries::observation::step::user::menu_options::template%]", - "finish": "Finish" - } - }, - "state": { - "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]", - "description": "[%key:component::bayesian::config_subentries::observation::step::state::description%]", - - "data": { "name": "[%key:common::config_flow::data::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", - "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data::to_state%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" + "prior": "[%key:component::bayesian::config::step::user::data::prior%]", + "probability_threshold": "[%key:component::bayesian::config::step::user::data::probability_threshold%]" }, "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", - "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::to_state%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - }, - "numeric_state": { - "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]", - "description": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::description%]", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", - "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::above%]", - "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::below%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" + "prior": "[%key:component::bayesian::config::step::user::data_description::prior%]", + "probability_threshold": "[%key:component::bayesian::config::step::user::data_description::probability_threshold%]" }, - "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", - "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::above%]", - "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::below%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - }, - "template": { - "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]", - "description": "[%key:component::bayesian::config_subentries::observation::step::template::description%]", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data::value_template%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" - }, - "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data_description::value_template%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - } - } - }, - "config_subentries": { - "observation": { - "step": { - "user": { - "title": "Add an observation", - "description": "'Observations' are the sensor or template values that are monitored and then combined in order to inform the Bayesian sensor's final probability. Each observation will update the probability of the Bayesian sensor if it is detected, or if it is not detected. If the state of the entity becomes `unavailable` or `unknown` it will be ignored. If more than one state or more than one numeric range is configured for the same entity then inverse detections will be ignored.", - "menu_options": { - "state": "Add an observation for a sensor's state", - "numeric_state": "Add an observation for a numeric range", - "template": "Add an observation for a template" - } - }, - "state": { - "title": "Add a Bayesian sensor", - "description": "Add an observation which evaluates to `True` when the value of the sensor exactly matches *'To state'*. When `False`, it will update the prior with probabilities that are the inverse of those set below. This behavior can be overridden by adding observations for the same entity's other states.", - - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "Entity", - "to_state": "To state", - "prob_given_true": "Probability when {parent_sensor_name} is {device_class_on}", - "prob_given_false": "Probability when {parent_sensor_name} is {device_class_off}" - }, - "data_description": { - "name": "This name will be used for to identify this observation for editing in the future.", - "entity_id": "An entity that is correlated with `{parent_sensor_name}`.", - "to_state": "The state of the sensor for which the observation will be considered `True`.", - "prob_given_true": "The estimated probability or proportion of time this observation is `True` while `{parent_sensor_name}` is, or should be, `{device_class_on}`.", - "prob_given_false": "The estimated probability or proportion of time this observation is `True` while `{parent_sensor_name}` is, or should be, `{device_class_off}`." - } - }, - "numeric_state": { - "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]", - "description": "Add an observation which evaluates to `True` when a numeric sensor is within a chosen range.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", - "above": "Above", - "below": "Below", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" - }, - "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", - "above": "Optional - the lower end of the numeric range. Values exactly matching this will not count", - "below": "Optional - the upper end of the numeric range. Values exactly matching this will only count if more than one range is configured for the same entity.", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - }, - "template": { - "title": "[%key:component::bayesian::config_subentries::observation::step::state::title%]", - "description": "Add a custom observation which evaluates whether a template is observed (`True`) or not (`False`).", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "value_template": "Template", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" - }, - "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "value_template": "A template that evaluates to `True` will update the prior accordingly, A template that returns `False` or `None` will update the prior with inverse probabilities. A template that returns an error will not update probabilities. Results are coerced into being `True` or `False`", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - }, - "reconfigure": { - "title": "Edit observation", - "description": "[%key:component::bayesian::config_subentries::observation::step::state::description%]", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data::entity_id%]", - "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data::to_state%]", - "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::above%]", - "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data::below%]", - "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data::value_template%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data::prob_given_false%]" - }, - "data_description": { - "name": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::name%]", - "entity_id": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::entity_id%]", - "to_state": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::to_state%]", - "above": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::above%]", - "below": "[%key:component::bayesian::config_subentries::observation::step::numeric_state::data_description::below%]", - "value_template": "[%key:component::bayesian::config_subentries::observation::step::template::data_description::value_template%]", - "prob_given_true": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_true%]", - "prob_given_false": "[%key:component::bayesian::config_subentries::observation::step::state::data_description::prob_given_false%]" - } - } - }, - "initiate_flow": { - "user": "[%key:component::bayesian::config_subentries::observation::step::user::title%]" - }, - "entry_type": "Observation", - "error": { - "equal_probabilities": "[%key:component::bayesian::config::error::equal_probabilities%]", - "extreme_prob_given_error": "[%key:component::bayesian::config::error::extreme_prob_given_error%]", - "above_below": "[%key:component::bayesian::config::error::above_below%]", - "above_or_below": "[%key:component::bayesian::config::error::above_or_below%]", - "overlapping_ranges": "[%key:component::bayesian::config::error::overlapping_ranges%]" - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "description": "These options affect how much evidence is required for the Bayesian sensor to be considered 'on'.", + "title": "Sensor options" } } }, @@ -273,5 +267,11 @@ "window": "[%key:component::binary_sensor::entity_component::window::name%]" } } + }, + "services": { + "reload": { + "description": "Reloads Bayesian sensors from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + } } } diff --git a/homeassistant/components/binary_sensor/strings.json b/homeassistant/components/binary_sensor/strings.json index ea897ed1c49..08d16fd0396 100644 --- a/homeassistant/components/binary_sensor/strings.json +++ b/homeassistant/components/binary_sensor/strings.json @@ -1,116 +1,115 @@ { - "title": "Binary sensor", "device_automation": { "condition_type": { "is_bat_low": "{entity_name} battery is low", - "is_not_bat_low": "{entity_name} battery is normal", "is_charging": "{entity_name} is charging", - "is_not_charging": "{entity_name} is not charging", "is_co": "{entity_name} is detecting carbon monoxide", - "is_no_co": "{entity_name} is not detecting carbon monoxide", "is_cold": "{entity_name} is cold", - "is_not_cold": "{entity_name} is not cold", "is_connected": "{entity_name} is connected", - "is_not_connected": "{entity_name} is disconnected", "is_gas": "{entity_name} is detecting gas", - "is_no_gas": "{entity_name} is not detecting gas", "is_hot": "{entity_name} is hot", - "is_not_hot": "{entity_name} is not hot", "is_light": "{entity_name} is detecting light", - "is_no_light": "{entity_name} is not detecting light", "is_locked": "{entity_name} is locked", - "is_not_locked": "{entity_name} is unlocked", "is_moist": "{entity_name} is moist", - "is_not_moist": "{entity_name} is dry", "is_motion": "{entity_name} is detecting motion", - "is_no_motion": "{entity_name} is not detecting motion", "is_moving": "{entity_name} is moving", - "is_not_moving": "{entity_name} is not moving", - "is_occupied": "{entity_name} is occupied", - "is_not_occupied": "{entity_name} is not occupied", - "is_plugged_in": "{entity_name} is plugged in", - "is_not_plugged_in": "{entity_name} is unplugged", - "is_powered": "{entity_name} is powered", - "is_not_powered": "{entity_name} is not powered", - "is_present": "{entity_name} is present", - "is_not_present": "{entity_name} is not present", - "is_problem": "{entity_name} is detecting problem", + "is_no_co": "{entity_name} is not detecting carbon monoxide", + "is_no_gas": "{entity_name} is not detecting gas", + "is_no_light": "{entity_name} is not detecting light", + "is_no_motion": "{entity_name} is not detecting motion", "is_no_problem": "{entity_name} is not detecting problem", - "is_running": "{entity_name} is running", - "is_not_running": "{entity_name} is not running", - "is_unsafe": "{entity_name} is unsafe", - "is_not_unsafe": "{entity_name} is safe", - "is_smoke": "{entity_name} is detecting smoke", "is_no_smoke": "{entity_name} is not detecting smoke", - "is_sound": "{entity_name} is detecting sound", "is_no_sound": "{entity_name} is not detecting sound", - "is_tampered": "{entity_name} is detecting tampering", - "is_not_tampered": "{entity_name} is not detecting tampering", - "is_update": "{entity_name} has an update available", "is_no_update": "{entity_name} is up-to-date", - "is_vibration": "{entity_name} is detecting vibration", "is_no_vibration": "{entity_name} is not detecting vibration", - "is_open": "{entity_name} is open", + "is_not_bat_low": "{entity_name} battery is normal", + "is_not_charging": "{entity_name} is not charging", + "is_not_cold": "{entity_name} is not cold", + "is_not_connected": "{entity_name} is disconnected", + "is_not_hot": "{entity_name} is not hot", + "is_not_locked": "{entity_name} is unlocked", + "is_not_moist": "{entity_name} is dry", + "is_not_moving": "{entity_name} is not moving", + "is_not_occupied": "{entity_name} is not occupied", "is_not_open": "{entity_name} is closed", + "is_not_plugged_in": "{entity_name} is unplugged", + "is_not_powered": "{entity_name} is not powered", + "is_not_present": "{entity_name} is not present", + "is_not_running": "{entity_name} is not running", + "is_not_tampered": "{entity_name} is not detecting tampering", + "is_not_unsafe": "{entity_name} is safe", + "is_occupied": "{entity_name} is occupied", + "is_off": "[%key:common::device_automation::condition_type::is_off%]", "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" + "is_open": "{entity_name} is open", + "is_plugged_in": "{entity_name} is plugged in", + "is_powered": "{entity_name} is powered", + "is_present": "{entity_name} is present", + "is_problem": "{entity_name} is detecting problem", + "is_running": "{entity_name} is running", + "is_smoke": "{entity_name} is detecting smoke", + "is_sound": "{entity_name} is detecting sound", + "is_tampered": "{entity_name} is detecting tampering", + "is_unsafe": "{entity_name} is unsafe", + "is_update": "{entity_name} has an update available", + "is_vibration": "{entity_name} is detecting vibration" }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" }, "trigger_type": { "bat_low": "{entity_name} battery low", - "not_bat_low": "{entity_name} battery normal", "charging": "{entity_name} charging", - "not_charging": "{entity_name} not charging", "co": "{entity_name} started detecting carbon monoxide", - "no_co": "{entity_name} stopped detecting carbon monoxide", "cold": "{entity_name} became cold", - "not_cold": "{entity_name} became not cold", "connected": "{entity_name} connected", - "not_connected": "{entity_name} disconnected", "gas": "{entity_name} started detecting gas", - "no_gas": "{entity_name} stopped detecting gas", "hot": "{entity_name} became hot", - "not_hot": "{entity_name} became not hot", "light": "{entity_name} started detecting light", - "no_light": "{entity_name} stopped detecting light", "locked": "{entity_name} locked", - "not_locked": "{entity_name} unlocked", "moist": "{entity_name} became moist", - "not_moist": "{entity_name} became dry", "motion": "{entity_name} started detecting motion", - "no_motion": "{entity_name} stopped detecting motion", "moving": "{entity_name} started moving", - "not_moving": "{entity_name} stopped moving", - "occupied": "{entity_name} became occupied", - "not_occupied": "{entity_name} became not occupied", - "plugged_in": "{entity_name} plugged in", - "not_plugged_in": "{entity_name} unplugged", - "powered": "{entity_name} powered", - "not_powered": "{entity_name} not powered", - "present": "{entity_name} present", - "not_present": "{entity_name} not present", - "problem": "{entity_name} started detecting problem", + "no_co": "{entity_name} stopped detecting carbon monoxide", + "no_gas": "{entity_name} stopped detecting gas", + "no_light": "{entity_name} stopped detecting light", + "no_motion": "{entity_name} stopped detecting motion", "no_problem": "{entity_name} stopped detecting problem", - "running": "{entity_name} started running", - "not_running": "{entity_name} is no longer running", - "unsafe": "{entity_name} became unsafe", - "not_unsafe": "{entity_name} became safe", - "smoke": "{entity_name} started detecting smoke", "no_smoke": "{entity_name} stopped detecting smoke", - "sound": "{entity_name} started detecting sound", "no_sound": "{entity_name} stopped detecting sound", - "tampered": "{entity_name} started detecting tampering", - "not_tampered": "{entity_name} stopped detecting tampering", - "update": "{entity_name} got an update available", "no_update": "{entity_name} became up-to-date", - "vibration": "{entity_name} started detecting vibration", "no_vibration": "{entity_name} stopped detecting vibration", - "opened": "{entity_name} opened", + "not_bat_low": "{entity_name} battery normal", + "not_charging": "{entity_name} not charging", + "not_cold": "{entity_name} became not cold", + "not_connected": "{entity_name} disconnected", + "not_hot": "{entity_name} became not hot", + "not_locked": "{entity_name} unlocked", + "not_moist": "{entity_name} became dry", + "not_moving": "{entity_name} stopped moving", + "not_occupied": "{entity_name} became not occupied", "not_opened": "{entity_name} closed", + "not_plugged_in": "{entity_name} unplugged", + "not_powered": "{entity_name} not powered", + "not_present": "{entity_name} not present", + "not_running": "{entity_name} is no longer running", + "not_tampered": "{entity_name} stopped detecting tampering", + "not_unsafe": "{entity_name} became safe", + "occupied": "{entity_name} became occupied", + "opened": "{entity_name} opened", + "plugged_in": "{entity_name} plugged in", + "powered": "{entity_name} powered", + "present": "{entity_name} present", + "problem": "{entity_name} started detecting problem", + "running": "{entity_name} started running", + "smoke": "{entity_name} started detecting smoke", + "sound": "{entity_name} started detecting sound", + "tampered": "{entity_name} started detecting tampering", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" + "unsafe": "{entity_name} became unsafe", + "update": "{entity_name} got an update available", + "vibration": "{entity_name} started detecting vibration" } }, "entity_component": { @@ -317,5 +316,6 @@ "on": "[%key:common::state::open%]" } } - } + }, + "title": "Binary sensor" } diff --git a/homeassistant/components/blackbird/strings.json b/homeassistant/components/blackbird/strings.json index 93c0e6ef23d..72dadb89674 100644 --- a/homeassistant/components/blackbird/strings.json +++ b/homeassistant/components/blackbird/strings.json @@ -1,18 +1,18 @@ { "services": { "set_all_zones": { - "name": "Set all zones", "description": "Sets all Blackbird zones to a single source.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name of any blackbird zone." + "description": "Name of any blackbird zone.", + "name": "Entity" }, "source": { - "name": "Source", - "description": "Name of source to switch to." + "description": "Name of source to switch to.", + "name": "Source" } - } + }, + "name": "Set all zones" } } } diff --git a/homeassistant/components/blebox/strings.json b/homeassistant/components/blebox/strings.json index 18c689e093d..a9193cd590c 100644 --- a/homeassistant/components/blebox/strings.json +++ b/homeassistant/components/blebox/strings.json @@ -1,24 +1,24 @@ { "config": { "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "address_already_configured": "A BleBox device is already configured at {address}." + "address_already_configured": "A BleBox device is already configured at {address}.", + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unsupported_version": "BleBox device has outdated firmware. Please upgrade it first.", - "unknown": "[%key:common::config_flow::error::unknown%]" + "unknown": "[%key:common::config_flow::error::unknown%]", + "unsupported_version": "BleBox device has outdated firmware. Please upgrade it first." }, "flow_title": "{name} ({host})", "step": { "user": { - "description": "Set up your BleBox to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::ip%]", "password": "[%key:common::config_flow::data::password%]", "port": "[%key:common::config_flow::data::port%]", "username": "[%key:common::config_flow::data::username%]" }, + "description": "Set up your BleBox to integrate with Home Assistant.", "title": "Set up your BleBox device" } } diff --git a/homeassistant/components/blink/icons.json b/homeassistant/components/blink/icons.json index bea67b25f6d..1f4edb07f42 100644 --- a/homeassistant/components/blink/icons.json +++ b/homeassistant/components/blink/icons.json @@ -15,17 +15,17 @@ "record": { "service": "mdi:video-box" }, - "trigger_camera": { - "service": "mdi:image-refresh" + "save_recent_clips": { + "service": "mdi:file-video" }, "save_video": { "service": "mdi:file-video" }, - "save_recent_clips": { - "service": "mdi:file-video" - }, "send_pin": { "service": "mdi:two-factor-authentication" + }, + "trigger_camera": { + "service": "mdi:image-refresh" } } } diff --git a/homeassistant/components/blink/strings.json b/homeassistant/components/blink/strings.json index 8f8df125aab..fdafd25c5ca 100644 --- a/homeassistant/components/blink/strings.json +++ b/homeassistant/components/blink/strings.json @@ -1,146 +1,146 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "title": "Sign in with Blink account", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, "2fa": { - "title": "Two-factor authentication", "data": { "pin": "Two-factor code" }, - "description": "Enter the PIN sent via email or SMS" - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", - "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%]" - } - }, - "options": { - "step": { - "simple_options": { + "description": "Enter the PIN sent via email or SMS", + "title": "Two-factor authentication" + }, + "user": { "data": { - "scan_interval": "Scan interval (seconds)" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, - "title": "Blink options", - "description": "Configure Blink integration" + "title": "Sign in with Blink account" } } }, "entity": { - "sensor": { - "wifi_strength": { - "name": "Wi-Fi signal strength" - } - }, "binary_sensor": { "camera_armed": { "name": "Camera armed" } }, + "sensor": { + "wifi_strength": { + "name": "Wi-Fi signal strength" + } + }, "switch": { "camera_motion": { "name": "Camera motion detection" } } }, - "services": { - "record": { - "name": "Record", - "description": "Requests camera to record a clip." - }, - "trigger_camera": { - "name": "Trigger camera", - "description": "Requests camera to take new image." - }, - "save_video": { - "name": "Save video", - "description": "Saves last recorded video clip to local file.", - "fields": { - "filename": { - "name": "File name", - "description": "Filename to writable path (directory may need to be included in allowlist_external_dirs in config)." - } - } - }, - "save_recent_clips": { - "name": "Save recent clips", - "description": "Saves all recent video clips to local directory with file pattern \"%Y%m%d_%H%M%S_[camera name].mp4\".", - "fields": { - "file_path": { - "name": "Output directory", - "description": "Directory name of writable path (directory may need to be included in allowlist_external_dirs in config)." - } - } - }, - "send_pin": { - "name": "Send PIN", - "description": "Sends a new PIN to Blink for 2FA.", - "fields": { - "pin": { - "name": "PIN", - "description": "PIN received from Blink. Leave empty if you only received a verification email." - }, - "config_entry_id": { - "name": "Integration ID", - "description": "The Blink integration ID." - } - } - } - }, "exceptions": { + "cant_write": { + "message": "Can't write to file." + }, + "failed_arm": { + "message": "Blink failed to arm camera." + }, + "failed_arm_motion": { + "message": "Blink failed to arm camera motion detection." + }, + "failed_clip": { + "message": "Blink failed to record a clip." + }, + "failed_disarm": { + "message": "Blink failed to disarm camera." + }, + "failed_disarm_motion": { + "message": "Blink failed to disarm camera motion detection." + }, + "failed_snap": { + "message": "Blink failed to snap a picture." + }, "integration_not_found": { "message": "Integration \"{target}\" not found in registry." }, "no_path": { "message": "Can't write to directory {target}, no access to path!" }, - "cant_write": { - "message": "Can't write to file." - }, "not_loaded": { "message": "{target} is not loaded." - }, - "failed_arm": { - "message": "Blink failed to arm camera." - }, - "failed_disarm": { - "message": "Blink failed to disarm camera." - }, - "failed_clip": { - "message": "Blink failed to record a clip." - }, - "failed_snap": { - "message": "Blink failed to snap a picture." - }, - "failed_arm_motion": { - "message": "Blink failed to arm camera motion detection." - }, - "failed_disarm_motion": { - "message": "Blink failed to disarm camera motion detection." } }, "issues": { "service_deprecation": { - "title": "Blink update service is being removed", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::blink::issues::service_deprecation::title%]", - "description": "Blink update service is deprecated and will be removed.\nPlease update your automations and scripts to use `Home Assistant Core Integration: Update entity`." + "description": "Blink update service is deprecated and will be removed.\nPlease update your automations and scripts to use `Home Assistant Core Integration: Update entity`.", + "title": "[%key:component::blink::issues::service_deprecation::title%]" } } + }, + "title": "Blink update service is being removed" + } + }, + "options": { + "step": { + "simple_options": { + "data": { + "scan_interval": "Scan interval (seconds)" + }, + "description": "Configure Blink integration", + "title": "Blink options" } } + }, + "services": { + "record": { + "description": "Requests camera to record a clip.", + "name": "Record" + }, + "save_recent_clips": { + "description": "Saves all recent video clips to local directory with file pattern \"%Y%m%d_%H%M%S_[camera name].mp4\".", + "fields": { + "file_path": { + "description": "Directory name of writable path (directory may need to be included in allowlist_external_dirs in config).", + "name": "Output directory" + } + }, + "name": "Save recent clips" + }, + "save_video": { + "description": "Saves last recorded video clip to local file.", + "fields": { + "filename": { + "description": "Filename to writable path (directory may need to be included in allowlist_external_dirs in config).", + "name": "File name" + } + }, + "name": "Save video" + }, + "send_pin": { + "description": "Sends a new PIN to Blink for 2FA.", + "fields": { + "config_entry_id": { + "description": "The Blink integration ID.", + "name": "Integration ID" + }, + "pin": { + "description": "PIN received from Blink. Leave empty if you only received a verification email.", + "name": "PIN" + } + }, + "name": "Send PIN" + }, + "trigger_camera": { + "description": "Requests camera to take new image.", + "name": "Trigger camera" + } } } diff --git a/homeassistant/components/blue_current/icons.json b/homeassistant/components/blue_current/icons.json index b8c6a5f045b..991371c877a 100644 --- a/homeassistant/components/blue_current/icons.json +++ b/homeassistant/components/blue_current/icons.json @@ -1,45 +1,45 @@ { "entity": { - "sensor": { - "vehicle_status": { - "default": "mdi:car" + "button": { + "reboot": { + "default": "mdi:restart-alert" }, + "reset": { + "default": "mdi:restart" + }, + "stop_charge_session": { + "default": "mdi:stop" + } + }, + "sensor": { "activity": { "default": "mdi:ev-station" }, + "current_left": { + "default": "mdi:gauge" + }, + "max_offline": { + "default": "mdi:gauge-full" + }, "max_usage": { "default": "mdi:gauge-full" }, "smartcharging_max_usage": { "default": "mdi:gauge-full" }, - "max_offline": { - "default": "mdi:gauge-full" - }, - "current_left": { - "default": "mdi:gauge" - } - }, - "button": { - "reset": { - "default": "mdi:restart" - }, - "reboot": { - "default": "mdi:restart-alert" - }, - "stop_charge_session": { - "default": "mdi:stop" + "vehicle_status": { + "default": "mdi:car" } }, "switch": { - "plug_and_charge": { - "default": "mdi:ev-plug-type2" + "block": { + "default": "mdi:lock" }, "linked_charge_cards": { "default": "mdi:account-group" }, - "block": { - "default": "mdi:lock" + "plug_and_charge": { + "default": "mdi:ev-plug-type2" } } }, diff --git a/homeassistant/components/blue_current/strings.json b/homeassistant/components/blue_current/strings.json index 9fdbd756392..c8d58132dd9 100644 --- a/homeassistant/components/blue_current/strings.json +++ b/homeassistant/components/blue_current/strings.json @@ -1,5 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_account": "Wrong account: Please authenticate with the API token for {email}." + }, + "error": { + "already_connected": "Already connected", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_token": "Invalid token", + "limit_reached": "Request limit reached", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -8,63 +20,33 @@ "description": "Enter your Blue Current API token", "title": "Authentication" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "limit_reached": "Request limit reached", - "invalid_token": "Invalid token", - "already_connected": "Already connected", - "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%]", - "wrong_account": "Wrong account: Please authenticate with the API token for {email}." - } - }, - "options": { - "step": { - "init": { - "data": { - "card": "Card" - }, - "description": "Select the default charging card you want to use" - } } }, "entity": { + "button": { + "reboot": { + "name": "Reboot" + }, + "reset": { + "name": "Reset" + }, + "stop_charge_session": { + "name": "Stop charge session" + } + }, "sensor": { "activity": { "name": "Activity", "state": { "available": "Available", "charging": "[%key:common::state::charging%]", - "unavailable": "Unavailable", "error": "[%key:common::state::error%]", - "offline": "Offline" + "offline": "Offline", + "unavailable": "Unavailable" } }, - "vehicle_status": { - "name": "Vehicle status", - "state": { - "standby": "[%key:common::state::standby%]", - "vehicle_detected": "Detected", - "ready": "Ready", - "no_power": "No power", - "vehicle_error": "[%key:common::state::error%]" - } - }, - "actual_v1": { - "name": "Voltage phase 1" - }, - "actual_v2": { - "name": "Voltage phase 2" - }, - "actual_v3": { - "name": "Voltage phase 3" - }, - "avg_voltage": { - "name": "Average voltage" + "actual_kwh": { + "name": "Energy usage" }, "actual_p1": { "name": "Current phase 1" @@ -75,35 +57,20 @@ "actual_p3": { "name": "Current phase 3" }, + "actual_v1": { + "name": "Voltage phase 1" + }, + "actual_v2": { + "name": "Voltage phase 2" + }, + "actual_v3": { + "name": "Voltage phase 3" + }, "avg_current": { "name": "Average current" }, - "total_kw": { - "name": "Total power" - }, - "actual_kwh": { - "name": "Energy usage" - }, - "start_datetime": { - "name": "Started on" - }, - "stop_datetime": { - "name": "Stopped on" - }, - "offline_since": { - "name": "Offline since" - }, - "total_cost": { - "name": "Total cost" - }, - "max_usage": { - "name": "Max usage" - }, - "smartcharging_max_usage": { - "name": "Smart charging max usage" - }, - "max_offline": { - "name": "Offline max usage" + "avg_voltage": { + "name": "Average voltage" }, "current_left": { "name": "Remaining current" @@ -122,28 +89,72 @@ }, "grid_max_current": { "name": "Max grid current" - } - }, - "button": { - "stop_charge_session": { - "name": "Stop charge session" }, - "reboot": { - "name": "Reboot" + "max_offline": { + "name": "Offline max usage" }, - "reset": { - "name": "Reset" + "max_usage": { + "name": "Max usage" + }, + "offline_since": { + "name": "Offline since" + }, + "smartcharging_max_usage": { + "name": "Smart charging max usage" + }, + "start_datetime": { + "name": "Started on" + }, + "stop_datetime": { + "name": "Stopped on" + }, + "total_cost": { + "name": "Total cost" + }, + "total_kw": { + "name": "Total power" + }, + "vehicle_status": { + "name": "Vehicle status", + "state": { + "no_power": "No power", + "ready": "Ready", + "standby": "[%key:common::state::standby%]", + "vehicle_detected": "Detected", + "vehicle_error": "[%key:common::state::error%]" + } } }, "switch": { - "plug_and_charge": { - "name": "Plug & Charge" + "block": { + "name": "Block charge point" }, "linked_charge_cards_only": { "name": "Linked charging cards only" }, - "block": { - "name": "Block charge point" + "plug_and_charge": { + "name": "Plug & Charge" + } + } + }, + "exceptions": { + "config_entry_not_loaded": { + "message": "Config entry not loaded." + }, + "invalid_device_id": { + "message": "Invalid device ID given." + }, + "no_config_entry": { + "message": "Device has not a valid blue_current config entry." + } + }, + "options": { + "step": { + "init": { + "data": { + "card": "Card" + }, + "description": "Select the default charging card you want to use" } } }, @@ -156,29 +167,18 @@ }, "services": { "start_charge_session": { - "name": "Start charge session", "description": "Starts a new charge session on a specified charge point.", "fields": { "charging_card_id": { - "name": "Charging card ID", - "description": "Optional charging card ID that will be used to start a charge session. When not provided, no charging card will be used." + "description": "Optional charging card ID that will be used to start a charge session. When not provided, no charging card will be used.", + "name": "Charging card ID" }, "device_id": { - "name": "Device ID", - "description": "The ID of the Blue Current charge point." + "description": "The ID of the Blue Current charge point.", + "name": "Device ID" } - } - } - }, - "exceptions": { - "invalid_device_id": { - "message": "Invalid device ID given." - }, - "config_entry_not_loaded": { - "message": "Config entry not loaded." - }, - "no_config_entry": { - "message": "Device has not a valid blue_current config entry." + }, + "name": "Start charge session" } } } diff --git a/homeassistant/components/bluemaestro/manifest.json b/homeassistant/components/bluemaestro/manifest.json index 887b27239ef..422829fdda4 100644 --- a/homeassistant/components/bluemaestro/manifest.json +++ b/homeassistant/components/bluemaestro/manifest.json @@ -3,8 +3,8 @@ "name": "BlueMaestro", "bluetooth": [ { - "manufacturer_id": 307, - "connectable": false + "connectable": false, + "manufacturer_id": 307 } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/bluemaestro/strings.json b/homeassistant/components/bluemaestro/strings.json index 8f84456d3a7..599089047fc 100644 --- a/homeassistant/components/bluemaestro/strings.json +++ b/homeassistant/components/bluemaestro/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } }, "entity": { diff --git a/homeassistant/components/bluesound/icons.json b/homeassistant/components/bluesound/icons.json index 2c5e95291c1..7695cb39986 100644 --- a/homeassistant/components/bluesound/icons.json +++ b/homeassistant/components/bluesound/icons.json @@ -1,16 +1,16 @@ { "services": { + "clear_sleep_timer": { + "service": "mdi:sleep-off" + }, "join": { "service": "mdi:link-variant" }, - "unjoin": { - "service": "mdi:link-variant-off" - }, "set_sleep_timer": { "service": "mdi:sleep" }, - "clear_sleep_timer": { - "service": "mdi:sleep-off" + "unjoin": { + "service": "mdi:link-variant-off" } } } diff --git a/homeassistant/components/bluesound/strings.json b/homeassistant/components/bluesound/strings.json index 236113a835b..66689003af1 100644 --- a/homeassistant/components/bluesound/strings.json +++ b/homeassistant/components/bluesound/strings.json @@ -1,6 +1,19 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_ipv4_address": "No IPv4 address found." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "Discover Bluesound player" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -10,86 +23,73 @@ "host": "Hostname or IP address of your Bluesound player", "port": "Port of your Bluesound player. This is usually 11000." } - }, - "confirm": { - "title": "Discover Bluesound player", - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "no_ipv4_address": "No IPv4 address found." - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "issues": { - "deprecated_service_set_sleep_timer": { - "title": "Detected use of deprecated action bluesound.set_sleep_timer", - "description": "Use `button.{name}_set_sleep_timer` instead.\n\nPlease replace this action and adjust your automations and scripts." - }, - "deprecated_service_clear_sleep_timer": { - "title": "Detected use of deprecated action bluesound.clear_sleep_timer", - "description": "Use `button.{name}_clear_sleep_timer` instead.\n\nPlease replace this action and adjust your automations and scripts." - } - }, - "services": { - "join": { - "name": "Join", - "description": "Groups players together under a single master speaker.", - "fields": { - "master": { - "name": "Master", - "description": "Entity ID of the player that should become the master of the group." - }, - "entity_id": { - "name": "Entity", - "description": "Name of entity that will group to master speaker. Platform dependent." - } - } - }, - "unjoin": { - "name": "Unjoin", - "description": "Separates a player from a group.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of entity that will be separated from their group. Platform dependent." - } - } - }, - "set_sleep_timer": { - "name": "Set sleep timer", - "description": "Sets a Bluesound timer that will turn off the speaker. It will increase in steps: 15, 30, 45, 60, 90, 0.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of entities that will have a timer set." - } - } - }, - "clear_sleep_timer": { - "name": "Clear sleep timer", - "description": "Clears a Bluesound timer.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of entities that will have the timer cleared." - } } } }, "entity": { "button": { - "set_sleep_timer": { - "name": "Set sleep timer" - }, "clear_sleep_timer": { "name": "Clear sleep timer" + }, + "set_sleep_timer": { + "name": "Set sleep timer" } } + }, + "issues": { + "deprecated_service_clear_sleep_timer": { + "description": "Use `button.{name}_clear_sleep_timer` instead.\n\nPlease replace this action and adjust your automations and scripts.", + "title": "Detected use of deprecated action bluesound.clear_sleep_timer" + }, + "deprecated_service_set_sleep_timer": { + "description": "Use `button.{name}_set_sleep_timer` instead.\n\nPlease replace this action and adjust your automations and scripts.", + "title": "Detected use of deprecated action bluesound.set_sleep_timer" + } + }, + "services": { + "clear_sleep_timer": { + "description": "Clears a Bluesound timer.", + "fields": { + "entity_id": { + "description": "Name(s) of entities that will have the timer cleared.", + "name": "Entity" + } + }, + "name": "Clear sleep timer" + }, + "join": { + "description": "Groups players together under a single master speaker.", + "fields": { + "entity_id": { + "description": "Name of entity that will group to master speaker. Platform dependent.", + "name": "Entity" + }, + "master": { + "description": "Entity ID of the player that should become the master of the group.", + "name": "Master" + } + }, + "name": "Join" + }, + "set_sleep_timer": { + "description": "Sets a Bluesound timer that will turn off the speaker. It will increase in steps: 15, 30, 45, 60, 90, 0.", + "fields": { + "entity_id": { + "description": "Name(s) of entities that will have a timer set.", + "name": "Entity" + } + }, + "name": "Set sleep timer" + }, + "unjoin": { + "description": "Separates a player from a group.", + "fields": { + "entity_id": { + "description": "Name of entity that will be separated from their group. Platform dependent.", + "name": "Entity" + } + }, + "name": "Unjoin" + } } } diff --git a/homeassistant/components/bluetooth/strings.json b/homeassistant/components/bluetooth/strings.json index 5cbc3992f16..a81bbf3eef4 100644 --- a/homeassistant/components/bluetooth/strings.json +++ b/homeassistant/components/bluetooth/strings.json @@ -1,56 +1,56 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "no_adapters": "No unconfigured Bluetooth adapters found." + }, "flow_title": "{name} {manufacturer} {model}", "step": { - "user": { - "description": "Choose a device to set up", - "data": { - "address": "[%key:common::config_flow::data::device%]" - } - }, "bluetooth_confirm": { "description": "Do you want to set up {name}?" }, "multiple_adapters": { - "description": "Select a Bluetooth adapter to set up", "data": { "adapter": "Adapter" - } + }, + "description": "Select a Bluetooth adapter to set up" }, "single_adapter": { "description": "Do you want to set up the Bluetooth adapter {name} {manufacturer} {model}?" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "Choose a device to set up" } + } + }, + "issues": { + "bluetooth_adapter_missing_permissions": { + "description": "The Bluetooth adapter **{adapter}** ({model}) is operating in degraded mode because your container needs additional permissions to fully access Bluetooth hardware.\n\nPlease follow the instructions in our documentation to add the required permissions:\n[Bluetooth permissions for Docker]({docs_url})\n\nAfter adding these permissions, restart your Home Assistant container for the changes to take effect.", + "title": "Bluetooth adapter requires additional permissions" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "no_adapters": "No unconfigured Bluetooth adapters found." + "bluetooth_adapter_passive_mode_uart": { + "description": "The Bluetooth adapter **{adapter}** ({model}) is stuck in passive scanning mode despite requesting active scanning mode. **Automatic recovery was attempted but failed.** This is likely a kernel, firmware, or operating system issue, and the system requires a complete power cycle to recover the adapter.\n\nIn passive mode, the adapter can only receive advertisements but cannot request additional data from devices, which will affect device discovery and functionality.\n\n**Manual intervention required:**\n1. **Shut down the system completely** (not just a reboot)\n2. **Remove power** (unplug or turn off at the switch)\n3. Wait 10 seconds\n4. Restore power and boot the system\n\nIf the issue persists after power cycling:\n- Check for kernel/firmware updates\n- The onboard Bluetooth adapter may have hardware issues", + "title": "Bluetooth adapter requires system power cycle" + }, + "bluetooth_adapter_passive_mode_usb": { + "description": "The Bluetooth adapter **{adapter}** ({model}) is stuck in passive scanning mode despite requesting active scanning mode. **Automatic recovery was attempted but failed.** This is likely a kernel, firmware, or operating system issue, and the adapter requires a manual power cycle to recover.\n\nIn passive mode, the adapter can only receive advertisements but cannot request additional data from devices, which will affect device discovery and functionality.\n\n**Manual intervention required:**\n1. **Unplug the USB adapter**\n2. Wait 5 seconds\n3. **Plug it back in**\n4. Wait for Home Assistant to detect the adapter\n\nIf the issue persists after power cycling:\n- Try a different USB port\n- Check for kernel/firmware updates\n- Consider using a different Bluetooth adapter", + "title": "Bluetooth USB adapter requires manual power cycle" } }, "options": { + "abort": { + "local_adapters_no_passive_support": "Local Bluetooth adapters that do not support passive scanning cannot be configured.", + "remote_adapters_not_supported": "Bluetooth configuration for remote adapters is not supported." + }, "step": { "init": { "data": { "passive": "Passive scanning" } } - }, - "abort": { - "remote_adapters_not_supported": "Bluetooth configuration for remote adapters is not supported.", - "local_adapters_no_passive_support": "Local Bluetooth adapters that do not support passive scanning cannot be configured." - } - }, - "issues": { - "bluetooth_adapter_missing_permissions": { - "title": "Bluetooth adapter requires additional permissions", - "description": "The Bluetooth adapter **{adapter}** ({model}) is operating in degraded mode because your container needs additional permissions to fully access Bluetooth hardware.\n\nPlease follow the instructions in our documentation to add the required permissions:\n[Bluetooth permissions for Docker]({docs_url})\n\nAfter adding these permissions, restart your Home Assistant container for the changes to take effect." - }, - "bluetooth_adapter_passive_mode_usb": { - "title": "Bluetooth USB adapter requires manual power cycle", - "description": "The Bluetooth adapter **{adapter}** ({model}) is stuck in passive scanning mode despite requesting active scanning mode. **Automatic recovery was attempted but failed.** This is likely a kernel, firmware, or operating system issue, and the adapter requires a manual power cycle to recover.\n\nIn passive mode, the adapter can only receive advertisements but cannot request additional data from devices, which will affect device discovery and functionality.\n\n**Manual intervention required:**\n1. **Unplug the USB adapter**\n2. Wait 5 seconds\n3. **Plug it back in**\n4. Wait for Home Assistant to detect the adapter\n\nIf the issue persists after power cycling:\n- Try a different USB port\n- Check for kernel/firmware updates\n- Consider using a different Bluetooth adapter" - }, - "bluetooth_adapter_passive_mode_uart": { - "title": "Bluetooth adapter requires system power cycle", - "description": "The Bluetooth adapter **{adapter}** ({model}) is stuck in passive scanning mode despite requesting active scanning mode. **Automatic recovery was attempted but failed.** This is likely a kernel, firmware, or operating system issue, and the system requires a complete power cycle to recover the adapter.\n\nIn passive mode, the adapter can only receive advertisements but cannot request additional data from devices, which will affect device discovery and functionality.\n\n**Manual intervention required:**\n1. **Shut down the system completely** (not just a reboot)\n2. **Remove power** (unplug or turn off at the switch)\n3. Wait 10 seconds\n4. Restore power and boot the system\n\nIf the issue persists after power cycling:\n- Check for kernel/firmware updates\n- The onboard Bluetooth adapter may have hardware issues" } } } diff --git a/homeassistant/components/bluetooth_tracker/strings.json b/homeassistant/components/bluetooth_tracker/strings.json index bf22845d054..70584cbcb2d 100644 --- a/homeassistant/components/bluetooth_tracker/strings.json +++ b/homeassistant/components/bluetooth_tracker/strings.json @@ -1,8 +1,8 @@ { "services": { "update": { - "name": "Update", - "description": "Triggers manual tracker update." + "description": "Triggers manual tracker update.", + "name": "Update" } } } diff --git a/homeassistant/components/bmw_connected_drive/icons.json b/homeassistant/components/bmw_connected_drive/icons.json index fc30b87ed3f..8d3c1e03294 100644 --- a/homeassistant/components/bmw_connected_drive/icons.json +++ b/homeassistant/components/bmw_connected_drive/icons.json @@ -1,38 +1,32 @@ { "entity": { "binary_sensor": { + "charging_status": { + "default": "mdi:ev-station" + }, + "check_control_messages": { + "default": "mdi:car-tire-alert" + }, + "condition_based_services": { + "default": "mdi:wrench" + }, + "connection_status": { + "default": "mdi:car-electric" + }, + "door_lock_state": { + "default": "mdi:car-key" + }, + "is_pre_entry_climatization_enabled": { + "default": "mdi:car-seat-heater" + }, "lids": { "default": "mdi:car-door-lock" }, "windows": { "default": "mdi:car-door" - }, - "door_lock_state": { - "default": "mdi:car-key" - }, - "condition_based_services": { - "default": "mdi:wrench" - }, - "check_control_messages": { - "default": "mdi:car-tire-alert" - }, - "charging_status": { - "default": "mdi:ev-station" - }, - "connection_status": { - "default": "mdi:car-electric" - }, - "is_pre_entry_climatization_enabled": { - "default": "mdi:car-seat-heater" } }, "button": { - "light_flash": { - "default": "mdi:car-light-alert" - }, - "sound_horn": { - "default": "mdi:bullhorn" - }, "activate_air_conditioning": { "default": "mdi:hvac" }, @@ -41,6 +35,12 @@ }, "find_vehicle": { "default": "mdi:crosshairs-question" + }, + "light_flash": { + "default": "mdi:car-light-alert" + }, + "sound_horn": { + "default": "mdi:bullhorn" } }, "device_tracker": { @@ -68,34 +68,34 @@ "charging_target": { "default": "mdi:battery-charging-high" }, + "climate_status": { + "default": "mdi:fan" + }, "mileage": { "default": "mdi:speedometer" }, - "remaining_range_total": { - "default": "mdi:map-marker-distance" - }, - "remaining_range_electric": { - "default": "mdi:map-marker-distance" - }, - "remaining_range_fuel": { - "default": "mdi:map-marker-distance" - }, "remaining_fuel": { "default": "mdi:gas-station" }, "remaining_fuel_percent": { "default": "mdi:gas-station" }, - "climate_status": { - "default": "mdi:fan" + "remaining_range_electric": { + "default": "mdi:map-marker-distance" + }, + "remaining_range_fuel": { + "default": "mdi:map-marker-distance" + }, + "remaining_range_total": { + "default": "mdi:map-marker-distance" } }, "switch": { - "climate": { - "default": "mdi:fan" - }, "charging": { "default": "mdi:ev-station" + }, + "climate": { + "default": "mdi:fan" } } } diff --git a/homeassistant/components/bmw_connected_drive/strings.json b/homeassistant/components/bmw_connected_drive/strings.json index 3b8b6fc5ff0..5271d1d6d54 100644 --- a/homeassistant/components/bmw_connected_drive/strings.json +++ b/homeassistant/components/bmw_connected_drive/strings.json @@ -1,96 +1,78 @@ { "config": { - "step": { - "user": { - "description": "Connect to your MyBMW/MINI Connected account to retrieve vehicle data.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "region": "ConnectedDrive region" - }, - "data_description": { - "username": "The email address of your MyBMW/MINI Connected account.", - "password": "The password of your MyBMW/MINI Connected account.", - "region": "The region of your MyBMW/MINI Connected account." - } - }, - "captcha": { - "title": "Are you a robot?", - "description": "A captcha is required for BMW login. Visit the external website to complete the challenge and submit the form. Copy the resulting token into the field below.\n\n{captcha_url}\n\nNo data will be exposed outside of your Home Assistant instance.", - "data": { - "captcha_token": "Captcha token" - }, - "data_description": { - "captcha_token": "One-time token retrieved from the captcha challenge." - } - }, - "change_password": { - "description": "Update your MyBMW/MINI Connected password for account `{username}` in region `{region}`.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::bmw_connected_drive::config::step::user::data_description::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "missing_captcha": "Captcha validation missing" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "options": { "step": { - "account_options": { + "captcha": { "data": { - "read_only": "Read-only mode" + "captcha_token": "Captcha token" }, "data_description": { - "read_only": "Only retrieve values and send POI data, but don't offer any services that can change the vehicle state." - } + "captcha_token": "One-time token retrieved from the captcha challenge." + }, + "description": "A captcha is required for BMW login. Visit the external website to complete the challenge and submit the form. Copy the resulting token into the field below.\n\n{captcha_url}\n\nNo data will be exposed outside of your Home Assistant instance.", + "title": "Are you a robot?" + }, + "change_password": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::bmw_connected_drive::config::step::user::data_description::password%]" + }, + "description": "Update your MyBMW/MINI Connected password for account `{username}` in region `{region}`." + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "region": "ConnectedDrive region", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password of your MyBMW/MINI Connected account.", + "region": "The region of your MyBMW/MINI Connected account.", + "username": "The email address of your MyBMW/MINI Connected account." + }, + "description": "Connect to your MyBMW/MINI Connected account to retrieve vehicle data." } } }, "entity": { "binary_sensor": { + "charging_status": { + "name": "Charging status" + }, + "check_control_messages": { + "name": "Check control messages" + }, + "condition_based_services": { + "name": "Condition-based services" + }, + "connection_status": { + "name": "Connection status" + }, + "door_lock_state": { + "name": "Door lock state" + }, + "is_pre_entry_climatization_enabled": { + "name": "Pre-entry climatization" + }, "lids": { "name": "Lids" }, "windows": { "name": "Windows" - }, - "door_lock_state": { - "name": "Door lock state" - }, - "condition_based_services": { - "name": "Condition-based services" - }, - "check_control_messages": { - "name": "Check control messages" - }, - "charging_status": { - "name": "Charging status" - }, - "connection_status": { - "name": "Connection status" - }, - "is_pre_entry_climatization_enabled": { - "name": "Pre-entry climatization" } }, "button": { - "light_flash": { - "name": "Flash lights" - }, - "sound_horn": { - "name": "Sound horn" - }, "activate_air_conditioning": { "name": "Activate air conditioning" }, @@ -99,6 +81,12 @@ }, "find_vehicle": { "name": "Find vehicle" + }, + "light_flash": { + "name": "Flash lights" + }, + "sound_horn": { + "name": "Sound horn" } }, "lock": { @@ -118,8 +106,8 @@ "charging_mode": { "name": "Charging mode", "state": { - "immediate_charging": "Immediate charging", "delayed_charging": "Delayed charging", + "immediate_charging": "Immediate charging", "no_action": "No action" } } @@ -128,53 +116,32 @@ "ac_current_limit": { "name": "AC current limit" }, - "charging_start_time": { - "name": "Charging start time" - }, "charging_end_time": { "name": "Charging end time" }, + "charging_start_time": { + "name": "Charging start time" + }, "charging_status": { "name": "Charging status", "state": { - "default": "Default", "charging": "[%key:common::state::charging%]", - "error": "[%key:common::state::error%]", "complete": "Complete", - "fully_charged": "Fully charged", + "default": "Default", + "error": "[%key:common::state::error%]", "finished_fully_charged": "Finished, fully charged", "finished_not_full": "Finished, not full", + "fully_charged": "Fully charged", "invalid": "Invalid", "not_charging": "Not charging", "plugged_in": "Plugged in", - "waiting_for_charging": "Waiting for charging", - "target_reached": "Target reached" + "target_reached": "Target reached", + "waiting_for_charging": "Waiting for charging" } }, "charging_target": { "name": "Charging target" }, - "remaining_battery_percent": { - "name": "Remaining battery percent" - }, - "mileage": { - "name": "Mileage" - }, - "remaining_range_total": { - "name": "Remaining range total" - }, - "remaining_range_electric": { - "name": "Remaining range electric" - }, - "remaining_range_fuel": { - "name": "Remaining range fuel" - }, - "remaining_fuel": { - "name": "Remaining fuel" - }, - "remaining_fuel_percent": { - "name": "Remaining fuel percent" - }, "climate_status": { "name": "Climate status", "state": { @@ -188,34 +155,84 @@ "front_left_current_pressure": { "name": "Front left tire pressure" }, - "front_right_current_pressure": { - "name": "Front right tire pressure" - }, - "rear_left_current_pressure": { - "name": "Rear left tire pressure" - }, - "rear_right_current_pressure": { - "name": "Rear right tire pressure" - }, "front_left_target_pressure": { "name": "Front left target pressure" }, + "front_right_current_pressure": { + "name": "Front right tire pressure" + }, "front_right_target_pressure": { "name": "Front right target pressure" }, + "mileage": { + "name": "Mileage" + }, + "rear_left_current_pressure": { + "name": "Rear left tire pressure" + }, "rear_left_target_pressure": { "name": "Rear left target pressure" }, + "rear_right_current_pressure": { + "name": "Rear right tire pressure" + }, "rear_right_target_pressure": { "name": "Rear right target pressure" + }, + "remaining_battery_percent": { + "name": "Remaining battery percent" + }, + "remaining_fuel": { + "name": "Remaining fuel" + }, + "remaining_fuel_percent": { + "name": "Remaining fuel percent" + }, + "remaining_range_electric": { + "name": "Remaining range electric" + }, + "remaining_range_fuel": { + "name": "Remaining range fuel" + }, + "remaining_range_total": { + "name": "Remaining range total" } }, "switch": { - "climate": { - "name": "Climate" - }, "charging": { "name": "Charging" + }, + "climate": { + "name": "Climate" + } + } + }, + "exceptions": { + "invalid_auth": { + "message": "[%key:common::config_flow::error::invalid_auth%]" + }, + "invalid_poi": { + "message": "Invalid data for point of interest: {poi_exception}" + }, + "missing_captcha": { + "message": "Login requires captcha validation" + }, + "remote_service_error": { + "message": "Error executing remote service on vehicle. {exception}" + }, + "update_failed": { + "message": "Error updating vehicle data. {exception}" + } + }, + "options": { + "step": { + "account_options": { + "data": { + "read_only": "Read-only mode" + }, + "data_description": { + "read_only": "Only retrieve values and send POI data, but don't offer any services that can change the vehicle state." + } } } }, @@ -227,22 +244,5 @@ "rest_of_world": "Rest of world" } } - }, - "exceptions": { - "invalid_poi": { - "message": "Invalid data for point of interest: {poi_exception}" - }, - "missing_captcha": { - "message": "Login requires captcha validation" - }, - "invalid_auth": { - "message": "[%key:common::config_flow::error::invalid_auth%]" - }, - "remote_service_error": { - "message": "Error executing remote service on vehicle. {exception}" - }, - "update_failed": { - "message": "Error updating vehicle data. {exception}" - } } } diff --git a/homeassistant/components/bond/icons.json b/homeassistant/components/bond/icons.json index b150d1c1fa3..ebc47a1d61c 100644 --- a/homeassistant/components/bond/icons.json +++ b/homeassistant/components/bond/icons.json @@ -1,31 +1,67 @@ { "entity": { "button": { - "stop_actions": { - "default": "mdi:stop-circle-outline" + "close_next": { + "default": "mdi:minus-box" }, - "toggle_power": { - "default": "mdi:power-cycle" + "cycle_brightness": { + "default": "mdi:brightness-percent" }, - "toggle_light": { - "default": "mdi:lightbulb" + "cycle_down_light_brightness": { + "default": "mdi:brightness-percent" }, - "increase_brightness": { - "default": "mdi:brightness-7" + "cycle_up_light_brightness": { + "default": "mdi:brightness-percent" }, "decrease_brightness": { "default": "mdi:brightness-1" }, - "toggle_up_light": { - "default": "mdi:lightbulb" - }, - "toggle_down_light": { - "default": "mdi:lightbulb" - }, - "start_dimmer": { + "decrease_down_light_brightness": { "default": "mdi:brightness-percent" }, - "start_up_light_dimmer": { + "decrease_flame": { + "default": "mdi:fire-off" + }, + "decrease_position": { + "default": "mdi:minus-box" + }, + "decrease_speed": { + "default": "mdi:skew-less" + }, + "decrease_temperature": { + "default": "mdi:thermometer-minus" + }, + "decrease_up_light_brightness": { + "default": "mdi:brightness-percent" + }, + "increase_brightness": { + "default": "mdi:brightness-7" + }, + "increase_down_light_brightness": { + "default": "mdi:brightness-percent" + }, + "increase_flame": { + "default": "mdi:fire" + }, + "increase_position": { + "default": "mdi:plus-box" + }, + "increase_speed": { + "default": "mdi:skew-more" + }, + "increase_temperature": { + "default": "mdi:thermometer-plus" + }, + "increase_up_light_brightness": { + "default": "mdi:brightness-percent" + }, + "open_next": { + "default": "mdi:plus-box" + }, + "start_decreasing_brightness": { + "default": "mdi:brightness-percent" + }, + "start_dimmer": { "default": "mdi:brightness-percent" }, "start_down_light_dimmer": { @@ -34,62 +70,26 @@ "start_increasing_brightness": { "default": "mdi:brightness-percent" }, - "start_decreasing_brightness": { + "start_up_light_dimmer": { "default": "mdi:brightness-percent" }, - "increase_up_light_brightness": { - "default": "mdi:brightness-percent" - }, - "decrease_up_light_brightness": { - "default": "mdi:brightness-percent" - }, - "increase_down_light_brightness": { - "default": "mdi:brightness-percent" - }, - "decrease_down_light_brightness": { - "default": "mdi:brightness-percent" - }, - "cycle_up_light_brightness": { - "default": "mdi:brightness-percent" - }, - "cycle_down_light_brightness": { - "default": "mdi:brightness-percent" - }, - "cycle_brightness": { - "default": "mdi:brightness-percent" - }, - "increase_speed": { - "default": "mdi:skew-more" - }, - "decrease_speed": { - "default": "mdi:skew-less" + "stop_actions": { + "default": "mdi:stop-circle-outline" }, "toggle_direction": { "default": "mdi:directions-fork" }, - "increase_temperature": { - "default": "mdi:thermometer-plus" + "toggle_down_light": { + "default": "mdi:lightbulb" }, - "decrease_temperature": { - "default": "mdi:thermometer-minus" + "toggle_light": { + "default": "mdi:lightbulb" }, - "increase_flame": { - "default": "mdi:fire" + "toggle_power": { + "default": "mdi:power-cycle" }, - "decrease_flame": { - "default": "mdi:fire-off" - }, - "increase_position": { - "default": "mdi:plus-box" - }, - "decrease_position": { - "default": "mdi:minus-box" - }, - "open_next": { - "default": "mdi:plus-box" - }, - "close_next": { - "default": "mdi:minus-box" + "toggle_up_light": { + "default": "mdi:lightbulb" } }, "light": { @@ -105,21 +105,21 @@ "set_fan_speed_tracked_state": { "service": "mdi:fan" }, - "set_switch_power_tracked_state": { - "service": "mdi:toggle-switch-variant" + "set_light_brightness_tracked_state": { + "service": "mdi:lightbulb-on" }, "set_light_power_tracked_state": { "service": "mdi:lightbulb" }, - "set_light_brightness_tracked_state": { - "service": "mdi:lightbulb-on" - }, - "start_increasing_brightness": { - "service": "mdi:brightness-7" + "set_switch_power_tracked_state": { + "service": "mdi:toggle-switch-variant" }, "start_decreasing_brightness": { "service": "mdi:brightness-1" }, + "start_increasing_brightness": { + "service": "mdi:brightness-7" + }, "stop": { "service": "mdi:stop" } diff --git a/homeassistant/components/bond/strings.json b/homeassistant/components/bond/strings.json index d65966d7701..cab9546bb2a 100644 --- a/homeassistant/components/bond/strings.json +++ b/homeassistant/components/bond/strings.json @@ -1,22 +1,7 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "confirm": { - "description": "Do you want to set up {name}?", - "data": { - "access_token": "[%key:common::config_flow::data::access_token%]" - } - }, - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "host": "The IP address of your Bond hub." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -24,78 +9,93 @@ "old_firmware": "Unsupported old firmware on the Bond device - please upgrade before continuing", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "flow_title": "{name} ({host})", + "step": { + "confirm": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "Do you want to set up {name}?" + }, + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The IP address of your Bond hub." + } + } } }, "services": { "set_fan_speed_tracked_state": { - "name": "Set fan speed tracked state", "description": "Sets the tracked fan speed for a Bond fan.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name(s) of entities to set the tracked fan speed." + "description": "Name(s) of entities to set the tracked fan speed.", + "name": "Entity" }, "speed": { - "name": "Fan Speed", - "description": "Fan Speed as %." + "description": "Fan Speed as %.", + "name": "Fan Speed" } - } + }, + "name": "Set fan speed tracked state" }, - "set_switch_power_tracked_state": { - "name": "Set switch power tracked state", - "description": "Sets the tracked power state of a Bond switch.", + "set_light_brightness_tracked_state": { + "description": "Sets the tracked brightness state of a Bond light.", "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of entities to set the tracked power state of." + "brightness": { + "description": "Brightness.", + "name": "Brightness" }, - "power_state": { - "name": "Power state", - "description": "Power state." + "entity_id": { + "description": "Name(s) of entities to set the tracked brightness state of.", + "name": "Entity" } - } + }, + "name": "Set light brightness tracked state" }, "set_light_power_tracked_state": { - "name": "Set light power tracked state", "description": "Sets the tracked power state of a Bond light.", "fields": { "entity_id": { - "name": "Entity", - "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::entity_id::description%]" + "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::entity_id::description%]", + "name": "Entity" }, "power_state": { - "name": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::name%]", - "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::description%]" + "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::description%]", + "name": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::name%]" } - } + }, + "name": "Set light power tracked state" }, - "set_light_brightness_tracked_state": { - "name": "Set light brightness tracked state", - "description": "Sets the tracked brightness state of a Bond light.", + "set_switch_power_tracked_state": { + "description": "Sets the tracked power state of a Bond switch.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name(s) of entities to set the tracked brightness state of." + "description": "Name(s) of entities to set the tracked power state of.", + "name": "Entity" }, - "brightness": { - "name": "Brightness", - "description": "Brightness." + "power_state": { + "description": "Power state.", + "name": "Power state" } - } - }, - "start_increasing_brightness": { - "name": "Start increasing brightness", - "description": "Starts increasing the brightness of the light (deprecated)." + }, + "name": "Set switch power tracked state" }, "start_decreasing_brightness": { - "name": "Start decreasing brightness", - "description": "Starts decreasing the brightness of the light (deprecated)." + "description": "Starts decreasing the brightness of the light (deprecated).", + "name": "Start decreasing brightness" + }, + "start_increasing_brightness": { + "description": "Starts increasing the brightness of the light (deprecated).", + "name": "Start increasing brightness" }, "stop": { - "name": "[%key:common::action::stop%]", - "description": "Stops any in-progress action and empty the queue (deprecated)." + "description": "Stops any in-progress action and empty the queue (deprecated).", + "name": "[%key:common::action::stop%]" } } } diff --git a/homeassistant/components/bosch_alarm/icons.json b/homeassistant/components/bosch_alarm/icons.json index c396350e37e..ea57ea5be8d 100644 --- a/homeassistant/components/bosch_alarm/icons.json +++ b/homeassistant/components/bosch_alarm/icons.json @@ -1,69 +1,6 @@ { - "services": { - "set_date_time": { - "service": "mdi:clock-edit" - } - }, "entity": { - "sensor": { - "alarms_gas": { - "default": "mdi:alert-circle" - }, - "alarms_fire": { - "default": "mdi:alert-circle" - }, - "alarms_burglary": { - "default": "mdi:alert-circle" - }, - "faulting_points": { - "default": "mdi:alert-circle" - } - }, - "switch": { - "locked": { - "default": "mdi:lock", - "state": { - "off": "mdi:lock-open" - } - }, - "secured": { - "default": "mdi:lock", - "state": { - "off": "mdi:lock-open" - } - }, - "cycling": { - "default": "mdi:lock", - "state": { - "on": "mdi:lock-open" - } - } - }, "binary_sensor": { - "panel_fault_parameter_crc_fail_in_pif": { - "default": "mdi:alert-circle" - }, - "panel_fault_phone_line_failure": { - "default": "mdi:alert-circle" - }, - "panel_fault_sdi_fail_since_rps_hang_up": { - "default": "mdi:alert-circle" - }, - "panel_fault_user_code_tamper_since_rps_hang_up": { - "default": "mdi:alert-circle" - }, - "panel_fault_fail_to_call_rps_since_rps_hang_up": { - "default": "mdi:alert-circle" - }, - "panel_fault_point_bus_fail_since_rps_hang_up": { - "default": "mdi:alert-circle" - }, - "panel_fault_log_overflow": { - "default": "mdi:alert-circle" - }, - "panel_fault_log_threshold": { - "default": "mdi:alert-circle" - }, "area_ready_to_arm_away": { "default": "mdi:shield", "state": { @@ -75,7 +12,70 @@ "state": { "on": "mdi:shield-home" } + }, + "panel_fault_fail_to_call_rps_since_rps_hang_up": { + "default": "mdi:alert-circle" + }, + "panel_fault_log_overflow": { + "default": "mdi:alert-circle" + }, + "panel_fault_log_threshold": { + "default": "mdi:alert-circle" + }, + "panel_fault_parameter_crc_fail_in_pif": { + "default": "mdi:alert-circle" + }, + "panel_fault_phone_line_failure": { + "default": "mdi:alert-circle" + }, + "panel_fault_point_bus_fail_since_rps_hang_up": { + "default": "mdi:alert-circle" + }, + "panel_fault_sdi_fail_since_rps_hang_up": { + "default": "mdi:alert-circle" + }, + "panel_fault_user_code_tamper_since_rps_hang_up": { + "default": "mdi:alert-circle" } + }, + "sensor": { + "alarms_burglary": { + "default": "mdi:alert-circle" + }, + "alarms_fire": { + "default": "mdi:alert-circle" + }, + "alarms_gas": { + "default": "mdi:alert-circle" + }, + "faulting_points": { + "default": "mdi:alert-circle" + } + }, + "switch": { + "cycling": { + "default": "mdi:lock", + "state": { + "on": "mdi:lock-open" + } + }, + "locked": { + "default": "mdi:lock", + "state": { + "off": "mdi:lock-open" + } + }, + "secured": { + "default": "mdi:lock", + "state": { + "off": "mdi:lock-open" + } + } + } + }, + "services": { + "set_date_time": { + "service": "mdi:clock-edit" } } } diff --git a/homeassistant/components/bosch_alarm/strings.json b/homeassistant/components/bosch_alarm/strings.json index 3adccda2ee5..2101056ca46 100644 --- a/homeassistant/components/bosch_alarm/strings.json +++ b/homeassistant/components/bosch_alarm/strings.json @@ -1,7 +1,43 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "device_mismatch": "Please ensure you reconfigure against the same device.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_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%]" + }, "flow_title": "{model} ({host})", "step": { + "auth": { + "data": { + "installer_code": "Installer code", + "password": "[%key:common::config_flow::data::password%]", + "user_code": "User code" + }, + "data_description": { + "installer_code": "The installer code from your panel", + "password": "The Mode 2 automation code from your panel", + "user_code": "The user code from your panel" + } + }, + "reauth_confirm": { + "data": { + "installer_code": "[%key:component::bosch_alarm::config::step::auth::data::installer_code%]", + "password": "[%key:common::config_flow::data::password%]", + "user_code": "[%key:component::bosch_alarm::config::step::auth::data::user_code%]" + }, + "data_description": { + "installer_code": "[%key:component::bosch_alarm::config::step::auth::data_description::installer_code%]", + "password": "[%key:component::bosch_alarm::config::step::auth::data_description::password%]", + "user_code": "[%key:component::bosch_alarm::config::step::auth::data_description::user_code%]" + } + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -11,174 +47,138 @@ "host": "The hostname or IP address of your Bosch alarm panel", "port": "The port used to connect to your Bosch alarm panel. This is usually 7700" } - }, - "auth": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "installer_code": "Installer code", - "user_code": "User code" - }, - "data_description": { - "password": "The Mode 2 automation code from your panel", - "installer_code": "The installer code from your panel", - "user_code": "The user code from your panel" - } - }, - "reauth_confirm": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "installer_code": "[%key:component::bosch_alarm::config::step::auth::data::installer_code%]", - "user_code": "[%key:component::bosch_alarm::config::step::auth::data::user_code%]" - }, - "data_description": { - "password": "[%key:component::bosch_alarm::config::step::auth::data_description::password%]", - "installer_code": "[%key:component::bosch_alarm::config::step::auth::data_description::installer_code%]", - "user_code": "[%key:component::bosch_alarm::config::step::auth::data_description::user_code%]" - } - } - }, - "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_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "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%]", - "device_mismatch": "Please ensure you reconfigure against the same device." - } - }, - "exceptions": { - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." - }, - "not_loaded": { - "message": "{target} is not loaded." - }, - "connection_error": { - "message": "Could not connect to \"{target}\"." - }, - "unknown_error": { - "message": "An unknown error occurred while setting the date and time on \"{target}\"." - }, - "cannot_connect": { - "message": "Could not connect to panel." - }, - "authentication_failed": { - "message": "Incorrect credentials for panel." - }, - "incorrect_door_state": { - "message": "Door cannot be manipulated while it is momentarily unlocked." - } - }, - "services": { - "set_date_time": { - "name": "Set date & time", - "description": "Sets the date and time on the alarm panel.", - "fields": { - "datetime": { - "name": "Date & time", - "description": "The date and time to set. The time zone of the Home Assistant instance is assumed. If omitted, the current date and time is used." - }, - "config_entry_id": { - "name": "Config entry", - "description": "The Bosch Alarm integration ID." - } } } }, "entity": { "binary_sensor": { - "panel_fault_battery_mising": { - "name": "Battery missing" + "area_ready_to_arm_away": { + "name": "Area ready to arm away", + "state": { + "off": "Not ready", + "on": "Ready" + } + }, + "area_ready_to_arm_home": { + "name": "Area ready to arm home", + "state": { + "off": "Not ready", + "on": "Ready" + } }, "panel_fault_ac_fail": { "name": "AC failure" }, - "panel_fault_parameter_crc_fail_in_pif": { - "name": "CRC failure in panel configuration" - }, - "panel_fault_phone_line_failure": { - "name": "Phone line failure" - }, - "panel_fault_sdi_fail_since_rps_hang_up": { - "name": "SDI failure since last RPS connection" - }, - "panel_fault_user_code_tamper_since_rps_hang_up": { - "name": "User code tamper since last RPS connection" + "panel_fault_battery_mising": { + "name": "Battery missing" }, "panel_fault_fail_to_call_rps_since_rps_hang_up": { "name": "Failure to call RPS since last RPS connection" }, - "panel_fault_point_bus_fail_since_rps_hang_up": { - "name": "Point bus failure since last RPS connection" - }, "panel_fault_log_overflow": { "name": "Log overflow" }, "panel_fault_log_threshold": { "name": "Log threshold reached" }, - "area_ready_to_arm_away": { - "name": "Area ready to arm away", - "state": { - "on": "Ready", - "off": "Not ready" - } + "panel_fault_parameter_crc_fail_in_pif": { + "name": "CRC failure in panel configuration" }, - "area_ready_to_arm_home": { - "name": "Area ready to arm home", - "state": { - "on": "Ready", - "off": "Not ready" - } - } - }, - "switch": { - "secured": { - "name": "Secured" + "panel_fault_phone_line_failure": { + "name": "Phone line failure" }, - "cycling": { - "name": "Momentarily unlocked" + "panel_fault_point_bus_fail_since_rps_hang_up": { + "name": "Point bus failure since last RPS connection" }, - "locked": { - "name": "Locked" + "panel_fault_sdi_fail_since_rps_hang_up": { + "name": "SDI failure since last RPS connection" + }, + "panel_fault_user_code_tamper_since_rps_hang_up": { + "name": "User code tamper since last RPS connection" } }, "sensor": { - "alarms_gas": { - "name": "Gas alarm issues", + "alarms_burglary": { + "name": "Burglary alarm issues", "state": { - "supervisory": "Supervisory", - "trouble": "Trouble", - "alarm": "Alarm", - "no_issues": "No issues" + "alarm": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::alarm%]", + "no_issues": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::no_issues%]", + "supervisory": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::supervisory%]", + "trouble": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::trouble%]" } }, "alarms_fire": { "name": "Fire alarm issues", "state": { - "supervisory": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::supervisory%]", - "trouble": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::trouble%]", "alarm": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::alarm%]", - "no_issues": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::no_issues%]" + "no_issues": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::no_issues%]", + "supervisory": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::supervisory%]", + "trouble": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::trouble%]" } }, - "alarms_burglary": { - "name": "Burglary alarm issues", + "alarms_gas": { + "name": "Gas alarm issues", "state": { - "supervisory": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::supervisory%]", - "trouble": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::trouble%]", - "alarm": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::alarm%]", - "no_issues": "[%key:component::bosch_alarm::entity::sensor::alarms_gas::state::no_issues%]" + "alarm": "Alarm", + "no_issues": "No issues", + "supervisory": "Supervisory", + "trouble": "Trouble" } }, "faulting_points": { "name": "Faulting points", "unit_of_measurement": "points" } + }, + "switch": { + "cycling": { + "name": "Momentarily unlocked" + }, + "locked": { + "name": "Locked" + }, + "secured": { + "name": "Secured" + } + } + }, + "exceptions": { + "authentication_failed": { + "message": "Incorrect credentials for panel." + }, + "cannot_connect": { + "message": "Could not connect to panel." + }, + "connection_error": { + "message": "Could not connect to \"{target}\"." + }, + "incorrect_door_state": { + "message": "Door cannot be manipulated while it is momentarily unlocked." + }, + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, + "not_loaded": { + "message": "{target} is not loaded." + }, + "unknown_error": { + "message": "An unknown error occurred while setting the date and time on \"{target}\"." + } + }, + "services": { + "set_date_time": { + "description": "Sets the date and time on the alarm panel.", + "fields": { + "config_entry_id": { + "description": "The Bosch Alarm integration ID.", + "name": "Config entry" + }, + "datetime": { + "description": "The date and time to set. The time zone of the Home Assistant instance is assumed. If omitted, the current date and time is used.", + "name": "Date & time" + } + }, + "name": "Set date & time" } } } diff --git a/homeassistant/components/bosch_shc/icons.json b/homeassistant/components/bosch_shc/icons.json index 0b1cb767054..f5ef6e6165b 100644 --- a/homeassistant/components/bosch_shc/icons.json +++ b/homeassistant/components/bosch_shc/icons.json @@ -1,12 +1,12 @@ { "entity": { "sensor": { - "purity": { - "default": "mdi:molecule-co2" - }, "communication_quality": { "default": "mdi:wifi" }, + "purity": { + "default": "mdi:molecule-co2" + }, "valvetappet": { "default": "mdi:gauge" } diff --git a/homeassistant/components/bosch_shc/manifest.json b/homeassistant/components/bosch_shc/manifest.json index bd2e127df3f..c645c5dcc01 100644 --- a/homeassistant/components/bosch_shc/manifest.json +++ b/homeassistant/components/bosch_shc/manifest.json @@ -10,8 +10,8 @@ "requirements": ["boschshcpy==0.2.107"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "bosch shc*" + "name": "bosch shc*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/bosch_shc/strings.json b/homeassistant/components/bosch_shc/strings.json index 7aa3b0ace32..c747701a4b7 100644 --- a/homeassistant/components/bosch_shc/strings.json +++ b/homeassistant/components/bosch_shc/strings.json @@ -1,15 +1,20 @@ { "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%]", + "pairing_failed": "Pairing failed; please check the Bosch Smart Home Controller is in pairing mode (LED flashing) as well as your password is correct.", + "session_error": "Session error: API returned Non-OK result.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "Bosch SHC: {name}", "step": { - "user": { - "description": "Set up your Bosch Smart Home Controller to allow monitoring and control with Home Assistant.", - "title": "SHC authentication parameters", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of your Bosch Smart Home Controller." - } + "confirm_discovery": { + "description": "Smart Home Controller I: Please press the front-side button until LED starts flashing.\nSmart Home Controller II: Press the function button shortly. Cloud and network lights start blinking orange.\nDevice is now ready to be paired.\n\nReady to continue to set up {model} @ {host} with Home Assistant?" }, "credentials": { "data": { @@ -19,52 +24,47 @@ "password": "Password of the Smart Home Controller" } }, - "confirm_discovery": { - "description": "Smart Home Controller I: Please press the front-side button until LED starts flashing.\nSmart Home Controller II: Press the function button shortly. Cloud and network lights start blinking orange.\nDevice is now ready to be paired.\n\nReady to continue to set up {model} @ {host} with Home Assistant?" - }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Bosch SHC integration needs to re-authenticate your account", "data": { "host": "[%key:common::config_flow::data::host%]" - } + }, + "description": "The Bosch SHC integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of your Bosch Smart Home Controller." + }, + "description": "Set up your Bosch Smart Home Controller to allow monitoring and control with Home Assistant.", + "title": "SHC authentication parameters" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "pairing_failed": "Pairing failed; please check the Bosch Smart Home Controller is in pairing mode (LED flashing) as well as your password is correct.", - "session_error": "Session error: API returned Non-OK result.", - "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%]" - }, - "flow_title": "Bosch SHC: {name}" + } }, "entity": { "sensor": { - "purity_rating": { - "name": "Purity rating" - }, - "purity": { - "name": "Purity" - }, - "valvetappet": { - "name": "Valvetappet" - }, "air_quality": { "name": "Air quality" }, - "temperature_rating": { - "name": "Temperature rating" + "communication_quality": { + "name": "Communication quality" }, "humidity_rating": { "name": "Humidity rating" }, - "communication_quality": { - "name": "Communication quality" + "purity": { + "name": "Purity" + }, + "purity_rating": { + "name": "Purity rating" + }, + "temperature_rating": { + "name": "Temperature rating" + }, + "valvetappet": { + "name": "Valvetappet" } }, "switch": { diff --git a/homeassistant/components/braviatv/manifest.json b/homeassistant/components/braviatv/manifest.json index a445a34cfcd..15ab864990f 100644 --- a/homeassistant/components/braviatv/manifest.json +++ b/homeassistant/components/braviatv/manifest.json @@ -10,8 +10,8 @@ "requirements": ["pybravia==0.3.4"], "ssdp": [ { - "st": "urn:schemas-sony-com:service:ScalarWebAPI:1", - "manufacturer": "Sony Corporation" + "manufacturer": "Sony Corporation", + "st": "urn:schemas-sony-com:service:ScalarWebAPI:1" } ] } diff --git a/homeassistant/components/braviatv/strings.json b/homeassistant/components/braviatv/strings.json index 4b28fa91d74..c3ba71b547f 100644 --- a/homeassistant/components/braviatv/strings.json +++ b/homeassistant/components/braviatv/strings.json @@ -1,51 +1,51 @@ { "config": { - "step": { - "user": { - "description": "Ensure that your TV is turned on before trying to set it up.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Sony Bravia TV to control." - } - }, - "authorize": { - "title": "Authorize Sony Bravia TV", - "description": "Make sure that «Control remotely» is enabled on your TV, go to: \nSettings -> Network -> Remote device settings -> Control remotely. \n\nThere are two authorization methods: PIN code or PSK (Pre-Shared Key). \nAuthorization via PSK is recommended as more stable.", - "data": { - "use_psk": "Use PSK authentication" - } - }, - "pin": { - "title": "[%key:component::braviatv::config::step::authorize::title%]", - "description": "Enter the PIN code shown on the Sony Bravia TV. \n\nIf the PIN code is not shown, you have to unregister Home Assistant on your TV, go to: Settings -> Network -> Remote device settings -> Deregister remote device.", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - }, - "psk": { - "title": "[%key:component::braviatv::config::step::authorize::title%]", - "description": "To set up PSK on your TV, go to: Settings -> Network -> Home Network Setup -> IP Control. Set «Authentication» to «Normal and Pre-Shared Key» or «Pre-Shared Key» and define your Pre-Shared-Key string (e.g. sony). \n\nThen enter your PSK here.", - "data": { - "pin": "PSK" - } - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, - "error": { - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unsupported_model": "Your TV model is not supported." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "no_ip_control": "IP Control is disabled on your TV or the TV is not supported.", "not_bravia_device": "The device is not a Bravia TV.", "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_host": "[%key:common::config_flow::error::invalid_host%]", + "unsupported_model": "Your TV model is not supported." + }, + "step": { + "authorize": { + "data": { + "use_psk": "Use PSK authentication" + }, + "description": "Make sure that «Control remotely» is enabled on your TV, go to: \nSettings -> Network -> Remote device settings -> Control remotely. \n\nThere are two authorization methods: PIN code or PSK (Pre-Shared Key). \nAuthorization via PSK is recommended as more stable.", + "title": "Authorize Sony Bravia TV" + }, + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "pin": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Enter the PIN code shown on the Sony Bravia TV. \n\nIf the PIN code is not shown, you have to unregister Home Assistant on your TV, go to: Settings -> Network -> Remote device settings -> Deregister remote device.", + "title": "[%key:component::braviatv::config::step::authorize::title%]" + }, + "psk": { + "data": { + "pin": "PSK" + }, + "description": "To set up PSK on your TV, go to: Settings -> Network -> Home Network Setup -> IP Control. Set «Authentication» to «Normal and Pre-Shared Key» or «Pre-Shared Key» and define your Pre-Shared-Key string (e.g. sony). \n\nThen enter your PSK here.", + "title": "[%key:component::braviatv::config::step::authorize::title%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Sony Bravia TV to control." + }, + "description": "Ensure that your TV is turned on before trying to set it up." + } } }, "entity": { diff --git a/homeassistant/components/bring/icons.json b/homeassistant/components/bring/icons.json index 288921c41b4..3d538e62a85 100644 --- a/homeassistant/components/bring/icons.json +++ b/homeassistant/components/bring/icons.json @@ -6,24 +6,24 @@ } }, "sensor": { - "urgent": { - "default": "mdi:run-fast" + "convenient": { + "default": "mdi:fridge-outline" }, "discounted": { "default": "mdi:brightness-percent" }, - "convenient": { - "default": "mdi:fridge-outline" + "list_access": { + "default": "mdi:account-lock", + "state": { + "invitation": "mdi:account-multiple-plus", + "shared": "mdi:account-group" + } }, "list_language": { "default": "mdi:earth" }, - "list_access": { - "default": "mdi:account-lock", - "state": { - "shared": "mdi:account-group", - "invitation": "mdi:account-multiple-plus" - } + "urgent": { + "default": "mdi:run-fast" } }, "todo": { diff --git a/homeassistant/components/bring/strings.json b/homeassistant/components/bring/strings.json index 6ce16ca52ca..3dad23289d8 100644 --- a/homeassistant/components/bring/strings.json +++ b/homeassistant/components/bring/strings.json @@ -3,10 +3,44 @@ "shopping_list_items": "items" }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "The login details correspond to a different account. Please re-authenticate to the previously configured account." + }, + "error": { + "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "email": "[%key:component::bring::config::step::user::data_description::email%]", + "password": "[%key:component::bring::config::step::user::data_description::password%]" + }, + "description": "The Bring! integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "email": "[%key:component::bring::config::step::user::data_description::email%]", + "password": "[%key:component::bring::config::step::user::data_description::password%]" + }, + "description": "Update your credentials if you have changed your Bring! account email or password.", + "title": "Bring! configuration" + }, "user": { - "title": "Bring! Grocery shopping list", - "description": "Connect your Bring! account to sync your shopping lists with Home Assistant.\n\nDon't have a Bring! account? Download the app on [Google Play for Android]({google_play}) or the [App Store for iOS]({app_store}) to sign up.", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -14,44 +48,10 @@ "data_description": { "email": "The email address associated with your Bring! account.", "password": "The password to log in to your Bring! account." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Bring! integration needs to re-authenticate your account", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "email": "[%key:component::bring::config::step::user::data_description::email%]", - "password": "[%key:component::bring::config::step::user::data_description::password%]" - } - }, - "reconfigure": { - "title": "Bring! configuration", - "description": "Update your credentials if you have changed your Bring! account email or password.", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "email": "[%key:component::bring::config::step::user::data_description::email%]", - "password": "[%key:component::bring::config::step::user::data_description::password%]" - } + "description": "Connect your Bring! account to sync your shopping lists with Home Assistant.\n\nDon't have a Bring! account? Download the app on [Google Play for Android]({google_play}) or the [App Store for iOS]({app_store}) to sign up.", + "title": "Bring! Grocery shopping list" } - }, - "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%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "The login details correspond to a different account. Please re-authenticate to the previously configured account.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "entity": { @@ -70,10 +70,6 @@ } }, "sensor": { - "urgent": { - "name": "Urgent", - "unit_of_measurement": "[%key:component::bring::common::shopping_list_items%]" - }, "convenient": { "name": "On occasion", "unit_of_measurement": "[%key:component::bring::common::shopping_list_items%]" @@ -82,6 +78,14 @@ "name": "Discount only", "unit_of_measurement": "[%key:component::bring::common::shopping_list_items%]" }, + "list_access": { + "name": "List access", + "state": { + "invitation": "Invitation pending", + "registered": "Private", + "shared": "Shared" + } + }, "list_language": { "name": "Region & language", "state": { @@ -107,37 +111,22 @@ "tr-tr": "Türkiye" } }, - "list_access": { - "name": "List access", - "state": { - "registered": "Private", - "shared": "Shared", - "invitation": "Invitation pending" - } + "urgent": { + "name": "Urgent", + "unit_of_measurement": "[%key:component::bring::common::shopping_list_items%]" } } }, "exceptions": { - "todo_save_item_failed": { - "message": "Failed to save item {name} to Bring! list" + "activity_not_found": { + "message": "Failed to send reaction for Bring! — No recent activity found" }, - "todo_update_item_failed": { - "message": "Failed to update item {name} to Bring! list" + "entity_not_found": { + "message": "Failed to send reaction for Bring! — Unknown entity {entity_id}" }, - "todo_rename_item_failed": { - "message": "Failed to rename item {name} to Bring! list" - }, - "todo_delete_item_failed": { - "message": "Failed to delete {count} item(s) from Bring! list" - }, - "setup_request_exception": { - "message": "Failed to connect to server, try again later" - }, - "setup_parse_exception": { - "message": "Failed to parse server response, try again later" - }, - "setup_authentication_exception": { - "message": "Authentication failed for {email}, check your email and password" + + "entry_not_loaded": { + "message": "The account associated with this Bring! list is either not loaded or disabled in Home Assistant." }, "notify_missing_argument": { "message": "This action requires field {field}, please enter a valid value for {field}" @@ -148,55 +137,66 @@ "reaction_request_failed": { "message": "Failed to send reaction for Bring! due to a connection error, try again later" }, - "activity_not_found": { - "message": "Failed to send reaction for Bring! — No recent activity found" + "setup_authentication_exception": { + "message": "Authentication failed for {email}, check your email and password" }, - "entity_not_found": { - "message": "Failed to send reaction for Bring! — Unknown entity {entity_id}" + "setup_parse_exception": { + "message": "Failed to parse server response, try again later" }, - - "entry_not_loaded": { - "message": "The account associated with this Bring! list is either not loaded or disabled in Home Assistant." - } - }, - "services": { - "send_message": { - "name": "[%key:component::notify::services::notify::name%]", - "description": "Sends a mobile push notification to members of a shared Bring! list.", - "fields": { - "message": { - "name": "Notification type", - "description": "Type of push notification to send to list members." - }, - "item": { - "name": "Item (Required if notification type 'Urgent message' is selected)", - "description": "Item name(s) to include in an urgent message e.g. 'Attention! Attention! - We still urgently need: [Items]'" - } - } + "setup_request_exception": { + "message": "Failed to connect to server, try again later" }, - "send_reaction": { - "name": "Send reaction", - "description": "Sends a reaction to a recent activity on a Bring! list by a member of the shared list.", - "fields": { - "entity_id": { - "name": "Activities", - "description": "Select the Bring! activities event entity for reacting to its most recent event" - }, - "reaction": { - "name": "Reaction", - "description": "Type of reaction to send in response." - } - } + "todo_delete_item_failed": { + "message": "Failed to delete {count} item(s) from Bring! list" + }, + "todo_rename_item_failed": { + "message": "Failed to rename item {name} to Bring! list" + }, + "todo_save_item_failed": { + "message": "Failed to save item {name} to Bring! list" + }, + "todo_update_item_failed": { + "message": "Failed to update item {name} to Bring! list" } }, "selector": { "notification_type_selector": { "options": { - "going_shopping": "I'm going shopping! - Last chance for adjustments", "changed_list": "I changed the list! - Take a look at the items", + "going_shopping": "I'm going shopping! - Last chance for adjustments", "shopping_done": "The shopping is done - Our fridge is well stocked", "urgent_message": "Attention! Attention! - We still urgently need: [Items]" } } + }, + "services": { + "send_message": { + "description": "Sends a mobile push notification to members of a shared Bring! list.", + "fields": { + "item": { + "description": "Item name(s) to include in an urgent message e.g. 'Attention! Attention! - We still urgently need: [Items]'", + "name": "Item (Required if notification type 'Urgent message' is selected)" + }, + "message": { + "description": "Type of push notification to send to list members.", + "name": "Notification type" + } + }, + "name": "[%key:component::notify::services::notify::name%]" + }, + "send_reaction": { + "description": "Sends a reaction to a recent activity on a Bring! list by a member of the shared list.", + "fields": { + "entity_id": { + "description": "Select the Bring! activities event entity for reacting to its most recent event", + "name": "Activities" + }, + "reaction": { + "description": "Type of reaction to send in response.", + "name": "Reaction" + } + }, + "name": "Send reaction" + } } } diff --git a/homeassistant/components/broadlink/strings.json b/homeassistant/components/broadlink/strings.json index 492023afd66..a019f350ec0 100644 --- a/homeassistant/components/broadlink/strings.json +++ b/homeassistant/components/broadlink/strings.json @@ -1,38 +1,5 @@ { "config": { - "flow_title": "{name} ({model} at {host})", - "step": { - "user": { - "description": "Connect to the device", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "timeout": "Timeout" - }, - "data_description": { - "host": "The hostname or IP address of your Broadlink device." - } - }, - "auth": { - "title": "Authenticate to the device" - }, - "reset": { - "title": "Unlock the device", - "description": "{name} ({model} at {host}) is locked. You need to unlock the device in order to authenticate and complete the configuration. Instructions:\n1. Open the Broadlink app.\n2. Select the device.\n3. Select `...` in the upper right.\n4. Scroll to the bottom of the page.\n5. Disable the lock." - }, - "unlock": { - "title": "Unlock the device (optional)", - "description": "{name} ({model} at {host}) is locked. This can lead to authentication problems in Home Assistant. Would you like to unlock it?", - "data": { - "unlock": "Yes, do it." - } - }, - "finish": { - "title": "Choose a name for the device", - "data": { - "name": "[%key:common::config_flow::data::name%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -46,9 +13,56 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name} ({model} at {host})", + "step": { + "auth": { + "title": "Authenticate to the device" + }, + "finish": { + "data": { + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "Choose a name for the device" + }, + "reset": { + "description": "{name} ({model} at {host}) is locked. You need to unlock the device in order to authenticate and complete the configuration. Instructions:\n1. Open the Broadlink app.\n2. Select the device.\n3. Select `...` in the upper right.\n4. Scroll to the bottom of the page.\n5. Disable the lock.", + "title": "Unlock the device" + }, + "unlock": { + "data": { + "unlock": "Yes, do it." + }, + "description": "{name} ({model} at {host}) is locked. This can lead to authentication problems in Home Assistant. Would you like to unlock it?", + "title": "Unlock the device (optional)" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "timeout": "Timeout" + }, + "data_description": { + "host": "The hostname or IP address of your Broadlink device." + }, + "description": "Connect to the device" + } } }, "entity": { + "select": { + "day_of_week": { + "name": "Day of week", + "state": { + "friday": "[%key:common::time::friday%]", + "monday": "[%key:common::time::monday%]", + "saturday": "[%key:common::time::saturday%]", + "sunday": "[%key:common::time::sunday%]", + "thursday": "[%key:common::time::thursday%]", + "tuesday": "[%key:common::time::tuesday%]", + "wednesday": "[%key:common::time::wednesday%]" + } + } + }, "sensor": { "light": { "name": "[%key:component::sensor::entity_component::illuminance::name%]" @@ -62,20 +76,6 @@ "total_consumption": { "name": "Total consumption" } - }, - "select": { - "day_of_week": { - "name": "Day of week", - "state": { - "monday": "[%key:common::time::monday%]", - "tuesday": "[%key:common::time::tuesday%]", - "wednesday": "[%key:common::time::wednesday%]", - "thursday": "[%key:common::time::thursday%]", - "friday": "[%key:common::time::friday%]", - "saturday": "[%key:common::time::saturday%]", - "sunday": "[%key:common::time::sunday%]" - } - } } } } diff --git a/homeassistant/components/brother/icons.json b/homeassistant/components/brother/icons.json index 0e609f4190a..f06c3c4994d 100644 --- a/homeassistant/components/brother/icons.json +++ b/homeassistant/components/brother/icons.json @@ -13,10 +13,10 @@ "black_drum_remaining_pages": { "default": "mdi:chart-donut" }, - "black_toner_remaining": { + "black_ink_remaining": { "default": "mdi:printer-3d-nozzle" }, - "black_ink_remaining": { + "black_toner_remaining": { "default": "mdi:printer-3d-nozzle" }, "bw_pages": { @@ -73,9 +73,6 @@ "magenta_toner_remaining": { "default": "mdi:printer-3d-nozzle" }, - "status": { - "default": "mdi:printer" - }, "page_counter": { "default": "mdi:file-document-outline" }, @@ -85,6 +82,9 @@ "pf_kit_mp_remaining_life": { "default": "mdi:printer-3d" }, + "status": { + "default": "mdi:printer" + }, "yellow_drum_page_counter": { "default": "mdi:chart-donut" }, diff --git a/homeassistant/components/brother/manifest.json b/homeassistant/components/brother/manifest.json index b1b8d695e74..4fa2af67043 100644 --- a/homeassistant/components/brother/manifest.json +++ b/homeassistant/components/brother/manifest.json @@ -11,8 +11,8 @@ "requirements": ["brother==5.1.1"], "zeroconf": [ { - "type": "_printer._tcp.local.", - "name": "brother*" + "name": "brother*", + "type": "_printer._tcp.local." } ] } diff --git a/homeassistant/components/brother/strings.json b/homeassistant/components/brother/strings.json index f5da85ebb77..3ad35cba3b6 100644 --- a/homeassistant/components/brother/strings.json +++ b/homeassistant/components/brother/strings.json @@ -1,7 +1,40 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unsupported_model": "This printer model is not supported." + }, + "error": { + "another_device": "The IP address or hostname of another Brother printer was used.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "snmp_error": "SNMP server turned off or printer not supported.", + "wrong_host": "Invalid hostname or IP address." + }, "flow_title": "{model} {serial_number}", "step": { + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "[%key:component::brother::config::step::user::data_description::host%]" + }, + "description": "Update configuration for {printer_name}.", + "sections": { + "advanced_settings": { + "data": { + "community": "SNMP Community", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "community": "A simple password for devices to communicate to each other.", + "port": "The SNMP port of the Brother printer." + }, + "name": "Advanced settings" + } + } + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -13,106 +46,50 @@ }, "sections": { "advanced_settings": { - "name": "Advanced settings", "data": { - "port": "[%key:common::config_flow::data::port%]", - "community": "SNMP Community" + "community": "SNMP Community", + "port": "[%key:common::config_flow::data::port%]" }, "data_description": { - "port": "The SNMP port of the Brother printer.", - "community": "A simple password for devices to communicate to each other." - } + "community": "A simple password for devices to communicate to each other.", + "port": "The SNMP port of the Brother printer." + }, + "name": "Advanced settings" } } }, "zeroconf_confirm": { - "description": "Do you want to add the printer {model} with serial number `{serial_number}` to Home Assistant?", - "title": "Discovered Brother Printer", "data": { "type": "[%key:component::brother::config::step::user::data::type%]" }, "data_description": { "type": "[%key:component::brother::config::step::user::data_description::type%]" }, + "description": "Do you want to add the printer {model} with serial number `{serial_number}` to Home Assistant?", "sections": { "advanced_settings": { - "name": "Advanced settings", "data": { - "port": "[%key:common::config_flow::data::port%]", - "community": "SNMP Community" + "community": "SNMP Community", + "port": "[%key:common::config_flow::data::port%]" }, "data_description": { - "port": "The SNMP port of the Brother printer.", - "community": "A simple password for devices to communicate to each other." - } - } - } - }, - "reconfigure": { - "description": "Update configuration for {printer_name}.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "[%key:component::brother::config::step::user::data_description::host%]" - }, - "sections": { - "advanced_settings": { - "name": "Advanced settings", - "data": { - "port": "[%key:common::config_flow::data::port%]", - "community": "SNMP Community" + "community": "A simple password for devices to communicate to each other.", + "port": "The SNMP port of the Brother printer." }, - "data_description": { - "port": "The SNMP port of the Brother printer.", - "community": "A simple password for devices to communicate to each other." - } + "name": "Advanced settings" } - } + }, + "title": "Discovered Brother Printer" } - }, - "error": { - "wrong_host": "Invalid hostname or IP address.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "snmp_error": "SNMP server turned off or printer not supported.", - "another_device": "The IP address or hostname of another Brother printer was used." - }, - "abort": { - "unsupported_model": "This printer model is not supported.", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "entity": { "sensor": { - "status": { - "name": "Status" + "belt_unit_remaining_life": { + "name": "Belt unit remaining lifetime" }, - "page_counter": { - "name": "Page counter", - "unit_of_measurement": "pages" - }, - "bw_pages": { - "name": "B/W pages", - "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" - }, - "color_pages": { - "name": "Color pages", - "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" - }, - "duplex_unit_page_counter": { - "name": "Duplex unit page counter", - "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" - }, - "drum_remaining_life": { - "name": "Drum remaining lifetime" - }, - "drum_remaining_pages": { - "name": "Drum remaining pages", - "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" - }, - "drum_page_counter": { - "name": "Drum page counter", + "black_drum_page_counter": { + "name": "Black drum page counter", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, "black_drum_remaining_life": { @@ -122,8 +99,22 @@ "name": "Black drum remaining pages", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, - "black_drum_page_counter": { - "name": "Black drum page counter", + "black_ink_remaining": { + "name": "Black ink remaining" + }, + "black_toner_remaining": { + "name": "Black toner remaining" + }, + "bw_pages": { + "name": "B/W pages", + "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" + }, + "color_pages": { + "name": "Color pages", + "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" + }, + "cyan_drum_page_counter": { + "name": "Cyan drum page counter", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, "cyan_drum_remaining_life": { @@ -133,8 +124,38 @@ "name": "Cyan drum remaining pages", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, - "cyan_drum_page_counter": { - "name": "Cyan drum page counter", + "cyan_ink_remaining": { + "name": "Cyan ink remaining" + }, + "cyan_toner_remaining": { + "name": "Cyan toner remaining" + }, + "drum_page_counter": { + "name": "Drum page counter", + "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" + }, + "drum_remaining_life": { + "name": "Drum remaining lifetime" + }, + "drum_remaining_pages": { + "name": "Drum remaining pages", + "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" + }, + "duplex_unit_page_counter": { + "name": "Duplex unit page counter", + "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" + }, + "fuser_remaining_life": { + "name": "Fuser remaining lifetime" + }, + "laser_remaining_life": { + "name": "Laser remaining lifetime" + }, + "last_restart": { + "name": "Last restart" + }, + "magenta_drum_page_counter": { + "name": "Magenta drum page counter", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, "magenta_drum_remaining_life": { @@ -144,8 +165,27 @@ "name": "Magenta drum remaining pages", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, - "magenta_drum_page_counter": { - "name": "Magenta drum page counter", + "magenta_ink_remaining": { + "name": "Magenta ink remaining" + }, + "magenta_toner_remaining": { + "name": "Magenta toner remaining" + }, + "page_counter": { + "name": "Page counter", + "unit_of_measurement": "pages" + }, + "pf_kit_1_remaining_life": { + "name": "PF Kit 1 remaining lifetime" + }, + "pf_kit_mp_remaining_life": { + "name": "PF Kit MP remaining lifetime" + }, + "status": { + "name": "Status" + }, + "yellow_drum_page_counter": { + "name": "Yellow drum page counter", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, "yellow_drum_remaining_life": { @@ -155,51 +195,11 @@ "name": "Yellow drum remaining pages", "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" }, - "yellow_drum_page_counter": { - "name": "Yellow drum page counter", - "unit_of_measurement": "[%key:component::brother::entity::sensor::page_counter::unit_of_measurement%]" - }, - "belt_unit_remaining_life": { - "name": "Belt unit remaining lifetime" - }, - "fuser_remaining_life": { - "name": "Fuser remaining lifetime" - }, - "laser_remaining_life": { - "name": "Laser remaining lifetime" - }, - "pf_kit_1_remaining_life": { - "name": "PF Kit 1 remaining lifetime" - }, - "pf_kit_mp_remaining_life": { - "name": "PF Kit MP remaining lifetime" - }, - "black_toner_remaining": { - "name": "Black toner remaining" - }, - "cyan_toner_remaining": { - "name": "Cyan toner remaining" - }, - "magenta_toner_remaining": { - "name": "Magenta toner remaining" - }, - "yellow_toner_remaining": { - "name": "Yellow toner remaining" - }, - "black_ink_remaining": { - "name": "Black ink remaining" - }, - "cyan_ink_remaining": { - "name": "Cyan ink remaining" - }, - "magenta_ink_remaining": { - "name": "Magenta ink remaining" - }, "yellow_ink_remaining": { "name": "Yellow ink remaining" }, - "last_restart": { - "name": "Last restart" + "yellow_toner_remaining": { + "name": "Yellow toner remaining" } } }, diff --git a/homeassistant/components/brottsplatskartan/strings.json b/homeassistant/components/brottsplatskartan/strings.json index bd8d5ad8dbe..ec3df34d24f 100644 --- a/homeassistant/components/brottsplatskartan/strings.json +++ b/homeassistant/components/brottsplatskartan/strings.json @@ -6,12 +6,12 @@ "step": { "user": { "data": { - "location": "[%key:common::config_flow::data::location%]", - "area": "Area" + "area": "Area", + "location": "[%key:common::config_flow::data::location%]" }, "data_description": { - "location": "Put marker on location to cover within 5km radius", - "area": "If area is selected, any marked location is ignored" + "area": "If area is selected, any marked location is ignored", + "location": "Put marker on location to cover within 5km radius" } } } diff --git a/homeassistant/components/browser/strings.json b/homeassistant/components/browser/strings.json index 9083ba93795..90e396b5a0c 100644 --- a/homeassistant/components/browser/strings.json +++ b/homeassistant/components/browser/strings.json @@ -1,14 +1,14 @@ { "services": { "browse_url": { - "name": "Browse", "description": "Opens a URL in the default browser on the host machine of Home Assistant.", "fields": { "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "The URL to open." + "description": "The URL to open.", + "name": "[%key:common::config_flow::data::url%]" } - } + }, + "name": "Browse" } } } diff --git a/homeassistant/components/brunt/strings.json b/homeassistant/components/brunt/strings.json index c1f80f66bc7..502f5061fef 100644 --- a/homeassistant/components/brunt/strings.json +++ b/homeassistant/components/brunt/strings.json @@ -1,29 +1,29 @@ { "config": { - "step": { - "user": { - "title": "Set up your Brunt integration", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please reenter the password for: {username}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please reenter the password for: {username}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Set up your Brunt integration" + } } } } diff --git a/homeassistant/components/bryant_evolution/strings.json b/homeassistant/components/bryant_evolution/strings.json index ec816d3d961..845314c566d 100644 --- a/homeassistant/components/bryant_evolution/strings.json +++ b/homeassistant/components/bryant_evolution/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_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": { "reconfigure": { "data": { @@ -11,20 +20,11 @@ "filename": "Serial port filename" } } - }, - "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%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "exceptions": { - "failed_to_read_hvac_mode": { - "message": "Failed to read current HVAC mode" + "failed_to_parse_hvac_action": { + "message": "Could not determine HVAC action: {mode_and_active}, {self.current_temperature}, {self.target_temperature_low}" }, "failed_to_parse_hvac_mode": { "message": "Cannot parse response to HVACMode: {mode}" @@ -32,23 +32,23 @@ "failed_to_read_hvac_action": { "message": "Failed to read current HVAC action" }, - "failed_to_parse_hvac_action": { - "message": "Could not determine HVAC action: {mode_and_active}, {self.current_temperature}, {self.target_temperature_low}" - }, - "failed_to_set_hvac_mode": { - "message": "Failed to set HVAC mode" + "failed_to_read_hvac_mode": { + "message": "Failed to read current HVAC mode" }, "failed_to_set_clsp": { "message": "Failed to set cooling setpoint" }, + "failed_to_set_fan_mode": { + "message": "Failed to set fan mode" + }, "failed_to_set_htsp": { "message": "Failed to set heating setpoint" }, + "failed_to_set_hvac_mode": { + "message": "Failed to set HVAC mode" + }, "failed_to_set_temp": { "message": "Failed to set temperature" - }, - "failed_to_set_fan_mode": { - "message": "Failed to set fan mode" } } } diff --git a/homeassistant/components/bsblan/manifest.json b/homeassistant/components/bsblan/manifest.json index c5245524e28..a4479b1094d 100644 --- a/homeassistant/components/bsblan/manifest.json +++ b/homeassistant/components/bsblan/manifest.json @@ -10,8 +10,8 @@ "requirements": ["python-bsblan==2.1.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "bsb-lan*" + "name": "bsb-lan*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/bsblan/strings.json b/homeassistant/components/bsblan/strings.json index 7fceeeeee00..b8507c9fc8e 100644 --- a/homeassistant/components/bsblan/strings.json +++ b/homeassistant/components/bsblan/strings.json @@ -1,85 +1,62 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Connect to the BSB-Lan device", - "description": "Set up your BSB-Lan device to integrate with Home Assistant.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "passkey": "Passkey string", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your BSB-Lan device.", - "port": "The port number of your BSB-Lan device.", - "passkey": "The passkey for your BSB-Lan device.", - "username": "The username for your BSB-Lan device.", - "password": "The password for your BSB-Lan device." - } - }, - "discovery_confirm": { - "title": "BSB-Lan device discovered", - "description": "A BSB-Lan device was discovered at {host}. Please provide credentials if required.", - "data": { - "passkey": "[%key:component::bsblan::config::step::user::data::passkey%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "passkey": "[%key:component::bsblan::config::step::user::data_description::passkey%]", - "username": "[%key:component::bsblan::config::step::user::data_description::username%]", - "password": "[%key:component::bsblan::config::step::user::data_description::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The BSB-Lan integration needs to re-authenticate with {name}", - "data": { - "passkey": "[%key:component::bsblan::config::step::user::data::passkey%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "passkey": "[%key:component::bsblan::config::step::user::data_description::passkey%]", - "username": "[%key:component::bsblan::config::step::user::data_description::username%]", - "password": "[%key:component::bsblan::config::step::user::data_description::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "exceptions": { - "set_preset_mode_error": { - "message": "Can't set preset mode to {preset_mode} when HVAC mode is not set to auto" - }, - "set_data_error": { - "message": "An error occurred while sending the data to the BSB-Lan device" - }, - "set_temperature_error": { - "message": "An error occurred while setting the temperature" - }, - "set_operation_mode_error": { - "message": "An error occurred while setting the operation mode" - }, - "setup_connection_error": { - "message": "Failed to retrieve static device data from BSB-Lan device at {host}" - }, - "setup_auth_error": { - "message": "Authentication failed while retrieving static device data" - }, - "setup_general_error": { - "message": "An unknown error occurred while retrieving static device data" + "flow_title": "{name}", + "step": { + "discovery_confirm": { + "data": { + "passkey": "[%key:component::bsblan::config::step::user::data::passkey%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "passkey": "[%key:component::bsblan::config::step::user::data_description::passkey%]", + "password": "[%key:component::bsblan::config::step::user::data_description::password%]", + "username": "[%key:component::bsblan::config::step::user::data_description::username%]" + }, + "description": "A BSB-Lan device was discovered at {host}. Please provide credentials if required.", + "title": "BSB-Lan device discovered" + }, + "reauth_confirm": { + "data": { + "passkey": "[%key:component::bsblan::config::step::user::data::passkey%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "passkey": "[%key:component::bsblan::config::step::user::data_description::passkey%]", + "password": "[%key:component::bsblan::config::step::user::data_description::password%]", + "username": "[%key:component::bsblan::config::step::user::data_description::username%]" + }, + "description": "The BSB-Lan integration needs to re-authenticate with {name}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "passkey": "Passkey string", + "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 hostname or IP address of your BSB-Lan device.", + "passkey": "The passkey for your BSB-Lan device.", + "password": "The password for your BSB-Lan device.", + "port": "The port number of your BSB-Lan device.", + "username": "The username for your BSB-Lan device." + }, + "description": "Set up your BSB-Lan device to integrate with Home Assistant.", + "title": "Connect to the BSB-Lan device" + } } }, "entity": { @@ -91,5 +68,28 @@ "name": "Outside temperature" } } + }, + "exceptions": { + "set_data_error": { + "message": "An error occurred while sending the data to the BSB-Lan device" + }, + "set_operation_mode_error": { + "message": "An error occurred while setting the operation mode" + }, + "set_preset_mode_error": { + "message": "Can't set preset mode to {preset_mode} when HVAC mode is not set to auto" + }, + "set_temperature_error": { + "message": "An error occurred while setting the temperature" + }, + "setup_auth_error": { + "message": "Authentication failed while retrieving static device data" + }, + "setup_connection_error": { + "message": "Failed to retrieve static device data from BSB-Lan device at {host}" + }, + "setup_general_error": { + "message": "An unknown error occurred while retrieving static device data" + } } } diff --git a/homeassistant/components/bthome/strings.json b/homeassistant/components/bthome/strings.json index daf969ba80f..eab8888deed 100644 --- a/homeassistant/components/bthome/strings.json +++ b/homeassistant/components/bthome/strings.json @@ -1,45 +1,45 @@ { "config": { - "flow_title": "{name}", - "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%]" - }, - "get_encryption_key": { - "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 32 character hexadecimal bindkey.", - "data": { - "bindkey": "Bindkey" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "decryption_failed": "The provided bindkey did not work, sensor data could not be decrypted. Please check it and try again.", "expected_32_characters": "Expected a 32 character hexadecimal bindkey." }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "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%]" + "flow_title": "{name}", + "step": { + "bluetooth_confirm": { + "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, + "get_encryption_key": { + "data": { + "bindkey": "Bindkey" + }, + "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 32 character hexadecimal bindkey." + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" + } } }, "device_automation": { "trigger_subtype": { - "press": "Press", "double_press": "Double Press", - "triple_press": "Triple Press", - "long_press": "Long Press", - "long_double_press": "Long Double Press", - "long_triple_press": "Long Triple Press", "hold_press": "Hold Press", + "long_double_press": "Long Double Press", + "long_press": "Long Press", + "long_triple_press": "Long Triple Press", + "press": "Press", + "rotate_left": "Rotate Left", "rotate_right": "Rotate Right", - "rotate_left": "Rotate Left" + "triple_press": "Triple Press" }, "trigger_type": { "button": "Button \"{subtype}\"", @@ -52,13 +52,13 @@ "state_attributes": { "event_type": { "state": { - "press": "Press", "double_press": "Double press", - "triple_press": "Triple press", - "long_press": "Long press", + "hold_press": "Hold press", "long_double_press": "Long double press", + "long_press": "Long press", "long_triple_press": "Long triple press", - "hold_press": "Hold press" + "press": "Press", + "triple_press": "Triple press" } } } diff --git a/homeassistant/components/buienradar/strings.json b/homeassistant/components/buienradar/strings.json index bc487b7ee93..1573859fdd9 100644 --- a/homeassistant/components/buienradar/strings.json +++ b/homeassistant/components/buienradar/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" + }, "step": { "user": { "data": { @@ -7,30 +13,10 @@ "longitude": "[%key:common::config_flow::data::longitude%]" } } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "country_code": "Country to display camera images for.", - "delta": "Interval between camera image updates", - "timeframe": "Time to look ahead for precipitation forecast" - } - } } }, "entity": { "sensor": { - "stationname": { - "name": "Station name" - }, "barometerfc": { "name": "Barometer value" }, @@ -46,248 +32,20 @@ "clear": "Clear", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, - "conditioncode": { - "name": "Condition code" - }, - "conditiondetailed": { - "name": "Detailed condition", - "state": { - "clear": "Clear", - "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", - "partlycloudy-fog": "Partly cloudy, fog", - "partlycloudy-light-rain": "Partly cloudy, light rain", - "partlycloudy-rain": "Partly cloudy, rain", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "Light rain", - "light-snow": "Light snow", - "partlycloudy-light-snow": "Partly cloudy, light snow", - "partlycloudy-snow": "Partly cloudy, snow", - "partlycloudy-lightning": "Partly cloudy, lightning", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" - } - }, - "conditionexact": { - "name": "Full condition" - }, - "symbol": { - "name": "Symbol" - }, - "feeltemperature": { - "name": "Feel temperature" - }, - "groundtemperature": { - "name": "Ground temperature" - }, - "windforce": { - "name": "Wind force" - }, - "winddirection": { - "name": "Wind direction" - }, - "windazimuth": { - "name": "Wind direction azimuth" - }, - "visibility": { - "name": "[%key:component::weather::entity_component::_::state_attributes::visibility::name%]" - }, - "windgust": { - "name": "Wind gust" - }, - "precipitation_forecast_average": { - "name": "Precipitation forecast average" - }, - "precipitation_forecast_total": { - "name": "Precipitation forecast total" - }, - "rainlast24hour": { - "name": "Rain last 24h" - }, - "rainlasthour": { - "name": "Rain last hour" - }, - "temperature_1d": { - "name": "Temperature 1d" - }, - "temperature_2d": { - "name": "Temperature 2d" - }, - "temperature_3d": { - "name": "Temperature 3d" - }, - "temperature_4d": { - "name": "Temperature 4d" - }, - "temperature_5d": { - "name": "Temperature 5d" - }, - "mintemp_1d": { - "name": "Minimum temperature 1d" - }, - "mintemp_2d": { - "name": "Minimum temperature 2d" - }, - "mintemp_3d": { - "name": "Minimum temperature 3d" - }, - "mintemp_4d": { - "name": "Minimum temperature 4d" - }, - "mintemp_5d": { - "name": "Minimum temperature 5d" - }, - "rain_1d": { - "name": "Rain 1d" - }, - "rain_2d": { - "name": "Rain 2d" - }, - "rain_3d": { - "name": "Rain 3d" - }, - "rain_4d": { - "name": "Rain 4d" - }, - "rain_5d": { - "name": "Rain 5d" - }, - "minrain_1d": { - "name": "Minimum rain 1d" - }, - "minrain_2d": { - "name": "Minimum rain 2d" - }, - "minrain_3d": { - "name": "Minimum rain 3d" - }, - "minrain_4d": { - "name": "Minimum rain 4d" - }, - "minrain_5d": { - "name": "Minimum rain 5d" - }, - "maxrain_1d": { - "name": "Maximum rain 1d" - }, - "maxrain_2d": { - "name": "Maximum rain 2d" - }, - "maxrain_3d": { - "name": "Maximum rain 3d" - }, - "maxrain_4d": { - "name": "Maximum rain 4d" - }, - "maxrain_5d": { - "name": "Maximum rain 5d" - }, - "rainchance_1d": { - "name": "Rainchance 1d" - }, - "rainchance_2d": { - "name": "Rainchance 2d" - }, - "rainchance_3d": { - "name": "Rainchance 3d" - }, - "rainchance_4d": { - "name": "Rainchance 4d" - }, - "rainchance_5d": { - "name": "Rainchance 5d" - }, - "sunchance_1d": { - "name": "Sunchance 1d" - }, - "sunchance_2d": { - "name": "Sunchance 2d" - }, - "sunchance_3d": { - "name": "Sunchance 3d" - }, - "sunchance_4d": { - "name": "Sunchance 4d" - }, - "sunchance_5d": { - "name": "Sunchance 5d" - }, - "windforce_1d": { - "name": "Wind force 1d" - }, - "windforce_2d": { - "name": "Wind force 2d" - }, - "windforce_3d": { - "name": "Wind force 3d" - }, - "windforce_4d": { - "name": "Wind force 4d" - }, - "windforce_5d": { - "name": "Wind force 5d" - }, - "windspeed_1d": { - "name": "Wind speed 1d" - }, - "windspeed_2d": { - "name": "Wind speed 2d" - }, - "windspeed_3d": { - "name": "Wind speed 3d" - }, - "windspeed_4d": { - "name": "Wind speed 4d" - }, - "windspeed_5d": { - "name": "Wind speed 5d" - }, - "winddirection_1d": { - "name": "Wind direction 1d" - }, - "winddirection_2d": { - "name": "Wind direction 2d" - }, - "winddirection_3d": { - "name": "Wind direction 3d" - }, - "winddirection_4d": { - "name": "Wind direction 4d" - }, - "winddirection_5d": { - "name": "Wind direction 5d" - }, - "windazimuth_1d": { - "name": "Wind direction azimuth 1d" - }, - "windazimuth_2d": { - "name": "Wind direction azimuth 2d" - }, - "windazimuth_3d": { - "name": "Wind direction azimuth 3d" - }, - "windazimuth_4d": { - "name": "Wind direction azimuth 4d" - }, - "windazimuth_5d": { - "name": "Wind direction azimuth 5d" - }, "condition_1d": { "name": "Condition 1d", "state": { "clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, "condition_2d": { @@ -296,9 +54,9 @@ "clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, "condition_3d": { @@ -307,9 +65,9 @@ "clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, "condition_4d": { @@ -318,9 +76,9 @@ "clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, "condition_5d": { @@ -329,11 +87,14 @@ "clear": "[%key:component::buienradar::entity::sensor::condition::state::clear%]", "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]" } }, + "conditioncode": { + "name": "Condition code" + }, "conditioncode_1d": { "name": "Condition code 1d" }, @@ -349,111 +110,135 @@ "conditioncode_5d": { "name": "Condition code 5d" }, + "conditiondetailed": { + "name": "Detailed condition", + "state": { + "clear": "Clear", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "Light rain", + "light-snow": "Light snow", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", + "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", + "partlycloudy-fog": "Partly cloudy, fog", + "partlycloudy-light-rain": "Partly cloudy, light rain", + "partlycloudy-light-snow": "Partly cloudy, light snow", + "partlycloudy-lightning": "Partly cloudy, lightning", + "partlycloudy-rain": "Partly cloudy, rain", + "partlycloudy-snow": "Partly cloudy, snow", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", + "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" + } + }, "conditiondetailed_1d": { "name": "Detailed condition 1d", "state": { "clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", + "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", "partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]", "partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]", - "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", - "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", "partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]", - "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", "partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]", + "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", + "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" } }, "conditiondetailed_2d": { "name": "Detailed condition 2d", "state": { "clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", + "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", "partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]", "partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]", - "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", - "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", "partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]", - "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", "partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]", + "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", + "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" } }, "conditiondetailed_3d": { "name": "Detailed condition 3d", "state": { "clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", + "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", "partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]", "partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]", - "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", - "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", "partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]", - "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", "partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]", + "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", + "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" } }, "conditiondetailed_4d": { "name": "Detailed condition 4d", "state": { "clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", + "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", "partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]", "partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]", - "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", - "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", "partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]", - "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", "partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]", + "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", + "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" } }, "conditiondetailed_5d": { "name": "Detailed condition 5d", "state": { "clear": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::clear%]", + "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", + "fog": "[%key:component::weather::entity_component::_::state::fog%]", + "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", + "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", + "lightning": "[%key:component::weather::entity_component::_::state::lightning%]", "partlycloudy": "[%key:component::weather::entity_component::_::state::partlycloudy%]", "partlycloudy-fog": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-fog%]", "partlycloudy-light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-rain%]", - "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", - "cloudy": "[%key:component::weather::entity_component::_::state::cloudy%]", - "fog": "[%key:component::weather::entity_component::_::state::fog%]", - "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", - "light-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-rain%]", - "light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::light-snow%]", "partlycloudy-light-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-light-snow%]", - "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", "partlycloudy-lightning": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-lightning%]", + "partlycloudy-rain": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-rain%]", + "partlycloudy-snow": "[%key:component::buienradar::entity::sensor::conditiondetailed::state::partlycloudy-snow%]", + "rainy": "[%key:component::weather::entity_component::_::state::rainy%]", "snowy": "[%key:component::weather::entity_component::_::state::snowy%]", - "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]", - "lightning": "[%key:component::weather::entity_component::_::state::lightning%]" + "snowy-rainy": "[%key:component::weather::entity_component::_::state::snowy-rainy%]" } }, + "conditionexact": { + "name": "Full condition" + }, "conditionexact_1d": { "name": "Full condition 1d" }, @@ -469,6 +254,120 @@ "conditionexact_5d": { "name": "Full condition 5d" }, + "feeltemperature": { + "name": "Feel temperature" + }, + "groundtemperature": { + "name": "Ground temperature" + }, + "maxrain_1d": { + "name": "Maximum rain 1d" + }, + "maxrain_2d": { + "name": "Maximum rain 2d" + }, + "maxrain_3d": { + "name": "Maximum rain 3d" + }, + "maxrain_4d": { + "name": "Maximum rain 4d" + }, + "maxrain_5d": { + "name": "Maximum rain 5d" + }, + "minrain_1d": { + "name": "Minimum rain 1d" + }, + "minrain_2d": { + "name": "Minimum rain 2d" + }, + "minrain_3d": { + "name": "Minimum rain 3d" + }, + "minrain_4d": { + "name": "Minimum rain 4d" + }, + "minrain_5d": { + "name": "Minimum rain 5d" + }, + "mintemp_1d": { + "name": "Minimum temperature 1d" + }, + "mintemp_2d": { + "name": "Minimum temperature 2d" + }, + "mintemp_3d": { + "name": "Minimum temperature 3d" + }, + "mintemp_4d": { + "name": "Minimum temperature 4d" + }, + "mintemp_5d": { + "name": "Minimum temperature 5d" + }, + "precipitation_forecast_average": { + "name": "Precipitation forecast average" + }, + "precipitation_forecast_total": { + "name": "Precipitation forecast total" + }, + "rain_1d": { + "name": "Rain 1d" + }, + "rain_2d": { + "name": "Rain 2d" + }, + "rain_3d": { + "name": "Rain 3d" + }, + "rain_4d": { + "name": "Rain 4d" + }, + "rain_5d": { + "name": "Rain 5d" + }, + "rainchance_1d": { + "name": "Rainchance 1d" + }, + "rainchance_2d": { + "name": "Rainchance 2d" + }, + "rainchance_3d": { + "name": "Rainchance 3d" + }, + "rainchance_4d": { + "name": "Rainchance 4d" + }, + "rainchance_5d": { + "name": "Rainchance 5d" + }, + "rainlast24hour": { + "name": "Rain last 24h" + }, + "rainlasthour": { + "name": "Rain last hour" + }, + "stationname": { + "name": "Station name" + }, + "sunchance_1d": { + "name": "Sunchance 1d" + }, + "sunchance_2d": { + "name": "Sunchance 2d" + }, + "sunchance_3d": { + "name": "Sunchance 3d" + }, + "sunchance_4d": { + "name": "Sunchance 4d" + }, + "sunchance_5d": { + "name": "Sunchance 5d" + }, + "symbol": { + "name": "Symbol" + }, "symbol_1d": { "name": "Symbol 1d" }, @@ -483,6 +382,107 @@ }, "symbol_5d": { "name": "Symbol 5d" + }, + "temperature_1d": { + "name": "Temperature 1d" + }, + "temperature_2d": { + "name": "Temperature 2d" + }, + "temperature_3d": { + "name": "Temperature 3d" + }, + "temperature_4d": { + "name": "Temperature 4d" + }, + "temperature_5d": { + "name": "Temperature 5d" + }, + "visibility": { + "name": "[%key:component::weather::entity_component::_::state_attributes::visibility::name%]" + }, + "windazimuth": { + "name": "Wind direction azimuth" + }, + "windazimuth_1d": { + "name": "Wind direction azimuth 1d" + }, + "windazimuth_2d": { + "name": "Wind direction azimuth 2d" + }, + "windazimuth_3d": { + "name": "Wind direction azimuth 3d" + }, + "windazimuth_4d": { + "name": "Wind direction azimuth 4d" + }, + "windazimuth_5d": { + "name": "Wind direction azimuth 5d" + }, + "winddirection": { + "name": "Wind direction" + }, + "winddirection_1d": { + "name": "Wind direction 1d" + }, + "winddirection_2d": { + "name": "Wind direction 2d" + }, + "winddirection_3d": { + "name": "Wind direction 3d" + }, + "winddirection_4d": { + "name": "Wind direction 4d" + }, + "winddirection_5d": { + "name": "Wind direction 5d" + }, + "windforce": { + "name": "Wind force" + }, + "windforce_1d": { + "name": "Wind force 1d" + }, + "windforce_2d": { + "name": "Wind force 2d" + }, + "windforce_3d": { + "name": "Wind force 3d" + }, + "windforce_4d": { + "name": "Wind force 4d" + }, + "windforce_5d": { + "name": "Wind force 5d" + }, + "windgust": { + "name": "Wind gust" + }, + "windspeed_1d": { + "name": "Wind speed 1d" + }, + "windspeed_2d": { + "name": "Wind speed 2d" + }, + "windspeed_3d": { + "name": "Wind speed 3d" + }, + "windspeed_4d": { + "name": "Wind speed 4d" + }, + "windspeed_5d": { + "name": "Wind speed 5d" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "country_code": "Country to display camera images for.", + "delta": "Interval between camera image updates", + "timeframe": "Time to look ahead for precipitation forecast" + } } } } diff --git a/homeassistant/components/button/icons.json b/homeassistant/components/button/icons.json index 1364fb2d056..13753032275 100644 --- a/homeassistant/components/button/icons.json +++ b/homeassistant/components/button/icons.json @@ -3,12 +3,12 @@ "_": { "default": "mdi:button-pointer" }, - "restart": { - "default": "mdi:restart" - }, "identify": { "default": "mdi:crosshairs-question" }, + "restart": { + "default": "mdi:restart" + }, "update": { "default": "mdi:package-up" } diff --git a/homeassistant/components/button/strings.json b/homeassistant/components/button/strings.json index 49a70ba9ffa..02baad6bdcb 100644 --- a/homeassistant/components/button/strings.json +++ b/homeassistant/components/button/strings.json @@ -1,11 +1,10 @@ { - "title": "Button", "device_automation": { - "trigger_type": { - "pressed": "{entity_name} has been pressed" - }, "action_type": { "press": "Press {entity_name} button" + }, + "trigger_type": { + "pressed": "{entity_name} has been pressed" } }, "entity_component": { @@ -24,8 +23,9 @@ }, "services": { "press": { - "name": "Press", - "description": "Presses a button entity." + "description": "Presses a button entity.", + "name": "Press" } - } + }, + "title": "Button" } diff --git a/homeassistant/components/caldav/strings.json b/homeassistant/components/caldav/strings.json index 64fdf466b30..6d7b8736768 100644 --- a/homeassistant/components/caldav/strings.json +++ b/homeassistant/components/caldav/strings.json @@ -1,22 +1,8 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "description": "Please enter your CalDAV server credentials" - }, - "reauth_confirm": { - "description": "The password for {username} is invalid.", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" @@ -26,9 +12,23 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The password for {username} is invalid.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "Please enter your CalDAV server credentials" + } } } } diff --git a/homeassistant/components/calendar/icons.json b/homeassistant/components/calendar/icons.json index a28adcf317e..804a3a4b04f 100644 --- a/homeassistant/components/calendar/icons.json +++ b/homeassistant/components/calendar/icons.json @@ -3,8 +3,8 @@ "_": { "default": "mdi:calendar", "state": { - "on": "mdi:calendar-check", - "off": "mdi:calendar-blank" + "off": "mdi:calendar-blank", + "on": "mdi:calendar-check" } } }, diff --git a/homeassistant/components/calendar/strings.json b/homeassistant/components/calendar/strings.json index 6612ea5209d..c8117140d9d 100644 --- a/homeassistant/components/calendar/strings.json +++ b/homeassistant/components/calendar/strings.json @@ -1,5 +1,4 @@ { - "title": "Calendar", "entity_component": { "_": { "name": "[%key:component::calendar::title%]", @@ -11,8 +10,8 @@ "all_day": { "name": "All day", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "description": { @@ -33,75 +32,76 @@ } } }, - "services": { - "create_event": { - "name": "Create event", - "description": "Adds a new calendar event.", - "fields": { - "summary": { - "name": "Summary", - "description": "Defines the short summary or subject for the event." - }, - "description": { - "name": "Description", - "description": "A more complete description of the event than the one provided by the summary." - }, - "start_date_time": { - "name": "Start time", - "description": "The date and time the event should start." - }, - "end_date_time": { - "name": "End time", - "description": "The date and time the event should end." - }, - "start_date": { - "name": "Start date", - "description": "The date the all-day event should start." - }, - "end_date": { - "name": "End date", - "description": "The date the all-day event should end (exclusive)." - }, - "in": { - "name": "In", - "description": "Days or weeks that you want to create the event in." - }, - "location": { - "name": "Location", - "description": "The location of the event." - } - } - }, - "get_events": { - "name": "Get events", - "description": "Retrieves events on a calendar within a time range.", - "fields": { - "start_date_time": { - "name": "Start time", - "description": "Returns active events after this time (exclusive). When not set, defaults to now." - }, - "end_date_time": { - "name": "End time", - "description": "Returns active events before this time (exclusive). Cannot be used with Duration." - }, - "duration": { - "name": "Duration", - "description": "Returns active events from Start time for the specified duration." - } - } - } - }, "issues": { "deprecated_service_calendar_list_events": { - "title": "Detected use of deprecated action calendar.list_events", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::calendar::issues::deprecated_service_calendar_list_events::title%]", - "description": "Use `calendar.get_events` instead which supports multiple entities.\n\nPlease replace this action and adjust your automations and scripts and select **Submit** to close this issue." + "description": "Use `calendar.get_events` instead which supports multiple entities.\n\nPlease replace this action and adjust your automations and scripts and select **Submit** to close this issue.", + "title": "[%key:component::calendar::issues::deprecated_service_calendar_list_events::title%]" } } - } + }, + "title": "Detected use of deprecated action calendar.list_events" } - } + }, + "services": { + "create_event": { + "description": "Adds a new calendar event.", + "fields": { + "description": { + "description": "A more complete description of the event than the one provided by the summary.", + "name": "Description" + }, + "end_date": { + "description": "The date the all-day event should end (exclusive).", + "name": "End date" + }, + "end_date_time": { + "description": "The date and time the event should end.", + "name": "End time" + }, + "in": { + "description": "Days or weeks that you want to create the event in.", + "name": "In" + }, + "location": { + "description": "The location of the event.", + "name": "Location" + }, + "start_date": { + "description": "The date the all-day event should start.", + "name": "Start date" + }, + "start_date_time": { + "description": "The date and time the event should start.", + "name": "Start time" + }, + "summary": { + "description": "Defines the short summary or subject for the event.", + "name": "Summary" + } + }, + "name": "Create event" + }, + "get_events": { + "description": "Retrieves events on a calendar within a time range.", + "fields": { + "duration": { + "description": "Returns active events from Start time for the specified duration.", + "name": "Duration" + }, + "end_date_time": { + "description": "Returns active events before this time (exclusive). Cannot be used with Duration.", + "name": "End time" + }, + "start_date_time": { + "description": "Returns active events after this time (exclusive). When not set, defaults to now.", + "name": "Start time" + } + }, + "name": "Get events" + } + }, + "title": "Calendar" } diff --git a/homeassistant/components/cambridge_audio/icons.json b/homeassistant/components/cambridge_audio/icons.json index dda7d71e506..a889a85a17b 100644 --- a/homeassistant/components/cambridge_audio/icons.json +++ b/homeassistant/components/cambridge_audio/icons.json @@ -1,14 +1,6 @@ { "entity": { "select": { - "display_brightness": { - "default": "mdi:brightness-7", - "state": { - "bright": "mdi:brightness-7", - "dim": "mdi:brightness-6", - "off": "mdi:brightness-3" - } - }, "audio_output": { "default": "mdi:audio-input-stereo-minijack" }, @@ -18,17 +10,25 @@ "amplifier": "mdi:speaker", "receiver": "mdi:audio-video" } + }, + "display_brightness": { + "default": "mdi:brightness-7", + "state": { + "bright": "mdi:brightness-7", + "dim": "mdi:brightness-6", + "off": "mdi:brightness-3" + } } }, "switch": { + "early_update": { + "default": "mdi:update" + }, "pre_amp": { "default": "mdi:volume-high", "state": { "off": "mdi:volume-low" } - }, - "early_update": { - "default": "mdi:update" } } } diff --git a/homeassistant/components/cambridge_audio/strings.json b/homeassistant/components/cambridge_audio/strings.json index e2c89bcbbb0..09d95b16e46 100644 --- a/homeassistant/components/cambridge_audio/strings.json +++ b/homeassistant/components/cambridge_audio/strings.json @@ -1,49 +1,41 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "wrong_device": "This Cambridge Audio device does not match the existing device ID. Please make sure you entered the correct IP address." + }, + "error": { + "cannot_connect": "Failed to connect to Cambridge Audio device. Please make sure the device is powered up and connected to the network. Try power-cycling the device if it does not connect." + }, "flow_title": "{name}", "step": { - "user": { - "description": "Set up your Cambridge Audio Streamer to integrate with Home Assistant.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Cambridge Audio Streamer." - } - }, "discovery_confirm": { "description": "Do you want to set up {name}?" }, "reconfigure": { - "description": "Reconfigure your Cambridge Audio Streamer.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "[%key:component::cambridge_audio::config::step::user::data_description::host%]" - } + }, + "description": "Reconfigure your Cambridge Audio Streamer." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Cambridge Audio Streamer." + }, + "description": "Set up your Cambridge Audio Streamer to integrate with Home Assistant." } - }, - "error": { - "cannot_connect": "Failed to connect to Cambridge Audio device. Please make sure the device is powered up and connected to the network. Try power-cycling the device if it does not connect." - }, - "abort": { - "wrong_device": "This Cambridge Audio device does not match the existing device ID. Please make sure you entered the correct IP address.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "select": { - "display_brightness": { - "name": "Display brightness", - "state": { - "bright": "Bright", - "dim": "Dim", - "off": "[%key:common::state::off%]" - } - }, "audio_output": { "name": "Audio output" }, @@ -51,23 +43,34 @@ "name": "Control Bus mode", "state": { "amplifier": "Amplifier", - "receiver": "Receiver", + "off": "[%key:common::state::off%]", + "receiver": "Receiver" + } + }, + "display_brightness": { + "name": "Display brightness", + "state": { + "bright": "Bright", + "dim": "Dim", "off": "[%key:common::state::off%]" } } }, "switch": { - "pre_amp": { - "name": "Pre-Amp" - }, "early_update": { "name": "Early update" + }, + "pre_amp": { + "name": "Pre-Amp" } } }, "exceptions": { - "unsupported_media_type": { - "message": "Unsupported media type for Cambridge Audio device: {media_type}" + "command_error": { + "message": "Error executing {function_name} on entity {entity_id}" + }, + "entry_cannot_connect": { + "message": "Error while connecting to {host}" }, "missing_preset": { "message": "Missing preset for media_id: {preset_id}" @@ -75,11 +78,8 @@ "preset_non_integer": { "message": "Preset must be an integer, got: {preset_id}" }, - "entry_cannot_connect": { - "message": "Error while connecting to {host}" - }, - "command_error": { - "message": "Error executing {function_name} on entity {entity_id}" + "unsupported_media_type": { + "message": "Unsupported media type for Cambridge Audio device: {media_type}" } } } diff --git a/homeassistant/components/camera/strings.json b/homeassistant/components/camera/strings.json index 9176c5ad84a..645d87d5bd0 100644 --- a/homeassistant/components/camera/strings.json +++ b/homeassistant/components/camera/strings.json @@ -1,12 +1,11 @@ { - "title": "Camera", "entity_component": { "_": { "name": "[%key:component::camera::title%]", "state": { + "idle": "[%key:common::state::idle%]", "recording": "Recording", - "streaming": "Streaming", - "idle": "[%key:common::state::idle%]" + "streaming": "Streaming" }, "state_attributes": { "access_token": { @@ -22,91 +21,92 @@ "webrtc": "WebRTC" } }, + "model_name": { + "name": "[%key:common::generic::model%]" + }, "motion_detection": { "name": "Motion detection", "state": { - "true": "[%key:common::state::enabled%]", - "false": "[%key:common::state::disabled%]" + "false": "[%key:common::state::disabled%]", + "true": "[%key:common::state::enabled%]" } - }, - "model_name": { - "name": "[%key:common::generic::model%]" } } } }, "issues": { "deprecated_filename_template": { - "title": "Detected use of deprecated template variable", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::camera::issues::deprecated_filename_template::title%]", - "description": "The pre-defined template variable `entity_id` was used when performing action `{service}` targeting camera entity `{entity_id}`. The pre-defined template variable `entity_id` is being removed from the `filename` parameter of `{service}`.\n\nPlease update your automations and scripts to use a manually defined variable instead and select **Submit** to close this issue." + "description": "The pre-defined template variable `entity_id` was used when performing action `{service}` targeting camera entity `{entity_id}`. The pre-defined template variable `entity_id` is being removed from the `filename` parameter of `{service}`.\n\nPlease update your automations and scripts to use a manually defined variable instead and select **Submit** to close this issue.", + "title": "[%key:component::camera::issues::deprecated_filename_template::title%]" } } - } + }, + "title": "Detected use of deprecated template variable" } }, + "selector": {}, "services": { - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns off the camera." - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns on the camera." + "disable_motion_detection": { + "description": "Disables the motion detection.", + "name": "Disable motion detection" }, "enable_motion_detection": { - "name": "Enable motion detection", - "description": "Enables the motion detection." + "description": "Enables the motion detection.", + "name": "Enable motion detection" }, - "disable_motion_detection": { - "name": "Disable motion detection", - "description": "Disables the motion detection." + "play_stream": { + "description": "Plays the camera stream on a supported media player.", + "fields": { + "format": { + "description": "Stream format supported by the media player.", + "name": "Format" + }, + "media_player": { + "description": "Media players to stream to.", + "name": "Media player" + } + }, + "name": "Play stream" + }, + "record": { + "description": "Creates a recording of a live camera feed.", + "fields": { + "duration": { + "description": "Planned duration of the recording. The actual duration may vary.", + "name": "Duration" + }, + "filename": { + "description": "Full path to filename. Must be mp4.", + "name": "[%key:component::camera::services::snapshot::fields::filename::name%]" + }, + "lookback": { + "description": "Planned lookback period to include in the recording (in addition to the duration). Only available if there is currently an active HLS stream. The actual length of the lookback period may vary.", + "name": "Lookback" + } + }, + "name": "Record" }, "snapshot": { - "name": "Take snapshot", "description": "Takes a snapshot from a camera.", "fields": { "filename": { - "name": "Filename", - "description": "Full path to filename." + "description": "Full path to filename.", + "name": "Filename" } - } + }, + "name": "Take snapshot" }, - "play_stream": { - "name": "Play stream", - "description": "Plays the camera stream on a supported media player.", - "fields": { - "media_player": { - "name": "Media player", - "description": "Media players to stream to." - }, - "format": { - "name": "Format", - "description": "Stream format supported by the media player." - } - } + "turn_off": { + "description": "Turns off the camera.", + "name": "[%key:common::action::turn_off%]" }, - "record": { - "name": "Record", - "description": "Creates a recording of a live camera feed.", - "fields": { - "filename": { - "name": "[%key:component::camera::services::snapshot::fields::filename::name%]", - "description": "Full path to filename. Must be mp4." - }, - "duration": { - "name": "Duration", - "description": "Planned duration of the recording. The actual duration may vary." - }, - "lookback": { - "name": "Lookback", - "description": "Planned lookback period to include in the recording (in addition to the duration). Only available if there is currently an active HLS stream. The actual length of the lookback period may vary." - } - } + "turn_on": { + "description": "Turns on the camera.", + "name": "[%key:common::action::turn_on%]" } }, - "selector": {} + "title": "Camera" } diff --git a/homeassistant/components/canary/strings.json b/homeassistant/components/canary/strings.json index 8be11a48b5e..4007b359ee0 100644 --- a/homeassistant/components/canary/strings.json +++ b/homeassistant/components/canary/strings.json @@ -1,20 +1,20 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Connect to Canary", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "unknown": "[%key:common::config_flow::error::unknown%]" + "flow_title": "{name}", + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Connect to Canary" + } } }, "options": { diff --git a/homeassistant/components/cast/strings.json b/homeassistant/components/cast/strings.json index aa52d21e05f..2f5a0e28756 100644 --- a/homeassistant/components/cast/strings.json +++ b/homeassistant/components/cast/strings.json @@ -1,65 +1,65 @@ { "config": { + "error": { + "invalid_known_hosts": "Known hosts must be a comma-separated list of hosts." + }, "step": { - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - }, "config": { - "title": "Google Cast configuration", "data": { "known_hosts": "Add known host" }, "data_description": { "known_hosts": "Hostnames or IP addresses of cast devices, use if mDNS discovery is not working" - } + }, + "title": "Google Cast configuration" + }, + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "error": { - "invalid_known_hosts": "Known hosts must be a comma-separated list of hosts." } }, "options": { + "error": { + "invalid_known_hosts": "[%key:component::cast::config::error::invalid_known_hosts%]" + }, "step": { + "advanced_options": { + "data": { + "ignore_cec": "Ignore CEC", + "uuid": "Allowed UUIDs" + }, + "description": "Allowed UUIDs - A comma-separated list of UUIDs of Cast devices to add to Home Assistant. Use only if you don’t want to add all available cast devices.\nIgnore CEC - A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. This will be passed to pychromecast.IGNORE_CEC.", + "title": "Advanced Google Cast configuration" + }, "basic_options": { - "title": "[%key:component::cast::config::step::config::title%]", "data": { "known_hosts": "[%key:component::cast::config::step::config::data::known_hosts%]" }, "data_description": { "known_hosts": "[%key:component::cast::config::step::config::data_description::known_hosts%]" - } - }, - "advanced_options": { - "title": "Advanced Google Cast configuration", - "description": "Allowed UUIDs - A comma-separated list of UUIDs of Cast devices to add to Home Assistant. Use only if you don’t want to add all available cast devices.\nIgnore CEC - A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. This will be passed to pychromecast.IGNORE_CEC.", - "data": { - "ignore_cec": "Ignore CEC", - "uuid": "Allowed UUIDs" - } + }, + "title": "[%key:component::cast::config::step::config::title%]" } - }, - "error": { - "invalid_known_hosts": "[%key:component::cast::config::error::invalid_known_hosts%]" } }, "services": { "show_lovelace_view": { - "name": "Show dashboard view", "description": "Shows a dashboard view on a Chromecast device.", "fields": { - "entity_id": { - "name": "Entity", - "description": "Media player entity to show the dashboard view on." - }, "dashboard_path": { - "name": "Dashboard path", - "description": "The URL path of the dashboard to show, defaults to lovelace if not specified." + "description": "The URL path of the dashboard to show, defaults to lovelace if not specified.", + "name": "Dashboard path" + }, + "entity_id": { + "description": "Media player entity to show the dashboard view on.", + "name": "Entity" }, "view_path": { - "name": "View path", - "description": "The URL path of the dashboard view to show." + "description": "The URL path of the dashboard view to show.", + "name": "View path" } - } + }, + "name": "Show dashboard view" } } } diff --git a/homeassistant/components/ccm15/strings.json b/homeassistant/components/ccm15/strings.json index 1ac7a25e6f8..3ca6c9bab2a 100644 --- a/homeassistant/components/ccm15/strings.json +++ b/homeassistant/components/ccm15/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -7,13 +14,6 @@ "port": "[%key:common::config_flow::data::port%]" } } - }, - "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%]" } } } diff --git a/homeassistant/components/cert_expiry/strings.json b/homeassistant/components/cert_expiry/strings.json index b8e758b3023..8b8460e37c4 100644 --- a/homeassistant/components/cert_expiry/strings.json +++ b/homeassistant/components/cert_expiry/strings.json @@ -1,25 +1,24 @@ { - "title": "Certificate Expiry", "config": { - "step": { - "user": { - "title": "Define the certificate to test", - "data": { - "name": "The name of the certificate", - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - } - } - }, - "error": { - "resolve_failed": "This host cannot be resolved", - "connection_timeout": "Timeout when connecting to this host", - "connection_refused": "Connection refused when connecting to host", - "connection_reset": "Connection reset when connecting to host" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "import_failed": "Import from config failed" + }, + "error": { + "connection_refused": "Connection refused when connecting to host", + "connection_reset": "Connection reset when connecting to host", + "connection_timeout": "Timeout when connecting to this host", + "resolve_failed": "This host cannot be resolved" + }, + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "The name of the certificate", + "port": "[%key:common::config_flow::data::port%]" + }, + "title": "Define the certificate to test" + } } }, "entity": { @@ -28,5 +27,6 @@ "name": "Cert expiry" } } - } + }, + "title": "Certificate Expiry" } diff --git a/homeassistant/components/chacon_dio/strings.json b/homeassistant/components/chacon_dio/strings.json index 96dc8b371d1..fed00595763 100644 --- a/homeassistant/components/chacon_dio/strings.json +++ b/homeassistant/components/chacon_dio/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } } } diff --git a/homeassistant/components/channels/icons.json b/homeassistant/components/channels/icons.json index ad5504a5422..d3c936e9f8a 100644 --- a/homeassistant/components/channels/icons.json +++ b/homeassistant/components/channels/icons.json @@ -1,13 +1,13 @@ { "services": { - "seek_forward": { - "service": "mdi:skip-forward" - }, "seek_backward": { "service": "mdi:skip-backward" }, "seek_by": { "service": "mdi:timer-check-outline" + }, + "seek_forward": { + "service": "mdi:skip-forward" } } } diff --git a/homeassistant/components/channels/strings.json b/homeassistant/components/channels/strings.json index 0eceed8a8e0..ee265fa1a9f 100644 --- a/homeassistant/components/channels/strings.json +++ b/homeassistant/components/channels/strings.json @@ -1,22 +1,22 @@ { "services": { - "seek_forward": { - "name": "Seek forward", - "description": "Seeks forward by a set number of seconds." - }, "seek_backward": { - "name": "Seek backward", - "description": "Seeks backward by a set number of seconds." + "description": "Seeks backward by a set number of seconds.", + "name": "Seek backward" }, "seek_by": { - "name": "Seek by", "description": "Seeks by an inputted number of seconds.", "fields": { "seconds": { - "name": "Seconds", - "description": "Number of seconds to seek by. Negative numbers seek backwards." + "description": "Number of seconds to seek by. Negative numbers seek backwards.", + "name": "Seconds" } - } + }, + "name": "Seek by" + }, + "seek_forward": { + "description": "Seeks forward by a set number of seconds.", + "name": "Seek forward" } } } diff --git a/homeassistant/components/climate/icons.json b/homeassistant/components/climate/icons.json index 8f4ffa6b19f..b18d8853b95 100644 --- a/homeassistant/components/climate/icons.json +++ b/homeassistant/components/climate/icons.json @@ -42,6 +42,13 @@ "sleep": "mdi:bed" } }, + "swing_horizontal_mode": { + "default": "mdi:circle-medium", + "state": { + "off": "mdi:arrow-oscillating-off", + "on": "mdi:arrow-expand-horizontal" + } + }, "swing_mode": { "default": "mdi:circle-medium", "state": { @@ -51,50 +58,43 @@ "on": "mdi:arrow-oscillating", "vertical": "mdi:arrow-up-down" } - }, - "swing_horizontal_mode": { - "default": "mdi:circle-medium", - "state": { - "off": "mdi:arrow-oscillating-off", - "on": "mdi:arrow-expand-horizontal" - } } } } }, "services": { + "set_aux_heat": { + "service": "mdi:radiator" + }, "set_fan_mode": { "service": "mdi:fan" }, "set_humidity": { "service": "mdi:water-percent" }, - "set_swing_mode": { - "service": "mdi:arrow-oscillating" - }, - "set_swing_horizontal_mode": { - "service": "mdi:arrow-expand-horizontal" - }, - "set_temperature": { - "service": "mdi:thermometer" - }, - "set_aux_heat": { - "service": "mdi:radiator" + "set_hvac_mode": { + "service": "mdi:hvac" }, "set_preset_mode": { "service": "mdi:sofa" }, - "set_hvac_mode": { - "service": "mdi:hvac" + "set_swing_horizontal_mode": { + "service": "mdi:arrow-expand-horizontal" }, - "turn_on": { - "service": "mdi:power-on" + "set_swing_mode": { + "service": "mdi:arrow-oscillating" + }, + "set_temperature": { + "service": "mdi:thermometer" + }, + "toggle": { + "service": "mdi:toggle-switch" }, "turn_off": { "service": "mdi:power-off" }, - "toggle": { - "service": "mdi:toggle-switch" + "turn_on": { + "service": "mdi:power-on" } } } diff --git a/homeassistant/components/climate/strings.json b/homeassistant/components/climate/strings.json index a75d327924a..065a136385b 100644 --- a/homeassistant/components/climate/strings.json +++ b/homeassistant/components/climate/strings.json @@ -1,39 +1,38 @@ { - "title": "Climate", "device_automation": { - "condition_type": { - "is_hvac_mode": "{entity_name} is set to a specific HVAC mode", - "is_preset_mode": "{entity_name} is set to a specific preset mode" - }, - "trigger_type": { - "current_temperature_changed": "{entity_name} measured temperature changed", - "current_humidity_changed": "{entity_name} measured humidity changed", - "hvac_mode_changed": "{entity_name} HVAC mode changed" - }, "action_type": { "set_hvac_mode": "Change HVAC mode on {entity_name}", "set_preset_mode": "Change preset on {entity_name}" }, + "condition_type": { + "is_hvac_mode": "{entity_name} is set to a specific HVAC mode", + "is_preset_mode": "{entity_name} is set to a specific preset mode" + }, "extra_fields": { "above": "[%key:common::device_automation::extra_fields::above%]", "below": "[%key:common::device_automation::extra_fields::below%]", "for": "[%key:common::device_automation::extra_fields::for%]", - "to": "[%key:common::device_automation::extra_fields::to%]", + "hvac_mode": "HVAC mode", "preset_mode": "Preset mode", - "hvac_mode": "HVAC mode" + "to": "[%key:common::device_automation::extra_fields::to%]" + }, + "trigger_type": { + "current_humidity_changed": "{entity_name} measured humidity changed", + "current_temperature_changed": "{entity_name} measured temperature changed", + "hvac_mode_changed": "{entity_name} HVAC mode changed" } }, "entity_component": { "_": { "name": "Thermostat", "state": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", - "heat": "Heat", "cool": "Cool", - "heat_cool": "Heat/Cool", "dry": "Dry", - "fan_only": "Fan only" + "fan_only": "Fan only", + "heat": "Heat", + "heat_cool": "Heat/Cool", + "off": "[%key:common::state::off%]" }, "state_attributes": { "current_humidity": { @@ -45,16 +44,16 @@ "fan_mode": { "name": "Fan mode", "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", "auto": "[%key:common::state::auto%]", + "diffuse": "Diffuse", + "focus": "Focus", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "top": "Top", "middle": "Middle", - "focus": "Focus", - "diffuse": "Diffuse" + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "top": "Top" } }, "fan_modes": { @@ -66,13 +65,13 @@ "hvac_action": { "name": "Current action", "state": { - "off": "[%key:common::state::off%]", - "idle": "[%key:common::state::idle%]", "cooling": "Cooling", "defrosting": "Defrosting", "drying": "Drying", "fan": "Fan", "heating": "Heating", + "idle": "[%key:common::state::idle%]", + "off": "[%key:common::state::off%]", "preheating": "Preheating" } }, @@ -94,32 +93,19 @@ "preset_mode": { "name": "Preset", "state": { - "none": "None", - "home": "[%key:common::state::home%]", - "away": "[%key:common::state::not_home%]", "activity": "Activity", + "away": "[%key:common::state::not_home%]", "boost": "Boost", "comfort": "Comfort", "eco": "Eco", + "home": "[%key:common::state::home%]", + "none": "None", "sleep": "Sleep" } }, "preset_modes": { "name": "Presets" }, - "swing_mode": { - "name": "Swing mode", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "both": "Both", - "vertical": "Vertical", - "horizontal": "Horizontal" - } - }, - "swing_modes": { - "name": "Swing modes" - }, "swing_horizontal_mode": { "name": "Horizontal swing mode", "state": { @@ -130,6 +116,19 @@ "swing_horizontal_modes": { "name": "Horizontal swing modes" }, + "swing_mode": { + "name": "Swing mode", + "state": { + "both": "Both", + "horizontal": "Horizontal", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "vertical": "Vertical" + } + }, + "swing_modes": { + "name": "Swing modes" + }, "target_temp_high": { "name": "Upper target temperature" }, @@ -145,145 +144,146 @@ } } }, - "services": { - "set_preset_mode": { - "name": "Set preset mode", - "description": "Sets preset mode.", - "fields": { - "preset_mode": { - "name": "Preset mode", - "description": "Preset mode." - } - } - }, - "set_temperature": { - "name": "Set target temperature", - "description": "Sets the temperature setpoint.", - "fields": { - "temperature": { - "name": "Target temperature", - "description": "The temperature setpoint." - }, - "target_temp_high": { - "name": "Upper target temperature", - "description": "The max temperature setpoint." - }, - "target_temp_low": { - "name": "Lower target temperature", - "description": "The min temperature setpoint." - }, - "hvac_mode": { - "name": "HVAC mode", - "description": "HVAC operation mode." - } - } - }, - "set_humidity": { - "name": "Set target humidity", - "description": "Sets target humidity.", - "fields": { - "humidity": { - "name": "Humidity", - "description": "Target humidity." - } - } - }, - "set_fan_mode": { - "name": "Set fan mode", - "description": "Sets fan operation mode.", - "fields": { - "fan_mode": { - "name": "Fan mode", - "description": "Fan operation mode." - } - } - }, - "set_hvac_mode": { - "name": "Set HVAC mode", - "description": "Sets HVAC operation mode.", - "fields": { - "hvac_mode": { - "name": "HVAC mode", - "description": "HVAC operation mode." - } - } - }, - "set_swing_mode": { - "name": "Set swing mode", - "description": "Sets swing operation mode.", - "fields": { - "swing_mode": { - "name": "Swing mode", - "description": "Swing operation mode." - } - } - }, - "set_swing_horizontal_mode": { - "name": "Set horizontal swing mode", - "description": "Sets horizontal swing operation mode.", - "fields": { - "swing_horizontal_mode": { - "name": "Horizontal swing mode", - "description": "Horizontal swing operation mode." - } - } - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns climate device on." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns climate device off." - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles climate device, from on to off, or off to on." - } - }, - "selector": { - "hvac_mode": { - "options": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "cool": "Cool", - "dry": "Dry", - "fan_only": "Fan only", - "heat_cool": "Heat/cool", - "heat": "Heat" - } - } - }, "exceptions": { - "not_valid_preset_mode": { - "message": "Preset mode {mode} is not valid. Valid preset modes are: {modes}." - }, - "not_valid_hvac_mode": { - "message": "HVAC mode {mode} is not valid. Valid HVAC modes are: {modes}." - }, - "not_valid_swing_mode": { - "message": "Swing mode {mode} is not valid. Valid swing modes are: {modes}." - }, - "not_valid_horizontal_swing_mode": { - "message": "Horizontal swing mode {mode} is not valid. Valid horizontal swing modes are: {modes}." - }, - "not_valid_fan_mode": { - "message": "Fan mode {mode} is not valid. Valid fan modes are: {modes}." - }, - "temp_out_of_range": { - "message": "Provided temperature {check_temp} is not valid. Accepted range is {min_temp} to {max_temp}." + "humidity_out_of_range": { + "message": "Provided humidity {humidity} is not valid. Accepted range is {min_humidity} to {max_humidity}." }, "low_temp_higher_than_high_temp": { "message": "'Lower target temperature' can not be higher than 'Upper target temperature'." }, - "humidity_out_of_range": { - "message": "Provided humidity {humidity} is not valid. Accepted range is {min_humidity} to {max_humidity}." - }, "missing_target_temperature_entity_feature": { "message": "Set temperature action was used with the 'Target temperature' parameter but the entity does not support it." }, "missing_target_temperature_range_entity_feature": { "message": "Set temperature action was used with the 'Lower/Upper target temperature' parameter but the entity does not support it." + }, + "not_valid_fan_mode": { + "message": "Fan mode {mode} is not valid. Valid fan modes are: {modes}." + }, + "not_valid_horizontal_swing_mode": { + "message": "Horizontal swing mode {mode} is not valid. Valid horizontal swing modes are: {modes}." + }, + "not_valid_hvac_mode": { + "message": "HVAC mode {mode} is not valid. Valid HVAC modes are: {modes}." + }, + "not_valid_preset_mode": { + "message": "Preset mode {mode} is not valid. Valid preset modes are: {modes}." + }, + "not_valid_swing_mode": { + "message": "Swing mode {mode} is not valid. Valid swing modes are: {modes}." + }, + "temp_out_of_range": { + "message": "Provided temperature {check_temp} is not valid. Accepted range is {min_temp} to {max_temp}." } - } + }, + "selector": { + "hvac_mode": { + "options": { + "auto": "[%key:common::state::auto%]", + "cool": "Cool", + "dry": "Dry", + "fan_only": "Fan only", + "heat": "Heat", + "heat_cool": "Heat/cool", + "off": "[%key:common::state::off%]" + } + } + }, + "services": { + "set_fan_mode": { + "description": "Sets fan operation mode.", + "fields": { + "fan_mode": { + "description": "Fan operation mode.", + "name": "Fan mode" + } + }, + "name": "Set fan mode" + }, + "set_humidity": { + "description": "Sets target humidity.", + "fields": { + "humidity": { + "description": "Target humidity.", + "name": "Humidity" + } + }, + "name": "Set target humidity" + }, + "set_hvac_mode": { + "description": "Sets HVAC operation mode.", + "fields": { + "hvac_mode": { + "description": "HVAC operation mode.", + "name": "HVAC mode" + } + }, + "name": "Set HVAC mode" + }, + "set_preset_mode": { + "description": "Sets preset mode.", + "fields": { + "preset_mode": { + "description": "Preset mode.", + "name": "Preset mode" + } + }, + "name": "Set preset mode" + }, + "set_swing_horizontal_mode": { + "description": "Sets horizontal swing operation mode.", + "fields": { + "swing_horizontal_mode": { + "description": "Horizontal swing operation mode.", + "name": "Horizontal swing mode" + } + }, + "name": "Set horizontal swing mode" + }, + "set_swing_mode": { + "description": "Sets swing operation mode.", + "fields": { + "swing_mode": { + "description": "Swing operation mode.", + "name": "Swing mode" + } + }, + "name": "Set swing mode" + }, + "set_temperature": { + "description": "Sets the temperature setpoint.", + "fields": { + "hvac_mode": { + "description": "HVAC operation mode.", + "name": "HVAC mode" + }, + "target_temp_high": { + "description": "The max temperature setpoint.", + "name": "Upper target temperature" + }, + "target_temp_low": { + "description": "The min temperature setpoint.", + "name": "Lower target temperature" + }, + "temperature": { + "description": "The temperature setpoint.", + "name": "Target temperature" + } + }, + "name": "Set target temperature" + }, + "toggle": { + "description": "Toggles climate device, from on to off, or off to on.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Turns climate device off.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Turns climate device on.", + "name": "[%key:common::action::turn_on%]" + } + }, + "title": "Climate" } diff --git a/homeassistant/components/cloud/strings.json b/homeassistant/components/cloud/strings.json index 193d9e3f948..43dbd9c0810 100644 --- a/homeassistant/components/cloud/strings.json +++ b/homeassistant/components/cloud/strings.json @@ -1,96 +1,96 @@ { - "system_health": { - "info": { - "can_reach_cert_server": "Reach certificate server", - "can_reach_cloud": "Reach Home Assistant Cloud", - "can_reach_cloud_auth": "Reach authentication server", - "certificate_status": "Certificate status", - "relayer_connected": "Relayer connected", - "relayer_region": "Relayer region", - "remote_connected": "Remote connected", - "remote_enabled": "Remote enabled", - "remote_server": "Remote server", - "alexa_enabled": "Alexa enabled", - "google_enabled": "Google enabled", - "logged_in": "Logged In", - "instance_id": "Instance ID", - "subscription_expiration": "Subscription expiration" - } - }, "exceptions": { "backup_size_too_large": { "message": "The backup size of {size}GB is too large to be uploaded to Home Assistant Cloud." } }, "issues": { + "connection_error": { + "description": "You do not have a connection to Home Assistant Cloud. Check your network.", + "title": "No connection" + }, "deprecated_gender": { - "title": "The {deprecated_option} text-to-speech option is deprecated", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::cloud::issues::deprecated_voice::title%]", - "description": "The `{deprecated_option}` option for text-to-speech in the {integration_name} integration is deprecated and will be removed.\nPlease update your automations and scripts to replace the `{deprecated_option}` option with an option for a supported `{replacement_option}` instead." + "description": "The `{deprecated_option}` option for text-to-speech in the {integration_name} integration is deprecated and will be removed.\nPlease update your automations and scripts to replace the `{deprecated_option}` option with an option for a supported `{replacement_option}` instead.", + "title": "[%key:component::cloud::issues::deprecated_voice::title%]" } } - } + }, + "title": "The {deprecated_option} text-to-speech option is deprecated" }, "deprecated_tts_platform_config": { - "title": "The Cloud text-to-speech platform configuration is deprecated", - "description": "The whole `platform: cloud` entry under the `tts:` section in configuration.yaml is deprecated and should be removed. You can use the UI to change settings for the Cloud text-to-speech platform. Please adjust your configuration.yaml and restart Home Assistant to fix this issue." + "description": "The whole `platform: cloud` entry under the `tts:` section in configuration.yaml is deprecated and should be removed. You can use the UI to change settings for the Cloud text-to-speech platform. Please adjust your configuration.yaml and restart Home Assistant to fix this issue.", + "title": "The Cloud text-to-speech platform configuration is deprecated" }, "deprecated_voice": { - "title": "A deprecated voice was used", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::cloud::issues::deprecated_voice::title%]", - "description": "The `{deprecated_voice}`voice is deprecated and will be removed.\nPlease update your automations and scripts to replace the `{deprecated_voice}` with another voice like eg. `{replacement_voice}`." + "description": "The `{deprecated_voice}`voice is deprecated and will be removed.\nPlease update your automations and scripts to replace the `{deprecated_voice}` with another voice like eg. `{replacement_voice}`.", + "title": "[%key:component::cloud::issues::deprecated_voice::title%]" } } - } + }, + "title": "A deprecated voice was used" }, "legacy_subscription": { - "title": "Legacy subscription detected", "fix_flow": { + "abort": { + "operation_took_too_long": "The operation took too long. Please try again later." + }, "step": { "confirm_change_plan": { "description": "We've recently updated our subscription system. To continue using Home Assistant Cloud you need to one-time approve the change in PayPal.\n\nThis takes 1 minute and will not increase the price." } - }, - "abort": { - "operation_took_too_long": "The operation took too long. Please try again later." } - } - }, - "connection_error": { - "title": "No connection", - "description": "You do not have a connection to Home Assistant Cloud. Check your network." + }, + "title": "Legacy subscription detected" }, "no_subscription": { - "title": "No subscription detected", - "description": "You do not have a Home Assistant Cloud subscription. Subscribe at {account_url}." - }, - "warn_bad_custom_domain_configuration": { - "title": "Detected wrong custom domain configuration", - "description": "The DNS configuration for your custom domain ({custom_domains}) is not correct. Please check the DNS configuration of your domain and make sure it points to the correct CNAME." + "description": "You do not have a Home Assistant Cloud subscription. Subscribe at {account_url}.", + "title": "No subscription detected" }, "reset_bad_custom_domain_configuration": { - "title": "Custom domain ignored", - "description": "The DNS configuration for your custom domain ({custom_domains}) is not correct. This domain has now been ignored and will not be used for Home Assistant Cloud. If you want to use this domain, please fix the DNS configuration and restart Home Assistant. If you do not need this anymore, you can remove it from the account page." + "description": "The DNS configuration for your custom domain ({custom_domains}) is not correct. This domain has now been ignored and will not be used for Home Assistant Cloud. If you want to use this domain, please fix the DNS configuration and restart Home Assistant. If you do not need this anymore, you can remove it from the account page.", + "title": "Custom domain ignored" }, "subscription_expired": { - "title": "Subscription has expired", - "description": "Your Home Assistant Cloud subscription has expired. Resubscribe at {account_url}." + "description": "Your Home Assistant Cloud subscription has expired. Resubscribe at {account_url}.", + "title": "Subscription has expired" + }, + "warn_bad_custom_domain_configuration": { + "description": "The DNS configuration for your custom domain ({custom_domains}) is not correct. Please check the DNS configuration of your domain and make sure it points to the correct CNAME.", + "title": "Detected wrong custom domain configuration" } }, "services": { "remote_connect": { - "name": "Enable remote access", - "description": "Makes the instance UI accessible from outside of the local network by enabling your Home Assistant Cloud connection." + "description": "Makes the instance UI accessible from outside of the local network by enabling your Home Assistant Cloud connection.", + "name": "Enable remote access" }, "remote_disconnect": { - "name": "Disable remote access", - "description": "Disconnects the instance UI from Home Assistant Cloud. This disables access to it from outside your local network." + "description": "Disconnects the instance UI from Home Assistant Cloud. This disables access to it from outside your local network.", + "name": "Disable remote access" + } + }, + "system_health": { + "info": { + "alexa_enabled": "Alexa enabled", + "can_reach_cert_server": "Reach certificate server", + "can_reach_cloud": "Reach Home Assistant Cloud", + "can_reach_cloud_auth": "Reach authentication server", + "certificate_status": "Certificate status", + "google_enabled": "Google enabled", + "instance_id": "Instance ID", + "logged_in": "Logged In", + "relayer_connected": "Relayer connected", + "relayer_region": "Relayer region", + "remote_connected": "Remote connected", + "remote_enabled": "Remote enabled", + "remote_server": "Remote server", + "subscription_expiration": "Subscription expiration" } } } diff --git a/homeassistant/components/cloudflare/strings.json b/homeassistant/components/cloudflare/strings.json index 453135f47a0..adb50c9402f 100644 --- a/homeassistant/components/cloudflare/strings.json +++ b/homeassistant/components/cloudflare/strings.json @@ -1,46 +1,46 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Connect to Cloudflare", - "description": "This integration requires an API token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account.", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } - }, - "zone": { - "title": "Choose the zone to update", - "data": { - "zone": "Zone" - } - }, - "records": { - "title": "Choose the records to update", - "data": { - "records": "Records" - } - }, - "reauth_confirm": { - "data": { - "description": "Re-authenticate with your Cloudflare account.", - "api_token": "[%key:common::config_flow::data::api_token%]" - } - } + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "flow_title": "{name}", + "step": { + "reauth_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "description": "Re-authenticate with your Cloudflare account." + } + }, + "records": { + "data": { + "records": "Records" + }, + "title": "Choose the records to update" + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "This integration requires an API token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account.", + "title": "Connect to Cloudflare" + }, + "zone": { + "data": { + "zone": "Zone" + }, + "title": "Choose the zone to update" + } } }, "services": { "update_records": { - "name": "Update records", - "description": "Manually triggers an update of Cloudflare records." + "description": "Manually triggers an update of Cloudflare records.", + "name": "Update records" } } } diff --git a/homeassistant/components/co2signal/strings.json b/homeassistant/components/co2signal/strings.json index 69925f58993..5ee06a139bf 100644 --- a/homeassistant/components/co2signal/strings.json +++ b/homeassistant/components/co2signal/strings.json @@ -1,13 +1,14 @@ { "config": { + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_data": "No data is available for the location you have selected.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "location": "[%key:common::config_flow::data::location%]", - "api_key": "[%key:common::config_flow::data::access_token%]" - }, - "description": "Visit the [Electricity Maps page]({register_link}) to request a token." - }, "coordinates": { "data": { "latitude": "[%key:common::config_flow::data::latitude%]", @@ -23,15 +24,14 @@ "data": { "api_key": "[%key:common::config_flow::data::access_token%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::access_token%]", + "location": "[%key:common::config_flow::data::location%]" + }, + "description": "Visit the [Electricity Maps page]({register_link}) to request a token." } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "no_data": "No data is available for the location you have selected." - }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -57,9 +57,9 @@ "selector": { "location": { "options": { - "use_home_location": "Use home location", "specify_coordinates": "Specify coordinates", - "specify_country_code": "Specify country code" + "specify_country_code": "Specify country code", + "use_home_location": "Use home location" } } } diff --git a/homeassistant/components/coinbase/strings.json b/homeassistant/components/coinbase/strings.json index 6c37dd5cdc4..587c4ad2aef 100644 --- a/homeassistant/components/coinbase/strings.json +++ b/homeassistant/components/coinbase/strings.json @@ -1,22 +1,8 @@ { "config": { - "step": { - "user": { - "title": "Coinbase API key details", - "description": "Please enter the details of your API key as provided by Coinbase.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "api_token": "API secret" - } - }, - "reauth_confirm": { - "title": "Update Coinbase API credentials", - "description": "Your current Coinbase API key appears to be for the deprecated v2 API. Please reconfigure with a new API key created for the v3 API. Visit the [Developer Platform]({developer_url}) to create new credentials for {account_name}.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "api_token": "API secret" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "Successfully updated credentials" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -25,27 +11,41 @@ "invalid_auth_secret": "API credentials rejected by Coinbase due to an invalid API secret.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "Successfully updated credentials" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "api_token": "API secret" + }, + "description": "Your current Coinbase API key appears to be for the deprecated v2 API. Please reconfigure with a new API key created for the v3 API. Visit the [Developer Platform]({developer_url}) to create new credentials for {account_name}.", + "title": "Update Coinbase API credentials" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "api_token": "API secret" + }, + "description": "Please enter the details of your API key as provided by Coinbase.", + "title": "Coinbase API key details" + } } }, "options": { + "error": { + "currency_unavailable": "One or more of the requested currency balances is not provided by your Coinbase API.", + "exchange_rate_unavailable": "One or more of the requested exchange rates is not provided by Coinbase.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "init": { - "description": "Adjust Coinbase options", "data": { "account_balance_currencies": "Wallet balances to report.", - "exchange_rate_currencies": "Exchange rates to report.", "exchange_base": "Base currency for exchange rate sensors.", + "exchange_rate_currencies": "Exchange rates to report.", "exchange_rate_precision": "Number of decimal places for exchange rates." - } + }, + "description": "Adjust Coinbase options" } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "currency_unavailable": "One or more of the requested currency balances is not provided by your Coinbase API.", - "exchange_rate_unavailable": "One or more of the requested exchange rates is not provided by Coinbase." } } } diff --git a/homeassistant/components/color_extractor/strings.json b/homeassistant/components/color_extractor/strings.json index e501879e881..cd628d5ab57 100644 --- a/homeassistant/components/color_extractor/strings.json +++ b/homeassistant/components/color_extractor/strings.json @@ -8,18 +8,18 @@ }, "services": { "turn_on": { - "name": "[%key:common::action::turn_on%]", "description": "Sets the light RGB to the predominant color found in the image provided by URL or file path.", "fields": { - "color_extract_url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "The URL of the image we want to extract RGB values from. Must be allowed in allowlist_external_urls." - }, "color_extract_path": { - "name": "[%key:common::config_flow::data::path%]", - "description": "The full system path to the image we want to extract RGB values from. Must be allowed in allowlist_external_dirs." + "description": "The full system path to the image we want to extract RGB values from. Must be allowed in allowlist_external_dirs.", + "name": "[%key:common::config_flow::data::path%]" + }, + "color_extract_url": { + "description": "The URL of the image we want to extract RGB values from. Must be allowed in allowlist_external_urls.", + "name": "[%key:common::config_flow::data::url%]" } - } + }, + "name": "[%key:common::action::turn_on%]" } } } diff --git a/homeassistant/components/comelit/icons.json b/homeassistant/components/comelit/icons.json index 6ac83cfc8e0..b9a4d8ab5f5 100644 --- a/homeassistant/components/comelit/icons.json +++ b/homeassistant/components/comelit/icons.json @@ -1,10 +1,5 @@ { "entity": { - "sensor": { - "zone_status": { - "default": "mdi:shield-check" - } - }, "climate": { "thermostat": { "state_attributes": { @@ -16,6 +11,11 @@ } } } + }, + "sensor": { + "zone_status": { + "default": "mdi:shield-check" + } } } } diff --git a/homeassistant/components/comelit/strings.json b/homeassistant/components/comelit/strings.json index 2b051586ac4..3feac40d07f 100644 --- a/homeassistant/components/comelit/strings.json +++ b/homeassistant/components/comelit/strings.json @@ -1,5 +1,20 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_pin": "The provided PIN is invalid. It must be a 4-10 digit number.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_pin": "[%key:component::comelit::config::abort::invalid_pin%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{host}", "step": { "reauth_confirm": { @@ -10,73 +25,35 @@ "pin": "The PIN of your Comelit device." } }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "pin": "[%key:common::config_flow::data::pin%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::comelit::config::step::user::data_description::host%]", + "pin": "[%key:component::comelit::config::step::reauth_confirm::data_description::pin%]", + "port": "[%key:component::comelit::config::step::user::data_description::port%]" + } + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", "pin": "[%key:common::config_flow::data::pin%]", + "port": "[%key:common::config_flow::data::port%]", "type": "Device type" }, "data_description": { "host": "The hostname or IP address of your Comelit device.", - "port": "The port of your Comelit device.", "pin": "[%key:component::comelit::config::step::reauth_confirm::data_description::pin%]", + "port": "The port of your Comelit device.", "type": "The type of your Comelit device." } - }, - "reconfigure": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "pin": "[%key:common::config_flow::data::pin%]" - }, - "data_description": { - "host": "[%key:component::comelit::config::step::user::data_description::host%]", - "port": "[%key:component::comelit::config::step::user::data_description::port%]", - "pin": "[%key:component::comelit::config::step::reauth_confirm::data_description::pin%]" - } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_pin": "The provided PIN is invalid. It must be a 4-10 digit number.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_pin": "[%key:component::comelit::config::abort::invalid_pin%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { - "sensor": { - "zone_status": { - "state": { - "open": "[%key:common::state::open%]", - "alarm": "Alarm", - "armed": "Armed", - "excluded": "Excluded", - "faulty": "Faulty", - "inhibited": "Inhibited", - "isolated": "Isolated", - "rest": "Rest", - "sabotated": "Sabotated" - } - } - }, - "humidifier": { - "humidifier": { - "name": "Humidifier" - }, - "dehumidifier": { - "name": "Dehumidifier" - } - }, "climate": { "thermostat": { "state_attributes": { @@ -88,24 +65,47 @@ } } } + }, + "humidifier": { + "dehumidifier": { + "name": "Dehumidifier" + }, + "humidifier": { + "name": "Humidifier" + } + }, + "sensor": { + "zone_status": { + "state": { + "alarm": "Alarm", + "armed": "Armed", + "excluded": "Excluded", + "faulty": "Faulty", + "inhibited": "Inhibited", + "isolated": "Isolated", + "open": "[%key:common::state::open%]", + "rest": "Rest", + "sabotated": "Sabotated" + } + } } }, "exceptions": { + "cannot_authenticate": { + "message": "Error authenticating" + }, + "cannot_connect": { + "message": "Error connecting: {error}" + }, + "cannot_retrieve_data": { + "message": "Error retrieving data: {error}" + }, "humidity_while_off": { "message": "Cannot change humidity while off" }, "invalid_clima_data": { "message": "Invalid 'clima' data" }, - "cannot_connect": { - "message": "Error connecting: {error}" - }, - "cannot_authenticate": { - "message": "Error authenticating" - }, - "cannot_retrieve_data": { - "message": "Error retrieving data: {error}" - }, "update_failed": { "message": "Failed to update data: {error}" } diff --git a/homeassistant/components/command_line/strings.json b/homeassistant/components/command_line/strings.json index 377ed7927aa..6497fdcf98d 100644 --- a/homeassistant/components/command_line/strings.json +++ b/homeassistant/components/command_line/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads command line configuration from the YAML-configuration." + "description": "Reloads command line configuration from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/compit/strings.json b/homeassistant/components/compit/strings.json index 3daefd25f66..b5c6c4b419c 100644 --- a/homeassistant/components/compit/strings.json +++ b/homeassistant/components/compit/strings.json @@ -1,9 +1,24 @@ { "config": { + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::compit::config::step::user::data_description::password%]" + }, + "description": "Please update your password for {email}" + }, "user": { - "description": "Please enter your {compit_url} credentials.", - "title": "Connect to Compit iNext", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -11,25 +26,10 @@ "data_description": { "email": "The email address of your inext.compit.pl account", "password": "The password of your inext.compit.pl account" - } - }, - "reauth_confirm": { - "description": "Please update your password for {email}", - "data": { - "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "password": "[%key:component::compit::config::step::user::data_description::password%]" - } + "description": "Please enter your {compit_url} credentials.", + "title": "Connect to Compit iNext" } - }, - "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": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } } } diff --git a/homeassistant/components/configurator/strings.json b/homeassistant/components/configurator/strings.json index 0574e4bfced..afca380fafb 100644 --- a/homeassistant/components/configurator/strings.json +++ b/homeassistant/components/configurator/strings.json @@ -1,5 +1,4 @@ { - "title": "Configurator", "entity_component": { "_": { "name": "[%key:component::configurator::title%]", @@ -8,5 +7,6 @@ "configured": "Configured" } } - } + }, + "title": "Configurator" } diff --git a/homeassistant/components/conversation/strings.json b/homeassistant/components/conversation/strings.json index e3c3aa5af20..b09d3dccac2 100644 --- a/homeassistant/components/conversation/strings.json +++ b/homeassistant/components/conversation/strings.json @@ -1,46 +1,46 @@ { - "title": "Conversation", - "services": { - "process": { - "name": "Process", - "description": "Launches a conversation from a transcribed text.", - "fields": { - "text": { - "name": "Text", - "description": "Transcribed text input." - }, - "language": { - "name": "[%key:common::config_flow::data::language%]", - "description": "Language of text. Defaults to server language." - }, - "agent_id": { - "name": "Agent", - "description": "Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands." - }, - "conversation_id": { - "name": "Conversation ID", - "description": "ID of the conversation, to be able to continue a previous conversation" - } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads the intent configuration.", - "fields": { - "language": { - "name": "[%key:common::config_flow::data::language%]", - "description": "Language to clear cached intents for. Defaults to server language." - }, - "agent_id": { - "name": "[%key:component::conversation::services::process::fields::agent_id::name%]", - "description": "Conversation agent to reload." - } - } - } - }, "conversation": { "agent": { "done": "Done" } - } + }, + "services": { + "process": { + "description": "Launches a conversation from a transcribed text.", + "fields": { + "agent_id": { + "description": "Conversation agent to process your request. The conversation agent is the brains of your assistant. It processes the incoming text commands.", + "name": "Agent" + }, + "conversation_id": { + "description": "ID of the conversation, to be able to continue a previous conversation", + "name": "Conversation ID" + }, + "language": { + "description": "Language of text. Defaults to server language.", + "name": "[%key:common::config_flow::data::language%]" + }, + "text": { + "description": "Transcribed text input.", + "name": "Text" + } + }, + "name": "Process" + }, + "reload": { + "description": "Reloads the intent configuration.", + "fields": { + "agent_id": { + "description": "Conversation agent to reload.", + "name": "[%key:component::conversation::services::process::fields::agent_id::name%]" + }, + "language": { + "description": "Language to clear cached intents for. Defaults to server language.", + "name": "[%key:common::config_flow::data::language%]" + } + }, + "name": "[%key:common::action::reload%]" + } + }, + "title": "Conversation" } diff --git a/homeassistant/components/cookidoo/icons.json b/homeassistant/components/cookidoo/icons.json index cf4d9dc2858..f13e46c1dbe 100644 --- a/homeassistant/components/cookidoo/icons.json +++ b/homeassistant/components/cookidoo/icons.json @@ -1,28 +1,28 @@ { "entity": { - "sensor": { - "subscription": { - "default": "mdi:account", - "state": { - "free": "mdi:account", - "trial": "mdi:account-question", - "regular": "mdi:account-star" - } - }, - "expiration": { - "default": "mdi:account-reactivate" - } - }, "button": { "todo_clear": { "default": "mdi:cart-off" } }, + "sensor": { + "expiration": { + "default": "mdi:account-reactivate" + }, + "subscription": { + "default": "mdi:account", + "state": { + "free": "mdi:account", + "regular": "mdi:account-star", + "trial": "mdi:account-question" + } + } + }, "todo": { - "ingredient_list": { + "additional_item_list": { "default": "mdi:cart-plus" }, - "additional_item_list": { + "ingredient_list": { "default": "mdi:cart-plus" } } diff --git a/homeassistant/components/cookidoo/strings.json b/homeassistant/components/cookidoo/strings.json index 52f99133546..b05cafcbc71 100644 --- a/homeassistant/components/cookidoo/strings.json +++ b/homeassistant/components/cookidoo/strings.json @@ -1,31 +1,27 @@ { "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": "The user identifier does not match the previous identifier" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "title": "Set up {cookidoo}", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]", - "country": "[%key:common::config_flow::data::country%]" - }, - "data_description": { - "email": "Email used to access your {cookidoo} account.", - "password": "Password used to access your {cookidoo} account.", - "country": "Pick your country for the {cookidoo} content." - } - }, "language": { - "title": "[%key:component::cookidoo::config::step::user::title%]", "data": { "language": "[%key:common::config_flow::data::language%]" }, "data_description": { "language": "Pick your language for the {cookidoo} content." - } + }, + "title": "[%key:component::cookidoo::config::step::user::title%]" }, "reauth_confirm": { - "title": "Log in again to {cookidoo}", - "description": "Please log in to {cookidoo} again to continue using this integration.", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -33,46 +29,50 @@ "data_description": { "email": "[%key:component::cookidoo::config::step::user::data_description::email%]", "password": "[%key:component::cookidoo::config::step::user::data_description::password%]" - } + }, + "description": "Please log in to {cookidoo} again to continue using this integration.", + "title": "Log in again to {cookidoo}" + }, + "user": { + "data": { + "country": "[%key:common::config_flow::data::country%]", + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "country": "Pick your country for the {cookidoo} content.", + "email": "Email used to access your {cookidoo} account.", + "password": "Password used to access your {cookidoo} account." + }, + "title": "Set up {cookidoo}" } - }, - "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "unique_id_mismatch": "The user identifier does not match the previous identifier" } }, "entity": { - "sensor": { - "subscription": { - "name": "Subscription", - "state": { - "free": "Free", - "trial": "Trial", - "premium": "Premium" - } - }, - "expires": { - "name": "Subscription expiration date" - } - }, "button": { "todo_clear": { "name": "Clear shopping list and additional purchases" } }, - "todo": { - "ingredient_list": { - "name": "Shopping list" + "sensor": { + "expires": { + "name": "Subscription expiration date" }, + "subscription": { + "name": "Subscription", + "state": { + "free": "Free", + "premium": "Premium", + "trial": "Trial" + } + } + }, + "todo": { "additional_item_list": { "name": "Additional purchases" + }, + "ingredient_list": { + "name": "Shopping list" } } }, @@ -80,21 +80,21 @@ "button_clear_todo_failed": { "message": "Failed to clear all items from the Cookidoo shopping list" }, + "setup_authentication_exception": { + "message": "Authentication failed for {email}, check your email and password" + }, + "setup_request_exception": { + "message": "Failed to connect to server, try again later" + }, + "todo_delete_item_failed": { + "message": "Failed to delete {count} item(s) from Cookidoo shopping list" + }, "todo_save_item_failed": { "message": "Failed to save {name} to Cookidoo shopping list" }, "todo_update_item_failed": { "message": "Failed to update {name} in Cookidoo shopping list" }, - "todo_delete_item_failed": { - "message": "Failed to delete {count} item(s) from Cookidoo shopping list" - }, - "setup_request_exception": { - "message": "Failed to connect to server, try again later" - }, - "setup_authentication_exception": { - "message": "Authentication failed for {email}, check your email and password" - }, "update_exception": { "message": "Unable to connect and retrieve data from cookidoo" } diff --git a/homeassistant/components/coolmaster/strings.json b/homeassistant/components/coolmaster/strings.json index 17deab306df..77c5765ab78 100644 --- a/homeassistant/components/coolmaster/strings.json +++ b/homeassistant/components/coolmaster/strings.json @@ -1,26 +1,26 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_units": "Could not find any HVAC units in CoolMasterNet host." + }, "step": { "user": { - "description": "Set up your CoolMasterNet connection details.", "data": { - "host": "[%key:common::config_flow::data::host%]", - "off": "Can be turned off", - "heat": "Support heat mode", "cool": "Support cool mode", - "heat_cool": "Support automatic heat/cool mode", "dry": "Support dry mode", "fan_only": "Support fan only mode", + "heat": "Support heat mode", + "heat_cool": "Support automatic heat/cool mode", + "host": "[%key:common::config_flow::data::host%]", + "off": "Can be turned off", "swing_support": "Control swing mode" }, "data_description": { "host": "The hostname or IP address of your CoolMasterNet device." - } + }, + "description": "Set up your CoolMasterNet connection details." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "no_units": "Could not find any HVAC units in CoolMasterNet host." } }, "entity": { diff --git a/homeassistant/components/counter/strings.json b/homeassistant/components/counter/strings.json index 2c52fb43b9f..bc00387eb48 100644 --- a/homeassistant/components/counter/strings.json +++ b/homeassistant/components/counter/strings.json @@ -1,5 +1,4 @@ { - "title": "Counter", "entity_component": { "_": { "name": "[%key:component::counter::title%]", @@ -7,8 +6,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "initial": { @@ -28,26 +27,27 @@ }, "services": { "decrement": { - "name": "Decrement", - "description": "Decrements a counter by its step size." + "description": "Decrements a counter by its step size.", + "name": "Decrement" }, "increment": { - "name": "Increment", - "description": "Increments a counter by its step size." + "description": "Increments a counter by its step size.", + "name": "Increment" }, "reset": { - "name": "Reset", - "description": "Resets a counter to its initial value." + "description": "Resets a counter to its initial value.", + "name": "Reset" }, "set_value": { - "name": "Set", "description": "Sets the counter to a specific value.", "fields": { "value": { - "name": "Value", - "description": "The new counter value the entity should be set to." + "description": "The new counter value the entity should be set to.", + "name": "Value" } - } + }, + "name": "Set" } - } + }, + "title": "Counter" } diff --git a/homeassistant/components/cover/strings.json b/homeassistant/components/cover/strings.json index 6ca8b50620f..f0d42685e85 100644 --- a/homeassistant/components/cover/strings.json +++ b/homeassistant/components/cover/strings.json @@ -1,20 +1,19 @@ { - "title": "Cover", "device_automation": { "action_type": { - "open": "Open {entity_name}", "close": "Close {entity_name}", - "stop": "Stop {entity_name}", - "open_tilt": "Open {entity_name} tilt", "close_tilt": "Close {entity_name} tilt", + "open": "Open {entity_name}", + "open_tilt": "Open {entity_name} tilt", "set_position": "Set {entity_name} position", - "set_tilt_position": "Set {entity_name} tilt position" + "set_tilt_position": "Set {entity_name} tilt position", + "stop": "Stop {entity_name}" }, "condition_type": { - "is_open": "{entity_name} is open", "is_closed": "{entity_name} is closed", - "is_opening": "{entity_name} is opening", "is_closing": "{entity_name} is closing", + "is_open": "{entity_name} is open", + "is_opening": "{entity_name} is opening", "is_position": "Current {entity_name} position is", "is_tilt_position": "Current {entity_name} tilt position is" }, @@ -25,10 +24,10 @@ "position": "Position" }, "trigger_type": { - "opened": "{entity_name} opened", "closed": "{entity_name} closed", - "opening": "{entity_name} opening", "closing": "{entity_name} closing", + "opened": "{entity_name} opened", + "opening": "{entity_name} opening", "position": "{entity_name} position changes", "tilt_position": "{entity_name} tilt position changes" } @@ -37,10 +36,10 @@ "_": { "name": "[%key:component::cover::title%]", "state": { - "open": "[%key:common::state::open%]", - "opening": "[%key:common::state::opening%]", "closed": "[%key:common::state::closed%]", "closing": "[%key:common::state::closing%]", + "open": "[%key:common::state::open%]", + "opening": "[%key:common::state::opening%]", "stopped": "[%key:common::state::stopped%]" }, "state_attributes": { @@ -84,57 +83,58 @@ } }, "services": { - "open_cover": { - "name": "[%key:common::action::open%]", - "description": "Opens a cover." - }, "close_cover": { - "name": "[%key:common::action::close%]", - "description": "Closes a cover." + "description": "Closes a cover.", + "name": "[%key:common::action::close%]" }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles a cover open/closed." + "close_cover_tilt": { + "description": "Tilts a cover to close.", + "name": "Close tilt" + }, + "open_cover": { + "description": "Opens a cover.", + "name": "[%key:common::action::open%]" + }, + "open_cover_tilt": { + "description": "Tilts a cover open.", + "name": "Open tilt" }, "set_cover_position": { - "name": "Set position", "description": "Moves a cover to a specific position.", "fields": { "position": { - "name": "Position", - "description": "Target position." + "description": "Target position.", + "name": "Position" } - } - }, - "stop_cover": { - "name": "[%key:common::action::stop%]", - "description": "Stops the cover movement." - }, - "open_cover_tilt": { - "name": "Open tilt", - "description": "Tilts a cover open." - }, - "close_cover_tilt": { - "name": "Close tilt", - "description": "Tilts a cover to close." - }, - "toggle_cover_tilt": { - "name": "Toggle tilt", - "description": "Toggles a cover tilt open/closed." + }, + "name": "Set position" }, "set_cover_tilt_position": { - "name": "Set tilt position", "description": "Moves a cover tilt to a specific position.", "fields": { "tilt_position": { - "name": "Tilt position", - "description": "Target tilt positition." + "description": "Target tilt positition.", + "name": "Tilt position" } - } + }, + "name": "Set tilt position" + }, + "stop_cover": { + "description": "Stops the cover movement.", + "name": "[%key:common::action::stop%]" }, "stop_cover_tilt": { - "name": "Stop tilt", - "description": "Stops a tilting cover movement." + "description": "Stops a tilting cover movement.", + "name": "Stop tilt" + }, + "toggle": { + "description": "Toggles a cover open/closed.", + "name": "[%key:common::action::toggle%]" + }, + "toggle_cover_tilt": { + "description": "Toggles a cover tilt open/closed.", + "name": "Toggle tilt" } - } + }, + "title": "Cover" } diff --git a/homeassistant/components/cpuspeed/strings.json b/homeassistant/components/cpuspeed/strings.json index 6f4b3133b1b..11ad6af1e97 100644 --- a/homeassistant/components/cpuspeed/strings.json +++ b/homeassistant/components/cpuspeed/strings.json @@ -1,14 +1,14 @@ { - "title": "CPU Speed", "config": { - "step": { - "user": { - "title": "[%key:component::cpuspeed::title%]", - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "not_compatible": "Unable to get CPU information, this integration is not compatible with your system" + }, + "step": { + "user": { + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "[%key:component::cpuspeed::title%]" + } } - } + }, + "title": "CPU Speed" } diff --git a/homeassistant/components/crownstone/strings.json b/homeassistant/components/crownstone/strings.json index 204f43768c7..67b2bf1498c 100644 --- a/homeassistant/components/crownstone/strings.json +++ b/homeassistant/components/crownstone/strings.json @@ -11,33 +11,33 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { + "usb_config": { + "data": { + "usb_path": "[%key:common::config_flow::data::usb_path%]" + }, + "description": "Select the serial port of the Crownstone USB dongle, or select 'Don't use USB' if you don't want to set up a USB dongle.\n\nLook for a device with VID 10C4 and PID EA60.", + "title": "Crownstone USB dongle configuration" + }, + "usb_manual_config": { + "data": { + "usb_manual_path": "[%key:common::config_flow::data::usb_path%]" + }, + "description": "Manually enter the path of a Crownstone USB dongle.", + "title": "Crownstone USB dongle manual path" + }, + "usb_sphere_config": { + "data": { + "usb_sphere": "Crownstone Sphere" + }, + "description": "Select a Crownstone Sphere where the USB is located.", + "title": "Crownstone USB Sphere" + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" }, "title": "Crownstone account" - }, - "usb_config": { - "data": { - "usb_path": "[%key:common::config_flow::data::usb_path%]" - }, - "title": "Crownstone USB dongle configuration", - "description": "Select the serial port of the Crownstone USB dongle, or select 'Don't use USB' if you don't want to set up a USB dongle.\n\nLook for a device with VID 10C4 and PID EA60." - }, - "usb_manual_config": { - "data": { - "usb_manual_path": "[%key:common::config_flow::data::usb_path%]" - }, - "title": "Crownstone USB dongle manual path", - "description": "Manually enter the path of a Crownstone USB dongle." - }, - "usb_sphere_config": { - "data": { - "usb_sphere": "Crownstone Sphere" - }, - "title": "Crownstone USB Sphere", - "description": "Select a Crownstone Sphere where the USB is located." } } }, @@ -45,30 +45,30 @@ "step": { "init": { "data": { - "use_usb_option": "Use a Crownstone USB dongle for local data transmission", - "usb_sphere_option": "Crownstone Sphere where the USB is located" + "usb_sphere_option": "Crownstone Sphere where the USB is located", + "use_usb_option": "Use a Crownstone USB dongle for local data transmission" } }, "usb_config": { "data": { "usb_path": "[%key:common::config_flow::data::usb_path%]" }, - "title": "[%key:component::crownstone::config::step::usb_config::title%]", - "description": "Select the serial port of the Crownstone USB dongle.\n\nLook for a device with VID 10C4 and PID EA60." + "description": "Select the serial port of the Crownstone USB dongle.\n\nLook for a device with VID 10C4 and PID EA60.", + "title": "[%key:component::crownstone::config::step::usb_config::title%]" }, "usb_manual_config": { "data": { "usb_manual_path": "[%key:common::config_flow::data::usb_path%]" }, - "title": "[%key:component::crownstone::config::step::usb_manual_config::title%]", - "description": "[%key:component::crownstone::config::step::usb_manual_config::description%]" + "description": "[%key:component::crownstone::config::step::usb_manual_config::description%]", + "title": "[%key:component::crownstone::config::step::usb_manual_config::title%]" }, "usb_sphere_config": { "data": { "usb_sphere": "[%key:component::crownstone::config::step::usb_sphere_config::data::usb_sphere%]" }, - "title": "[%key:component::crownstone::config::step::usb_sphere_config::title%]", - "description": "[%key:component::crownstone::config::step::usb_sphere_config::description%]" + "description": "[%key:component::crownstone::config::step::usb_sphere_config::description%]", + "title": "[%key:component::crownstone::config::step::usb_sphere_config::title%]" } } } diff --git a/homeassistant/components/cync/strings.json b/homeassistant/components/cync/strings.json index b5dc72500c3..51106a810eb 100644 --- a/homeassistant/components/cync/strings.json +++ b/homeassistant/components/cync/strings.json @@ -1,15 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unique_id_mismatch": "An incorrect user was provided by Cync for your email address, please consult your Cync app" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { + "reauth_confirm": { "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" }, "data_description": { - "email": "Your Cync account's email address", - "password": "Your Cync account's password" - } + "email": "[%key:component::cync::config::step::user::data_description::email%]", + "password": "[%key:component::cync::config::step::user::data_description::password%]" + }, + "description": "The Cync integration needs to re-authenticate for {email}", + "title": "[%key:common::config_flow::title::reauth%]" }, "two_factor": { "data": { @@ -19,28 +31,16 @@ "two_factor_code": "The two-factor code sent to your Cync account's email" } }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Cync integration needs to re-authenticate for {email}", + "user": { "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" }, "data_description": { - "email": "[%key:component::cync::config::step::user::data_description::email%]", - "password": "[%key:component::cync::config::step::user::data_description::password%]" + "email": "Your Cync account's email address", + "password": "Your Cync account's password" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "An incorrect user was provided by Cync for your email address, please consult your Cync app" } } } diff --git a/homeassistant/components/daikin/icons.json b/homeassistant/components/daikin/icons.json index 99dfa8efdf5..41c9e512483 100644 --- a/homeassistant/components/daikin/icons.json +++ b/homeassistant/components/daikin/icons.json @@ -1,25 +1,25 @@ { "entity": { "sensor": { + "compressor_frequency": { + "default": "mdi:fan" + }, "cool_energy_consumption": { "default": "mdi:snowflake" }, "heat_energy_consumption": { "default": "mdi:fire" - }, - "compressor_frequency": { - "default": "mdi:fan" } }, "switch": { - "zone": { - "default": "mdi:home-circle" - }, "streamer": { "default": "mdi:air-filter" }, "toggle": { "default": "mdi:power" + }, + "zone": { + "default": "mdi:home-circle" } } } diff --git a/homeassistant/components/daikin/strings.json b/homeassistant/components/daikin/strings.json index 93fc9f3be1c..53645b1e7bd 100644 --- a/homeassistant/components/daikin/strings.json +++ b/homeassistant/components/daikin/strings.json @@ -1,29 +1,47 @@ { "config": { - "step": { - "user": { - "title": "Configure Daikin AC", - "description": "Enter the IP address of your Daikin AC.\nIf your device is set up with a password or API-key, please use that, in all other cases leave the fields blank.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "api_password": "Invalid authentication, use either API Key or Password.", - "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Enter the IP address of your Daikin AC.\nIf your device is set up with a password or API-key, please use that, in all other cases leave the fields blank.", + "title": "Configure Daikin AC" + } } }, "entity": { "sensor": { + "compressor_energy_consumption": { + "name": "Compressor energy consumption" + }, + "compressor_estimated_power_consumption": { + "name": "Compressor estimated power consumption" + }, + "compressor_frequency": { + "name": "Compressor frequency" + }, + "cool_energy_consumption": { + "name": "Cool energy consumption" + }, + "energy_consumption": { + "name": "Energy consumption" + }, + "heat_energy_consumption": { + "name": "Heat energy consumption" + }, "inside_temperature": { "name": "Inside temperature" }, @@ -32,24 +50,6 @@ }, "target_humidity": { "name": "Target humidity" - }, - "compressor_estimated_power_consumption": { - "name": "Compressor estimated power consumption" - }, - "cool_energy_consumption": { - "name": "Cool energy consumption" - }, - "heat_energy_consumption": { - "name": "Heat energy consumption" - }, - "energy_consumption": { - "name": "Energy consumption" - }, - "compressor_frequency": { - "name": "Compressor frequency" - }, - "compressor_energy_consumption": { - "name": "Compressor energy consumption" } }, "switch": { diff --git a/homeassistant/components/datadog/strings.json b/homeassistant/components/datadog/strings.json index 86bb2019fc1..f92854553be 100644 --- a/homeassistant/components/datadog/strings.json +++ b/homeassistant/components/datadog/strings.json @@ -1,8 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { - "description": "Enter your Datadog Agent's address and port.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]", @@ -14,21 +20,27 @@ "port": "Port the Datadog Agent is listening on", "prefix": "Metric prefix to use", "rate": "The sample rate of UDP packets sent to Datadog." - } + }, + "description": "Enter your Datadog Agent's address and port." } + } + }, + "issues": { + "deprecated_yaml_import_connection_error": { + "description": "There was an error connecting to the Datadog Agent when trying to import the YAML configuration.\n\nEnsure the YAML configuration is correct and restart Home Assistant to try again or remove the {domain} configuration from your `configuration.yaml` file and continue to [set up the integration]({url}) manually.", + "title": "{domain} YAML configuration import failed" + } + }, + "options": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "options": { "step": { "init": { - "description": "Update the Datadog configuration.", "data": { "prefix": "[%key:component::datadog::config::step::user::data::prefix%]", "rate": "[%key:component::datadog::config::step::user::data::rate%]" @@ -36,21 +48,9 @@ "data_description": { "prefix": "[%key:component::datadog::config::step::user::data_description::prefix%]", "rate": "[%key:component::datadog::config::step::user::data_description::rate%]" - } + }, + "description": "Update the Datadog configuration." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "issues": { - "deprecated_yaml_import_connection_error": { - "title": "{domain} YAML configuration import failed", - "description": "There was an error connecting to the Datadog Agent when trying to import the YAML configuration.\n\nEnsure the YAML configuration is correct and restart Home Assistant to try again or remove the {domain} configuration from your `configuration.yaml` file and continue to [set up the integration]({url}) manually." } } } diff --git a/homeassistant/components/date/strings.json b/homeassistant/components/date/strings.json index 9e88d3b5676..fb4976f5399 100644 --- a/homeassistant/components/date/strings.json +++ b/homeassistant/components/date/strings.json @@ -1,5 +1,4 @@ { - "title": "Date", "entity_component": { "_": { "name": "[%key:component::date::title%]" @@ -7,14 +6,15 @@ }, "services": { "set_value": { - "name": "Set date", "description": "Sets the date.", "fields": { "date": { - "name": "Date", - "description": "The date to set." + "description": "The date to set.", + "name": "Date" } - } + }, + "name": "Set date" } - } + }, + "title": "Date" } diff --git a/homeassistant/components/datetime/strings.json b/homeassistant/components/datetime/strings.json index 503d7a2ca9e..8316bbaedb5 100644 --- a/homeassistant/components/datetime/strings.json +++ b/homeassistant/components/datetime/strings.json @@ -1,5 +1,4 @@ { - "title": "Date/Time", "entity_component": { "_": { "name": "[%key:component::datetime::title%]" @@ -7,14 +6,15 @@ }, "services": { "set_value": { - "name": "Set date/time", "description": "Sets the date/time for a datetime entity.", "fields": { "datetime": { - "name": "Date & Time", - "description": "The date/time to set. The time zone of the Home Assistant instance is assumed." + "description": "The date/time to set. The time zone of the Home Assistant instance is assumed.", + "name": "Date & Time" } - } + }, + "name": "Set date/time" } - } + }, + "title": "Date/Time" } diff --git a/homeassistant/components/deako/strings.json b/homeassistant/components/deako/strings.json index 6bb292d74a9..1b4f6d6081d 100644 --- a/homeassistant/components/deako/strings.json +++ b/homeassistant/components/deako/strings.json @@ -1,13 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Please confirm setting up the Deako integration" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/debugpy/strings.json b/homeassistant/components/debugpy/strings.json index 2de92fc3827..abf7786c059 100644 --- a/homeassistant/components/debugpy/strings.json +++ b/homeassistant/components/debugpy/strings.json @@ -1,8 +1,8 @@ { "services": { "start": { - "name": "[%key:common::action::start%]", - "description": "Starts the Remote Python Debugger." + "description": "Starts the Remote Python Debugger.", + "name": "[%key:common::action::start%]" } } } diff --git a/homeassistant/components/deconz/strings.json b/homeassistant/components/deconz/strings.json index a64bdd5050e..3b575a4c151 100644 --- a/homeassistant/components/deconz/strings.json +++ b/homeassistant/components/deconz/strings.json @@ -1,11 +1,25 @@ { "config": { + "abort": { + "already_configured": "Bridge is already configured", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_bridges": "No deCONZ bridges discovered", + "no_hardware_available": "No radio hardware connected to deCONZ", + "updated_instance": "Updated deCONZ instance with new host address" + }, + "error": { + "linking_not_possible": "Couldn't link with the gateway", + "no_key": "Couldn't get an API key" + }, "flow_title": "{host}", "step": { - "user": { - "data": { - "host": "Select discovered deCONZ gateway" - } + "hassio_confirm": { + "description": "Do you want to configure Home Assistant to connect to the deCONZ gateway provided by the add-on {addon}?", + "title": "deCONZ Zigbee gateway via Home Assistant add-on" + }, + "link": { + "description": "Unlock your deCONZ gateway to register with Home Assistant.\n\n1. Go to deCONZ Settings > Gateway > Advanced\n2. Select the **Authenticate app** button", + "title": "Link with deCONZ" }, "manual_input": { "data": { @@ -16,25 +30,70 @@ "host": "The hostname or IP address of your deCONZ host." } }, - "link": { - "title": "Link with deCONZ", - "description": "Unlock your deCONZ gateway to register with Home Assistant.\n\n1. Go to deCONZ Settings > Gateway > Advanced\n2. Select the **Authenticate app** button" - }, - "hassio_confirm": { - "title": "deCONZ Zigbee gateway via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the deCONZ gateway provided by the add-on {addon}?" + "user": { + "data": { + "host": "Select discovered deCONZ gateway" + } } + } + }, + "device_automation": { + "trigger_subtype": { + "both_buttons": "Both buttons", + "bottom_buttons": "Bottom buttons", + "button_1": "First button", + "button_2": "Second button", + "button_3": "Third button", + "button_4": "Fourth button", + "button_5": "Fifth button", + "button_6": "Sixth button", + "button_7": "Seventh button", + "button_8": "Eighth button", + "close": "[%key:common::action::close%]", + "dim_down": "Dim down", + "dim_up": "Dim up", + "left": "Left", + "open": "[%key:common::action::open%]", + "right": "Right", + "side_1": "Side 1", + "side_2": "Side 2", + "side_3": "Side 3", + "side_4": "Side 4", + "side_5": "Side 5", + "side_6": "Side 6", + "top_buttons": "Top buttons", + "turn_off": "[%key:common::action::turn_off%]", + "turn_on": "[%key:common::action::turn_on%]" }, - "error": { - "linking_not_possible": "Couldn't link with the gateway", - "no_key": "Couldn't get an API key" - }, - "abort": { - "already_configured": "Bridge is already configured", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "no_bridges": "No deCONZ bridges discovered", - "no_hardware_available": "No radio hardware connected to deCONZ", - "updated_instance": "Updated deCONZ instance with new host address" + "trigger_type": { + "remote_awakened": "Device awakened", + "remote_button_double_press": "\"{subtype}\" double clicked", + "remote_button_long_press": "\"{subtype}\" continuously pressed", + "remote_button_long_release": "\"{subtype}\" released after long press", + "remote_button_quadruple_press": "\"{subtype}\" quadruple clicked", + "remote_button_quintuple_press": "\"{subtype}\" quintuple clicked", + "remote_button_rotated": "Button rotated \"{subtype}\"", + "remote_button_rotated_fast": "Button rotated fast \"{subtype}\"", + "remote_button_rotation_stopped": "Button rotation \"{subtype}\" stopped", + "remote_button_short_press": "\"{subtype}\" pressed", + "remote_button_short_release": "\"{subtype}\" released", + "remote_button_triple_press": "\"{subtype}\" triple clicked", + "remote_double_tap": "Device \"{subtype}\" double tapped", + "remote_double_tap_any_side": "Device double tapped on any side", + "remote_falling": "Device in free fall", + "remote_flip_180_degrees": "Device flipped 180 degrees", + "remote_flip_90_degrees": "Device flipped 90 degrees", + "remote_gyro_activated": "Device shaken", + "remote_moved": "Device moved with \"{subtype}\" up", + "remote_moved_any_side": "Device moved with any side up", + "remote_rotate_from_side_1": "Device rotated from \"side 1\" to \"{subtype}\"", + "remote_rotate_from_side_2": "Device rotated from \"side 2\" to \"{subtype}\"", + "remote_rotate_from_side_3": "Device rotated from \"side 3\" to \"{subtype}\"", + "remote_rotate_from_side_4": "Device rotated from \"side 4\" to \"{subtype}\"", + "remote_rotate_from_side_5": "Device rotated from \"side 5\" to \"{subtype}\"", + "remote_rotate_from_side_6": "Device rotated from \"side 6\" to \"{subtype}\"", + "remote_turned_clockwise": "Device turned clockwise", + "remote_turned_counter_clockwise": "Device turned counterclockwise" } }, "options": { @@ -50,107 +109,48 @@ } } }, - "device_automation": { - "trigger_type": { - "remote_button_short_press": "\"{subtype}\" pressed", - "remote_button_short_release": "\"{subtype}\" released", - "remote_button_long_press": "\"{subtype}\" continuously pressed", - "remote_button_long_release": "\"{subtype}\" released after long press", - "remote_button_double_press": "\"{subtype}\" double clicked", - "remote_button_triple_press": "\"{subtype}\" triple clicked", - "remote_button_quadruple_press": "\"{subtype}\" quadruple clicked", - "remote_button_quintuple_press": "\"{subtype}\" quintuple clicked", - "remote_button_rotated": "Button rotated \"{subtype}\"", - "remote_button_rotated_fast": "Button rotated fast \"{subtype}\"", - "remote_button_rotation_stopped": "Button rotation \"{subtype}\" stopped", - "remote_falling": "Device in free fall", - "remote_awakened": "Device awakened", - "remote_moved": "Device moved with \"{subtype}\" up", - "remote_double_tap": "Device \"{subtype}\" double tapped", - "remote_gyro_activated": "Device shaken", - "remote_flip_90_degrees": "Device flipped 90 degrees", - "remote_flip_180_degrees": "Device flipped 180 degrees", - "remote_moved_any_side": "Device moved with any side up", - "remote_double_tap_any_side": "Device double tapped on any side", - "remote_turned_clockwise": "Device turned clockwise", - "remote_turned_counter_clockwise": "Device turned counterclockwise", - "remote_rotate_from_side_1": "Device rotated from \"side 1\" to \"{subtype}\"", - "remote_rotate_from_side_2": "Device rotated from \"side 2\" to \"{subtype}\"", - "remote_rotate_from_side_3": "Device rotated from \"side 3\" to \"{subtype}\"", - "remote_rotate_from_side_4": "Device rotated from \"side 4\" to \"{subtype}\"", - "remote_rotate_from_side_5": "Device rotated from \"side 5\" to \"{subtype}\"", - "remote_rotate_from_side_6": "Device rotated from \"side 6\" to \"{subtype}\"" - }, - "trigger_subtype": { - "turn_on": "[%key:common::action::turn_on%]", - "turn_off": "[%key:common::action::turn_off%]", - "dim_up": "Dim up", - "dim_down": "Dim down", - "left": "Left", - "right": "Right", - "open": "[%key:common::action::open%]", - "close": "[%key:common::action::close%]", - "both_buttons": "Both buttons", - "top_buttons": "Top buttons", - "bottom_buttons": "Bottom buttons", - "button_1": "First button", - "button_2": "Second button", - "button_3": "Third button", - "button_4": "Fourth button", - "button_5": "Fifth button", - "button_6": "Sixth button", - "button_7": "Seventh button", - "button_8": "Eighth button", - "side_1": "Side 1", - "side_2": "Side 2", - "side_3": "Side 3", - "side_4": "Side 4", - "side_5": "Side 5", - "side_6": "Side 6" - } - }, "services": { "configure": { - "name": "Configure", "description": "Configures attributes of either a device endpoint in deCONZ or the deCONZ service itself.", "fields": { - "entity": { - "name": "Entity", - "description": "Represents a specific device endpoint in deCONZ." - }, - "field": { - "name": "[%key:common::config_flow::data::path%]", - "description": "String representing a full path to deCONZ endpoint (when entity is not specified) or a subpath of the device path for the entity (when entity is specified)." + "bridgeid": { + "description": "Unique string for each deCONZ hardware. It can be found as part of the integration name. Useful if you run multiple deCONZ integrations.", + "name": "Bridge identifier" }, "data": { - "name": "Configuration payload", - "description": "JSON object with what data you want to alter." + "description": "JSON object with what data you want to alter.", + "name": "Configuration payload" }, - "bridgeid": { - "name": "Bridge identifier", - "description": "Unique string for each deCONZ hardware. It can be found as part of the integration name. Useful if you run multiple deCONZ integrations." + "entity": { + "description": "Represents a specific device endpoint in deCONZ.", + "name": "Entity" + }, + "field": { + "description": "String representing a full path to deCONZ endpoint (when entity is not specified) or a subpath of the device path for the entity (when entity is specified).", + "name": "[%key:common::config_flow::data::path%]" } - } + }, + "name": "Configure" }, "device_refresh": { - "name": "Device refresh", "description": "Refreshes available devices from deCONZ.", "fields": { "bridgeid": { - "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]", - "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]" + "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]", + "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]" } - } + }, + "name": "Device refresh" }, "remove_orphaned_entries": { - "name": "Remove orphaned entries", "description": "Cleans up device and entity registry entries orphaned by deCONZ.", "fields": { "bridgeid": { - "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]", - "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]" + "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]", + "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]" } - } + }, + "name": "Remove orphaned entries" } } } diff --git a/homeassistant/components/deluge/strings.json b/homeassistant/components/deluge/strings.json index be412b71081..fc413167cff 100644 --- a/homeassistant/components/deluge/strings.json +++ b/homeassistant/components/deluge/strings.json @@ -1,48 +1,39 @@ { "config": { - "step": { - "user": { - "description": "To be able to use this integration, you have to enable the following option in Deluge settings: Daemon > Allow remote controls", - "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%]", - "web_port": "Web port (for visiting service)" - }, - "data_description": { - "host": "The hostname or IP address of your Deluge device." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]", + "web_port": "Web port (for visiting service)" + }, + "data_description": { + "host": "The hostname or IP address of your Deluge device." + }, + "description": "To be able to use this integration, you have to enable the following option in Deluge settings: Daemon > Allow remote controls" + } } }, "entity": { "sensor": { - "status": { - "name": "Status", - "state": { - "seeding_and_downloading": "Up/Down", - "seeding": "Seeding", - "downloading": "Downloading", - "idle": "[%key:common::state::idle%]" - } + "download_speed": { + "name": "Download speed" }, "downloading_count": { "name": "Downloading count", "unit_of_measurement": "torrents" }, - "download_speed": { - "name": "Download speed" - }, "protocol_traffic_download_speed": { "name": "Protocol traffic download speed" }, @@ -53,6 +44,15 @@ "name": "Seeding count", "unit_of_measurement": "[%key:component::deluge::entity::sensor::downloading_count::unit_of_measurement%]" }, + "status": { + "name": "Status", + "state": { + "downloading": "Downloading", + "idle": "[%key:common::state::idle%]", + "seeding": "Seeding", + "seeding_and_downloading": "Up/Down" + } + }, "upload_speed": { "name": "Upload speed" } diff --git a/homeassistant/components/demo/icons.json b/homeassistant/components/demo/icons.json index 9a076f47a2d..e5c0d81c940 100644 --- a/homeassistant/components/demo/icons.json +++ b/homeassistant/components/demo/icons.json @@ -11,6 +11,13 @@ "on_low": "mdi:fan-chevron-down" } }, + "swing_horizontal_mode": { + "state": { + "auto": "mdi:compare-horizontal", + "off": "mdi:arrow-oscillating-off", + "rangefull": "mdi:pan-horizontal" + } + }, "swing_mode": { "state": { "1": "mdi:numeric-1", @@ -19,13 +26,6 @@ "auto": "mdi:arrow-oscillating", "off": "mdi:arrow-oscillating-off" } - }, - "swing_horizontal_mode": { - "state": { - "rangefull": "mdi:pan-horizontal", - "auto": "mdi:compare-horizontal", - "off": "mdi:arrow-oscillating-off" - } } } } @@ -37,9 +37,9 @@ "default": "mdi:circle-medium", "state": { "auto": "mdi:fan-auto", + "on": "mdi:power", "sleep": "mdi:bed", - "smart": "mdi:brain", - "on": "mdi:power" + "smart": "mdi:brain" } } } @@ -57,14 +57,14 @@ } }, "number": { - "volume": { - "default": "mdi:volume-high" - }, "pwm": { "default": "mdi:square-wave" }, "range": { "default": "mdi:square-wave" + }, + "volume": { + "default": "mdi:volume-high" } }, "select": { diff --git a/homeassistant/components/demo/strings.json b/homeassistant/components/demo/strings.json index e22b4c413d5..6ff396f285e 100644 --- a/homeassistant/components/demo/strings.json +++ b/homeassistant/components/demo/strings.json @@ -1,27 +1,4 @@ { - "title": "Demo", - "options": { - "step": { - "init": { - "data": {} - }, - "options_1": { - "data": { - "constant": "Constant", - "bool": "Optional boolean", - "int": "Numeric input" - }, - "submit": "Save!" - }, - "options_2": { - "data": { - "string": "String value", - "select": "Select an option", - "multi": "Multiselect" - } - } - } - }, "entity": { "climate": { "ubercool": { @@ -34,6 +11,13 @@ "on_low": "On low" } }, + "swing_horizontal_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]", + "rangefull": "Full range" + } + }, "swing_mode": { "state": { "1": "1", @@ -42,27 +26,6 @@ "auto": "[%key:common::state::auto%]", "off": "[%key:common::state::off%]" } - }, - "swing_horizontal_mode": { - "state": { - "rangefull": "Full range", - "auto": "[%key:common::state::auto%]", - "off": "[%key:common::state::off%]" - } - } - } - } - }, - "fan": { - "demo": { - "state_attributes": { - "preset_mode": { - "state": { - "auto": "[%key:common::state::auto%]", - "sleep": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]", - "smart": "Smart", - "on": "[%key:common::state::on%]" - } } } } @@ -78,6 +41,20 @@ } } }, + "fan": { + "demo": { + "state_attributes": { + "preset_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "on": "[%key:common::state::on%]", + "sleep": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]", + "smart": "Smart" + } + } + } + } + }, "light": { "bed_light": { "state_attributes": { @@ -119,10 +96,33 @@ } } }, + "options": { + "step": { + "init": { + "data": {} + }, + "options_1": { + "data": { + "bool": "Optional boolean", + "constant": "Constant", + "int": "Numeric input" + }, + "submit": "Save!" + }, + "options_2": { + "data": { + "multi": "Multiselect", + "select": "Select an option", + "string": "String value" + } + } + } + }, "services": { "randomize_device_tracker_data": { - "name": "Randomize device tracker data", - "description": "Demonstrates using a device tracker to see where devices are located." + "description": "Demonstrates using a device tracker to see where devices are located.", + "name": "Randomize device tracker data" } - } + }, + "title": "Demo" } diff --git a/homeassistant/components/denonavr/manifest.json b/homeassistant/components/denonavr/manifest.json index 8fea21b707e..a699c8099b9 100644 --- a/homeassistant/components/denonavr/manifest.json +++ b/homeassistant/components/denonavr/manifest.json @@ -9,52 +9,52 @@ "requirements": ["denonavr==1.1.2"], "ssdp": [ { - "manufacturer": "Denon", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "Denon" }, { - "manufacturer": "DENON", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "DENON" }, { - "manufacturer": "DENON PROFESSIONAL", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "DENON PROFESSIONAL" }, { - "manufacturer": "Marantz", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "Marantz" }, { - "manufacturer": "Denon", - "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "Denon" }, { - "manufacturer": "DENON", - "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "DENON" }, { - "manufacturer": "DENON PROFESSIONAL", - "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "DENON PROFESSIONAL" }, { - "manufacturer": "Marantz", - "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "Marantz" }, { - "manufacturer": "Denon", - "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", + "manufacturer": "Denon" }, { - "manufacturer": "DENON", - "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", + "manufacturer": "DENON" }, { - "manufacturer": "DENON PROFESSIONAL", - "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", + "manufacturer": "DENON PROFESSIONAL" }, { - "manufacturer": "Marantz", - "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", + "manufacturer": "Marantz" } ] } diff --git a/homeassistant/components/denonavr/strings.json b/homeassistant/components/denonavr/strings.json index 192ab3bd71f..ddb38b9b5a6 100644 --- a/homeassistant/components/denonavr/strings.json +++ b/homeassistant/components/denonavr/strings.json @@ -1,76 +1,76 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "By default, this integration uses a Telnet connection to your receiver to receive real-time updates. Only one Telnet connection to your receiver can be established at a time. The Telnet connection can be disabled after setting up the integration.", - "data": { - "host": "[%key:common::config_flow::data::ip%]" - }, - "data_description": { - "host": "Leave blank to use auto-discovery" - } - }, - "confirm": { - "description": "Please confirm adding the receiver" - }, - "select": { - "title": "Select the receiver that you wish to connect", - "description": "Run the setup again if you want to connect additional receivers", - "data": { - "select_host": "Receiver IP address" - } - } - }, - "error": { - "discovery_error": "Failed to discover a Denon AVR network receiver" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "cannot_connect": "Failed to connect, please try again, disconnecting mains power and Ethernet cables and reconnecting them may help", "not_denonavr_manufacturer": "Not a Denon AVR network receiver, discovered manufacturer did not match", "not_denonavr_missing": "Not a Denon AVR network receiver, discovery information not complete" + }, + "error": { + "discovery_error": "Failed to discover a Denon AVR network receiver" + }, + "flow_title": "{name}", + "step": { + "confirm": { + "description": "Please confirm adding the receiver" + }, + "select": { + "data": { + "select_host": "Receiver IP address" + }, + "description": "Run the setup again if you want to connect additional receivers", + "title": "Select the receiver that you wish to connect" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]" + }, + "data_description": { + "host": "Leave blank to use auto-discovery" + }, + "description": "By default, this integration uses a Telnet connection to your receiver to receive real-time updates. Only one Telnet connection to your receiver can be established at a time. The Telnet connection can be disabled after setting up the integration." + } } }, "options": { "step": { "init": { - "description": "Specify optional settings", "data": { "show_all_sources": "Show all sources", - "zone2": "Set up Zone 2", - "zone3": "Set up Zone 3", "update_audyssey": "Update Audyssey settings", - "use_telnet": "Use Telnet connection" - } + "use_telnet": "Use Telnet connection", + "zone2": "Set up Zone 2", + "zone3": "Set up Zone 3" + }, + "description": "Specify optional settings" } } }, "services": { "get_command": { - "name": "Get command", "description": "Sends a generic HTTP get command.", "fields": { "command": { - "name": "Command", - "description": "Endpoint of the command, including associated parameters." + "description": "Endpoint of the command, including associated parameters.", + "name": "Command" } - } + }, + "name": "Get command" }, "set_dynamic_eq": { - "name": "Set dynamic equalizer", "description": "Enables or disables DynamicEQ.", "fields": { "dynamic_eq": { - "name": "Dynamic equalizer", - "description": "Whether DynamicEQ should be enabled or disabled." + "description": "Whether DynamicEQ should be enabled or disabled.", + "name": "Dynamic equalizer" } - } + }, + "name": "Set dynamic equalizer" }, "update_audyssey": { - "name": "Update Audyssey", - "description": "Updates Audyssey settings." + "description": "Updates Audyssey settings.", + "name": "Update Audyssey" } } } diff --git a/homeassistant/components/derivative/strings.json b/homeassistant/components/derivative/strings.json index 551d0912a94..c57c672dc34 100644 --- a/homeassistant/components/derivative/strings.json +++ b/homeassistant/components/derivative/strings.json @@ -1,10 +1,7 @@ { - "title": "Derivative sensor", "config": { "step": { "user": { - "title": "Create Derivative sensor", - "description": "Create a sensor that estimates the derivative of a sensor.", "data": { "max_sub_interval": "Max sub-interval", "name": "[%key:common::config_flow::data::name%]", @@ -19,7 +16,9 @@ "round": "Controls the number of decimal digits in the output.", "time_window": "If set, the sensor's value is a time-weighted moving average of derivatives within this window.", "unit_prefix": "The output will be scaled according to the selected metric prefix and time unit of the derivative." - } + }, + "description": "Create a sensor that estimates the derivative of a sensor.", + "title": "Create Derivative sensor" } } }, @@ -45,18 +44,19 @@ } }, "selector": { - "time_unit": { - "options": { - "s": "Seconds", - "min": "Minutes", - "h": "Hours", - "d": "Days" - } - }, "round": { "unit_of_measurement": { "decimals": "decimals" } + }, + "time_unit": { + "options": { + "d": "Days", + "h": "Hours", + "min": "Minutes", + "s": "Seconds" + } } - } + }, + "title": "Derivative sensor" } diff --git a/homeassistant/components/devialet/strings.json b/homeassistant/components/devialet/strings.json index 0a90da49bf4..cc3f2d270f8 100644 --- a/homeassistant/components/devialet/strings.json +++ b/homeassistant/components/devialet/strings.json @@ -1,22 +1,22 @@ { "config": { - "flow_title": "{title}", - "step": { - "user": { - "description": "Please enter the host name or IP address of the Devialet device.", - "data": { - "host": "Host" - } - }, - "confirm": { - "description": "Do you want to set up Devialet device {device}?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "flow_title": "{title}", + "step": { + "confirm": { + "description": "Do you want to set up Devialet device {device}?" + }, + "user": { + "data": { + "host": "Host" + }, + "description": "Please enter the host name or IP address of the Devialet device." + } } } } diff --git a/homeassistant/components/device_tracker/strings.json b/homeassistant/components/device_tracker/strings.json index 294333a5d80..08345e3c510 100644 --- a/homeassistant/components/device_tracker/strings.json +++ b/homeassistant/components/device_tracker/strings.json @@ -1,5 +1,4 @@ { - "title": "Device tracker", "device_automation": { "condition_type": { "is_home": "{entity_name} is home", @@ -36,8 +35,8 @@ "source_type": { "name": "Source", "state": { - "bluetooth_le": "Bluetooth LE", "bluetooth": "Bluetooth", + "bluetooth_le": "Bluetooth LE", "gps": "GPS", "router": "Router" } @@ -47,38 +46,39 @@ }, "services": { "see": { - "name": "See", "description": "Manually update the records of a seen legacy device tracker in the known_devices.yaml file.", "fields": { - "mac": { - "name": "MAC address", - "description": "MAC address of the device." + "battery": { + "description": "Battery level of the device.", + "name": "Battery level" }, "dev_id": { - "name": "Device ID", - "description": "ID of the device (find the ID in `known_devices.yaml`)." - }, - "host_name": { - "name": "Hostname", - "description": "Hostname of the device." - }, - "location_name": { - "name": "Location", - "description": "Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone." + "description": "ID of the device (find the ID in `known_devices.yaml`).", + "name": "Device ID" }, "gps": { - "name": "GPS coordinates", - "description": "GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539])." + "description": "GPS coordinates where the device is located, specified by latitude and longitude (for example: [51.513845, -0.100539]).", + "name": "GPS coordinates" }, "gps_accuracy": { - "name": "GPS accuracy", - "description": "Accuracy of the GPS coordinates." + "description": "Accuracy of the GPS coordinates.", + "name": "GPS accuracy" }, - "battery": { - "name": "Battery level", - "description": "Battery level of the device." + "host_name": { + "description": "Hostname of the device.", + "name": "Hostname" + }, + "location_name": { + "description": "Name of the location where the device is located. The options are: `home`, `not_home`, or the name of the zone.", + "name": "Location" + }, + "mac": { + "description": "MAC address of the device.", + "name": "MAC address" } - } + }, + "name": "See" } - } + }, + "title": "Device tracker" } diff --git a/homeassistant/components/devolo_home_control/strings.json b/homeassistant/components/devolo_home_control/strings.json index 057faa446e6..96dc8758846 100644 --- a/homeassistant/components/devolo_home_control/strings.json +++ b/homeassistant/components/devolo_home_control/strings.json @@ -9,34 +9,34 @@ "reauth_failed": "Please use the same mydevolo user as before." }, "step": { - "user": { - "data": { - "username": "Email / devolo ID", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Email address you used to register the central unit at mydevolo.", - "password": "Password of your mydevolo account." - } - }, "reauth_confirm": { "data": { - "username": "[%key:component::devolo_home_control::config::step::user::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:component::devolo_home_control::config::step::user::data::username%]" }, "data_description": { - "username": "[%key:component::devolo_home_control::config::step::user::data_description::username%]", - "password": "[%key:component::devolo_home_control::config::step::user::data_description::password%]" + "password": "[%key:component::devolo_home_control::config::step::user::data_description::password%]", + "username": "[%key:component::devolo_home_control::config::step::user::data_description::username%]" + } + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "Email / devolo ID" + }, + "data_description": { + "password": "Password of your mydevolo account.", + "username": "Email address you used to register the central unit at mydevolo." } }, "zeroconf_confirm": { "data": { - "username": "[%key:component::devolo_home_control::config::step::user::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:component::devolo_home_control::config::step::user::data::username%]" }, "data_description": { - "username": "[%key:component::devolo_home_control::config::step::user::data_description::username%]", - "password": "[%key:component::devolo_home_control::config::step::user::data_description::password%]" + "password": "[%key:component::devolo_home_control::config::step::user::data_description::password%]", + "username": "[%key:component::devolo_home_control::config::step::user::data_description::username%]" } } } diff --git a/homeassistant/components/devolo_home_network/manifest.json b/homeassistant/components/devolo_home_network/manifest.json index 37fb2682883..9305dc77476 100644 --- a/homeassistant/components/devolo_home_network/manifest.json +++ b/homeassistant/components/devolo_home_network/manifest.json @@ -12,10 +12,10 @@ "requirements": ["devolo-plc-api==1.5.1"], "zeroconf": [ { - "type": "_dvl-deviceapi._tcp.local.", "properties": { "MT": "*" - } + }, + "type": "_dvl-deviceapi._tcp.local." } ] } diff --git a/homeassistant/components/devolo_home_network/strings.json b/homeassistant/components/devolo_home_network/strings.json index c8c2db34e4c..3de47e9a3fc 100644 --- a/homeassistant/components/devolo_home_network/strings.json +++ b/homeassistant/components/devolo_home_network/strings.json @@ -1,18 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "home_control": "The devolo Home Control Central Unit does not work with this integration.", + "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%]" + }, "flow_title": "{product} ({name})", "step": { - "user": { - "description": "[%key:common::config_flow::description::confirm_setup%]", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "ip_address": "IP address of your devolo Home Network device. This can be found in the devolo Home Network app on the device dashboard.", - "password": "Password you protected the device with." - } - }, "reauth_confirm": { "data": { "password": "[%key:common::config_flow::data::password%]" @@ -21,26 +20,27 @@ "password": "[%key:component::devolo_home_network::config::step::user::data_description::password%]" } }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "ip_address": "IP address of your devolo Home Network device. This can be found in the devolo Home Network app on the device dashboard.", + "password": "Password you protected the device with." + }, + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, "zeroconf_confirm": { - "description": "Do you want to add the devolo Home Network device with the hostname `{host_name}` to Home Assistant?", - "title": "Discovered devolo Home Network device", "data": { "password": "[%key:common::config_flow::data::password%]" }, "data_description": { "password": "[%key:component::devolo_home_network::config::step::user::data_description::password%]" - } + }, + "description": "Do you want to add the devolo Home Network device with the hostname `{host_name}` to Home Assistant?", + "title": "Discovered devolo Home Network 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%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "home_control": "The devolo Home Control Central Unit does not work with this integration.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { diff --git a/homeassistant/components/dexcom/icons.json b/homeassistant/components/dexcom/icons.json index de8355ce861..d132e379723 100644 --- a/homeassistant/components/dexcom/icons.json +++ b/homeassistant/components/dexcom/icons.json @@ -1,20 +1,20 @@ { "entity": { "sensor": { - "glucose_value": { - "default": "mdi:diabetes" - }, "glucose_trend": { "default": "mdi:help", "state": { - "rising_quickly": "mdi:arrow-up-thick", - "rising": "mdi:arrow-up", - "rising_slightly": "mdi:arrow-top-right", - "steady": "mdi:arrow-right", - "falling_slightly": "mdi:arrow-bottom-right", "falling": "mdi:arrow-down", - "falling_quickly": "mdi:arrow-down-thick" + "falling_quickly": "mdi:arrow-down-thick", + "falling_slightly": "mdi:arrow-bottom-right", + "rising": "mdi:arrow-up", + "rising_quickly": "mdi:arrow-up-thick", + "rising_slightly": "mdi:arrow-top-right", + "steady": "mdi:arrow-right" } + }, + "glucose_value": { + "default": "mdi:diabetes" } } } diff --git a/homeassistant/components/dexcom/strings.json b/homeassistant/components/dexcom/strings.json index 91b5725d918..336139b48f2 100644 --- a/homeassistant/components/dexcom/strings.json +++ b/homeassistant/components/dexcom/strings.json @@ -1,23 +1,42 @@ { "config": { - "step": { - "user": { - "title": "Set up Dexcom integration", - "description": "Enter Dexcom Share credentials", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "server": "Server" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "server": "Server", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Enter Dexcom Share credentials", + "title": "Set up Dexcom integration" + } + } + }, + "entity": { + "sensor": { + "glucose_trend": { + "name": "Glucose trend", + "state": { + "falling": "Falling", + "falling_quickly": "Falling quickly", + "falling_slightly": "Falling slightly", + "rising": "Rising", + "rising_quickly": "Rising quickly", + "rising_slightly": "Rising slightly", + "steady": "Steady" + } + }, + "glucose_value": { + "name": "Glucose value" + } } }, "options": { @@ -28,24 +47,5 @@ } } } - }, - "entity": { - "sensor": { - "glucose_value": { - "name": "Glucose value" - }, - "glucose_trend": { - "name": "Glucose trend", - "state": { - "rising_quickly": "Rising quickly", - "rising": "Rising", - "rising_slightly": "Rising slightly", - "steady": "Steady", - "falling_slightly": "Falling slightly", - "falling": "Falling", - "falling_quickly": "Falling quickly" - } - } - } } } diff --git a/homeassistant/components/dialogflow/strings.json b/homeassistant/components/dialogflow/strings.json index dab13e31b0c..b357bf7cfe2 100644 --- a/homeassistant/components/dialogflow/strings.json +++ b/homeassistant/components/dialogflow/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the Dialogflow webhook", - "description": "Are you sure you want to set up Dialogflow?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up the [webhook service of Dialogflow]({dialogflow_url}).\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n- Content Type: application/json\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "Are you sure you want to set up Dialogflow?", + "title": "Set up the Dialogflow webhook" + } } } } diff --git a/homeassistant/components/directv/manifest.json b/homeassistant/components/directv/manifest.json index bee2c297635..2f5683dc880 100644 --- a/homeassistant/components/directv/manifest.json +++ b/homeassistant/components/directv/manifest.json @@ -9,8 +9,8 @@ "requirements": ["directv==0.4.0"], "ssdp": [ { - "manufacturer": "DIRECTV", - "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "DIRECTV" } ] } diff --git a/homeassistant/components/directv/strings.json b/homeassistant/components/directv/strings.json index 2c30e3db85c..c59aaa512ea 100644 --- a/homeassistant/components/directv/strings.json +++ b/homeassistant/components/directv/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "ssdp_confirm": { @@ -13,13 +20,6 @@ "host": "The hostname or IP address of your DirectTV device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/discord/strings.json b/homeassistant/components/discord/strings.json index 1cd67d3b021..612f336c4c7 100644 --- a/homeassistant/components/discord/strings.json +++ b/homeassistant/components/discord/strings.json @@ -1,27 +1,27 @@ { "config": { - "step": { - "user": { - "description": "Refer to the documentation on getting your Discord bot key.\n\n{url}", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } - }, - "reauth_confirm": { - "description": "[%key:component::discord::config::step::user::description%]", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "[%key:component::discord::config::step::user::description%]" + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "Refer to the documentation on getting your Discord bot key.\n\n{url}" + } } } } diff --git a/homeassistant/components/discovergy/strings.json b/homeassistant/components/discovergy/strings.json index 911a4a1c4f5..ad28b13a0ba 100644 --- a/homeassistant/components/discovergy/strings.json +++ b/homeassistant/components/discovergy/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "account_mismatch": "The inexogy account authenticated with does not match the account that needed re-authentication.", + "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -11,25 +21,52 @@ "password": "The password used to log in to your inexogy 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%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "account_mismatch": "The inexogy account authenticated with does not match the account that needed re-authentication.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + } + }, + "entity": { + "sensor": { + "last_transmitted": { + "name": "Last transmitted" + }, + "phase_1_power": { + "name": "Phase 1 power" + }, + "phase_1_voltage": { + "name": "Phase 1 voltage" + }, + "phase_2_power": { + "name": "Phase 2 power" + }, + "phase_2_voltage": { + "name": "Phase 2 voltage" + }, + "phase_3_power": { + "name": "Phase 3 power" + }, + "phase_3_voltage": { + "name": "Phase 3 voltage" + }, + "total_consumption": { + "name": "Total consumption" + }, + "total_gas_consumption": { + "name": "Total gas consumption" + }, + "total_power": { + "name": "Total power" + }, + "total_production": { + "name": "Total production" + } } }, "exceptions": { - "invalid_auth": { - "message": "Authentication failed. Please check your inexogy email and password." - }, "cannot_connect_meters_setup": { "message": "Failed to connect and retrieve meters from inexogy during setup. Please ensure the service is reachable and try again." }, + "invalid_auth": { + "message": "Authentication failed. Please check your inexogy email and password." + }, "reading_update_failed": { "message": "Error fetching the latest reading for meter {meter_id} from inexogy. The service might be temporarily unavailable or there's a connection issue. Check logs for more details." } @@ -38,42 +75,5 @@ "info": { "api_endpoint_reachable": "inexogy API endpoint reachable" } - }, - "entity": { - "sensor": { - "total_gas_consumption": { - "name": "Total gas consumption" - }, - "total_power": { - "name": "Total power" - }, - "total_consumption": { - "name": "Total consumption" - }, - "total_production": { - "name": "Total production" - }, - "phase_1_voltage": { - "name": "Phase 1 voltage" - }, - "phase_2_voltage": { - "name": "Phase 2 voltage" - }, - "phase_3_voltage": { - "name": "Phase 3 voltage" - }, - "phase_1_power": { - "name": "Phase 1 power" - }, - "phase_2_power": { - "name": "Phase 2 power" - }, - "phase_3_power": { - "name": "Phase 3 power" - }, - "last_transmitted": { - "name": "Last transmitted" - } - } } } diff --git a/homeassistant/components/dlink/strings.json b/homeassistant/components/dlink/strings.json index 9f21a9571e9..a79e6ebec04 100644 --- a/homeassistant/components/dlink/strings.json +++ b/homeassistant/components/dlink/strings.json @@ -1,35 +1,35 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]", - "use_legacy_protocol": "Use legacy protocol" - }, - "data_description": { - "host": "The hostname or IP address of your D-Link device", - "password": "Default: PIN code on the back." - } - }, - "confirm_discovery": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]", - "use_legacy_protocol": "[%key:component::dlink::config::step::user::data::use_legacy_protocol%]" - }, - "data_description": { - "password": "[%key:component::dlink::config::step::user::data_description::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "confirm_discovery": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "use_legacy_protocol": "[%key:component::dlink::config::step::user::data::use_legacy_protocol%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::dlink::config::step::user::data_description::password%]" + } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "use_legacy_protocol": "Use legacy protocol", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your D-Link device", + "password": "Default: PIN code on the back." + } + } } } } diff --git a/homeassistant/components/dlna_dmr/strings.json b/homeassistant/components/dlna_dmr/strings.json index be4336ea8a5..fe186bce1c1 100644 --- a/homeassistant/components/dlna_dmr/strings.json +++ b/homeassistant/components/dlna_dmr/strings.json @@ -1,28 +1,5 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Discovered DLNA DMR devices", - "description": "Choose a device to configure or leave blank to enter a URL", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "manual": { - "title": "Manual DLNA DMR device connection", - "description": "URL to a device description XML file", - "data": { - "url": "[%key:common::config_flow::data::url%]" - } - }, - "import_turn_on": { - "description": "Please turn on the device and select **Submit** to continue migration" - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "alternative_integration": "Device is better supported by another integration", @@ -34,22 +11,45 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "not_dmr": "[%key:component::dlna_dmr::config::abort::not_dmr%]" + }, + "flow_title": "{name}", + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "import_turn_on": { + "description": "Please turn on the device and select **Submit** to continue migration" + }, + "manual": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + }, + "description": "URL to a device description XML file", + "title": "Manual DLNA DMR device connection" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Choose a device to configure or leave blank to enter a URL", + "title": "Discovered DLNA DMR devices" + } } }, "options": { - "step": { - "init": { - "title": "DLNA Digital Media Renderer configuration", - "data": { - "listen_port": "Event listener port (random if not set)", - "callback_url_override": "Event listener callback URL", - "poll_availability": "Poll for device availability", - "browse_unfiltered": "Show incompatible media when browsing" - } - } - }, "error": { "invalid_url": "Invalid URL" + }, + "step": { + "init": { + "data": { + "browse_unfiltered": "Show incompatible media when browsing", + "callback_url_override": "Event listener callback URL", + "listen_port": "Event listener port (random if not set)", + "poll_availability": "Poll for device availability" + }, + "title": "DLNA Digital Media Renderer configuration" + } } } } diff --git a/homeassistant/components/dlna_dms/strings.json b/homeassistant/components/dlna_dms/strings.json index 9b59960a78a..1e233c6c48d 100644 --- a/homeassistant/components/dlna_dms/strings.json +++ b/homeassistant/components/dlna_dms/strings.json @@ -1,24 +1,24 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Discovered DLNA DMA devices", - "description": "Choose a device to configure", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "bad_ssdp": "SSDP data is missing a required value", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "not_dms": "Device is not a supported Media Server" + }, + "flow_title": "{name}", + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Choose a device to configure", + "title": "Discovered DLNA DMA devices" + } } } } diff --git a/homeassistant/components/dnsip/strings.json b/homeassistant/components/dnsip/strings.json index 70472d37917..a841cdffcde 100644 --- a/homeassistant/components/dnsip/strings.json +++ b/homeassistant/components/dnsip/strings.json @@ -1,57 +1,57 @@ { "config": { - "step": { - "user": { - "data": { - "hostname": "The hostname for which to perform the DNS query", - "resolver": "Resolver for IPV4 lookup", - "port": "Port for IPV4 lookup", - "resolver_ipv6": "Resolver for IPV6 lookup", - "port_ipv6": "Port for IPV6 lookup" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "invalid_hostname": "Invalid hostname" - } - }, - "options": { + }, "step": { - "init": { + "user": { "data": { - "resolver": "[%key:component::dnsip::config::step::user::data::resolver%]", - "port": "[%key:component::dnsip::config::step::user::data::port%]", - "resolver_ipv6": "[%key:component::dnsip::config::step::user::data::resolver_ipv6%]", - "port_ipv6": "[%key:component::dnsip::config::step::user::data::port_ipv6%]" + "hostname": "The hostname for which to perform the DNS query", + "port": "Port for IPV4 lookup", + "port_ipv6": "Port for IPV6 lookup", + "resolver": "Resolver for IPV4 lookup", + "resolver_ipv6": "Resolver for IPV6 lookup" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "no_options": "The myip hostname requires the default resolvers and therefore cannot be configured." - }, - "error": { - "invalid_resolver": "Invalid IP address or port for resolver" } }, "entity": { "sensor": { "dnsip": { "state_attributes": { - "resolver": { - "name": "Resolver" + "ip_addresses": { + "name": "IP addresses" }, "querytype": { "name": "Query type" }, - "ip_addresses": { - "name": "IP addresses" + "resolver": { + "name": "Resolver" } } } } + }, + "options": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "no_options": "The myip hostname requires the default resolvers and therefore cannot be configured." + }, + "error": { + "invalid_resolver": "Invalid IP address or port for resolver" + }, + "step": { + "init": { + "data": { + "port": "[%key:component::dnsip::config::step::user::data::port%]", + "port_ipv6": "[%key:component::dnsip::config::step::user::data::port_ipv6%]", + "resolver": "[%key:component::dnsip::config::step::user::data::resolver%]", + "resolver_ipv6": "[%key:component::dnsip::config::step::user::data::resolver_ipv6%]" + } + } + } } } diff --git a/homeassistant/components/dominos/strings.json b/homeassistant/components/dominos/strings.json index 5d95be478ce..eb6d5a8fc73 100644 --- a/homeassistant/components/dominos/strings.json +++ b/homeassistant/components/dominos/strings.json @@ -1,14 +1,14 @@ { "services": { "order": { - "name": "Order", "description": "Places a set of orders with Domino's Pizza.", "fields": { "order_entity_id": { - "name": "Order entity", - "description": "The ID (as specified in the configuration) of an order to place. If provided as an array, all the identified orders will be placed." + "description": "The ID (as specified in the configuration) of an order to place. If provided as an array, all the identified orders will be placed.", + "name": "Order entity" } - } + }, + "name": "Order" } } } diff --git a/homeassistant/components/doorbird/icons.json b/homeassistant/components/doorbird/icons.json index 7188080fafe..1d89db05661 100644 --- a/homeassistant/components/doorbird/icons.json +++ b/homeassistant/components/doorbird/icons.json @@ -1,11 +1,11 @@ { "entity": { "button": { - "relay": { - "default": "mdi:dip-switch" - }, "ir": { "default": "mdi:lightbulb" + }, + "relay": { + "default": "mdi:dip-switch" } } } diff --git a/homeassistant/components/doorbird/manifest.json b/homeassistant/components/doorbird/manifest.json index 8480a496762..216112062d7 100644 --- a/homeassistant/components/doorbird/manifest.json +++ b/homeassistant/components/doorbird/manifest.json @@ -10,10 +10,10 @@ "requirements": ["DoorBirdPy==3.0.8"], "zeroconf": [ { - "type": "_axis-video._tcp.local.", "properties": { "macaddress": "1ccae3*" - } + }, + "type": "_axis-video._tcp.local." } ] } diff --git a/homeassistant/components/doorbird/strings.json b/homeassistant/components/doorbird/strings.json index 341976e8a8f..482c625a059 100644 --- a/homeassistant/components/doorbird/strings.json +++ b/homeassistant/components/doorbird/strings.json @@ -1,83 +1,58 @@ { - "options": { - "step": { - "init": { - "data": { - "events": "Comma-separated list of events." - }, - "data_description": { - "events": "Add a comma-separated event name for each event you wish to track. After entering them here, use the DoorBird app to assign them to a specific event.\n\nExample: somebody_pressed_the_button, motion" - } - } - } - }, - "issues": { - "error_registering_events": { - "title": "DoorBird {name} configuration failure", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::doorbird::issues::error_registering_events::title%]", - "description": "Configuring DoorBird {name} failed with error: `{error}`. Please enable the API Operator permission for the DoorBird user and continue to reload the integration." - } - } - } - } - }, "config": { - "step": { - "user": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "host": "[%key:common::config_flow::data::host%]", - "name": "Device name", - "username": "[%key:common::config_flow::data::username%]" - }, - "data_description": { - "host": "The hostname or IP address of your DoorBird device." - } - }, - "reauth_confirm": { - "description": "Re-authenticate DoorBird device {name} at {host}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "link_local_address": "Link local addresses are not supported", "not_doorbird_device": "This device is not a DoorBird", "not_ipv4_address": "Only IPv4 addresses are supported", - "wrong_device": "Device MAC address does not match", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_device": "Device MAC address does not match" + }, + "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%]" }, "flow_title": "{name} ({host})", - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Re-authenticate DoorBird device {name} at {host}" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "Device name", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your DoorBird device." + } + } } }, "entity": { "button": { - "reset_favorites": { - "name": "Reset favorites" - }, "ir": { "name": "IR" + }, + "reset_favorites": { + "name": "Reset favorites" } }, "camera": { - "live": { - "name": "live" + "last_motion": { + "name": "Last motion" }, "last_ring": { "name": "Last ring" }, - "last_motion": { - "name": "Last motion" + "live": { + "name": "live" } }, "event": { @@ -100,5 +75,30 @@ } } } + }, + "issues": { + "error_registering_events": { + "fix_flow": { + "step": { + "confirm": { + "description": "Configuring DoorBird {name} failed with error: `{error}`. Please enable the API Operator permission for the DoorBird user and continue to reload the integration.", + "title": "[%key:component::doorbird::issues::error_registering_events::title%]" + } + } + }, + "title": "DoorBird {name} configuration failure" + } + }, + "options": { + "step": { + "init": { + "data": { + "events": "Comma-separated list of events." + }, + "data_description": { + "events": "Add a comma-separated event name for each event you wish to track. After entering them here, use the DoorBird app to assign them to a specific event.\n\nExample: somebody_pressed_the_button, motion" + } + } + } } } diff --git a/homeassistant/components/dormakaba_dkey/strings.json b/homeassistant/components/dormakaba_dkey/strings.json index eb8cbc1d676..d9a76c41326 100644 --- a/homeassistant/components/dormakaba_dkey/strings.json +++ b/homeassistant/components/dormakaba_dkey/strings.json @@ -1,12 +1,24 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "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%]" + }, + "error": { + "invalid_code": "Invalid activation code. An activation code consist of 8 characters, separated by a dash, e.g. GBZT-HXC0.", + "no_longer_in_range": "The lock is no longer in Bluetooth range. Move the lock or adapter and try again.", + "wrong_code": "Wrong activation code. Note that an activation code can only be used once." + }, "flow_title": "{name}", "step": { - "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", + "associate": { "data": { - "address": "[%key:common::config_flow::data::device%]" - } + "activation_code": "Activation code" + }, + "description": "Provide an unused activation code.\n\nTo create an activation code, create a new key in the dKey admin app, then choose to share the key and share an activation code.\n\nMake sure to close the dKey admin app before proceeding." }, "bluetooth_confirm": { "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" @@ -14,24 +26,12 @@ "reauth_confirm": { "description": "The activation code is no longer valid, a new unused activation code is needed." }, - "associate": { - "description": "Provide an unused activation code.\n\nTo create an activation code, create a new key in the dKey admin app, then choose to share the key and share an activation code.\n\nMake sure to close the dKey admin app before proceeding.", + "user": { "data": { - "activation_code": "Activation code" - } + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "error": { - "no_longer_in_range": "The lock is no longer in Bluetooth range. Move the lock or adapter and try again.", - "invalid_code": "Invalid activation code. An activation code consist of 8 characters, separated by a dash, e.g. GBZT-HXC0.", - "wrong_code": "Wrong activation code. Note that an activation code can only be used once." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "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%]" } }, "entity": { diff --git a/homeassistant/components/downloader/strings.json b/homeassistant/components/downloader/strings.json index 98c4a0a6c82..2c1e0352c4e 100644 --- a/homeassistant/components/downloader/strings.json +++ b/homeassistant/components/downloader/strings.json @@ -1,15 +1,15 @@ { "config": { - "step": { - "user": { - "description": "Select a location to get to store downloads. The setup will check if the directory exists." - } + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "directory_does_not_exist": "The directory could not be reached. Please check your settings." }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + "step": { + "user": { + "description": "Select a location to get to store downloads. The setup will check if the directory exists." + } } }, "exceptions": { @@ -22,26 +22,26 @@ }, "services": { "download_file": { - "name": "Download file", "description": "Downloads a file to the download location.", "fields": { - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "The URL of the file to download." - }, - "subdir": { - "name": "Subdirectory", - "description": "Relative download path." - }, "filename": { - "name": "Filename", - "description": "Custom name for the downloaded file." + "description": "Custom name for the downloaded file.", + "name": "Filename" }, "overwrite": { - "name": "Overwrite", - "description": "Overwrite file if it exists." + "description": "Overwrite file if it exists.", + "name": "Overwrite" + }, + "subdir": { + "description": "Relative download path.", + "name": "Subdirectory" + }, + "url": { + "description": "The URL of the file to download.", + "name": "[%key:common::config_flow::data::url%]" } - } + }, + "name": "Download file" } } } diff --git a/homeassistant/components/dremel_3d_printer/icons.json b/homeassistant/components/dremel_3d_printer/icons.json index ce48987df58..71ccbe49c6e 100644 --- a/homeassistant/components/dremel_3d_printer/icons.json +++ b/homeassistant/components/dremel_3d_printer/icons.json @@ -1,32 +1,32 @@ { "entity": { "sensor": { - "job_phase": { - "default": "mdi:printer-3d" - }, - "progress": { - "default": "mdi:printer-3d-nozzle" - }, - "filament": { - "default": "mdi:printer-3d-nozzle" - }, - "job_status": { - "default": "mdi:printer-3d" - }, - "job_name": { - "default": "mdi:file" - }, "api_version": { "default": "mdi:api" }, - "host": { - "default": "mdi:ip-network" - }, "connection_type": { "default": "mdi:network" }, + "filament": { + "default": "mdi:printer-3d-nozzle" + }, + "host": { + "default": "mdi:ip-network" + }, "hours_used": { "default": "mdi:clock" + }, + "job_name": { + "default": "mdi:file" + }, + "job_phase": { + "default": "mdi:printer-3d" + }, + "job_status": { + "default": "mdi:printer-3d" + }, + "progress": { + "default": "mdi:printer-3d-nozzle" } } } diff --git a/homeassistant/components/dremel_3d_printer/strings.json b/homeassistant/components/dremel_3d_printer/strings.json index 9f6870b57f6..0fa44ee0ada 100644 --- a/homeassistant/components/dremel_3d_printer/strings.json +++ b/homeassistant/components/dremel_3d_printer/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,13 +16,6 @@ "host": "The hostname or IP address of your Dremel 3D printer." } } - }, - "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%]" } }, "entity": { @@ -31,41 +31,20 @@ } }, "sensor": { - "job_phase": { - "name": "Job phase" + "api_version": { + "name": "API version" }, - "completion_time": { - "name": "Completion time" - }, - "progress": { - "name": "Progress" + "available_storage": { + "name": "Available storage" }, "chamber": { "name": "Chamber" }, - "platform_temperature": { - "name": "Platform temperature" + "completion_time": { + "name": "Completion time" }, - "target_platform_temperature": { - "name": "Target platform temperature" - }, - "max_platform_temperature": { - "name": "Max platform temperature" - }, - "extruder": { - "name": "Extruder" - }, - "target_extruder_temperature": { - "name": "Target extruder temperature" - }, - "max_extruder_temperature": { - "name": "Max extruder temperature" - }, - "network_build": { - "name": "Network build" - }, - "filament": { - "name": "Filament" + "connection_type": { + "name": "Connection type" }, "elapsed_time": { "name": "Elapsed time" @@ -73,26 +52,47 @@ "estimated_total_time": { "name": "Estimated total time" }, - "job_status": { - "name": "Job status" + "extruder": { + "name": "Extruder" }, - "job_name": { - "name": "Job name" - }, - "api_version": { - "name": "API version" + "filament": { + "name": "Filament" }, "host": { "name": "[%key:common::config_flow::data::host%]" }, - "connection_type": { - "name": "Connection type" - }, - "available_storage": { - "name": "Available storage" - }, "hours_used": { "name": "Hours used" + }, + "job_name": { + "name": "Job name" + }, + "job_phase": { + "name": "Job phase" + }, + "job_status": { + "name": "Job status" + }, + "max_extruder_temperature": { + "name": "Max extruder temperature" + }, + "max_platform_temperature": { + "name": "Max platform temperature" + }, + "network_build": { + "name": "Network build" + }, + "platform_temperature": { + "name": "Platform temperature" + }, + "progress": { + "name": "Progress" + }, + "target_extruder_temperature": { + "name": "Target extruder temperature" + }, + "target_platform_temperature": { + "name": "Target platform temperature" } } } diff --git a/homeassistant/components/drop_connect/icons.json b/homeassistant/components/drop_connect/icons.json index 9392da79f0c..dac4ea6b0b6 100644 --- a/homeassistant/components/drop_connect/icons.json +++ b/homeassistant/components/drop_connect/icons.json @@ -23,18 +23,6 @@ } }, "sensor": { - "current_flow_rate": { - "default": "mdi:shower-head" - }, - "peak_flow_rate": { - "default": "mdi:shower-head" - }, - "inlet_tds": { - "default": "mdi:water-opacity" - }, - "outlet_tds": { - "default": "mdi:water-opacity" - }, "cart1": { "default": "mdi:gauge" }, @@ -43,21 +31,33 @@ }, "cart3": { "default": "mdi:gauge" + }, + "current_flow_rate": { + "default": "mdi:shower-head" + }, + "inlet_tds": { + "default": "mdi:water-opacity" + }, + "outlet_tds": { + "default": "mdi:water-opacity" + }, + "peak_flow_rate": { + "default": "mdi:shower-head" } }, "switch": { - "water": { - "default": "mdi:valve", - "state": { - "on": "mdi:valve-open", - "off": "mdi:valve-closed" - } - }, "bypass": { "default": "mdi:valve", "state": { - "on": "mdi:valve-open", - "off": "mdi:valve-closed" + "off": "mdi:valve-closed", + "on": "mdi:valve-open" + } + }, + "water": { + "default": "mdi:valve", + "state": { + "off": "mdi:valve-closed", + "on": "mdi:valve-open" } } } diff --git a/homeassistant/components/drop_connect/strings.json b/homeassistant/components/drop_connect/strings.json index 6093f2e8100..15e0ba8134d 100644 --- a/homeassistant/components/drop_connect/strings.json +++ b/homeassistant/components/drop_connect/strings.json @@ -5,27 +5,12 @@ }, "step": { "confirm": { - "title": "Confirm association", - "description": "Do you want to configure the DROP {device_type} named {device_name}?'" + "description": "Do you want to configure the DROP {device_type} named {device_name}?'", + "title": "Confirm association" } } }, "entity": { - "sensor": { - "average_water_used": { "name": "Average daily water usage" }, - "capacity_remaining": { "name": "Capacity remaining" }, - "cart1": { "name": "Cartridge 1 life remaining" }, - "cart2": { "name": "Cartridge 2 life remaining" }, - "cart3": { "name": "Cartridge 3 life remaining" }, - "current_flow_rate": { "name": "Water flow rate" }, - "current_system_pressure": { "name": "Current water pressure" }, - "high_system_pressure": { "name": "High water pressure today" }, - "inlet_tds": { "name": "Inlet TDS" }, - "low_system_pressure": { "name": "Low water pressure today" }, - "outlet_tds": { "name": "Outlet TDS" }, - "peak_flow_rate": { "name": "Peak water flow rate today" }, - "water_used_today": { "name": "Total water used today" } - }, "binary_sensor": { "alert_sensor": { "name": "Sensor" }, "leak": { "name": "Leak detected" }, @@ -44,6 +29,21 @@ } } }, + "sensor": { + "average_water_used": { "name": "Average daily water usage" }, + "capacity_remaining": { "name": "Capacity remaining" }, + "cart1": { "name": "Cartridge 1 life remaining" }, + "cart2": { "name": "Cartridge 2 life remaining" }, + "cart3": { "name": "Cartridge 3 life remaining" }, + "current_flow_rate": { "name": "Water flow rate" }, + "current_system_pressure": { "name": "Current water pressure" }, + "high_system_pressure": { "name": "High water pressure today" }, + "inlet_tds": { "name": "Inlet TDS" }, + "low_system_pressure": { "name": "Low water pressure today" }, + "outlet_tds": { "name": "Outlet TDS" }, + "peak_flow_rate": { "name": "Peak water flow rate today" }, + "water_used_today": { "name": "Total water used today" } + }, "switch": { "bypass": { "name": "Treatment bypass" }, "water": { "name": "Water supply" } diff --git a/homeassistant/components/droplet/strings.json b/homeassistant/components/droplet/strings.json index dd3697708bf..49d3ac55c54 100644 --- a/homeassistant/components/droplet/strings.json +++ b/homeassistant/components/droplet/strings.json @@ -1,41 +1,41 @@ { "config": { - "step": { - "user": { - "title": "Configure Droplet integration", - "description": "Manually enter Droplet's connection details.", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "code": "Pairing code" - }, - "data_description": { - "ip_address": "Droplet's IP address", - "code": "Code from the Droplet app" - } - }, - "confirm": { - "title": "Confirm association", - "description": "Enter pairing code to connect to {device_name}.", - "data": { - "code": "[%key:component::droplet::config::step::user::data::code%]" - }, - "data_description": { - "code": "[%key:component::droplet::config::step::user::data_description::code%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "confirm": { + "data": { + "code": "[%key:component::droplet::config::step::user::data::code%]" + }, + "data_description": { + "code": "[%key:component::droplet::config::step::user::data_description::code%]" + }, + "description": "Enter pairing code to connect to {device_name}.", + "title": "Confirm association" + }, + "user": { + "data": { + "code": "Pairing code", + "ip_address": "[%key:common::config_flow::data::ip%]" + }, + "data_description": { + "code": "Code from the Droplet app", + "ip_address": "Droplet's IP address" + }, + "description": "Manually enter Droplet's connection details.", + "title": "Configure Droplet integration" + } } }, "entity": { "sensor": { + "current_flow_rate": { "name": "Flow rate" }, "server_connectivity": { "name": "Server status" }, - "signal_quality": { "name": "Signal quality" }, - "current_flow_rate": { "name": "Flow rate" } + "signal_quality": { "name": "Signal quality" } } }, "exceptions": { diff --git a/homeassistant/components/dsmr/icons.json b/homeassistant/components/dsmr/icons.json index 39a39a47e39..82a69c50e36 100644 --- a/homeassistant/components/dsmr/icons.json +++ b/homeassistant/components/dsmr/icons.json @@ -4,10 +4,10 @@ "electricity_active_tariff": { "default": "mdi:flash" }, - "short_power_failure_count": { + "long_power_failure_count": { "default": "mdi:flash-off" }, - "long_power_failure_count": { + "short_power_failure_count": { "default": "mdi:flash-off" }, "voltage_swell_l1_count": { diff --git a/homeassistant/components/dsmr/strings.json b/homeassistant/components/dsmr/strings.json index 7fbfcd573ed..61c753b2e7f 100644 --- a/homeassistant/components/dsmr/strings.json +++ b/homeassistant/components/dsmr/strings.json @@ -1,24 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_communicate": "[%key:component::dsmr::config::error::cannot_communicate%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_communicate": "Failed to communicate", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { - "user": { - "data": { - "type": "Connection type" - }, - "title": "Select connection type" - }, "setup_network": { "data": { + "dsmr_version": "Select DSMR version", "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "dsmr_version": "Select DSMR version" + "port": "[%key:common::config_flow::data::port%]" }, "title": "Select connection address" }, "setup_serial": { "data": { - "port": "Select device", - "dsmr_version": "[%key:component::dsmr::config::step::setup_network::data::dsmr_version%]" + "dsmr_version": "[%key:component::dsmr::config::step::setup_network::data::dsmr_version%]", + "port": "Select device" }, "title": "[%key:common::config_flow::data::device%]" }, @@ -27,21 +31,23 @@ "port": "[%key:common::config_flow::data::usb_path%]" }, "title": "[%key:common::config_flow::data::path%]" + }, + "user": { + "data": { + "type": "Connection type" + }, + "title": "Select connection type" } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "cannot_communicate": "Failed to communicate" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "cannot_communicate": "[%key:component::dsmr::config::error::cannot_communicate%]" } }, "entity": { "sensor": { + "actual_threshold_electricity": { + "name": "Actual threshold electricity" + }, + "current_average_demand": { + "name": "Current average demand" + }, "current_electricity_delivery": { "name": "Power production" }, @@ -55,6 +61,9 @@ "normal": "[%key:common::state::normal%]" } }, + "electricity_combined": { + "name": "Energy combined" + }, "electricity_delivered_tariff_1": { "name": "Energy production (tarif 1)" }, @@ -73,6 +82,24 @@ "electricity_imported_total": { "name": "Energy consumption (total)" }, + "electricity_reactive_exported_total": { + "name": "Exported reactive electricity (total)" + }, + "electricity_reactive_imported_total": { + "name": "Imported reactive electricity (total)" + }, + "electricity_reactive_total_q1": { + "name": "Reactive electricity (Q1)" + }, + "electricity_reactive_total_q2": { + "name": "Reactive electricity (Q2)" + }, + "electricity_reactive_total_q3": { + "name": "Reactive electricity (Q3)" + }, + "electricity_reactive_total_q4": { + "name": "Reactive electricity (Q4)" + }, "electricity_used_tariff_1": { "name": "Energy consumption (tarif 1)" }, @@ -85,15 +112,21 @@ "electricity_used_tariff_4": { "name": "Energy consumption (tarif 4)" }, + "frequency": { + "name": "Frequency" + }, + "fuse_threshold_l1": { + "name": "Fuse threshold on L1" + }, + "fuse_threshold_l2": { + "name": "Fuse threshold on L2" + }, + "fuse_threshold_l3": { + "name": "Fuse threshold on L3" + }, "gas_meter_reading": { "name": "Gas consumption" }, - "current_average_demand": { - "name": "Current average demand" - }, - "maximum_demand_current_month": { - "name": "Maximum demand current month" - }, "instantaneous_active_power_l1_negative": { "name": "Power production phase L1" }, @@ -121,6 +154,18 @@ "instantaneous_current_l3": { "name": "Current phase L3" }, + "instantaneous_power_factor_l1": { + "name": "Instantaneous power factor L1" + }, + "instantaneous_power_factor_l2": { + "name": "Instantaneous power factor L2" + }, + "instantaneous_power_factor_l3": { + "name": "Instantaneous power factor L3" + }, + "instantaneous_power_factor_total": { + "name": "Instantaneous power factor (total)" + }, "instantaneous_voltage_l1": { "name": "Voltage phase L1" }, @@ -139,9 +184,15 @@ "max_power_per_phase": { "name": "Max power per phase" }, + "maximum_demand_current_month": { + "name": "Maximum demand current month" + }, "short_power_failure_count": { "name": "Short power failure count" }, + "text_message": { + "name": "Text message" + }, "voltage_sag_l1_count": { "name": "Voltage sags phase L1" }, @@ -162,57 +213,6 @@ }, "water_meter_reading": { "name": "Water consumption" - }, - "actual_threshold_electricity": { - "name": "Actual threshold electricity" - }, - "electricity_reactive_imported_total": { - "name": "Imported reactive electricity (total)" - }, - "electricity_reactive_exported_total": { - "name": "Exported reactive electricity (total)" - }, - "electricity_reactive_total_q1": { - "name": "Reactive electricity (Q1)" - }, - "electricity_reactive_total_q2": { - "name": "Reactive electricity (Q2)" - }, - "electricity_reactive_total_q3": { - "name": "Reactive electricity (Q3)" - }, - "electricity_reactive_total_q4": { - "name": "Reactive electricity (Q4)" - }, - "electricity_combined": { - "name": "Energy combined" - }, - "instantaneous_power_factor_total": { - "name": "Instantaneous power factor (total)" - }, - "instantaneous_power_factor_l1": { - "name": "Instantaneous power factor L1" - }, - "instantaneous_power_factor_l2": { - "name": "Instantaneous power factor L2" - }, - "instantaneous_power_factor_l3": { - "name": "Instantaneous power factor L3" - }, - "frequency": { - "name": "Frequency" - }, - "fuse_threshold_l1": { - "name": "Fuse threshold on L1" - }, - "fuse_threshold_l2": { - "name": "Fuse threshold on L2" - }, - "fuse_threshold_l3": { - "name": "Fuse threshold on L3" - }, - "text_message": { - "name": "Text message" } } }, diff --git a/homeassistant/components/dsmr_reader/icons.json b/homeassistant/components/dsmr_reader/icons.json index aa58ddf43de..53419f703de 100644 --- a/homeassistant/components/dsmr_reader/icons.json +++ b/homeassistant/components/dsmr_reader/icons.json @@ -1,33 +1,54 @@ { "entity": { "sensor": { - "low_tariff_usage": { + "current_day_fixed_cost": { + "default": "mdi:currency-eur" + }, + "current_gas_usage": { + "default": "mdi:counter" + }, + "current_month_fixed_cost": { + "default": "mdi:currency-eur" + }, + "current_month_gas_cost": { + "default": "mdi:currency-eur" + }, + "current_month_gas_usage": { + "default": "mdi:counter" + }, + "current_month_high_tariff_cost": { + "default": "mdi:currency-eur" + }, + "current_month_high_tariff_returned": { "default": "mdi:flash" }, - "low_tariff_returned": { + "current_month_high_tariff_usage": { "default": "mdi:flash" }, - "high_tariff_usage": { + "current_month_low_tariff_cost": { + "default": "mdi:currency-eur" + }, + "current_month_low_tariff_returned": { "default": "mdi:flash" }, - "high_tariff_returned": { + "current_month_low_tariff_usage": { "default": "mdi:flash" }, - "current_power_usage": { + "current_month_power_return_total": { "default": "mdi:flash" }, + "current_month_power_total_cost": { + "default": "mdi:currency-eur" + }, + "current_month_power_usage_total": { + "default": "mdi:flash" + }, + "current_month_total_cost": { + "default": "mdi:currency-eur" + }, "current_power_return": { "default": "mdi:flash" }, - "current_power_usage_l1": { - "default": "mdi:flash" - }, - "current_power_usage_l2": { - "default": "mdi:flash" - }, - "current_power_usage_l3": { - "default": "mdi:flash" - }, "current_power_return_l1": { "default": "mdi:flash" }, @@ -37,8 +58,17 @@ "current_power_return_l3": { "default": "mdi:flash" }, - "gas_meter_usage": { - "default": "mdi:fire" + "current_power_usage": { + "default": "mdi:flash" + }, + "current_power_usage_l1": { + "default": "mdi:flash" + }, + "current_power_usage_l2": { + "default": "mdi:flash" + }, + "current_power_usage_l3": { + "default": "mdi:flash" }, "current_voltage_l1": { "default": "mdi:flash" @@ -49,6 +79,123 @@ "current_voltage_l3": { "default": "mdi:flash" }, + "current_year_fixed_cost": { + "default": "mdi:currency-eur" + }, + "current_year_gas_cost": { + "default": "mdi:currency-eur" + }, + "current_year_gas_usage": { + "default": "mdi:counter" + }, + "current_year_high_tariff_cost": { + "default": "mdi:currency-eur" + }, + "current_year_high_tariff_returned": { + "default": "mdi:flash" + }, + "current_year_high_tariff_usage": { + "default": "mdi:flash" + }, + "current_year_low_tariff_cost": { + "default": "mdi:currency-eur" + }, + "current_year_low_tariff_returned": { + "default": "mdi:flash" + }, + "current_year_low_tariff_usage": { + "default": "mdi:flash" + }, + "current_year_power_returned_total": { + "default": "mdi:flash" + }, + "current_year_power_total_cost": { + "default": "mdi:currency-eur" + }, + "current_year_power_usage_total": { + "default": "mdi:flash" + }, + "current_year_total_cost": { + "default": "mdi:currency-eur" + }, + "daily_gas_usage": { + "default": "mdi:counter" + }, + "daily_high_tariff_cost": { + "default": "mdi:currency-eur" + }, + "daily_high_tariff_return": { + "default": "mdi:flash" + }, + "daily_high_tariff_usage": { + "default": "mdi:flash" + }, + "daily_low_tariff_cost": { + "default": "mdi:currency-eur" + }, + "daily_low_tariff_return": { + "default": "mdi:flash" + }, + "daily_low_tariff_usage": { + "default": "mdi:flash" + }, + "daily_power_return_total": { + "default": "mdi:flash" + }, + "daily_power_total_cost": { + "default": "mdi:currency-eur" + }, + "daily_power_usage_total": { + "default": "mdi:flash" + }, + "dsmr_version": { + "default": "mdi:alert-circle" + }, + "electricity_tariff": { + "default": "mdi:flash" + }, + "gas_cost": { + "default": "mdi:currency-eur" + }, + "gas_meter_read": { + "default": "mdi:clock" + }, + "gas_meter_usage": { + "default": "mdi:fire" + }, + "gas_price": { + "default": "mdi:currency-eur" + }, + "gas_usage": { + "default": "mdi:counter" + }, + "high_tariff_delivered_price": { + "default": "mdi:currency-eur" + }, + "high_tariff_returned": { + "default": "mdi:flash" + }, + "high_tariff_returned_price": { + "default": "mdi:currency-eur" + }, + "high_tariff_usage": { + "default": "mdi:flash" + }, + "long_power_failure_count": { + "default": "mdi:flash" + }, + "low_tariff_delivered_price": { + "default": "mdi:currency-eur" + }, + "low_tariff_returned": { + "default": "mdi:flash" + }, + "low_tariff_returned_price": { + "default": "mdi:currency-eur" + }, + "low_tariff_usage": { + "default": "mdi:flash" + }, "phase_power_current_l1": { "default": "mdi:flash" }, @@ -58,84 +205,27 @@ "phase_power_current_l3": { "default": "mdi:flash" }, - "telegram_timestamp": { - "default": "mdi:clock" - }, - "gas_usage": { - "default": "mdi:counter" - }, - "current_gas_usage": { - "default": "mdi:counter" - }, - "gas_meter_read": { - "default": "mdi:clock" - }, - "daily_low_tariff_usage": { - "default": "mdi:flash" - }, - "daily_high_tariff_usage": { - "default": "mdi:flash" - }, - "daily_low_tariff_return": { - "default": "mdi:flash" - }, - "daily_high_tariff_return": { - "default": "mdi:flash" - }, - "daily_power_usage_total": { - "default": "mdi:flash" - }, - "daily_power_return_total": { - "default": "mdi:flash" - }, - "daily_low_tariff_cost": { - "default": "mdi:currency-eur" - }, - "daily_high_tariff_cost": { - "default": "mdi:currency-eur" - }, - "daily_power_total_cost": { - "default": "mdi:currency-eur" - }, - "daily_gas_usage": { - "default": "mdi:counter" - }, - "gas_cost": { - "default": "mdi:currency-eur" - }, - "total_cost": { - "default": "mdi:currency-eur" - }, - "low_tariff_delivered_price": { - "default": "mdi:currency-eur" - }, - "high_tariff_delivered_price": { - "default": "mdi:currency-eur" - }, - "low_tariff_returned_price": { - "default": "mdi:currency-eur" - }, - "high_tariff_returned_price": { - "default": "mdi:currency-eur" - }, - "gas_price": { - "default": "mdi:currency-eur" - }, - "current_day_fixed_cost": { - "default": "mdi:currency-eur" - }, - "dsmr_version": { - "default": "mdi:alert-circle" - }, - "electricity_tariff": { - "default": "mdi:flash" - }, "power_failure_count": { "default": "mdi:flash" }, - "long_power_failure_count": { + "previous_quarter_hour_peak_usage": { "default": "mdi:flash" }, + "quarter_hour_peak_end_time": { + "default": "mdi:clock" + }, + "quarter_hour_peak_start_time": { + "default": "mdi:clock" + }, + "rejected_telegrams": { + "default": "mdi:flash" + }, + "telegram_timestamp": { + "default": "mdi:clock" + }, + "total_cost": { + "default": "mdi:currency-eur" + }, "voltage_sag_l1": { "default": "mdi:flash" }, @@ -153,96 +243,6 @@ }, "voltage_swell_l3": { "default": "mdi:flash" - }, - "rejected_telegrams": { - "default": "mdi:flash" - }, - "current_month_low_tariff_usage": { - "default": "mdi:flash" - }, - "current_month_high_tariff_usage": { - "default": "mdi:flash" - }, - "current_month_low_tariff_returned": { - "default": "mdi:flash" - }, - "current_month_high_tariff_returned": { - "default": "mdi:flash" - }, - "current_month_power_usage_total": { - "default": "mdi:flash" - }, - "current_month_power_return_total": { - "default": "mdi:flash" - }, - "current_month_low_tariff_cost": { - "default": "mdi:currency-eur" - }, - "current_month_high_tariff_cost": { - "default": "mdi:currency-eur" - }, - "current_month_power_total_cost": { - "default": "mdi:currency-eur" - }, - "current_month_gas_usage": { - "default": "mdi:counter" - }, - "current_month_gas_cost": { - "default": "mdi:currency-eur" - }, - "current_month_fixed_cost": { - "default": "mdi:currency-eur" - }, - "current_month_total_cost": { - "default": "mdi:currency-eur" - }, - "current_year_low_tariff_usage": { - "default": "mdi:flash" - }, - "current_year_high_tariff_usage": { - "default": "mdi:flash" - }, - "current_year_low_tariff_returned": { - "default": "mdi:flash" - }, - "current_year_high_tariff_returned": { - "default": "mdi:flash" - }, - "current_year_power_usage_total": { - "default": "mdi:flash" - }, - "current_year_power_returned_total": { - "default": "mdi:flash" - }, - "current_year_low_tariff_cost": { - "default": "mdi:currency-eur" - }, - "current_year_high_tariff_cost": { - "default": "mdi:currency-eur" - }, - "current_year_power_total_cost": { - "default": "mdi:currency-eur" - }, - "current_year_gas_usage": { - "default": "mdi:counter" - }, - "current_year_gas_cost": { - "default": "mdi:currency-eur" - }, - "current_year_fixed_cost": { - "default": "mdi:currency-eur" - }, - "current_year_total_cost": { - "default": "mdi:currency-eur" - }, - "previous_quarter_hour_peak_usage": { - "default": "mdi:flash" - }, - "quarter_hour_peak_start_time": { - "default": "mdi:clock" - }, - "quarter_hour_peak_end_time": { - "default": "mdi:clock" } } } diff --git a/homeassistant/components/dsmr_reader/strings.json b/homeassistant/components/dsmr_reader/strings.json index 6f8bcde12f4..caeca6052c3 100644 --- a/homeassistant/components/dsmr_reader/strings.json +++ b/homeassistant/components/dsmr_reader/strings.json @@ -11,33 +11,54 @@ }, "entity": { "sensor": { - "low_tariff_usage": { - "name": "Low tariff usage" + "current_day_fixed_cost": { + "name": "Current day fixed cost" }, - "low_tariff_returned": { - "name": "Low tariff returned" + "current_gas_usage": { + "name": "Current gas usage" }, - "high_tariff_usage": { - "name": "High tariff usage" + "current_month_fixed_cost": { + "name": "Current month fixed cost" }, - "high_tariff_returned": { - "name": "High tariff returned" + "current_month_gas_cost": { + "name": "Current month gas cost" }, - "current_power_usage": { - "name": "Current power usage" + "current_month_gas_usage": { + "name": "Current month gas usage" + }, + "current_month_high_tariff_cost": { + "name": "Current month high tariff cost" + }, + "current_month_high_tariff_returned": { + "name": "Current month high tariff returned" + }, + "current_month_high_tariff_usage": { + "name": "Current month high tariff usage" + }, + "current_month_low_tariff_cost": { + "name": "Current month low tariff cost" + }, + "current_month_low_tariff_returned": { + "name": "Current month low tariff returned" + }, + "current_month_low_tariff_usage": { + "name": "Current month low tariff usage" + }, + "current_month_power_return_total": { + "name": "Current month power return total" + }, + "current_month_power_total_cost": { + "name": "Current month power total cost" + }, + "current_month_power_usage_total": { + "name": "Current month power usage total" + }, + "current_month_total_cost": { + "name": "Current month total cost" }, "current_power_return": { "name": "Current power return" }, - "current_power_usage_l1": { - "name": "Current power usage L1" - }, - "current_power_usage_l2": { - "name": "Current power usage L2" - }, - "current_power_usage_l3": { - "name": "Current power usage L3" - }, "current_power_return_l1": { "name": "Current power return L1" }, @@ -47,8 +68,17 @@ "current_power_return_l3": { "name": "Current power return L3" }, - "gas_meter_usage": { - "name": "Gas meter usage" + "current_power_usage": { + "name": "Current power usage" + }, + "current_power_usage_l1": { + "name": "Current power usage L1" + }, + "current_power_usage_l2": { + "name": "Current power usage L2" + }, + "current_power_usage_l3": { + "name": "Current power usage L3" }, "current_voltage_l1": { "name": "Current voltage L1" @@ -59,6 +89,127 @@ "current_voltage_l3": { "name": "Current voltage L3" }, + "current_year_fixed_cost": { + "name": "Current year fixed cost" + }, + "current_year_gas_cost": { + "name": "Current year gas cost" + }, + "current_year_gas_usage": { + "name": "Current year gas usage" + }, + "current_year_high_tariff_cost": { + "name": "Current year high tariff cost" + }, + "current_year_high_tariff_returned": { + "name": "Current year high tariff returned" + }, + "current_year_high_tariff_usage": { + "name": "Current year high tariff usage" + }, + "current_year_low_tariff_cost": { + "name": "Current year low tariff cost" + }, + "current_year_low_tariff_returned": { + "name": "Current year low tariff returned" + }, + "current_year_low_tariff_usage": { + "name": "Current year low tariff usage" + }, + "current_year_power_returned_total": { + "name": "Current year power returned total" + }, + "current_year_power_total_cost": { + "name": "Current year power total cost" + }, + "current_year_power_usage_total": { + "name": "Current year power usage total" + }, + "current_year_total_cost": { + "name": "Current year total cost" + }, + "daily_gas_usage": { + "name": "Gas usage (daily)" + }, + "daily_high_tariff_cost": { + "name": "High tariff cost (daily)" + }, + "daily_high_tariff_return": { + "name": "High tariff return (daily)" + }, + "daily_high_tariff_usage": { + "name": "High tariff usage (daily)" + }, + "daily_low_tariff_cost": { + "name": "Low tariff cost (daily)" + }, + "daily_low_tariff_return": { + "name": "Low tariff return (daily)" + }, + "daily_low_tariff_usage": { + "name": "Low tariff usage (daily)" + }, + "daily_power_return_total": { + "name": "Power return total (daily)" + }, + "daily_power_total_cost": { + "name": "Power total cost (daily)" + }, + "daily_power_usage_total": { + "name": "Power usage total (daily)" + }, + "dsmr_version": { + "name": "DSMR version" + }, + "electricity_tariff": { + "name": "Electricity tariff", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]" + } + }, + "gas_cost": { + "name": "Gas cost" + }, + "gas_meter_read": { + "name": "Gas meter read" + }, + "gas_meter_usage": { + "name": "Gas meter usage" + }, + "gas_price": { + "name": "Gas Price" + }, + "gas_usage": { + "name": "Gas usage" + }, + "high_tariff_delivered_price": { + "name": "High tariff delivered price" + }, + "high_tariff_returned": { + "name": "High tariff returned" + }, + "high_tariff_returned_price": { + "name": "High tariff returned price" + }, + "high_tariff_usage": { + "name": "High tariff usage" + }, + "long_power_failure_count": { + "name": "Long power failure count" + }, + "low_tariff_delivered_price": { + "name": "Low tariff delivered price" + }, + "low_tariff_returned": { + "name": "Low tariff returned" + }, + "low_tariff_returned_price": { + "name": "Low tariff returned price" + }, + "low_tariff_usage": { + "name": "Low tariff usage" + }, "phase_power_current_l1": { "name": "Phase power current L1" }, @@ -68,87 +219,26 @@ "phase_power_current_l3": { "name": "Phase power current L3" }, - "telegram_timestamp": { - "name": "Telegram timestamp" - }, - "gas_usage": { - "name": "Gas usage" - }, - "current_gas_usage": { - "name": "Current gas usage" - }, - "gas_meter_read": { - "name": "Gas meter read" - }, - "daily_low_tariff_usage": { - "name": "Low tariff usage (daily)" - }, - "daily_high_tariff_usage": { - "name": "High tariff usage (daily)" - }, - "daily_low_tariff_return": { - "name": "Low tariff return (daily)" - }, - "daily_high_tariff_return": { - "name": "High tariff return (daily)" - }, - "daily_power_usage_total": { - "name": "Power usage total (daily)" - }, - "daily_power_return_total": { - "name": "Power return total (daily)" - }, - "daily_low_tariff_cost": { - "name": "Low tariff cost (daily)" - }, - "daily_high_tariff_cost": { - "name": "High tariff cost (daily)" - }, - "daily_power_total_cost": { - "name": "Power total cost (daily)" - }, - "daily_gas_usage": { - "name": "Gas usage (daily)" - }, - "gas_cost": { - "name": "Gas cost" - }, - "total_cost": { - "name": "Total cost" - }, - "low_tariff_delivered_price": { - "name": "Low tariff delivered price" - }, - "high_tariff_delivered_price": { - "name": "High tariff delivered price" - }, - "low_tariff_returned_price": { - "name": "Low tariff returned price" - }, - "high_tariff_returned_price": { - "name": "High tariff returned price" - }, - "gas_price": { - "name": "Gas Price" - }, - "current_day_fixed_cost": { - "name": "Current day fixed cost" - }, - "dsmr_version": { - "name": "DSMR version" - }, - "electricity_tariff": { - "name": "Electricity tariff", - "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" - } - }, "power_failure_count": { "name": "Power failure count" }, - "long_power_failure_count": { - "name": "Long power failure count" + "previous_quarter_hour_peak_usage": { + "name": "Previous quarter-hour peak usage" + }, + "quarter_hour_peak_end_time": { + "name": "Quarter-hour peak end time" + }, + "quarter_hour_peak_start_time": { + "name": "Quarter-hour peak start time" + }, + "rejected_telegrams": { + "name": "Rejected telegrams" + }, + "telegram_timestamp": { + "name": "Telegram timestamp" + }, + "total_cost": { + "name": "Total cost" }, "voltage_sag_l1": { "name": "Voltage sag L1" @@ -167,103 +257,13 @@ }, "voltage_swell_l3": { "name": "Voltage swell L3" - }, - "rejected_telegrams": { - "name": "Rejected telegrams" - }, - "current_month_low_tariff_usage": { - "name": "Current month low tariff usage" - }, - "current_month_high_tariff_usage": { - "name": "Current month high tariff usage" - }, - "current_month_low_tariff_returned": { - "name": "Current month low tariff returned" - }, - "current_month_high_tariff_returned": { - "name": "Current month high tariff returned" - }, - "current_month_power_usage_total": { - "name": "Current month power usage total" - }, - "current_month_power_return_total": { - "name": "Current month power return total" - }, - "current_month_low_tariff_cost": { - "name": "Current month low tariff cost" - }, - "current_month_high_tariff_cost": { - "name": "Current month high tariff cost" - }, - "current_month_power_total_cost": { - "name": "Current month power total cost" - }, - "current_month_gas_usage": { - "name": "Current month gas usage" - }, - "current_month_gas_cost": { - "name": "Current month gas cost" - }, - "current_month_fixed_cost": { - "name": "Current month fixed cost" - }, - "current_month_total_cost": { - "name": "Current month total cost" - }, - "current_year_low_tariff_usage": { - "name": "Current year low tariff usage" - }, - "current_year_high_tariff_usage": { - "name": "Current year high tariff usage" - }, - "current_year_low_tariff_returned": { - "name": "Current year low tariff returned" - }, - "current_year_high_tariff_returned": { - "name": "Current year high tariff returned" - }, - "current_year_power_usage_total": { - "name": "Current year power usage total" - }, - "current_year_power_returned_total": { - "name": "Current year power returned total" - }, - "current_year_low_tariff_cost": { - "name": "Current year low tariff cost" - }, - "current_year_high_tariff_cost": { - "name": "Current year high tariff cost" - }, - "current_year_power_total_cost": { - "name": "Current year power total cost" - }, - "current_year_gas_usage": { - "name": "Current year gas usage" - }, - "current_year_gas_cost": { - "name": "Current year gas cost" - }, - "current_year_fixed_cost": { - "name": "Current year fixed cost" - }, - "current_year_total_cost": { - "name": "Current year total cost" - }, - "previous_quarter_hour_peak_usage": { - "name": "Previous quarter-hour peak usage" - }, - "quarter_hour_peak_start_time": { - "name": "Quarter-hour peak start time" - }, - "quarter_hour_peak_end_time": { - "name": "Quarter-hour peak end time" } } }, "issues": { "cannot_subscribe_mqtt_topic": { - "title": "Cannot subscribe to MQTT topic {topic_title}", - "description": "The DSMR Reader integration cannot subscribe to the MQTT topic: `{topic}`. Please check the configuration of the MQTT broker and the topic.\nDSMR Reader needs to be running before starting this integration." + "description": "The DSMR Reader integration cannot subscribe to the MQTT topic: `{topic}`. Please check the configuration of the MQTT broker and the topic.\nDSMR Reader needs to be running before starting this integration.", + "title": "Cannot subscribe to MQTT topic {topic_title}" } } } diff --git a/homeassistant/components/duckdns/strings.json b/homeassistant/components/duckdns/strings.json index d560b760e47..15d00d161e5 100644 --- a/homeassistant/components/duckdns/strings.json +++ b/homeassistant/components/duckdns/strings.json @@ -1,14 +1,14 @@ { "services": { "set_txt": { - "name": "Set TXT", "description": "Sets the TXT record of your DuckDNS subdomain.", "fields": { "txt": { - "name": "TXT", - "description": "Payload for the TXT record." + "description": "Payload for the TXT record.", + "name": "TXT" } - } + }, + "name": "Set TXT" } } } diff --git a/homeassistant/components/duke_energy/strings.json b/homeassistant/components/duke_energy/strings.json index 96dc8b371d1..fed00595763 100644 --- a/homeassistant/components/duke_energy/strings.json +++ b/homeassistant/components/duke_energy/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } } } diff --git a/homeassistant/components/dunehd/strings.json b/homeassistant/components/dunehd/strings.json index 7d60a720a98..8ade18bc343 100644 --- a/homeassistant/components/dunehd/strings.json +++ b/homeassistant/components/dunehd/strings.json @@ -1,23 +1,23 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, "step": { "user": { - "description": "Ensure that your player is turned on.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your Dune HD device." - } + }, + "description": "Ensure that your player is turned on." } - }, - "error": { - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/duotecno/strings.json b/homeassistant/components/duotecno/strings.json index 7f7c156768d..b28b85c2811 100644 --- a/homeassistant/components/duotecno/strings.json +++ b/homeassistant/components/duotecno/strings.json @@ -1,22 +1,22 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "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%]" + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "host": "The hostname or IP address of your Duotecno 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%]" } }, "entity": { @@ -25,10 +25,10 @@ "state_attributes": { "preset_mode": { "state": { - "sun": "Sun", + "half_moon": "Half moon", "half_sun": "Half sun", "moon": "Moon", - "half_moon": "Half moon" + "sun": "Sun" } } } diff --git a/homeassistant/components/dwd_weather_warnings/icons.json b/homeassistant/components/dwd_weather_warnings/icons.json index abee79acf21..91a543c2531 100644 --- a/homeassistant/components/dwd_weather_warnings/icons.json +++ b/homeassistant/components/dwd_weather_warnings/icons.json @@ -1,10 +1,10 @@ { "entity": { "sensor": { - "current_warning_level": { + "advance_warning_level": { "default": "mdi:close-octagon-outline" }, - "advance_warning_level": { + "current_warning_level": { "default": "mdi:close-octagon-outline" } } diff --git a/homeassistant/components/dwd_weather_warnings/strings.json b/homeassistant/components/dwd_weather_warnings/strings.json index 4e0ee2d2016..cf92c537bc8 100644 --- a/homeassistant/components/dwd_weather_warnings/strings.json +++ b/homeassistant/components/dwd_weather_warnings/strings.json @@ -1,61 +1,61 @@ { "config": { - "step": { - "user": { - "description": "To identify the desired region, either the warncell ID / name or device tracker is required. The provided device tracker has to contain the attributes 'Latitude' and 'Longitude'.", - "data": { - "region_identifier": "Warncell ID or name", - "region_device_tracker": "Device tracker entity" - } - } - }, - "error": { - "no_identifier": "Either the region identifier or device tracker is required.", - "ambiguous_identifier": "The region identifier and device tracker can not be specified together.", - "invalid_identifier": "The specified region identifier / device tracker is invalid.", - "entity_not_found": "The specified device tracker entity was not found.", - "attribute_not_found": "The required attributes 'Latitude' and 'Longitude' were not found in the specified device tracker." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "invalid_identifier": "[%key:component::dwd_weather_warnings::config::error::invalid_identifier%]" + }, + "error": { + "ambiguous_identifier": "The region identifier and device tracker can not be specified together.", + "attribute_not_found": "The required attributes 'Latitude' and 'Longitude' were not found in the specified device tracker.", + "entity_not_found": "The specified device tracker entity was not found.", + "invalid_identifier": "The specified region identifier / device tracker is invalid.", + "no_identifier": "Either the region identifier or device tracker is required." + }, + "step": { + "user": { + "data": { + "region_device_tracker": "Device tracker entity", + "region_identifier": "Warncell ID or name" + }, + "description": "To identify the desired region, either the warncell ID / name or device tracker is required. The provided device tracker has to contain the attributes 'Latitude' and 'Longitude'." + } } }, "entity": { "sensor": { - "current_warning_level": { - "name": "Current warning level", - "state_attributes": { - "region_name": { - "name": "Region name" - }, - "region_id": { - "name": "Region ID" - }, - "last_update": { - "name": "Last update" - }, - "warning_count": { - "name": "Warning count" - } - } - }, "advance_warning_level": { "name": "Advance warning level", "state_attributes": { - "region_name": { - "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::region_name::name%]" + "last_update": { + "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::last_update::name%]" }, "region_id": { "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::region_id::name%]" }, - "last_update": { - "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::last_update::name%]" + "region_name": { + "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::region_name::name%]" }, "warning_count": { "name": "[%key:component::dwd_weather_warnings::entity::sensor::current_warning_level::state_attributes::warning_count::name%]" } } + }, + "current_warning_level": { + "name": "Current warning level", + "state_attributes": { + "last_update": { + "name": "Last update" + }, + "region_id": { + "name": "Region ID" + }, + "region_name": { + "name": "Region name" + }, + "warning_count": { + "name": "Warning count" + } + } } } } diff --git a/homeassistant/components/dynalite/strings.json b/homeassistant/components/dynalite/strings.json index 4f73f91113b..90ed7e1a191 100644 --- a/homeassistant/components/dynalite/strings.json +++ b/homeassistant/components/dynalite/strings.json @@ -1,56 +1,56 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "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%]" }, - "title": "Configure Dynalite Connection", - "description": "Gateway address to connect to DYNET network" + "description": "Gateway address to connect to DYNET network", + "title": "Configure Dynalite Connection" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "services": { "request_area_preset": { - "name": "Request area preset", "description": "Requests Dynalite to report the preset for an area.", "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "Host gateway IP to send to or all configured gateways if not specified." - }, "area": { - "name": "Area", - "description": "Area to request the preset reported." + "description": "Area to request the preset reported.", + "name": "Area" }, "channel": { - "name": "Channel", - "description": "Channel to request the preset to be reported from." + "description": "Channel to request the preset to be reported from.", + "name": "Channel" + }, + "host": { + "description": "Host gateway IP to send to or all configured gateways if not specified.", + "name": "[%key:common::config_flow::data::host%]" } - } + }, + "name": "Request area preset" }, "request_channel_level": { - "name": "Request channel level", "description": "Requests Dynalite to report the brightness level of a specific channel.", "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "[%key:component::dynalite::services::request_area_preset::fields::host::description%]" - }, "area": { - "name": "[%key:component::dynalite::services::request_area_preset::fields::area::name%]", - "description": "Area for the requested channel." + "description": "Area for the requested channel.", + "name": "[%key:component::dynalite::services::request_area_preset::fields::area::name%]" }, "channel": { - "name": "Channel", - "description": "Channel to request the brightness level for." + "description": "Channel to request the brightness level for.", + "name": "Channel" + }, + "host": { + "description": "[%key:component::dynalite::services::request_area_preset::fields::host::description%]", + "name": "[%key:common::config_flow::data::host%]" } - } + }, + "name": "Request channel level" } } } diff --git a/homeassistant/components/eafm/strings.json b/homeassistant/components/eafm/strings.json index c704d361253..3378c21d065 100644 --- a/homeassistant/components/eafm/strings.json +++ b/homeassistant/components/eafm/strings.json @@ -1,17 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_stations": "No flood monitoring stations found." + }, "step": { "user": { - "title": "Track a flood monitoring station", - "description": "Select the station you want to monitor", "data": { "station": "Station" - } + }, + "description": "Select the station you want to monitor", + "title": "Track a flood monitoring station" } - }, - "abort": { - "no_stations": "No flood monitoring stations found.", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/easyenergy/icons.json b/homeassistant/components/easyenergy/icons.json index 501483eb932..b4303b7b360 100644 --- a/homeassistant/components/easyenergy/icons.json +++ b/homeassistant/components/easyenergy/icons.json @@ -1,26 +1,26 @@ { "entity": { "sensor": { - "percentage_of_max": { - "default": "mdi:percent" + "hours_priced_equal_or_higher": { + "default": "mdi:clock" }, "hours_priced_equal_or_lower": { "default": "mdi:clock" }, - "hours_priced_equal_or_higher": { - "default": "mdi:clock" + "percentage_of_max": { + "default": "mdi:percent" } } }, "services": { - "get_gas_prices": { - "service": "mdi:gas-station" + "get_energy_return_prices": { + "service": "mdi:transmission-tower-export" }, "get_energy_usage_prices": { "service": "mdi:transmission-tower-import" }, - "get_energy_return_prices": { - "service": "mdi:transmission-tower-export" + "get_gas_prices": { + "service": "mdi:gas-station" } } } diff --git a/homeassistant/components/easyenergy/strings.json b/homeassistant/components/easyenergy/strings.json index 502db7920a3..648f4500079 100644 --- a/homeassistant/components/easyenergy/strings.json +++ b/homeassistant/components/easyenergy/strings.json @@ -1,35 +1,33 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "step": { "user": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "exceptions": { - "invalid_date": { - "message": "Invalid date provided. Got {date}" - }, - "invalid_config_entry": { - "message": "Invalid config entry provided. Got {config_entry}" - }, - "unloaded_config_entry": { - "message": "Invalid config entry provided. {config_entry} is not loaded." } }, "entity": { "sensor": { + "average_price": { + "name": "Average - today" + }, "current_hour_price": { "name": "Current hour" }, - "next_hour_price": { - "name": "Next hour" + "highest_price_time": { + "name": "Time of highest price - today" }, - "average_price": { - "name": "Average - today" + "hours_priced_equal_or_higher": { + "name": "Hours priced equal or higher than current - today" + }, + "hours_priced_equal_or_lower": { + "name": "Hours priced equal or lower than current - today" + }, + "lowest_price_time": { + "name": "Time of lowest price - today" }, "max_price": { "name": "Highest price - today" @@ -37,85 +35,87 @@ "min_price": { "name": "Lowest price - today" }, - "highest_price_time": { - "name": "Time of highest price - today" - }, - "lowest_price_time": { - "name": "Time of lowest price - today" + "next_hour_price": { + "name": "Next hour" }, "percentage_of_max": { "name": "Current percentage of highest price - today" - }, - "hours_priced_equal_or_lower": { - "name": "Hours priced equal or lower than current - today" - }, - "hours_priced_equal_or_higher": { - "name": "Hours priced equal or higher than current - today" } } }, + "exceptions": { + "invalid_config_entry": { + "message": "Invalid config entry provided. Got {config_entry}" + }, + "invalid_date": { + "message": "Invalid date provided. Got {date}" + }, + "unloaded_config_entry": { + "message": "Invalid config entry provided. {config_entry} is not loaded." + } + }, "services": { - "get_gas_prices": { - "name": "Get gas prices", - "description": "Requests gas prices from easyEnergy.", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The configuration entry to use for this action." - }, - "incl_vat": { - "name": "VAT included", - "description": "Whether the prices should include VAT." - }, - "start": { - "name": "Start", - "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted." - }, - "end": { - "name": "End", - "description": "Specifies the date and time until which to retrieve prices. Defaults to today if omitted." - } - } - }, - "get_energy_usage_prices": { - "name": "Get energy usage prices", - "description": "Requests usage energy prices from easyEnergy.", - "fields": { - "config_entry": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::description%]" - }, - "incl_vat": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::incl_vat::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::incl_vat::description%]" - }, - "start": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::start::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::start::description%]" - }, - "end": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::end::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::end::description%]" - } - } - }, "get_energy_return_prices": { - "name": "Get energy return prices", "description": "Requests return energy prices from easyEnergy.", "fields": { "config_entry": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::description%]" - }, - "start": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::start::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::start::description%]" + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::name%]" }, "end": { - "name": "[%key:component::easyenergy::services::get_gas_prices::fields::end::name%]", - "description": "[%key:component::easyenergy::services::get_gas_prices::fields::end::description%]" + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::end::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::end::name%]" + }, + "start": { + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::start::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::start::name%]" } - } + }, + "name": "Get energy return prices" + }, + "get_energy_usage_prices": { + "description": "Requests usage energy prices from easyEnergy.", + "fields": { + "config_entry": { + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::config_entry::name%]" + }, + "end": { + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::end::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::end::name%]" + }, + "incl_vat": { + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::incl_vat::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::incl_vat::name%]" + }, + "start": { + "description": "[%key:component::easyenergy::services::get_gas_prices::fields::start::description%]", + "name": "[%key:component::easyenergy::services::get_gas_prices::fields::start::name%]" + } + }, + "name": "Get energy usage prices" + }, + "get_gas_prices": { + "description": "Requests gas prices from easyEnergy.", + "fields": { + "config_entry": { + "description": "The configuration entry to use for this action.", + "name": "Config entry" + }, + "end": { + "description": "Specifies the date and time until which to retrieve prices. Defaults to today if omitted.", + "name": "End" + }, + "incl_vat": { + "description": "Whether the prices should include VAT.", + "name": "VAT included" + }, + "start": { + "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted.", + "name": "Start" + } + }, + "name": "Get gas prices" } } } diff --git a/homeassistant/components/ebusd/strings.json b/homeassistant/components/ebusd/strings.json index 4097be02393..3f7bc203751 100644 --- a/homeassistant/components/ebusd/strings.json +++ b/homeassistant/components/ebusd/strings.json @@ -1,14 +1,14 @@ { "services": { "write": { - "name": "Write", "description": "Calls the ebusd write command.", "fields": { "call": { - "name": "Call", - "description": "Property name and value to set." + "description": "Property name and value to set.", + "name": "Call" } - } + }, + "name": "Write" } } } diff --git a/homeassistant/components/ecobee/icons.json b/homeassistant/components/ecobee/icons.json index 647a14dc5d5..fba0696eb08 100644 --- a/homeassistant/components/ecobee/icons.json +++ b/homeassistant/components/ecobee/icons.json @@ -9,12 +9,12 @@ "resume_program": { "service": "mdi:play" }, - "set_fan_min_on_time": { - "service": "mdi:fan-clock" - }, "set_dst_mode": { "service": "mdi:sun-clock" }, + "set_fan_min_on_time": { + "service": "mdi:fan-clock" + }, "set_mic_mode": { "service": "mdi:microphone" }, diff --git a/homeassistant/components/ecobee/manifest.json b/homeassistant/components/ecobee/manifest.json index 20b346b776b..e1b0b38ae25 100644 --- a/homeassistant/components/ecobee/manifest.json +++ b/homeassistant/components/ecobee/manifest.json @@ -16,16 +16,16 @@ "type": "_ecobee._tcp.local." }, { - "type": "_sideplay._tcp.local.", "properties": { "mdl": "eb-*" - } + }, + "type": "_sideplay._tcp.local." }, { - "type": "_sideplay._tcp.local.", "properties": { "mdl": "ecobee*" - } + }, + "type": "_sideplay._tcp.local." } ] } diff --git a/homeassistant/components/ecobee/strings.json b/homeassistant/components/ecobee/strings.json index 7a1e4e0f836..67ca625c637 100644 --- a/homeassistant/components/ecobee/strings.json +++ b/homeassistant/components/ecobee/strings.json @@ -1,22 +1,22 @@ { "config": { - "step": { - "user": { - "description": "Please enter the API key obtained from ecobee.com.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "authorize": { - "description": "Please authorize this app at {auth_url} with PIN code:\n\n{pin}\n\nThen, select **Submit**." - } + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "pin_request_failed": "Error requesting PIN from ecobee; please verify API key is correct.", "token_request_failed": "Error requesting tokens from ecobee; please try again." }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + "step": { + "authorize": { + "description": "Please authorize this app at {auth_url} with PIN code:\n\n{pin}\n\nThen, select **Submit**." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Please enter the API key obtained from ecobee.com." + } } }, "entity": { @@ -32,14 +32,14 @@ } }, "number": { - "ventilator_min_type_home": { - "name": "Ventilator minimum time home" + "compressor_protection_min_temp": { + "name": "Compressor minimum temperature" }, "ventilator_min_type_away": { "name": "Ventilator minimum time away" }, - "compressor_protection_min_temp": { - "name": "Compressor minimum temperature" + "ventilator_min_type_home": { + "name": "Ventilator minimum time home" } }, "switch": { @@ -48,144 +48,6 @@ } } }, - "services": { - "create_vacation": { - "name": "Create vacation", - "description": "Creates a vacation on the selected thermostat. Note: start/end date and time must all be specified together for these parameters to have an effect. If start/end date and time are not specified, the vacation will start immediately and last 14 days (unless deleted earlier).", - "fields": { - "entity_id": { - "name": "Entity", - "description": "ecobee thermostat on which to create the vacation." - }, - "vacation_name": { - "name": "Vacation name", - "description": "Name of the vacation to create; must be unique on the thermostat." - }, - "cool_temp": { - "name": "Cool temperature", - "description": "Cooling temperature during the vacation." - }, - "heat_temp": { - "name": "Heat temperature", - "description": "Heating temperature during the vacation." - }, - "start_date": { - "name": "Start date", - "description": "Date the vacation starts in the YYYY-MM-DD format (optional, immediately if not provided along with 'Start time')." - }, - "start_time": { - "name": "Start time", - "description": "Time the vacation starts, in the local time of the thermostat, in the 24-hour format \"HH:MM:SS\"." - }, - "end_date": { - "name": "End date", - "description": "Date the vacation ends in the YYYY-MM-DD format (optional, 14 days from now if not provided along with 'End time')." - }, - "end_time": { - "name": "End time", - "description": "Time the vacation ends, in the local time of the thermostat, in the 24-hour format \"HH:MM:SS\"." - }, - "fan_mode": { - "name": "Fan mode", - "description": "Fan mode of the thermostat during the vacation." - }, - "fan_min_on_time": { - "name": "Fan minimum on time", - "description": "Minimum number of minutes to run the fan each hour during the vacation." - } - } - }, - "delete_vacation": { - "name": "Delete vacation", - "description": "Deletes a vacation on the selected thermostat.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "ecobee thermostat on which to delete the vacation." - }, - "vacation_name": { - "name": "[%key:component::ecobee::services::create_vacation::fields::vacation_name::name%]", - "description": "Name of the vacation to delete." - } - } - }, - "resume_program": { - "name": "Resume program", - "description": "Resumes the programmed schedule.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of entities to change." - }, - "resume_all": { - "name": "Resume all", - "description": "Resume all events and return to the scheduled program." - } - } - }, - "set_fan_min_on_time": { - "name": "Set fan minimum on time", - "description": "Sets the minimum amount of time that the fan will run per hour.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "[%key:component::ecobee::services::resume_program::fields::entity_id::description%]" - }, - "fan_min_on_time": { - "name": "[%key:component::ecobee::services::create_vacation::fields::fan_min_on_time::name%]", - "description": "Minimum number of minutes to run the fan each hour." - } - } - }, - "set_dst_mode": { - "name": "Set daylight savings time mode", - "description": "Enables/disables automatic daylight savings time.", - "fields": { - "dst_enabled": { - "name": "Daylight savings time enabled", - "description": "Enable automatic daylight savings time." - } - } - }, - "set_mic_mode": { - "name": "Set mic mode", - "description": "Enables/disables Alexa microphone (only for ecobee 4).", - "fields": { - "mic_enabled": { - "name": "Mic enabled", - "description": "Enable Alexa microphone." - } - } - }, - "set_occupancy_modes": { - "name": "Set occupancy modes", - "description": "Enables/disables Smart Home/Away and Follow Me modes.", - "fields": { - "auto_away": { - "name": "Auto away", - "description": "Enable Smart Home/Away mode." - }, - "follow_me": { - "name": "Follow me", - "description": "Enable Follow Me mode." - } - } - }, - "set_sensors_used_in_climate": { - "name": "Set sensors used in climate", - "description": "Sets the participating sensors for a climate program.", - "fields": { - "preset_mode": { - "name": "Climate program", - "description": "Name of the climate program to set the sensors active on.\nDefaults to currently active program." - }, - "device_ids": { - "name": "Sensors", - "description": "Sensors to set as participating sensors." - } - } - } - }, "exceptions": { "invalid_preset": { "message": "Invalid climate program, available options are: {options}" @@ -199,7 +61,6 @@ }, "issues": { "migrate_aux_heat": { - "title": "Migration of ecobee set_aux_heat action", "fix_flow": { "step": { "confirm": { @@ -207,7 +68,146 @@ "title": "Disable legacy ecobee set_aux_heat action" } } - } + }, + "title": "Migration of ecobee set_aux_heat action" + } + }, + "services": { + "create_vacation": { + "description": "Creates a vacation on the selected thermostat. Note: start/end date and time must all be specified together for these parameters to have an effect. If start/end date and time are not specified, the vacation will start immediately and last 14 days (unless deleted earlier).", + "fields": { + "cool_temp": { + "description": "Cooling temperature during the vacation.", + "name": "Cool temperature" + }, + "end_date": { + "description": "Date the vacation ends in the YYYY-MM-DD format (optional, 14 days from now if not provided along with 'End time').", + "name": "End date" + }, + "end_time": { + "description": "Time the vacation ends, in the local time of the thermostat, in the 24-hour format \"HH:MM:SS\".", + "name": "End time" + }, + "entity_id": { + "description": "ecobee thermostat on which to create the vacation.", + "name": "Entity" + }, + "fan_min_on_time": { + "description": "Minimum number of minutes to run the fan each hour during the vacation.", + "name": "Fan minimum on time" + }, + "fan_mode": { + "description": "Fan mode of the thermostat during the vacation.", + "name": "Fan mode" + }, + "heat_temp": { + "description": "Heating temperature during the vacation.", + "name": "Heat temperature" + }, + "start_date": { + "description": "Date the vacation starts in the YYYY-MM-DD format (optional, immediately if not provided along with 'Start time').", + "name": "Start date" + }, + "start_time": { + "description": "Time the vacation starts, in the local time of the thermostat, in the 24-hour format \"HH:MM:SS\".", + "name": "Start time" + }, + "vacation_name": { + "description": "Name of the vacation to create; must be unique on the thermostat.", + "name": "Vacation name" + } + }, + "name": "Create vacation" + }, + "delete_vacation": { + "description": "Deletes a vacation on the selected thermostat.", + "fields": { + "entity_id": { + "description": "ecobee thermostat on which to delete the vacation.", + "name": "Entity" + }, + "vacation_name": { + "description": "Name of the vacation to delete.", + "name": "[%key:component::ecobee::services::create_vacation::fields::vacation_name::name%]" + } + }, + "name": "Delete vacation" + }, + "resume_program": { + "description": "Resumes the programmed schedule.", + "fields": { + "entity_id": { + "description": "Name(s) of entities to change.", + "name": "Entity" + }, + "resume_all": { + "description": "Resume all events and return to the scheduled program.", + "name": "Resume all" + } + }, + "name": "Resume program" + }, + "set_dst_mode": { + "description": "Enables/disables automatic daylight savings time.", + "fields": { + "dst_enabled": { + "description": "Enable automatic daylight savings time.", + "name": "Daylight savings time enabled" + } + }, + "name": "Set daylight savings time mode" + }, + "set_fan_min_on_time": { + "description": "Sets the minimum amount of time that the fan will run per hour.", + "fields": { + "entity_id": { + "description": "[%key:component::ecobee::services::resume_program::fields::entity_id::description%]", + "name": "Entity" + }, + "fan_min_on_time": { + "description": "Minimum number of minutes to run the fan each hour.", + "name": "[%key:component::ecobee::services::create_vacation::fields::fan_min_on_time::name%]" + } + }, + "name": "Set fan minimum on time" + }, + "set_mic_mode": { + "description": "Enables/disables Alexa microphone (only for ecobee 4).", + "fields": { + "mic_enabled": { + "description": "Enable Alexa microphone.", + "name": "Mic enabled" + } + }, + "name": "Set mic mode" + }, + "set_occupancy_modes": { + "description": "Enables/disables Smart Home/Away and Follow Me modes.", + "fields": { + "auto_away": { + "description": "Enable Smart Home/Away mode.", + "name": "Auto away" + }, + "follow_me": { + "description": "Enable Follow Me mode.", + "name": "Follow me" + } + }, + "name": "Set occupancy modes" + }, + "set_sensors_used_in_climate": { + "description": "Sets the participating sensors for a climate program.", + "fields": { + "device_ids": { + "description": "Sensors to set as participating sensors.", + "name": "Sensors" + }, + "preset_mode": { + "description": "Name of the climate program to set the sensors active on.\nDefaults to currently active program.", + "name": "Climate program" + } + }, + "name": "Set sensors used in climate" } } } diff --git a/homeassistant/components/ecoforest/strings.json b/homeassistant/components/ecoforest/strings.json index d0e807b5f2a..73260da272a 100644 --- a/homeassistant/components/ecoforest/strings.json +++ b/homeassistant/components/ecoforest/strings.json @@ -1,70 +1,57 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Ecoforest device." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Ecoforest device." + } + } } }, "entity": { + "number": { + "power_level": { + "name": "Power level" + } + }, "sensor": { - "cpu_temperature": { - "name": "CPU temperature" - }, - "gas_temperature": { - "name": "Gas temperature" - }, - "ntc_temperature": { - "name": "NTC probe temperature" - }, - "status": { - "name": "Status", - "state": { - "off": "[%key:common::state::off%]", - "starting": "Starting", - "pre_heating": "Pre-heating", - "on": "[%key:common::state::on%]", - "shutting_down": "Shutting down", - "stand_by": "[%key:common::state::standby%]", - "alarm": "Alarm" - } - }, "alarm": { "name": "Alarm", "state": { "air_depression": "Air depression", - "pellets": "Pellets", "cpu_overheating": "CPU overheating", - "unkownn": "Unknown alarm", - "none": "None" + "none": "None", + "pellets": "Pellets", + "unkownn": "Unknown alarm" } }, + "convector_air_flow": { + "name": "Convector air flow" + }, + "cpu_temperature": { + "name": "CPU temperature" + }, "depression": { "name": "Depression" }, - "working_hours": { - "name": "Working time" + "extractor": { + "name": "Extractor" }, - "working_state": { - "name": "Working state" - }, - "working_level": { - "name": "Working level" + "gas_temperature": { + "name": "Gas temperature" }, "ignitions": { "name": "Ignitions" @@ -72,19 +59,32 @@ "live_pulse": { "name": "Live pulse" }, + "ntc_temperature": { + "name": "NTC probe temperature" + }, "pulse_offset": { "name": "Pulse offset" }, - "extractor": { - "name": "Extractor" + "status": { + "name": "Status", + "state": { + "alarm": "Alarm", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "pre_heating": "Pre-heating", + "shutting_down": "Shutting down", + "stand_by": "[%key:common::state::standby%]", + "starting": "Starting" + } }, - "convector_air_flow": { - "name": "Convector air flow" - } - }, - "number": { - "power_level": { - "name": "Power level" + "working_hours": { + "name": "Working time" + }, + "working_level": { + "name": "Working level" + }, + "working_state": { + "name": "Working state" } } } diff --git a/homeassistant/components/econet/strings.json b/homeassistant/components/econet/strings.json index 212ff83007b..61ca06d634b 100644 --- a/homeassistant/components/econet/strings.json +++ b/homeassistant/components/econet/strings.json @@ -1,27 +1,26 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, "step": { "user": { - "title": "Set up Rheem EcoNet Account", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" - } + }, + "title": "Set up Rheem EcoNet Account" } } }, "issues": { "migrate_aux_heat": { - "title": "Migration of EcoNet set_aux_heat action", "fix_flow": { "step": { "confirm": { @@ -29,7 +28,8 @@ "title": "[%key:component::econet::issues::migrate_aux_heat::title%]" } } - } + }, + "title": "Migration of EcoNet set_aux_heat action" } } } diff --git a/homeassistant/components/ecovacs/icons.json b/homeassistant/components/ecovacs/icons.json index 252a5532f84..6b651039bfc 100644 --- a/homeassistant/components/ecovacs/icons.json +++ b/homeassistant/components/ecovacs/icons.json @@ -24,6 +24,9 @@ "reset_lifespan_lens_brush": { "default": "mdi:broom" }, + "reset_lifespan_round_mop": { + "default": "mdi:broom" + }, "reset_lifespan_side_brush": { "default": "mdi:broom" }, @@ -33,9 +36,6 @@ "reset_lifespan_unit_care": { "default": "mdi:robot-vacuum" }, - "reset_lifespan_round_mop": { - "default": "mdi:broom" - }, "station_action_clean_base": { "default": "mdi:home" }, @@ -65,6 +65,17 @@ } } }, + "select": { + "active_map": { + "default": "mdi:floor-plan" + }, + "water_amount": { + "default": "mdi:water" + }, + "work_mode": { + "default": "mdi:cog" + } + }, "sensor": { "error": { "default": "mdi:alert-circle" @@ -81,6 +92,9 @@ "lifespan_lens_brush": { "default": "mdi:broom" }, + "lifespan_round_mop": { + "default": "mdi:broom" + }, "lifespan_side_brush": { "default": "mdi:broom" }, @@ -90,9 +104,6 @@ "lifespan_unit_care": { "default": "mdi:robot-vacuum" }, - "lifespan_round_mop": { - "default": "mdi:broom" - }, "network_ip": { "default": "mdi:ip-network-outline" }, @@ -114,22 +125,11 @@ "total_stats_area": { "default": "mdi:floor-plan" }, - "total_stats_time": { - "default": "mdi:timer-outline" - }, "total_stats_cleanings": { "default": "mdi:counter" - } - }, - "select": { - "active_map": { - "default": "mdi:floor-plan" }, - "water_amount": { - "default": "mdi:water" - }, - "work_mode": { - "default": "mdi:cog" + "total_stats_time": { + "default": "mdi:timer-outline" } }, "switch": { @@ -148,12 +148,12 @@ "clean_preference": { "default": "mdi:broom" }, - "cross_map_border_warning": { - "default": "mdi:border-none-variant" - }, "continuous_cleaning": { "default": "mdi:refresh-auto" }, + "cross_map_border_warning": { + "default": "mdi:border-none-variant" + }, "move_up_warning": { "default": "mdi:arrow-up-bold-box-outline" }, diff --git a/homeassistant/components/ecovacs/strings.json b/homeassistant/components/ecovacs/strings.json index dee6955b097..c073ac7148e 100644 --- a/homeassistant/components/ecovacs/strings.json +++ b/homeassistant/components/ecovacs/strings.json @@ -7,23 +7,23 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_url": "Invalid URL", - "invalid_url_schema_override_rest_url": "Invalid REST URL scheme.\nThe URL should start with `http://` or `https://`.", "invalid_url_schema_override_mqtt_url": "Invalid MQTT URL scheme.\nThe URL should start with `mqtt://` or `mqtts://`.", + "invalid_url_schema_override_rest_url": "Invalid REST URL scheme.\nThe URL should start with `http://` or `https://`.", "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { "auth": { "data": { "country": "[%key:common::config_flow::data::country%]", - "override_rest_url": "REST URL", "override_mqtt_url": "MQTT URL", + "override_rest_url": "REST URL", "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]", "verify_mqtt_certificate": "Verify MQTT SSL certificate" }, "data_description": { - "override_rest_url": "Enter the REST URL of your self-hosted instance including the scheme (http/https).", - "override_mqtt_url": "Enter the MQTT URL of your self-hosted instance including the scheme (mqtt/mqtts)." + "override_mqtt_url": "Enter the MQTT URL of your self-hosted instance including the scheme (mqtt/mqtts).", + "override_rest_url": "Enter the REST URL of your self-hosted instance including the scheme (http/https)." } }, "user": { @@ -64,12 +64,12 @@ "reset_lifespan_round_mop": { "name": "Reset round mop lifespan" }, - "reset_lifespan_unit_care": { - "name": "Reset unit care lifespan" - }, "reset_lifespan_side_brush": { "name": "Reset side brush lifespan" }, + "reset_lifespan_unit_care": { + "name": "Reset unit care lifespan" + }, "station_action_clean_base": { "name": "Clean base" }, @@ -113,6 +113,29 @@ "name": "Water flow level" } }, + "select": { + "active_map": { + "name": "Active map" + }, + "water_amount": { + "name": "[%key:component::ecovacs::entity::number::water_amount::name%]", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "ultrahigh": "Ultrahigh" + } + }, + "work_mode": { + "name": "Work mode", + "state": { + "mop": "Mop", + "mop_after_vacuum": "Mop after vacuum", + "vacuum": "Vacuum", + "vacuum_and_mop": "Vacuum & mop" + } + } + }, "sensor": { "error": { "name": "Error", @@ -140,15 +163,15 @@ "lifespan_main_brush": { "name": "[%key:component::ecovacs::entity::sensor::lifespan_brush::name%]" }, + "lifespan_round_mop": { + "name": "Round mop lifespan" + }, "lifespan_side_brush": { "name": "Side brush lifespan" }, "lifespan_unit_care": { "name": "Unit care lifespan" }, - "lifespan_round_mop": { - "name": "Round mop lifespan" - }, "network_ip": { "name": "IP address" }, @@ -162,8 +185,8 @@ "name": "Station state", "state": { "drying_mop": "Drying mop", - "idle": "[%key:common::state::idle%]", "emptying_dustbin": "Emptying dustbin", + "idle": "[%key:common::state::idle%]", "washing_mop": "Washing mop" } }, @@ -183,29 +206,6 @@ "name": "Total cleaning duration" } }, - "select": { - "active_map": { - "name": "Active map" - }, - "water_amount": { - "name": "[%key:component::ecovacs::entity::number::water_amount::name%]", - "state": { - "high": "[%key:common::state::high%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "ultrahigh": "Ultrahigh" - } - }, - "work_mode": { - "name": "Work mode", - "state": { - "mop": "Mop", - "mop_after_vacuum": "Mop after vacuum", - "vacuum": "Vacuum", - "vacuum_and_mop": "Vacuum & mop" - } - } - }, "switch": { "advanced_mode": { "name": "Advanced mode" @@ -222,12 +222,12 @@ "clean_preference": { "name": "Clean preference" }, - "cross_map_border_warning": { - "name": "Cross map border warning" - }, "continuous_cleaning": { "name": "Continuous cleaning" }, + "cross_map_border_warning": { + "name": "Cross map border warning" + }, "move_up_warning": { "name": "Move up warning" }, @@ -243,9 +243,9 @@ "state_attributes": { "fan_speed": { "state": { - "normal": "[%key:common::state::normal%]", "max": "Max", "max_plus": "Max+", + "normal": "[%key:common::state::normal%]", "quiet": "Quiet" } }, @@ -257,14 +257,14 @@ } }, "exceptions": { + "vacuum_raw_get_positions_not_supported": { + "message": "Retrieving the positions of the chargers and the device itself is not supported" + }, "vacuum_send_command_params_dict": { "message": "Params must be a dictionary and not a list" }, "vacuum_send_command_params_required": { "message": "Params are required for the command: {command}" - }, - "vacuum_raw_get_positions_not_supported": { - "message": "Retrieving the positions of the chargers and the device itself is not supported" } }, "selector": { @@ -277,8 +277,8 @@ }, "services": { "raw_get_positions": { - "name": "Get raw positions", - "description": "Retrieves a raw response containing the positions of the chargers and the device itself." + "description": "Retrieves a raw response containing the positions of the chargers and the device itself.", + "name": "Get raw positions" } } } diff --git a/homeassistant/components/ecowitt/strings.json b/homeassistant/components/ecowitt/strings.json index aaacb5e03dd..2375d17fdcc 100644 --- a/homeassistant/components/ecowitt/strings.json +++ b/homeassistant/components/ecowitt/strings.json @@ -1,12 +1,12 @@ { "config": { + "create_entry": { + "default": "To finish setting up the integration, you need to tell the Ecowitt station to send data to Home Assistant at the following address:\n\n- Server IP / Host Name: `{server}`\n- Path: `{path}`\n- Port: `{port}`\n\nYou can access the Ecowitt configuration in one of two ways:\n\n1. Use the Ecowitt App (on your phone):\n - Select the Menu Icon (☰) on the upper left, then **My Devices** → **Pick your station**\n - Select the Ellipsis Icon (⋯) → **Others**\n - Select **DIY Upload Servers** → **Customized**\n - Make sure to choose 'Protocol Type Same As: Ecowitt'\n - Enter the Server IP / Host Name, Path, and Port (printed above). _Note: The path has to match! Remove the first forward slash from the path, as the app will prepend one._\n - Save\n1. Navigate to the Ecowitt web UI in a browser at the station IP address:\n - Select **Weather Services** then scroll down to 'Customized'\n - Make sure to select 'Customized: 🔘 Enable' and 'Protocol Type Same As: 🔘 Ecowitt'\n - Enter the Server IP / Host Name, Path, and Port (printed above).\n - Save" + }, "step": { "user": { "description": "Are you sure you want to set up Ecowitt?" } - }, - "create_entry": { - "default": "To finish setting up the integration, you need to tell the Ecowitt station to send data to Home Assistant at the following address:\n\n- Server IP / Host Name: `{server}`\n- Path: `{path}`\n- Port: `{port}`\n\nYou can access the Ecowitt configuration in one of two ways:\n\n1. Use the Ecowitt App (on your phone):\n - Select the Menu Icon (☰) on the upper left, then **My Devices** → **Pick your station**\n - Select the Ellipsis Icon (⋯) → **Others**\n - Select **DIY Upload Servers** → **Customized**\n - Make sure to choose 'Protocol Type Same As: Ecowitt'\n - Enter the Server IP / Host Name, Path, and Port (printed above). _Note: The path has to match! Remove the first forward slash from the path, as the app will prepend one._\n - Save\n1. Navigate to the Ecowitt web UI in a browser at the station IP address:\n - Select **Weather Services** then scroll down to 'Customized'\n - Make sure to select 'Customized: 🔘 Enable' and 'Protocol Type Same As: 🔘 Ecowitt'\n - Enter the Server IP / Host Name, Path, and Port (printed above).\n - Save" } } } diff --git a/homeassistant/components/edl21/icons.json b/homeassistant/components/edl21/icons.json index c26a8a8e50b..f63984a79b3 100644 --- a/homeassistant/components/edl21/icons.json +++ b/homeassistant/components/edl21/icons.json @@ -1,41 +1,41 @@ { "entity": { "sensor": { - "ownership_id": { + "configuration_program_version_number": { "default": "mdi:flash" }, "electricity_id": { "default": "mdi:flash" }, - "configuration_program_version_number": { - "default": "mdi:flash" - }, "firmware_version_number": { "default": "mdi:flash" }, + "internal_operating_status": { + "default": "mdi:flash" + }, + "metering_point_id_1": { + "default": "mdi:flash" + }, + "ownership_id": { + "default": "mdi:flash" + }, "supply_frequency": { "default": "mdi:sine-wave" }, - "u_l2_u_l1_phase_angle": { - "default": "mdi:sine-wave" - }, - "u_l3_u_l1_phase_angle": { - "default": "mdi:sine-wave" - }, "u_l1_i_l1_phase_angle": { "default": "mdi:sine-wave" }, "u_l2_i_l2_phase_angle": { "default": "mdi:sine-wave" }, + "u_l2_u_l1_phase_angle": { + "default": "mdi:sine-wave" + }, "u_l3_i_l3_phase_angle": { "default": "mdi:sine-wave" }, - "metering_point_id_1": { - "default": "mdi:flash" - }, - "internal_operating_status": { - "default": "mdi:flash" + "u_l3_u_l1_phase_angle": { + "default": "mdi:sine-wave" } } } diff --git a/homeassistant/components/edl21/strings.json b/homeassistant/components/edl21/strings.json index b23cb8103fa..bec28c13003 100644 --- a/homeassistant/components/edl21/strings.json +++ b/homeassistant/components/edl21/strings.json @@ -5,44 +5,62 @@ }, "step": { "user": { - "title": "Add your EDL21 smart meter", "data": { "serial_port": "[%key:common::config_flow::data::usb_path%]" - } + }, + "title": "Add your EDL21 smart meter" } } }, "entity": { "sensor": { - "ownership_id": { - "name": "Ownership ID" - }, - "electricity_id": { - "name": "Electricity ID" + "absolute_active_instantaneous_power": { + "name": "Absolute active instantaneous power" }, "configuration_program_version_number": { "name": "Configuration program version number" }, + "electricity_id": { + "name": "Electricity ID" + }, "firmware_version_number": { "name": "Firmware version number" }, - "positive_active_instantaneous_power": { - "name": "Positive active instantaneous power" + "internal_operating_status": { + "name": "Internal operating status" }, - "positive_active_energy_total": { - "name": "Positive active energy total" + "l1_active_instantaneous_amperage": { + "name": "L1 active instantaneous amperage" }, - "positive_active_energy_tariff_t1": { - "name": "Positive active energy in tariff T1" + "l1_active_instantaneous_power": { + "name": "L1 active instantaneous power" }, - "positive_active_energy_tariff_t2": { - "name": "Positive active energy in tariff T2" + "l1_active_instantaneous_voltage": { + "name": "L1 active instantaneous voltage" + }, + "l2_active_instantaneous_amperage": { + "name": "L2 active instantaneous amperage" + }, + "l2_active_instantaneous_power": { + "name": "L2 active instantaneous power" + }, + "l2_active_instantaneous_voltage": { + "name": "L2 active instantaneous voltage" + }, + "l3_active_instantaneous_amperage": { + "name": "L3 active instantaneous amperage" + }, + "l3_active_instantaneous_power": { + "name": "L3 active instantaneous power" + }, + "l3_active_instantaneous_voltage": { + "name": "L3 active instantaneous voltage" }, "last_signed_positive_active_energy_total": { "name": "Last signed positive active energy total" }, - "negative_active_energy_total": { - "name": "Negative active energy total" + "metering_point_id_1": { + "name": "Metering point ID 1" }, "negative_active_energy_tariff_t1": { "name": "Negative active energy in tariff T1" @@ -50,47 +68,29 @@ "negative_active_energy_tariff_t2": { "name": "Negative active energy in tariff T2" }, - "supply_frequency": { - "name": "Supply frequency" + "negative_active_energy_total": { + "name": "Negative active energy total" }, - "absolute_active_instantaneous_power": { - "name": "Absolute active instantaneous power" + "ownership_id": { + "name": "Ownership ID" + }, + "positive_active_energy_tariff_t1": { + "name": "Positive active energy in tariff T1" + }, + "positive_active_energy_tariff_t2": { + "name": "Positive active energy in tariff T2" + }, + "positive_active_energy_total": { + "name": "Positive active energy total" + }, + "positive_active_instantaneous_power": { + "name": "Positive active instantaneous power" }, "sum_active_instantaneous_power": { "name": "Sum active instantaneous power" }, - "l1_active_instantaneous_amperage": { - "name": "L1 active instantaneous amperage" - }, - "l1_active_instantaneous_voltage": { - "name": "L1 active instantaneous voltage" - }, - "l1_active_instantaneous_power": { - "name": "L1 active instantaneous power" - }, - "l2_active_instantaneous_amperage": { - "name": "L2 active instantaneous amperage" - }, - "l2_active_instantaneous_voltage": { - "name": "L2 active instantaneous voltage" - }, - "l2_active_instantaneous_power": { - "name": "L2 active instantaneous power" - }, - "l3_active_instantaneous_amperage": { - "name": "L3 active instantaneous amperage" - }, - "l3_active_instantaneous_voltage": { - "name": "L3 active instantaneous voltage" - }, - "l3_active_instantaneous_power": { - "name": "L3 active instantaneous power" - }, - "u_l2_u_l1_phase_angle": { - "name": "U(L2)/U(L1) phase angle" - }, - "u_l3_u_l1_phase_angle": { - "name": "U(L3)/U(L1) phase angle" + "supply_frequency": { + "name": "Supply frequency" }, "u_l1_i_l1_phase_angle": { "name": "U(L1)/I(L1) phase angle" @@ -98,14 +98,14 @@ "u_l2_i_l2_phase_angle": { "name": "U(L2)/I(L2) phase angle" }, + "u_l2_u_l1_phase_angle": { + "name": "U(L2)/U(L1) phase angle" + }, "u_l3_i_l3_phase_angle": { "name": "U(L3)/I(L3) phase angle" }, - "metering_point_id_1": { - "name": "Metering point ID 1" - }, - "internal_operating_status": { - "name": "Internal operating status" + "u_l3_u_l1_phase_angle": { + "name": "U(L3)/U(L1) phase angle" } } } diff --git a/homeassistant/components/efergy/strings.json b/homeassistant/components/efergy/strings.json index 612c964487b..db5297784b1 100644 --- a/homeassistant/components/efergy/strings.json +++ b/homeassistant/components/efergy/strings.json @@ -1,54 +1,54 @@ { "config": { - "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + } + } } }, "entity": { "sensor": { - "instant_readings": { - "name": "Power usage" - }, - "energy_day": { - "name": "Daily consumption" - }, - "energy_week": { - "name": "Weekly consumption" - }, - "energy_month": { - "name": "Monthly consumption" - }, - "energy_year": { - "name": "Yearly consumption" - }, "budget": { "name": "Energy budget" }, "cost_day": { "name": "Daily energy cost" }, - "cost_week": { - "name": "Weekly energy cost" - }, "cost_month": { "name": "Monthly energy cost" }, + "cost_week": { + "name": "Weekly energy cost" + }, "cost_year": { "name": "Yearly energy cost" }, + "energy_day": { + "name": "Daily consumption" + }, + "energy_month": { + "name": "Monthly consumption" + }, + "energy_week": { + "name": "Weekly consumption" + }, + "energy_year": { + "name": "Yearly consumption" + }, + "instant_readings": { + "name": "Power usage" + }, "power_usage": { "name": "Power usage {sid}" } diff --git a/homeassistant/components/eheimdigital/icons.json b/homeassistant/components/eheimdigital/icons.json index cbe2613dd97..23eca2051dd 100644 --- a/homeassistant/components/eheimdigital/icons.json +++ b/homeassistant/components/eheimdigital/icons.json @@ -1,18 +1,15 @@ { "entity": { "number": { - "manual_speed": { - "default": "mdi:pump" - }, "day_speed": { "default": "mdi:weather-sunny" }, + "manual_speed": { + "default": "mdi:pump" + }, "night_speed": { "default": "mdi:moon-waning-crescent" }, - "temperature_offset": { - "default": "mdi:thermometer" - }, "night_temperature_offset": { "default": "mdi:thermometer" }, @@ -21,20 +18,23 @@ "state": { "0": "mdi:led-off" } + }, + "temperature_offset": { + "default": "mdi:thermometer" } }, "sensor": { "current_speed": { "default": "mdi:pump" }, - "service_hours": { - "default": "mdi:wrench-clock" - }, "error_code": { "default": "mdi:alert-octagon", "state": { "no_error": "mdi:check-circle" } + }, + "service_hours": { + "default": "mdi:wrench-clock" } }, "switch": { diff --git a/homeassistant/components/eheimdigital/manifest.json b/homeassistant/components/eheimdigital/manifest.json index d414b559aa1..f797f0230c7 100644 --- a/homeassistant/components/eheimdigital/manifest.json +++ b/homeassistant/components/eheimdigital/manifest.json @@ -10,6 +10,6 @@ "quality_scale": "platinum", "requirements": ["eheimdigital==1.3.0"], "zeroconf": [ - { "type": "_http._tcp.local.", "name": "eheimdigital._http._tcp.local." } + { "name": "eheimdigital._http._tcp.local.", "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/eheimdigital/strings.json b/homeassistant/components/eheimdigital/strings.json index c629ff622cb..2b0268bf53d 100644 --- a/homeassistant/components/eheimdigital/strings.json +++ b/homeassistant/components/eheimdigital/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "The identifier does not match the previous identifier" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "discovery_confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" @@ -20,16 +30,6 @@ "host": "The host or IP address of your main device. Only needed to change if 'eheimdigital' doesn't work." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "unique_id_mismatch": "The identifier does not match the previous identifier" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { @@ -58,32 +58,32 @@ } }, "number": { - "manual_speed": { - "name": "Manual speed" - }, "day_speed": { "name": "Day speed" }, + "manual_speed": { + "name": "Manual speed" + }, "night_speed": { "name": "Night speed" }, - "temperature_offset": { - "name": "Temperature offset" - }, "night_temperature_offset": { "name": "Night temperature offset" }, "system_led": { "name": "System LED brightness" + }, + "temperature_offset": { + "name": "Temperature offset" } }, "select": { "filter_mode": { "name": "Filter mode", "state": { + "bio": "Bio", "manual": "Manual", - "pulse": "Pulse", - "bio": "Bio" + "pulse": "Pulse" } } }, @@ -91,16 +91,16 @@ "current_speed": { "name": "Current speed" }, - "service_hours": { - "name": "Remaining hours until service" - }, "error_code": { "name": "Error code", "state": { + "air_in_filter": "Air in filter", "no_error": "No error", - "rotor_stuck": "Rotor stuck", - "air_in_filter": "Air in filter" + "rotor_stuck": "Rotor stuck" } + }, + "service_hours": { + "name": "Remaining hours until service" } }, "time": { diff --git a/homeassistant/components/eight_sleep/strings.json b/homeassistant/components/eight_sleep/strings.json index 15773084462..4781f6924c7 100644 --- a/homeassistant/components/eight_sleep/strings.json +++ b/homeassistant/components/eight_sleep/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Eight Sleep integration has been removed", - "description": "The Eight Sleep integration has been removed from Home Assistant.\n\nThe Eight Sleep API has changed and now requires a unique secret which is inaccessible outside of their apps.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Eight Sleep integration entries]({entries})." + "description": "The Eight Sleep integration has been removed from Home Assistant.\n\nThe Eight Sleep API has changed and now requires a unique secret which is inaccessible outside of their apps.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Eight Sleep integration entries]({entries}).", + "title": "The Eight Sleep integration has been removed" } } } diff --git a/homeassistant/components/ekeybionyx/strings.json b/homeassistant/components/ekeybionyx/strings.json index 14ad5de5aa4..66c09540daa 100644 --- a/homeassistant/components/ekeybionyx/strings.json +++ b/homeassistant/components/ekeybionyx/strings.json @@ -1,9 +1,32 @@ { "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%]", + "cannot_connect": "Connection to {ekeybionyx} failed. Please check your Internet connection and try again.", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_available_webhooks": "There are no available webhooks in the {ekeybionyx} system. Please delete some and try again.", + "no_own_systems": "Your account does not have admin access to any systems.", + "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%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "error": { + "invalid_name": "Name is invalid", + "invalid_url": "URL is invalid", + "no_webhooks_provided": "No event names provided" + }, + "progress": { + "check_deletion_status": "Please open the {ekeybionyx} app and confirm the deletion of the functions." + }, "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" - }, "choose_system": { "data": { "system": "System" @@ -13,54 +36,31 @@ }, "description": "Please select the {ekeybionyx} system which you want to connect to Home Assistant." }, + "delete_webhooks": { + "description": "This system has already been connected to Home Assistant. If you continue, the previously configured functions will be deleted." + }, + "pick_implementation": { + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, "webhooks": { - "description": "Please name your event entities. These event entities will be mapped as functions in the {ekeybionyx} app. You can configure up to {webhooks_available} event entities. Leaving a name empty will skip the setup of that event entity.", "data": { + "url": "Home Assistant URL", "webhook1": "Event entity 1", "webhook2": "Event entity 2", "webhook3": "Event entity 3", "webhook4": "Event entity 4", - "webhook5": "Event entity 5", - "url": "Home Assistant URL" + "webhook5": "Event entity 5" }, "data_description": { + "url": "Home Assistant instance URL which can be reached from the fingerprint controller", "webhook1": "Name of event entity 1 that will be mapped into a function", "webhook2": "Name of event entity 2 that will be mapped into a function", "webhook3": "Name of event entity 3 that will be mapped into a function", "webhook4": "Name of event entity 4 that will be mapped into a function", - "webhook5": "Name of event entity 5 that will be mapped into a function", - "url": "Home Assistant instance URL which can be reached from the fingerprint controller" - } - }, - "delete_webhooks": { - "description": "This system has already been connected to Home Assistant. If you continue, the previously configured functions will be deleted." + "webhook5": "Name of event entity 5 that will be mapped into a function" + }, + "description": "Please name your event entities. These event entities will be mapped as functions in the {ekeybionyx} app. You can configure up to {webhooks_available} event entities. Leaving a name empty will skip the setup of that event entity." } - }, - "progress": { - "check_deletion_status": "Please open the {ekeybionyx} app and confirm the deletion of the functions." - }, - "error": { - "invalid_name": "Name is invalid", - "invalid_url": "URL is invalid", - "no_webhooks_provided": "No event names provided" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", - "no_available_webhooks": "There are no available webhooks in the {ekeybionyx} system. Please delete some and try again.", - "no_own_systems": "Your account does not have admin access to any systems.", - "cannot_connect": "Connection to {ekeybionyx} failed. Please check your Internet connection and try again." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } } } diff --git a/homeassistant/components/electrasmart/strings.json b/homeassistant/components/electrasmart/strings.json index 485bf766534..3810e85d96c 100644 --- a/homeassistant/components/electrasmart/strings.json +++ b/homeassistant/components/electrasmart/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "data": { - "phone_number": "Phone number" - } - }, - "one_time_password": { - "data": { - "one_time_password": "One-time password" - } - } + "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%]", - "invalid_phone_number": "Either wrong phone number or unregistered user" + "invalid_phone_number": "Either wrong phone number or unregistered user", + "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "one_time_password": { + "data": { + "one_time_password": "One-time password" + } + }, + "user": { + "data": { + "phone_number": "Phone number" + } + } } } } diff --git a/homeassistant/components/electric_kiwi/icons.json b/homeassistant/components/electric_kiwi/icons.json index e5dbbb5ac48..704bc8f76af 100644 --- a/homeassistant/components/electric_kiwi/icons.json +++ b/homeassistant/components/electric_kiwi/icons.json @@ -1,23 +1,23 @@ { "entity": { - "sensor": { - "total_running_balance": { - "default": "mdi:currency-usd" - }, - "total_current_balance": { - "default": "mdi:currency-usd" - }, - "next_billing_date": { - "default": "mdi:calendar" - }, - "hop_power_savings": { - "default": "mdi:percent" - } - }, "select": { "hop_selector": { "default": "mdi:lightning-bolt" } + }, + "sensor": { + "hop_power_savings": { + "default": "mdi:percent" + }, + "next_billing_date": { + "default": "mdi:calendar" + }, + "total_current_balance": { + "default": "mdi:currency-usd" + }, + "total_running_balance": { + "default": "mdi:currency-usd" + } } } } diff --git a/homeassistant/components/electric_kiwi/strings.json b/homeassistant/components/electric_kiwi/strings.json index 903c16543bb..42daabfb403 100644 --- a/homeassistant/components/electric_kiwi/strings.json +++ b/homeassistant/components/electric_kiwi/strings.json @@ -1,60 +1,60 @@ { "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%]", + "connection_error": "[%key:common::config_flow::error::cannot_connect%]", + "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Electric Kiwi integration needs to re-authenticate your account" + "description": "The Electric Kiwi integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "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%]", - "connection_error": "[%key:common::config_flow::error::cannot_connect%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { + "select": { "hop_selector": { "name": "Hour of free power" } }, "sensor": { - "hop_free_power_start": { - "name": "Hour of free power start" - }, "hop_free_power_end": { "name": "Hour of free power end" }, - "total_running_balance": { - "name": "Total running balance" + "hop_free_power_start": { + "name": "Hour of free power start" }, - "total_current_balance": { - "name": "Total current balance" + "hop_power_savings": { + "name": "Hour of power savings" }, "next_billing_date": { "name": "Next billing date" }, - "hop_power_savings": { - "name": "Hour of power savings" + "total_current_balance": { + "name": "Total current balance" + }, + "total_running_balance": { + "name": "Total running balance" } - }, - "select": { "hop_selector": { "name": "Hour of free power" } } + } } } diff --git a/homeassistant/components/elevenlabs/strings.json b/homeassistant/components/elevenlabs/strings.json index a3651cf98cd..9b0d11d4d31 100644 --- a/homeassistant/components/elevenlabs/strings.json +++ b/homeassistant/components/elevenlabs/strings.json @@ -1,5 +1,9 @@ { "config": { + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,56 +13,52 @@ "api_key": "Your ElevenLabs API key." } } + } + }, + "entity": { + "stt": { + "elevenlabs_stt": { + "name": "Speech-to-Text" + } }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "tts": { + "elevenlabs_tts": { + "name": "Text-to-Speech" + } } }, "options": { "step": { "init": { "data": { - "voice": "Voice", + "configure_voice": "Configure advanced voice settings", "model": "Model", - "stt_model": "Speech-to-Text Model", "stt_auto_language": "Auto-detect language", - "configure_voice": "Configure advanced voice settings" + "stt_model": "Speech-to-Text Model", + "voice": "Voice" }, "data_description": { - "voice": "Voice to use for text-to-speech.", + "configure_voice": "Configure advanced voice settings. Find more information in the ElevenLabs documentation.", "model": "ElevenLabs model to use. Please note that not all models support all languages equally well.", - "stt_model": "Speech-to-Text model to use.", "stt_auto_language": "Automatically detect the spoken language for speech-to-text.", - "configure_voice": "Configure advanced voice settings. Find more information in the ElevenLabs documentation." + "stt_model": "Speech-to-Text model to use.", + "voice": "Voice to use for text-to-speech." } }, "voice_settings": { "data": { - "stability": "Stability", "similarity": "Similarity", + "stability": "Stability", "style": "Style", "use_speaker_boost": "Speaker boost" }, "data_description": { - "stability": "Stability of the generated audio. Higher values lead to less emotional audio.", "similarity": "Similarity of the generated audio to the original voice. Higher values may result in more similar audio, but may also introduce background noise.", + "stability": "Stability of the generated audio. Higher values lead to less emotional audio.", "style": "Style of the generated audio. Recommended to keep at 0 for most almost all use cases.", "use_speaker_boost": "Use speaker boost to increase the similarity of the generated audio to the original voice." } } } - }, - "entity": { - "tts": { - "elevenlabs_tts": { - "name": "Text-to-Speech" - } - }, - "stt": { - "elevenlabs_stt": { - "name": "Speech-to-Text" - } - } } } diff --git a/homeassistant/components/elgato/strings.json b/homeassistant/components/elgato/strings.json index 727b8ee7024..18bd1568336 100644 --- a/homeassistant/components/elgato/strings.json +++ b/homeassistant/components/elgato/strings.json @@ -1,27 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{serial_number}", "step": { "user": { - "description": "Set up your Elgato Light to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your Elgato device." - } + }, + "description": "Set up your Elgato Light to integrate with Home Assistant." }, "zeroconf_confirm": { "description": "Do you want to add the Elgato Light with serial number `{serial_number}` to Home Assistant?", "title": "Discovered Elgato Light device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { @@ -50,8 +50,8 @@ }, "services": { "identify": { - "name": "Identify", - "description": "Identifies an Elgato Light. Blinks the light, which can be useful for, e.g., a visual notification." + "description": "Identifies an Elgato Light. Blinks the light, which can be useful for, e.g., a visual notification.", + "name": "Identify" } } } diff --git a/homeassistant/components/elkm1/icons.json b/homeassistant/components/elkm1/icons.json index 54827e4b6ef..566d92cb992 100644 --- a/homeassistant/components/elkm1/icons.json +++ b/homeassistant/components/elkm1/icons.json @@ -10,12 +10,6 @@ } }, "services": { - "alarm_bypass": { - "service": "mdi:shield-off" - }, - "alarm_clear_bypass": { - "service": "mdi:shield" - }, "alarm_arm_home_instant": { "service": "mdi:shield-lock" }, @@ -25,18 +19,15 @@ "alarm_arm_vacation": { "service": "mdi:beach" }, + "alarm_bypass": { + "service": "mdi:shield-off" + }, + "alarm_clear_bypass": { + "service": "mdi:shield" + }, "alarm_display_message": { "service": "mdi:message-alert" }, - "set_time": { - "service": "mdi:clock-edit" - }, - "speak_phrase": { - "service": "mdi:message-processing" - }, - "speak_word": { - "service": "mdi:message-minus" - }, "sensor_counter_refresh": { "service": "mdi:refresh" }, @@ -48,6 +39,15 @@ }, "sensor_zone_trigger": { "service": "mdi:shield" + }, + "set_time": { + "service": "mdi:clock-edit" + }, + "speak_phrase": { + "service": "mdi:message-processing" + }, + "speak_word": { + "service": "mdi:message-minus" } } } diff --git a/homeassistant/components/elkm1/strings.json b/homeassistant/components/elkm1/strings.json index 400a7197f41..fb3e09ee2fb 100644 --- a/homeassistant/components/elkm1/strings.json +++ b/homeassistant/components/elkm1/strings.json @@ -1,205 +1,205 @@ { "config": { - "flow_title": "{mac_address} ({host})", - "step": { - "user": { - "title": "Connect to Elk-M1 Control", - "description": "Choose a discovered system or 'Manual Entry' if no devices have been discovered.", - "data": { - "device": "[%key:common::config_flow::data::device%]" - } - }, - "manual_connection": { - "title": "[%key:component::elkm1::config::step::user::title%]", - "description": "The address string must be in the form 'address[:port]' for 'secure' and 'non-secure'. Example: '192.168.1.1'. The port is optional and defaults to 2101 for 'non-secure' and 2601 for 'secure'. For the serial protocol, the address must be in the form 'tty[:baud]'. Example: '/dev/ttyS1'. The baud is optional and defaults to 115200.", - "data": { - "protocol": "Protocol", - "address": "The IP address or domain or serial port if connecting via serial.", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "prefix": "A unique prefix (leave blank if you only have one Elk-M1).", - "temperature_unit": "The temperature unit Elk-M1 uses." - } - }, - "discovered_connection": { - "title": "[%key:component::elkm1::config::step::user::title%]", - "description": "Connect to the discovered system: {mac_address} ({host})", - "data": { - "protocol": "[%key:component::elkm1::config::step::manual_connection::data::protocol%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "temperature_unit": "[%key:component::elkm1::config::step::manual_connection::data::temperature_unit%]" - } - }, - "reconfigure": { - "title": "Reconfigure Elk-M1 Control", - "description": "[%key:component::elkm1::config::step::manual_connection::description%]", - "data": { - "protocol": "[%key:component::elkm1::config::step::manual_connection::data::protocol%]", - "address": "[%key:component::elkm1::config::step::manual_connection::data::address%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "address_already_configured": "An Elk-M1 with this address is already configured", + "already_configured": "An Elk-M1 with this prefix is already configured", + "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%]", + "reconfigure_successful": "Successfully reconfigured Elk-M1 integration", + "unique_id_mismatch": "Reconfigure should be used for the same device not a new one", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "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": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "An Elk-M1 with this prefix is already configured", - "address_already_configured": "An Elk-M1 with this address is already configured", - "reconfigure_successful": "Successfully reconfigured Elk-M1 integration", - "unique_id_mismatch": "Reconfigure should be used for the same device not a new one" + "flow_title": "{mac_address} ({host})", + "step": { + "discovered_connection": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "protocol": "[%key:component::elkm1::config::step::manual_connection::data::protocol%]", + "temperature_unit": "[%key:component::elkm1::config::step::manual_connection::data::temperature_unit%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Connect to the discovered system: {mac_address} ({host})", + "title": "[%key:component::elkm1::config::step::user::title%]" + }, + "manual_connection": { + "data": { + "address": "The IP address or domain or serial port if connecting via serial.", + "password": "[%key:common::config_flow::data::password%]", + "prefix": "A unique prefix (leave blank if you only have one Elk-M1).", + "protocol": "Protocol", + "temperature_unit": "The temperature unit Elk-M1 uses.", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "The address string must be in the form 'address[:port]' for 'secure' and 'non-secure'. Example: '192.168.1.1'. The port is optional and defaults to 2101 for 'non-secure' and 2601 for 'secure'. For the serial protocol, the address must be in the form 'tty[:baud]'. Example: '/dev/ttyS1'. The baud is optional and defaults to 115200.", + "title": "[%key:component::elkm1::config::step::user::title%]" + }, + "reconfigure": { + "data": { + "address": "[%key:component::elkm1::config::step::manual_connection::data::address%]", + "password": "[%key:common::config_flow::data::password%]", + "protocol": "[%key:component::elkm1::config::step::manual_connection::data::protocol%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "[%key:component::elkm1::config::step::manual_connection::description%]", + "title": "Reconfigure Elk-M1 Control" + }, + "user": { + "data": { + "device": "[%key:common::config_flow::data::device%]" + }, + "description": "Choose a discovered system or 'Manual Entry' if no devices have been discovered.", + "title": "Connect to Elk-M1 Control" + } } }, "services": { - "alarm_bypass": { - "name": "Alarm bypass", - "description": "Bypasses all zones for the area.", - "fields": { - "code": { - "name": "Code", - "description": "Alarm code to authorize the bypass of the alarm control panel." - } - } - }, - "alarm_clear_bypass": { - "name": "Alarm clear bypass", - "description": "Removes bypass on all zones for the area.", - "fields": { - "code": { - "name": "Code", - "description": "Alarm code to authorize the bypass clear of the alarm control panel." - } - } - }, "alarm_arm_home_instant": { - "name": "Alarm arm home instant", "description": "Arms the Elk-M1 in home instant mode.", "fields": { "code": { - "name": "Code", - "description": "Alarm code to arm the alarm control panel." + "description": "Alarm code to arm the alarm control panel.", + "name": "Code" } - } + }, + "name": "Alarm arm home instant" }, "alarm_arm_night_instant": { - "name": "Alarm arm night instant", "description": "Arms the Elk-M1 in night instant mode.", "fields": { "code": { - "name": "Code", - "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]" + "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]", + "name": "Code" } - } + }, + "name": "Alarm arm night instant" }, "alarm_arm_vacation": { - "name": "Alarm arm vacation", "description": "Arms the Elk-M1 in vacation mode.", "fields": { "code": { - "name": "Code", - "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]" + "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]", + "name": "Code" } - } + }, + "name": "Alarm arm vacation" + }, + "alarm_bypass": { + "description": "Bypasses all zones for the area.", + "fields": { + "code": { + "description": "Alarm code to authorize the bypass of the alarm control panel.", + "name": "Code" + } + }, + "name": "Alarm bypass" + }, + "alarm_clear_bypass": { + "description": "Removes bypass on all zones for the area.", + "fields": { + "code": { + "description": "Alarm code to authorize the bypass clear of the alarm control panel.", + "name": "Code" + } + }, + "name": "Alarm clear bypass" }, "alarm_display_message": { - "name": "Alarm display message", "description": "Displays a message on all of the Elk-M1 keypads for an area.", "fields": { - "clear": { - "name": "Clear", - "description": "0=clear message, 1=clear message with * key, 2=Display until timeout." - }, "beep": { - "name": "Beep", - "description": "0=no beep, 1=beep." + "description": "0=no beep, 1=beep.", + "name": "Beep" }, - "timeout": { - "name": "Timeout", - "description": "Time to display message, 0=forever, max 65535." + "clear": { + "description": "0=clear message, 1=clear message with * key, 2=Display until timeout.", + "name": "Clear" }, "line1": { - "name": "Line 1", - "description": "Up to 16 characters of text (truncated if too long)." + "description": "Up to 16 characters of text (truncated if too long).", + "name": "Line 1" }, "line2": { - "name": "Line 2", - "description": "[%key:component::elkm1::services::alarm_display_message::fields::line1::description%]" - } - } - }, - "set_time": { - "name": "Set time", - "description": "Sets the time for the panel.", - "fields": { - "prefix": { - "name": "Prefix", - "description": "Prefix for the panel." - } - } - }, - "speak_phrase": { - "name": "Speak phrase", - "description": "Speaks a phrase. See list of phrases in Elk-M1 ASCII Protocol documentation.", - "fields": { - "number": { - "name": "Phrase number", - "description": "Phrase number to speak." + "description": "[%key:component::elkm1::services::alarm_display_message::fields::line1::description%]", + "name": "Line 2" }, - "prefix": { - "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]", - "description": "Prefix to identify panel when multiple panels configured." + "timeout": { + "description": "Time to display message, 0=forever, max 65535.", + "name": "Timeout" } - } - }, - "speak_word": { - "name": "Speak word", - "description": "Speaks a word. See list of words in Elk-M1 ASCII Protocol documentation.", - "fields": { - "number": { - "name": "Word number", - "description": "Word number to speak." - }, - "prefix": { - "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]", - "description": "[%key:component::elkm1::services::speak_phrase::fields::prefix::description%]" - } - } + }, + "name": "Alarm display message" }, "sensor_counter_refresh": { - "name": "Sensor counter refresh", - "description": "Refreshes the value of a counter from the panel." + "description": "Refreshes the value of a counter from the panel.", + "name": "Sensor counter refresh" }, "sensor_counter_set": { - "name": "Sensor counter set", "description": "Sets the value of a counter on the panel.", "fields": { "value": { - "name": "Value", - "description": "Value to set the counter to." + "description": "Value to set the counter to.", + "name": "Value" } - } + }, + "name": "Sensor counter set" }, "sensor_zone_bypass": { - "name": "Sensor zone bypass", "description": "Bypasses zone.", "fields": { "code": { - "name": "Code", - "description": "Alarm code to authorize the bypass of the zone." + "description": "Alarm code to authorize the bypass of the zone.", + "name": "Code" } - } + }, + "name": "Sensor zone bypass" }, "sensor_zone_trigger": { - "name": "Sensor zone trigger", - "description": "Triggers zone." + "description": "Triggers zone.", + "name": "Sensor zone trigger" + }, + "set_time": { + "description": "Sets the time for the panel.", + "fields": { + "prefix": { + "description": "Prefix for the panel.", + "name": "Prefix" + } + }, + "name": "Set time" + }, + "speak_phrase": { + "description": "Speaks a phrase. See list of phrases in Elk-M1 ASCII Protocol documentation.", + "fields": { + "number": { + "description": "Phrase number to speak.", + "name": "Phrase number" + }, + "prefix": { + "description": "Prefix to identify panel when multiple panels configured.", + "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]" + } + }, + "name": "Speak phrase" + }, + "speak_word": { + "description": "Speaks a word. See list of words in Elk-M1 ASCII Protocol documentation.", + "fields": { + "number": { + "description": "Word number to speak.", + "name": "Word number" + }, + "prefix": { + "description": "[%key:component::elkm1::services::speak_phrase::fields::prefix::description%]", + "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]" + } + }, + "name": "Speak word" } } } diff --git a/homeassistant/components/elmax/strings.json b/homeassistant/components/elmax/strings.json index 5bc7eb292a2..bd33e99a900 100644 --- a/homeassistant/components/elmax/strings.json +++ b/homeassistant/components/elmax/strings.json @@ -1,5 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_mode": "Invalid or unsupported mode", + "invalid_pin": "The provided PIN is invalid", + "network_error": "A network error occurred", + "no_panel_online": "No online Elmax control panel was found.", + "reauth_panel_disappeared": "The given panel is no longer associated to this user. Please log in using an account associated to this panel.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "choose_mode": { "description": "Please choose the connection mode to Elmax panels.", @@ -9,63 +22,50 @@ } }, "cloud": { - "description": "Please log in to the Elmax cloud using your credentials", "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" - } + }, + "description": "Please log in to the Elmax cloud using your credentials" + }, + "direct": { + "data": { + "panel_api_host": "Panel API hostname or IP", + "panel_api_port": "Panel API port", + "panel_pin": "Panel PIN code", + "use_ssl": "Use SSL" + }, + "data_description": { + "use_ssl": "Whether or not using strict SSL checks. Disable if the panel does not expose a valid SSL certificate or if SSL communication is unsupported by the panel you are connecting to." + }, + "description": "Specify the Elmax panel connection parameters below." + }, + "panels": { + "data": { + "panel_id": "Panel ID", + "panel_name": "Panel name", + "panel_pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Select which panel you would like to control with this integration. Please note that the panel must be ON in order to be configured." + }, + "reauth_confirm": { + "data": { + "panel_pin": "Panel PIN", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please re-authenticate with the panel." }, "zeroconf_setup": { - "description": "Configure discovered local Elmax panel", "data": { "panel_pin": "Panel PIN code", "use_ssl": "Use SSL" }, "data_description": { "use_ssl": "Whether or not using strict SSL checks. Disable if the panel does not expose a valid SSL certificate or if SSL communication is unsupported by the panel you are connecting to." - } - }, - "direct": { - "description": "Specify the Elmax panel connection parameters below.", - "data": { - "panel_api_host": "Panel API hostname or IP", - "panel_api_port": "Panel API port", - "use_ssl": "Use SSL", - "panel_pin": "Panel PIN code" }, - "data_description": { - "use_ssl": "Whether or not using strict SSL checks. Disable if the panel does not expose a valid SSL certificate or if SSL communication is unsupported by the panel you are connecting to." - } - }, - "panels": { - "description": "Select which panel you would like to control with this integration. Please note that the panel must be ON in order to be configured.", - "data": { - "panel_name": "Panel name", - "panel_id": "Panel ID", - "panel_pin": "[%key:common::config_flow::data::pin%]" - } - }, - "reauth_confirm": { - "description": "Please re-authenticate with the panel.", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]", - "panel_pin": "Panel PIN" - } + "description": "Configure discovered local Elmax panel" } - }, - "error": { - "no_panel_online": "No online Elmax control panel was found.", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "network_error": "A network error occurred", - "invalid_pin": "The provided PIN is invalid", - "invalid_mode": "Invalid or unsupported mode", - "reauth_panel_disappeared": "The given panel is no longer associated to this user. Please log in using an account associated to this panel.", - "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%]" } }, "exceptions": { diff --git a/homeassistant/components/elvia/strings.json b/homeassistant/components/elvia/strings.json index a2c3cb81f54..8376c98298d 100644 --- a/homeassistant/components/elvia/strings.json +++ b/homeassistant/components/elvia/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "description": "Enter your meter value API token from Elvia", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } - }, - "select_meter": { - "data": { - "metering_point_id": "Select your metering point ID" - } - } + "abort": { + "metering_point_id_already_configured": "Metering point with ID `{metering_point_id}` is already configured.", + "no_metering_points": "The provided API token has no metering points." }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "metering_point_id_already_configured": "Metering point with ID `{metering_point_id}` is already configured.", - "no_metering_points": "The provided API token has no metering points." + "step": { + "select_meter": { + "data": { + "metering_point_id": "Select your metering point ID" + } + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "Enter your meter value API token from Elvia" + } } } } diff --git a/homeassistant/components/emoncms/strings.json b/homeassistant/components/emoncms/strings.json index e41a7e8bd03..70d77456270 100644 --- a/homeassistant/components/emoncms/strings.json +++ b/homeassistant/components/emoncms/strings.json @@ -1,21 +1,14 @@ { "config": { + "abort": { + "already_configured": "This server is already configured", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "This emoncms serial number does not match the previous serial number" + }, "error": { "api_error": "An error occurred in the pyemoncms API : {details}" }, "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "sync_mode": "Synchronization mode" - }, - "data_description": { - "url": "Server URL starting with the protocol (http or https)", - "api_key": "Your 32 bits API key", - "sync_mode": "Pick your feeds manually (default) or synchronize them at once" - } - }, "choose_feeds": { "data": { "include_only_feed_id": "Choose feeds to include" @@ -26,75 +19,80 @@ }, "reconfigure": { "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]" + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]" }, "data_description": { - "url": "[%key:component::emoncms::config::step::user::data_description::url%]", - "api_key": "[%key:component::emoncms::config::step::user::data_description::api_key%]" + "api_key": "[%key:component::emoncms::config::step::user::data_description::api_key%]", + "url": "[%key:component::emoncms::config::step::user::data_description::url%]" + } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "sync_mode": "Synchronization mode", + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "api_key": "Your 32 bits API key", + "sync_mode": "Pick your feeds manually (default) or synchronize them at once", + "url": "Server URL starting with the protocol (http or https)" } - } - }, - "abort": { - "already_configured": "This server is already configured", - "unique_id_mismatch": "This emoncms serial number does not match the previous serial number", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "selector": { - "sync_mode": { - "options": { - "auto": "Synchronize all available feeds", - "manual": "Select which feeds to synchronize" } } }, "entity": { "sensor": { - "energy": { - "name": "Energy {emoncms_details}" + "apparent_power": { + "name": "Apparent power {emoncms_details}" }, - "power": { - "name": "Power {emoncms_details}" - }, - "percent": { - "name": "Percentage {emoncms_details}" - }, - "voltage": { - "name": "Voltage {emoncms_details}" + "concentration": { + "name": "Concentration {emoncms_details}" }, "current": { "name": "Current {emoncms_details}" }, - "apparent_power": { - "name": "Apparent power {emoncms_details}" - }, - "temperature": { - "name": "Temperature {emoncms_details}" - }, - "frequency": { - "name": "Frequency {emoncms_details}" - }, - "pressure": { - "name": "Pressure {emoncms_details}" - }, "decibel": { "name": "Decibel {emoncms_details}" }, - "volume": { - "name": "Volume {emoncms_details}" + "energy": { + "name": "Energy {emoncms_details}" }, "flow": { "name": "Flow rate {emoncms_details}" }, + "frequency": { + "name": "Frequency {emoncms_details}" + }, + "percent": { + "name": "Percentage {emoncms_details}" + }, + "power": { + "name": "Power {emoncms_details}" + }, + "pressure": { + "name": "Pressure {emoncms_details}" + }, "speed": { "name": "Speed {emoncms_details}" }, - "concentration": { - "name": "Concentration {emoncms_details}" + "temperature": { + "name": "Temperature {emoncms_details}" + }, + "voltage": { + "name": "Voltage {emoncms_details}" + }, + "volume": { + "name": "Volume {emoncms_details}" } } }, + "issues": { + "migrate_database": { + "description": "Your [emoncms]({url}) does not ship a unique identifier.\n\nPlease upgrade to at least version 11.5.7 and migrate your emoncms database.\n\nMore info in the [emoncms documentation]({doc_url})", + "title": "Upgrade your emoncms version" + } + }, "options": { "error": { "api_error": "[%key:component::emoncms::config::error::api_error%]" @@ -110,10 +108,12 @@ } } }, - "issues": { - "migrate_database": { - "title": "Upgrade your emoncms version", - "description": "Your [emoncms]({url}) does not ship a unique identifier.\n\nPlease upgrade to at least version 11.5.7 and migrate your emoncms database.\n\nMore info in the [emoncms documentation]({doc_url})" + "selector": { + "sync_mode": { + "options": { + "auto": "Synchronize all available feeds", + "manual": "Select which feeds to synchronize" + } } } } diff --git a/homeassistant/components/emonitor/strings.json b/homeassistant/components/emonitor/strings.json index 95f7f65bb98..6044a468390 100644 --- a/homeassistant/components/emonitor/strings.json +++ b/homeassistant/components/emonitor/strings.json @@ -1,7 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { + "confirm": { + "description": "Do you want to set up {name} ({host})?", + "title": "Set up SiteSage Emonitor" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -9,18 +20,7 @@ "data_description": { "host": "The hostname or IP address of your SiteSage Emonitor device." } - }, - "confirm": { - "title": "Set up SiteSage Emonitor", - "description": "Do you want to set up {name} ({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": { diff --git a/homeassistant/components/emulated_roku/strings.json b/homeassistant/components/emulated_roku/strings.json index e740f6d8f53..28e2661b8b4 100644 --- a/homeassistant/components/emulated_roku/strings.json +++ b/homeassistant/components/emulated_roku/strings.json @@ -1,5 +1,4 @@ { - "title": "Emulated Roku", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" @@ -17,5 +16,6 @@ "title": "Define server configuration" } } - } + }, + "title": "Emulated Roku" } diff --git a/homeassistant/components/energenie_power_sockets/strings.json b/homeassistant/components/energenie_power_sockets/strings.json index bd536568d2c..a36039ff41c 100644 --- a/homeassistant/components/energenie_power_sockets/strings.json +++ b/homeassistant/components/energenie_power_sockets/strings.json @@ -1,20 +1,19 @@ { - "title": "Energenie Power Sockets", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "device_not_found": "No device was found for the given ID.", + "no_device": "Unable to discover any (new) supported device.", + "usb_error": "Couldn't access USB devices!" + }, "step": { "user": { - "title": "Searching for Energenie Power Sockets devices", - "description": "Choose a discovered device.", "data": { "device": "[%key:common::config_flow::data::device%]" - } + }, + "description": "Choose a discovered device.", + "title": "Searching for Energenie Power Sockets devices" } - }, - "abort": { - "usb_error": "Couldn't access USB devices!", - "no_device": "Unable to discover any (new) supported device.", - "device_not_found": "No device was found for the given ID.", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -23,5 +22,6 @@ "name": "Socket {socket_id}" } } - } + }, + "title": "Energenie Power Sockets" } diff --git a/homeassistant/components/energy/strings.json b/homeassistant/components/energy/strings.json index 5eb2c93161e..28beffdea76 100644 --- a/homeassistant/components/energy/strings.json +++ b/homeassistant/components/energy/strings.json @@ -1,65 +1,65 @@ { - "title": "Energy", "issues": { - "entity_not_defined": { - "title": "Entity not defined", - "description": "Check the integration or your configuration that provides:" - }, - "recorder_untracked": { - "title": "Entity not tracked", - "description": "Home Assistant Recorder has been configured to exclude these configured entities:" - }, - "entity_unavailable": { - "title": "Entity unavailable", - "description": "The state of these configured entities are currently not available:" - }, - "entity_state_non_numeric": { - "title": "Entity has non-numeric state", - "description": "The following entities have a state that cannot be parsed as a number:" - }, "entity_negative_state": { - "title": "Entity has a negative state", - "description": "The following entities have a negative state while a positive state is expected:" + "description": "The following entities have a negative state while a positive state is expected:", + "title": "Entity has a negative state" }, - "entity_unexpected_unit_energy": { - "title": "Unexpected unit of measurement", - "description": "The following entities do not have an expected unit of measurement (either of {energy_units}):" - }, - "entity_unexpected_unit_gas": { - "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]", - "description": "The following entities do not have an expected unit of measurement (either of {energy_units} for an energy sensor or either of {gas_units} for a gas sensor):" - }, - "entity_unexpected_unit_water": { - "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]", - "description": "The following entities do not have the expected unit of measurement (either of {water_units}):" - }, - "entity_unexpected_unit_energy_price": { - "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]", - "description": "The following entities do not have an expected unit of measurement {price_units}:" - }, - "entity_unexpected_unit_gas_price": { - "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]", - "description": "[%key:component::energy::issues::entity_unexpected_unit_energy_price::description%]" - }, - "entity_unexpected_unit_water_price": { - "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]", - "description": "[%key:component::energy::issues::entity_unexpected_unit_energy_price::description%]" - }, - "entity_unexpected_state_class": { - "title": "Unexpected state class", - "description": "The following entities do not have the expected state class:" - }, - "entity_unexpected_device_class": { - "title": "Unexpected device class", - "description": "The following entities do not have the expected device class:" + "entity_not_defined": { + "description": "Check the integration or your configuration that provides:", + "title": "Entity not defined" }, "entity_state_class_measurement_no_last_reset": { - "title": "Last reset missing", - "description": "The following entities have state class 'measurement' but 'last_reset' is missing:" + "description": "The following entities have state class 'measurement' but 'last_reset' is missing:", + "title": "Last reset missing" + }, + "entity_state_non_numeric": { + "description": "The following entities have a state that cannot be parsed as a number:", + "title": "Entity has non-numeric state" + }, + "entity_unavailable": { + "description": "The state of these configured entities are currently not available:", + "title": "Entity unavailable" + }, + "entity_unexpected_device_class": { + "description": "The following entities do not have the expected device class:", + "title": "Unexpected device class" + }, + "entity_unexpected_state_class": { + "description": "The following entities do not have the expected state class:", + "title": "Unexpected state class" + }, + "entity_unexpected_unit_energy": { + "description": "The following entities do not have an expected unit of measurement (either of {energy_units}):", + "title": "Unexpected unit of measurement" + }, + "entity_unexpected_unit_energy_price": { + "description": "The following entities do not have an expected unit of measurement {price_units}:", + "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]" + }, + "entity_unexpected_unit_gas": { + "description": "The following entities do not have an expected unit of measurement (either of {energy_units} for an energy sensor or either of {gas_units} for a gas sensor):", + "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]" + }, + "entity_unexpected_unit_gas_price": { + "description": "[%key:component::energy::issues::entity_unexpected_unit_energy_price::description%]", + "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]" + }, + "entity_unexpected_unit_water": { + "description": "The following entities do not have the expected unit of measurement (either of {water_units}):", + "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]" + }, + "entity_unexpected_unit_water_price": { + "description": "[%key:component::energy::issues::entity_unexpected_unit_energy_price::description%]", + "title": "[%key:component::energy::issues::entity_unexpected_unit_energy::title%]" + }, + "recorder_untracked": { + "description": "Home Assistant Recorder has been configured to exclude these configured entities:", + "title": "Entity not tracked" }, "statistics_not_defined": { - "title": "Statistics not defined", - "description": "Some entities currently have no statistics metadata. If these are newly created, it may take up to 5 minutes for this to be generated for the following entities:" + "description": "Some entities currently have no statistics metadata. If these are newly created, it may take up to 5 minutes for this to be generated for the following entities:", + "title": "Statistics not defined" } - } + }, + "title": "Energy" } diff --git a/homeassistant/components/energyzero/icons.json b/homeassistant/components/energyzero/icons.json index 802f8ef6916..3c90f7ea5c9 100644 --- a/homeassistant/components/energyzero/icons.json +++ b/homeassistant/components/energyzero/icons.json @@ -1,20 +1,20 @@ { "entity": { "sensor": { - "percentage_of_max": { - "default": "mdi:percent" - }, "hours_priced_equal_or_lower": { "default": "mdi:clock" + }, + "percentage_of_max": { + "default": "mdi:percent" } } }, "services": { - "get_gas_prices": { - "service": "mdi:gas-station" - }, "get_energy_prices": { "service": "mdi:lightning-bolt" + }, + "get_gas_prices": { + "service": "mdi:gas-station" } } } diff --git a/homeassistant/components/energyzero/strings.json b/homeassistant/components/energyzero/strings.json index 48682ab31ee..00aefad0d0d 100644 --- a/homeassistant/components/energyzero/strings.json +++ b/homeassistant/components/energyzero/strings.json @@ -1,35 +1,30 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "step": { "user": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "exceptions": { - "invalid_date": { - "message": "Invalid date provided. Got {date}" - }, - "invalid_config_entry": { - "message": "Invalid config entry provided. Got {config_entry}" - }, - "unloaded_config_entry": { - "message": "Invalid config entry provided. {config_entry} is not loaded." } }, "entity": { "sensor": { + "average_price": { + "name": "Average - today" + }, "current_hour_price": { "name": "Current hour" }, - "next_hour_price": { - "name": "Next hour" + "highest_price_time": { + "name": "Time of highest price - today" }, - "average_price": { - "name": "Average - today" + "hours_priced_equal_or_lower": { + "name": "Hours priced equal or lower than current - today" + }, + "lowest_price_time": { + "name": "Time of lowest price - today" }, "max_price": { "name": "Highest price - today" @@ -37,64 +32,69 @@ "min_price": { "name": "Lowest price - today" }, - "highest_price_time": { - "name": "Time of highest price - today" - }, - "lowest_price_time": { - "name": "Time of lowest price - today" + "next_hour_price": { + "name": "Next hour" }, "percentage_of_max": { "name": "Current percentage of highest price - today" - }, - "hours_priced_equal_or_lower": { - "name": "Hours priced equal or lower than current - today" } } }, - "services": { - "get_gas_prices": { - "name": "Get gas prices", - "description": "Requests gas prices from EnergyZero.", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The config entry to use for this action." - }, - "incl_vat": { - "name": "Including VAT", - "description": "Include VAT in the prices." - }, - "start": { - "name": "Start", - "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted." - }, - "end": { - "name": "End", - "description": "Specifies the date and time until which to retrieve prices. Defaults to today if omitted." - } - } + "exceptions": { + "invalid_config_entry": { + "message": "Invalid config entry provided. Got {config_entry}" }, + "invalid_date": { + "message": "Invalid date provided. Got {date}" + }, + "unloaded_config_entry": { + "message": "Invalid config entry provided. {config_entry} is not loaded." + } + }, + "services": { "get_energy_prices": { - "name": "Get energy prices", "description": "Requests energy prices from EnergyZero.", "fields": { "config_entry": { - "name": "[%key:component::energyzero::services::get_gas_prices::fields::config_entry::name%]", - "description": "[%key:component::energyzero::services::get_gas_prices::fields::config_entry::description%]" - }, - "incl_vat": { - "name": "[%key:component::energyzero::services::get_gas_prices::fields::incl_vat::name%]", - "description": "[%key:component::energyzero::services::get_gas_prices::fields::incl_vat::description%]" - }, - "start": { - "name": "[%key:component::energyzero::services::get_gas_prices::fields::start::name%]", - "description": "[%key:component::energyzero::services::get_gas_prices::fields::start::description%]" + "description": "[%key:component::energyzero::services::get_gas_prices::fields::config_entry::description%]", + "name": "[%key:component::energyzero::services::get_gas_prices::fields::config_entry::name%]" }, "end": { - "name": "[%key:component::energyzero::services::get_gas_prices::fields::end::name%]", - "description": "[%key:component::energyzero::services::get_gas_prices::fields::end::description%]" + "description": "[%key:component::energyzero::services::get_gas_prices::fields::end::description%]", + "name": "[%key:component::energyzero::services::get_gas_prices::fields::end::name%]" + }, + "incl_vat": { + "description": "[%key:component::energyzero::services::get_gas_prices::fields::incl_vat::description%]", + "name": "[%key:component::energyzero::services::get_gas_prices::fields::incl_vat::name%]" + }, + "start": { + "description": "[%key:component::energyzero::services::get_gas_prices::fields::start::description%]", + "name": "[%key:component::energyzero::services::get_gas_prices::fields::start::name%]" } - } + }, + "name": "Get energy prices" + }, + "get_gas_prices": { + "description": "Requests gas prices from EnergyZero.", + "fields": { + "config_entry": { + "description": "The config entry to use for this action.", + "name": "Config entry" + }, + "end": { + "description": "Specifies the date and time until which to retrieve prices. Defaults to today if omitted.", + "name": "End" + }, + "incl_vat": { + "description": "Include VAT in the prices.", + "name": "Including VAT" + }, + "start": { + "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted.", + "name": "Start" + } + }, + "name": "Get gas prices" } } } diff --git a/homeassistant/components/enigma2/strings.json b/homeassistant/components/enigma2/strings.json index 7a75136bdc2..443d57906a3 100644 --- a/homeassistant/components/enigma2/strings.json +++ b/homeassistant/components/enigma2/strings.json @@ -1,29 +1,29 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Please enter the connection details of your device.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "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%]" }, "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%]", - "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%]" + "flow_title": "{name}", + "step": { + "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%]" + }, + "description": "Please enter the connection details of your device." + } } }, "options": { diff --git a/homeassistant/components/enocean/strings.json b/homeassistant/components/enocean/strings.json index 9baf4386eda..a8ce2e83933 100644 --- a/homeassistant/components/enocean/strings.json +++ b/homeassistant/components/enocean/strings.json @@ -1,31 +1,31 @@ { "config": { + "abort": { + "invalid_dongle_path": "Invalid dongle path" + }, + "error": { + "invalid_dongle_path": "No valid dongle found for this path" + }, "flow_title": "{name}", "step": { "detect": { - "description": "Select your EnOcean USB dongle.", "data": { "device": "USB dongle" }, "data_description": { "device": "Path to your EnOcean USB dongle." - } + }, + "description": "Select your EnOcean USB dongle." }, "manual": { - "description": "Enter the path to your EnOcean USB dongle.", "data": { "device": "[%key:component::enocean::config::step::detect::data::device%]" }, "data_description": { "device": "[%key:component::enocean::config::step::detect::data_description::device%]" - } + }, + "description": "Enter the path to your EnOcean USB dongle." } - }, - "error": { - "invalid_dongle_path": "No valid dongle found for this path" - }, - "abort": { - "invalid_dongle_path": "Invalid dongle path" } }, "selector": { diff --git a/homeassistant/components/enphase_envoy/icons.json b/homeassistant/components/enphase_envoy/icons.json index da1fdce32b4..6c5421bf61c 100644 --- a/homeassistant/components/enphase_envoy/icons.json +++ b/homeassistant/components/enphase_envoy/icons.json @@ -9,36 +9,27 @@ } }, "sensor": { + "admin_state": { + "default": "mdi:transmission-tower", + "state": { + "off_grid": "mdi:transmission-tower-off" + } + }, + "available_energy": { + "default": "mdi:battery-50" + }, "current_power_production": { "default": "mdi:solar-power" }, - "daily_production": { - "default": "mdi:solar-power" - }, - "seven_days_production": { - "default": "mdi:solar-power" - }, - "lifetime_production": { - "default": "mdi:solar-power" - }, "current_power_production_phase": { "default": "mdi:solar-power" }, + "daily_production": { + "default": "mdi:solar-power" + }, "daily_production_phase": { "default": "mdi:solar-power" }, - "seven_days_production_phase": { - "default": "mdi:solar-power" - }, - "lifetime_production_phase": { - "default": "mdi:solar-power" - }, - "max_capacity": { - "default": "mdi:battery-charging-100" - }, - "available_energy": { - "default": "mdi:battery-50" - }, "grid_status": { "default": "mdi:transmission-tower", "state": { @@ -46,17 +37,26 @@ "synchronizing": "mdi:sync-alert" } }, + "lifetime_production": { + "default": "mdi:solar-power" + }, + "lifetime_production_phase": { + "default": "mdi:solar-power" + }, + "max_capacity": { + "default": "mdi:battery-charging-100" + }, "mid_state": { "default": "mdi:electric-switch-closed", "state": { "open": "mdi:electric-switch" } }, - "admin_state": { - "default": "mdi:transmission-tower", - "state": { - "off_grid": "mdi:transmission-tower-off" - } + "seven_days_production": { + "default": "mdi:solar-power" + }, + "seven_days_production_phase": { + "default": "mdi:solar-power" } }, "switch": { diff --git a/homeassistant/components/enphase_envoy/strings.json b/homeassistant/components/enphase_envoy/strings.json index 9e4b014e243..2866f504d45 100644 --- a/homeassistant/components/enphase_envoy/strings.json +++ b/homeassistant/components/enphase_envoy/strings.json @@ -1,69 +1,54 @@ { "config": { - "flow_title": "{serial} ({host})", - "step": { - "user": { - "description": "For firmware version 7.0 and later, enter the Enphase cloud credentials, for older models, enter username `installer` without a password.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Enphase Envoy gateway.", - "username": "Installer or Enphase Cloud username", - "password": "Blank or Enphase Cloud password" - } - }, - "reconfigure": { - "description": "[%key:component::enphase_envoy::config::step::user::description%]", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "[%key:component::enphase_envoy::config::step::user::data_description::host%]", - "username": "[%key:component::enphase_envoy::config::step::user::data_description::username%]", - "password": "[%key:component::enphase_envoy::config::step::user::data_description::password%]" - } - }, - "reauth_confirm": { - "description": "[%key:component::enphase_envoy::config::step::user::description%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::enphase_envoy::config::step::user::data_description::username%]", - "password": "[%key:component::enphase_envoy::config::step::user::data_description::password%]" - } - } + "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": "The serial number of the device does not match the previous serial number" }, "error": { "cannot_connect": "Cannot connect: {reason}", "invalid_auth": "Invalid authentication: {reason}", "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": "The serial number of the device does not match the previous serial number" - } - }, - "options": { + "flow_title": "{serial} ({host})", "step": { - "init": { - "title": "Envoy {serial} {host} options", + "reauth_confirm": { "data": { - "diagnostics_include_fixtures": "Include test fixture data in diagnostic report. Use when requested to provide test data for troubleshooting or development activities. With this option enabled the diagnostic report may take more time to download. When report is created best disable this option again.", - "disable_keep_alive": "Always use a new connection when requesting data from the Envoy. May resolve communication issues with some Envoy firmwares." + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "diagnostics_include_fixtures": "Include fixtures in diagnostics report", - "disable_keep_alive": "May resolve communication issues with some Envoy firmwares." - } + "password": "[%key:component::enphase_envoy::config::step::user::data_description::password%]", + "username": "[%key:component::enphase_envoy::config::step::user::data_description::username%]" + }, + "description": "[%key:component::enphase_envoy::config::step::user::description%]" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "[%key:component::enphase_envoy::config::step::user::data_description::host%]", + "password": "[%key:component::enphase_envoy::config::step::user::data_description::password%]", + "username": "[%key:component::enphase_envoy::config::step::user::data_description::username%]" + }, + "description": "[%key:component::enphase_envoy::config::step::user::description%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Enphase Envoy gateway.", + "password": "Blank or Enphase Cloud password", + "username": "Installer or Enphase Cloud username" + }, + "description": "For firmware version 7.0 and later, enter the Enphase cloud credentials, for older models, enter username `installer` without a password." } } }, @@ -83,295 +68,86 @@ "cutoff_battery_level": { "name": "Cutoff battery level" }, - "restore_battery_level": { - "name": "Restore battery level" - }, "reserve_soc": { "name": "Reserve battery level" + }, + "restore_battery_level": { + "name": "Restore battery level" } }, "select": { - "relay_mode": { - "name": "Mode", + "relay_generator_action": { + "name": "Generator action", "state": { - "standard": "Standard", - "battery": "Battery level" + "none": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::none%]", + "not_powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::not_powered%]", + "powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::powered%]", + "schedule": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::schedule%]" } }, "relay_grid_action": { "name": "Grid action", "state": { - "powered": "Powered", + "none": "None", "not_powered": "Not powered", - "schedule": "Follow schedule", - "none": "None" + "powered": "Powered", + "schedule": "Follow schedule" } }, "relay_microgrid_action": { "name": "Microgrid action", "state": { - "powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::powered%]", + "none": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::none%]", "not_powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::not_powered%]", - "schedule": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::schedule%]", - "none": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::none%]" + "powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::powered%]", + "schedule": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::schedule%]" } }, - "relay_generator_action": { - "name": "Generator action", + "relay_mode": { + "name": "Mode", "state": { - "powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::powered%]", - "not_powered": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::not_powered%]", - "schedule": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::schedule%]", - "none": "[%key:component::enphase_envoy::entity::select::relay_grid_action::state::none%]" + "battery": "Battery level", + "standard": "Standard" } }, "storage_mode": { "name": "Storage mode", "state": { - "self_consumption": "Self-consumption", "backup": "Full backup", - "savings": "Savings mode" + "savings": "Savings mode", + "self_consumption": "Self-consumption" } } }, "sensor": { - "last_reported": { - "name": "Last reported" + "ac_current": { + "name": "AC current" }, - "current_power_production": { - "name": "Current power production" - }, - "daily_production": { - "name": "Energy production today" - }, - "seven_days_production": { - "name": "Energy production last seven days" - }, - "lifetime_production": { - "name": "Lifetime energy production" - }, - "current_power_consumption": { - "name": "Current power consumption" - }, - "daily_consumption": { - "name": "Energy consumption today" - }, - "seven_days_consumption": { - "name": "Energy consumption last seven days" - }, - "lifetime_consumption": { - "name": "Lifetime energy consumption" - }, - "current_power_production_phase": { - "name": "Current power production {phase_name}" - }, - "daily_production_phase": { - "name": "Energy production today {phase_name}" - }, - "seven_days_production_phase": { - "name": "Energy production last seven days {phase_name}" - }, - "lifetime_production_phase": { - "name": "Lifetime energy production {phase_name}" - }, - "current_power_consumption_phase": { - "name": "Current power consumption {phase_name}" - }, - "daily_consumption_phase": { - "name": "Energy consumption today {phase_name}" - }, - "seven_days_consumption_phase": { - "name": "Energy consumption last seven days {phase_name}" - }, - "lifetime_consumption_phase": { - "name": "Lifetime energy consumption {phase_name}" - }, - "balanced_net_consumption": { - "name": "Balanced net power consumption" - }, - "lifetime_balanced_net_consumption": { - "name": "Lifetime balanced net energy consumption" - }, - "balanced_net_consumption_phase": { - "name": "Balanced net power consumption {phase_name}" - }, - "lifetime_balanced_net_consumption_phase": { - "name": "Lifetime balanced net energy consumption {phase_name}" - }, - "lifetime_net_consumption": { - "name": "Lifetime net energy consumption" - }, - "lifetime_net_production": { - "name": "Lifetime net energy production" - }, - "net_consumption": { - "name": "Current net power consumption" - }, - "net_ct_frequency": { - "name": "Frequency net consumption CT" - }, - "net_ct_voltage": { - "name": "Voltage net consumption CT" - }, - "net_ct_current": { - "name": "Net consumption CT current" - }, - "net_ct_powerfactor": { - "name": "Power factor net consumption CT" - }, - "net_ct_metering_status": { - "name": "Metering status net consumption CT" - }, - "net_ct_status_flags": { - "name": "Meter status flags active net consumption CT" - }, - "production_ct_frequency": { - "name": "Frequency production CT" - }, - "production_ct_voltage": { - "name": "Voltage production CT" - }, - "production_ct_current": { - "name": "Production CT current" - }, - "production_ct_powerfactor": { - "name": "Power factor production CT" - }, - "production_ct_metering_status": { - "name": "Metering status production CT" - }, - "production_ct_status_flags": { - "name": "Meter status flags active production CT" - }, - "lifetime_battery_discharged": { - "name": "Lifetime battery energy discharged" - }, - "lifetime_battery_charged": { - "name": "Lifetime battery energy charged" - }, - "battery_discharge": { - "name": "Current battery discharge" - }, - "storage_ct_frequency": { - "name": "Frequency storage CT" - }, - "storage_ct_voltage": { - "name": "Voltage storage CT" - }, - "storage_ct_current": { - "name": "Storage CT current" - }, - "storage_ct_powerfactor": { - "name": "Power factor storage CT" - }, - "storage_ct_metering_status": { - "name": "Metering status storage CT" - }, - "storage_ct_status_flags": { - "name": "Meter status flags active storage CT" - }, - "lifetime_net_consumption_phase": { - "name": "Lifetime net energy consumption {phase_name}" - }, - "lifetime_net_production_phase": { - "name": "Lifetime net energy production {phase_name}" - }, - "net_consumption_phase": { - "name": "Current net power consumption {phase_name}" - }, - "net_ct_frequency_phase": { - "name": "Frequency net consumption CT {phase_name}" - }, - "net_ct_voltage_phase": { - "name": "Voltage net consumption CT {phase_name}" - }, - "net_ct_current_phase": { - "name": "Net consumption CT current {phase_name}" - }, - "net_ct_powerfactor_phase": { - "name": "Power factor net consumption CT {phase_name}" - }, - "net_ct_metering_status_phase": { - "name": "Metering status net consumption CT {phase_name}" - }, - "net_ct_status_flags_phase": { - "name": "Meter status flags active net consumption CT {phase_name}" - }, - "production_ct_frequency_phase": { - "name": "Frequency production CT {phase_name}" - }, - "production_ct_voltage_phase": { - "name": "Voltage production CT {phase_name}" - }, - "production_ct_current_phase": { - "name": "Production CT current {phase_name}" - }, - "production_ct_powerfactor_phase": { - "name": "Power factor production CT {phase_name}" - }, - "production_ct_metering_status_phase": { - "name": "Metering status production CT {phase_name}" - }, - "production_ct_status_flags_phase": { - "name": "Meter status flags active production CT {phase_name}" - }, - "lifetime_battery_discharged_phase": { - "name": "Lifetime battery energy discharged {phase_name}" - }, - "lifetime_battery_charged_phase": { - "name": "Lifetime battery energy charged {phase_name}" - }, - "battery_discharge_phase": { - "name": "Current battery discharge {phase_name}" - }, - "storage_ct_frequency_phase": { - "name": "Frequency storage CT {phase_name}" - }, - "storage_ct_voltage_phase": { - "name": "Voltage storage CT {phase_name}" - }, - "storage_ct_current_phase": { - "name": "Storage CT current {phase_name}" - }, - "storage_ct_powerfactor_phase": { - "name": "Power factor storage CT {phase_name}" - }, - "storage_ct_metering_status_phase": { - "name": "Metering status storage CT {phase_name}" - }, - "storage_ct_status_flags_phase": { - "name": "Meter status flags active storage CT {phase_name}" - }, - "reserve_soc": { - "name": "Reserve battery level" - }, - "available_energy": { - "name": "Available battery energy" - }, - "reserve_energy": { - "name": "Reserve battery energy" - }, - "max_capacity": { - "name": "Battery capacity" - }, - "configured_reserve_soc": { - "name": "Configured reserve battery level" - }, - "acb_battery_state": { - "name": "Battery state", - "state": { - "discharging": "[%key:common::state::discharging%]", - "idle": "[%key:common::state::idle%]", - "charging": "[%key:common::state::charging%]", - "full": "[%key:common::state::full%]" - } + "ac_voltage": { + "name": "AC voltage" }, "acb_available_energy": { "name": "Available ACB battery energy" }, + "acb_battery_state": { + "name": "Battery state", + "state": { + "charging": "[%key:common::state::charging%]", + "discharging": "[%key:common::state::discharging%]", + "full": "[%key:common::state::full%]", + "idle": "[%key:common::state::idle%]" + } + }, "acb_max_capacity": { "name": "ACB Battery capacity" }, + "admin_state": { + "name": "Admin state", + "state": { + "off_grid": "[%key:component::enphase_envoy::entity::sensor::grid_status::state::off_grid%]", + "on_grid": "[%key:component::enphase_envoy::entity::sensor::grid_status::state::on_grid%]" + } + }, "aggregated_available_energy": { "name": "Aggregated available battery energy" }, @@ -381,54 +157,263 @@ "aggregated_soc": { "name": "Aggregated battery SOC" }, - "dc_voltage": { - "name": "DC voltage" + "available_energy": { + "name": "Available battery energy" + }, + "balanced_net_consumption": { + "name": "Balanced net power consumption" + }, + "balanced_net_consumption_phase": { + "name": "Balanced net power consumption {phase_name}" + }, + "battery_discharge": { + "name": "Current battery discharge" + }, + "battery_discharge_phase": { + "name": "Current battery discharge {phase_name}" + }, + "configured_reserve_soc": { + "name": "Configured reserve battery level" + }, + "current_power_consumption": { + "name": "Current power consumption" + }, + "current_power_consumption_phase": { + "name": "Current power consumption {phase_name}" + }, + "current_power_production": { + "name": "Current power production" + }, + "current_power_production_phase": { + "name": "Current power production {phase_name}" + }, + "daily_consumption": { + "name": "Energy consumption today" + }, + "daily_consumption_phase": { + "name": "Energy consumption today {phase_name}" + }, + "daily_production": { + "name": "Energy production today" + }, + "daily_production_phase": { + "name": "Energy production today {phase_name}" }, "dc_current": { "name": "DC current" }, - "ac_voltage": { - "name": "AC voltage" - }, - "ac_current": { - "name": "AC current" - }, - "lifetime_energy": { - "name": "[%key:component::enphase_envoy::entity::sensor::lifetime_production::name%]" - }, - "energy_today": { - "name": "[%key:component::enphase_envoy::entity::sensor::daily_production::name%]" + "dc_voltage": { + "name": "DC voltage" }, "energy_produced": { "name": "Energy production since previous report" }, - "max_reported": { - "name": "Lifetime maximum power" - }, - "last_report_duration": { - "name": "Last report duration" + "energy_today": { + "name": "[%key:component::enphase_envoy::entity::sensor::daily_production::name%]" }, "grid_status": { "name": "[%key:component::enphase_envoy::entity::binary_sensor::grid_status::name%]", "state": { - "on_grid": "On grid", "off_grid": "Off grid", + "on_grid": "On grid", "synchronizing": "Synchronizing to grid" } }, + "last_report_duration": { + "name": "Last report duration" + }, + "last_reported": { + "name": "Last reported" + }, + "lifetime_balanced_net_consumption": { + "name": "Lifetime balanced net energy consumption" + }, + "lifetime_balanced_net_consumption_phase": { + "name": "Lifetime balanced net energy consumption {phase_name}" + }, + "lifetime_battery_charged": { + "name": "Lifetime battery energy charged" + }, + "lifetime_battery_charged_phase": { + "name": "Lifetime battery energy charged {phase_name}" + }, + "lifetime_battery_discharged": { + "name": "Lifetime battery energy discharged" + }, + "lifetime_battery_discharged_phase": { + "name": "Lifetime battery energy discharged {phase_name}" + }, + "lifetime_consumption": { + "name": "Lifetime energy consumption" + }, + "lifetime_consumption_phase": { + "name": "Lifetime energy consumption {phase_name}" + }, + "lifetime_energy": { + "name": "[%key:component::enphase_envoy::entity::sensor::lifetime_production::name%]" + }, + "lifetime_net_consumption": { + "name": "Lifetime net energy consumption" + }, + "lifetime_net_consumption_phase": { + "name": "Lifetime net energy consumption {phase_name}" + }, + "lifetime_net_production": { + "name": "Lifetime net energy production" + }, + "lifetime_net_production_phase": { + "name": "Lifetime net energy production {phase_name}" + }, + "lifetime_production": { + "name": "Lifetime energy production" + }, + "lifetime_production_phase": { + "name": "Lifetime energy production {phase_name}" + }, + "max_capacity": { + "name": "Battery capacity" + }, + "max_reported": { + "name": "Lifetime maximum power" + }, "mid_state": { "name": "MID state", "state": { - "open": "[%key:common::state::open%]", - "close": "[%key:common::state::closed%]" + "close": "[%key:common::state::closed%]", + "open": "[%key:common::state::open%]" } }, - "admin_state": { - "name": "Admin state", - "state": { - "on_grid": "[%key:component::enphase_envoy::entity::sensor::grid_status::state::on_grid%]", - "off_grid": "[%key:component::enphase_envoy::entity::sensor::grid_status::state::off_grid%]" - } + "net_consumption": { + "name": "Current net power consumption" + }, + "net_consumption_phase": { + "name": "Current net power consumption {phase_name}" + }, + "net_ct_current": { + "name": "Net consumption CT current" + }, + "net_ct_current_phase": { + "name": "Net consumption CT current {phase_name}" + }, + "net_ct_frequency": { + "name": "Frequency net consumption CT" + }, + "net_ct_frequency_phase": { + "name": "Frequency net consumption CT {phase_name}" + }, + "net_ct_metering_status": { + "name": "Metering status net consumption CT" + }, + "net_ct_metering_status_phase": { + "name": "Metering status net consumption CT {phase_name}" + }, + "net_ct_powerfactor": { + "name": "Power factor net consumption CT" + }, + "net_ct_powerfactor_phase": { + "name": "Power factor net consumption CT {phase_name}" + }, + "net_ct_status_flags": { + "name": "Meter status flags active net consumption CT" + }, + "net_ct_status_flags_phase": { + "name": "Meter status flags active net consumption CT {phase_name}" + }, + "net_ct_voltage": { + "name": "Voltage net consumption CT" + }, + "net_ct_voltage_phase": { + "name": "Voltage net consumption CT {phase_name}" + }, + "production_ct_current": { + "name": "Production CT current" + }, + "production_ct_current_phase": { + "name": "Production CT current {phase_name}" + }, + "production_ct_frequency": { + "name": "Frequency production CT" + }, + "production_ct_frequency_phase": { + "name": "Frequency production CT {phase_name}" + }, + "production_ct_metering_status": { + "name": "Metering status production CT" + }, + "production_ct_metering_status_phase": { + "name": "Metering status production CT {phase_name}" + }, + "production_ct_powerfactor": { + "name": "Power factor production CT" + }, + "production_ct_powerfactor_phase": { + "name": "Power factor production CT {phase_name}" + }, + "production_ct_status_flags": { + "name": "Meter status flags active production CT" + }, + "production_ct_status_flags_phase": { + "name": "Meter status flags active production CT {phase_name}" + }, + "production_ct_voltage": { + "name": "Voltage production CT" + }, + "production_ct_voltage_phase": { + "name": "Voltage production CT {phase_name}" + }, + "reserve_energy": { + "name": "Reserve battery energy" + }, + "reserve_soc": { + "name": "Reserve battery level" + }, + "seven_days_consumption": { + "name": "Energy consumption last seven days" + }, + "seven_days_consumption_phase": { + "name": "Energy consumption last seven days {phase_name}" + }, + "seven_days_production": { + "name": "Energy production last seven days" + }, + "seven_days_production_phase": { + "name": "Energy production last seven days {phase_name}" + }, + "storage_ct_current": { + "name": "Storage CT current" + }, + "storage_ct_current_phase": { + "name": "Storage CT current {phase_name}" + }, + "storage_ct_frequency": { + "name": "Frequency storage CT" + }, + "storage_ct_frequency_phase": { + "name": "Frequency storage CT {phase_name}" + }, + "storage_ct_metering_status": { + "name": "Metering status storage CT" + }, + "storage_ct_metering_status_phase": { + "name": "Metering status storage CT {phase_name}" + }, + "storage_ct_powerfactor": { + "name": "Power factor storage CT" + }, + "storage_ct_powerfactor_phase": { + "name": "Power factor storage CT {phase_name}" + }, + "storage_ct_status_flags": { + "name": "Meter status flags active storage CT" + }, + "storage_ct_status_flags_phase": { + "name": "Meter status flags active storage CT {phase_name}" + }, + "storage_ct_voltage": { + "name": "Voltage storage CT" + }, + "storage_ct_voltage_phase": { + "name": "Voltage storage CT {phase_name}" } }, "switch": { @@ -441,8 +426,8 @@ } }, "exceptions": { - "unexpected_device": { - "message": "Unexpected Envoy serial number found at {host}; expected {expected_serial}, found {actual_serial}" + "action_error": { + "message": "Failed to execute {action} for {entity}, host: {host}: {args}" }, "authentication_error": { "message": "Envoy authentication failure on {host}: {args}" @@ -450,8 +435,23 @@ "envoy_error": { "message": "Error communicating with Envoy API on {host}: {args}" }, - "action_error": { - "message": "Failed to execute {action} for {entity}, host: {host}: {args}" + "unexpected_device": { + "message": "Unexpected Envoy serial number found at {host}; expected {expected_serial}, found {actual_serial}" + } + }, + "options": { + "step": { + "init": { + "data": { + "diagnostics_include_fixtures": "Include test fixture data in diagnostic report. Use when requested to provide test data for troubleshooting or development activities. With this option enabled the diagnostic report may take more time to download. When report is created best disable this option again.", + "disable_keep_alive": "Always use a new connection when requesting data from the Envoy. May resolve communication issues with some Envoy firmwares." + }, + "data_description": { + "diagnostics_include_fixtures": "Include fixtures in diagnostics report", + "disable_keep_alive": "May resolve communication issues with some Envoy firmwares." + }, + "title": "Envoy {serial} {host} options" + } } } } diff --git a/homeassistant/components/environment_canada/icons.json b/homeassistant/components/environment_canada/icons.json index ca55254cc12..035f5ff661d 100644 --- a/homeassistant/components/environment_canada/icons.json +++ b/homeassistant/components/environment_canada/icons.json @@ -19,11 +19,11 @@ } }, "services": { - "set_radar_type": { - "service": "mdi:radar" - }, "get_forecasts": { "service": "mdi:weather-cloudy-clock" + }, + "set_radar_type": { + "service": "mdi:radar" } } } diff --git a/homeassistant/components/environment_canada/strings.json b/homeassistant/components/environment_canada/strings.json index 0412dcb6961..30cb7c254b9 100644 --- a/homeassistant/components/environment_canada/strings.json +++ b/homeassistant/components/environment_canada/strings.json @@ -1,17 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Environment Canada: weather location and language", - "description": "Select a weather station from the dropdown, or specify coordinates to use the closest station. The default coordinates are from your Home Assistant installation. Weather information can be retrieved in English or French.", - "data": { - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "station": "Weather station", - "language": "Weather information language" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, @@ -21,16 +9,42 @@ "error_response": "Response from Environment Canada in error", "too_many_attempts": "Connections to Environment Canada are rate limited; Try again in 60 seconds", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "language": "Weather information language", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "station": "Weather station" + }, + "description": "Select a weather station from the dropdown, or specify coordinates to use the closest station. The default coordinates are from your Home Assistant installation. Weather information can be retrieved in English or French.", + "title": "Environment Canada: weather location and language" + } } }, "entity": { + "camera": { + "radar": { + "name": "Radar" + } + }, "sensor": { + "advisories": { + "name": "Advisories" + }, + "aqhi": { + "name": "AQHI" + }, "condition": { "name": "Current condition" }, "dewpoint": { "name": "Dew point" }, + "endings": { + "name": "Endings" + }, "high_temp": { "name": "High temperature" }, @@ -55,6 +69,9 @@ "pressure": { "name": "Barometric pressure" }, + "statements": { + "name": "Statements" + }, "tendency": { "name": "Tendency" }, @@ -70,6 +87,12 @@ "visibility": { "name": "Visibility" }, + "warnings": { + "name": "Warnings" + }, + "watches": { + "name": "Watches" + }, "wind_bearing": { "name": "Wind bearing" }, @@ -81,29 +104,6 @@ }, "wind_gust": { "name": "Wind gust" - }, - "aqhi": { - "name": "AQHI" - }, - "advisories": { - "name": "Advisories" - }, - "endings": { - "name": "Endings" - }, - "statements": { - "name": "Statements" - }, - "warnings": { - "name": "Warnings" - }, - "watches": { - "name": "Watches" - } - }, - "camera": { - "radar": { - "name": "Radar" } }, "weather": { @@ -114,18 +114,18 @@ }, "services": { "get_forecasts": { - "name": "Get forecasts", - "description": "Retrieves the forecast from selected weather services." + "description": "Retrieves the forecast from selected weather services.", + "name": "Get forecasts" }, "set_radar_type": { - "name": "Set radar type", "description": "Sets the type of radar image to retrieve.", "fields": { "radar_type": { - "name": "Radar type", - "description": "The type of radar image to display." + "description": "The type of radar image to display.", + "name": "Radar type" } - } + }, + "name": "Set radar type" } } } diff --git a/homeassistant/components/envisalink/strings.json b/homeassistant/components/envisalink/strings.json index 265ce28f920..29648107a8f 100644 --- a/homeassistant/components/envisalink/strings.json +++ b/homeassistant/components/envisalink/strings.json @@ -1,32 +1,32 @@ { "services": { "alarm_keypress": { - "name": "Alarm keypress", "description": "Sends custom keypresses to the alarm.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name of the alarm control panel to trigger." + "description": "Name of the alarm control panel to trigger.", + "name": "Entity" }, "keypress": { - "name": "Keypress", - "description": "String to send to the alarm panel (1-6 characters)." + "description": "String to send to the alarm panel (1-6 characters).", + "name": "Keypress" } - } + }, + "name": "Alarm keypress" }, "invoke_custom_function": { - "name": "Invoke custom function", "description": "Allows users with DSC panels to trigger a PGM output (1-4). Note that you need to specify the alarm panel's \"code\" parameter for this to work.", "fields": { "partition": { - "name": "Partition", - "description": "The alarm panel partition to trigger the PGM output on. Typically this is just \"1\"." + "description": "The alarm panel partition to trigger the PGM output on. Typically this is just \"1\".", + "name": "Partition" }, "pgm": { - "name": "PGM", - "description": "The PGM number to trigger on the alarm panel." + "description": "The PGM number to trigger on the alarm panel.", + "name": "PGM" } - } + }, + "name": "Invoke custom function" } } } diff --git a/homeassistant/components/epic_games_store/strings.json b/homeassistant/components/epic_games_store/strings.json index ab4562a72ad..edd2cb52b9e 100644 --- a/homeassistant/components/epic_games_store/strings.json +++ b/homeassistant/components/epic_games_store/strings.json @@ -1,30 +1,22 @@ { "config": { - "step": { - "user": { - "data": { - "language": "[%key:common::config_flow::data::language%]", - "country": "[%key:common::config_flow::data::country%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "country": "[%key:common::config_flow::data::country%]", + "language": "[%key:common::config_flow::data::language%]" + } + } } }, "entity": { "calendar": { - "free_games": { - "name": "Free games", - "state_attributes": { - "games": { - "name": "Games" - } - } - }, "discount_games": { "name": "Discount games", "state_attributes": { @@ -32,6 +24,14 @@ "name": "[%key:component::epic_games_store::entity::calendar::free_games::state_attributes::games::name%]" } } + }, + "free_games": { + "name": "Free games", + "state_attributes": { + "games": { + "name": "Games" + } + } } } } diff --git a/homeassistant/components/epion/strings.json b/homeassistant/components/epion/strings.json index f8ef9de230c..83b48960526 100644 --- a/homeassistant/components/epion/strings.json +++ b/homeassistant/components/epion/strings.json @@ -3,16 +3,16 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "user": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" } } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } } } diff --git a/homeassistant/components/epson/strings.json b/homeassistant/components/epson/strings.json index fb8d7ab5fdd..8dbc88a9e20 100644 --- a/homeassistant/components/epson/strings.json +++ b/homeassistant/components/epson/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "powered_off": "Is projector turned on? You need to turn on projector for initial configuration." + }, "step": { "user": { "data": { @@ -11,25 +18,6 @@ "host": "The hostname, IP address or serial port of your Epson projector." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "powered_off": "Is projector turned on? You need to turn on projector for initial configuration." - } - }, - "services": { - "select_cmode": { - "name": "Select color mode", - "description": "Selects color mode of Epson projector.", - "fields": { - "cmode": { - "name": "Color mode", - "description": "Name of Cmode." - } - } } }, "selector": { @@ -39,5 +27,17 @@ "serial": "Serial" } } + }, + "services": { + "select_cmode": { + "description": "Selects color mode of Epson projector.", + "fields": { + "cmode": { + "description": "Name of Cmode.", + "name": "Color mode" + } + }, + "name": "Select color mode" + } } } diff --git a/homeassistant/components/eq3btsmart/icons.json b/homeassistant/components/eq3btsmart/icons.json index 892352c2ea4..f091a658ab7 100644 --- a/homeassistant/components/eq3btsmart/icons.json +++ b/homeassistant/components/eq3btsmart/icons.json @@ -40,17 +40,17 @@ "on": "mdi:home-export-outline" } }, - "lock": { - "default": "mdi:lock", - "state": { - "off": "mdi:lock-off" - } - }, "boost": { "default": "mdi:fire", "state": { "off": "mdi:fire-off" } + }, + "lock": { + "default": "mdi:lock", + "state": { + "off": "mdi:lock-off" + } } } } diff --git a/homeassistant/components/eq3btsmart/manifest.json b/homeassistant/components/eq3btsmart/manifest.json index c95ef6b1c63..760e8466ad6 100644 --- a/homeassistant/components/eq3btsmart/manifest.json +++ b/homeassistant/components/eq3btsmart/manifest.json @@ -3,16 +3,16 @@ "name": "eQ-3 Bluetooth Smart Thermostats", "bluetooth": [ { - "local_name": "CC-RT-BLE", - "connectable": true + "connectable": true, + "local_name": "CC-RT-BLE" }, { - "local_name": "CC-RT-M-BLE", - "connectable": true + "connectable": true, + "local_name": "CC-RT-M-BLE" }, { - "local_name": "CC-RT-BLE-EQ", - "connectable": true + "connectable": true, + "local_name": "CC-RT-BLE-EQ" } ], "codeowners": ["@eulemitkeule", "@dbuezas"], diff --git a/homeassistant/components/eq3btsmart/strings.json b/homeassistant/components/eq3btsmart/strings.json index ab363f4d752..c98a47b2d5c 100644 --- a/homeassistant/components/eq3btsmart/strings.json +++ b/homeassistant/components/eq3btsmart/strings.json @@ -3,20 +3,20 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, - "flow_title": "eQ-3 Device [{mac}]", - "step": { - "user": { - "title": "Configure new eQ-3 device", - "data": { - "mac": "MAC address" - } - }, - "init": { - "title": "Configure new eQ-3 device" - } - }, "error": { "invalid_mac_address": "Invalid MAC address" + }, + "flow_title": "eQ-3 Device [{mac}]", + "step": { + "init": { + "title": "Configure new eQ-3 device" + }, + "user": { + "data": { + "mac": "MAC address" + }, + "title": "Configure new eQ-3 device" + } } }, "entity": { @@ -51,14 +51,14 @@ } }, "switch": { - "lock": { - "name": "Lock" + "away": { + "name": "Away" }, "boost": { "name": "Boost" }, - "away": { - "name": "Away" + "lock": { + "name": "Lock" } } } diff --git a/homeassistant/components/escea/strings.json b/homeassistant/components/escea/strings.json index 8744e74fd3f..0b9fcacbb7a 100644 --- a/homeassistant/components/escea/strings.json +++ b/homeassistant/components/escea/strings.json @@ -1,13 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up an Escea fireplace?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/esphome/strings.json b/homeassistant/components/esphome/strings.json index c14bc1e6707..15e47d9176c 100644 --- a/homeassistant/components/esphome/strings.json +++ b/homeassistant/components/esphome/strings.json @@ -4,40 +4,30 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured_detailed": "A device `{name}`, with MAC address `{mac}` is already configured as `{title}`.", "already_configured_updates": "A device `{name}`, with MAC address `{mac}` is already configured as `{title}`; the existing configuration will be updated with the validated data.", - "reconfigure_already_configured": "A device `{name}` with MAC address `{mac}` is already configured as `{title}`. Reconfiguration was aborted because the new configuration appears to refer to a different device.", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "mdns_missing_mac": "Missing MAC address in mDNS properties.", - "service_received": "Action received", - "mqtt_missing_mac": "Missing MAC address in MQTT properties.", "mqtt_missing_api": "Missing API port in MQTT properties.", "mqtt_missing_ip": "Missing IP address in MQTT properties.", + "mqtt_missing_mac": "Missing MAC address in MQTT properties.", "mqtt_missing_payload": "Missing MQTT payload.", "name_conflict_migrated": "The configuration for `{name}` has been migrated to a new device with MAC address `{mac}` from `{existing_mac}`.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reauth_unique_id_changed": "**Re-authentication of `{name}` was aborted** because the address `{host}` points to a different device: `{unexpected_device_name}` (MAC: `{unexpected_mac}`) instead of the expected one (MAC: `{expected_mac}`).", + "reconfigure_already_configured": "A device `{name}` with MAC address `{mac}` is already configured as `{title}`. Reconfiguration was aborted because the new configuration appears to refer to a different device.", "reconfigure_name_conflict": "**Reconfiguration of `{name}` was aborted** because the address `{host}` points to a device named `{name}` (MAC: `{expected_mac}`), which is already in use by another configuration entry: `{existing_title}`.", - "reconfigure_unique_id_changed": "**Reconfiguration of `{name}` was aborted** because the address `{host}` points to a different device: `{unexpected_device_name}` (MAC: `{unexpected_mac}`) instead of the expected one (MAC: `{expected_mac}`)." + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "reconfigure_unique_id_changed": "**Reconfiguration of `{name}` was aborted** because the address `{host}` points to a different device: `{unexpected_device_name}` (MAC: `{unexpected_mac}`) instead of the expected one (MAC: `{expected_mac}`).", + "service_received": "Action received" }, "error": { - "resolve_error": "Unable to resolve the address of the ESPHome device. If this issue continues, consider setting a static IP address.", "connection_error": "Unable to connect to the ESPHome device. Make sure the device’s YAML configuration includes an `api` section.", - "requires_encryption_key": "The ESPHome device requires an encryption key. Enter the key defined in the device’s YAML configuration under `api -> encryption -> key`.", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_psk": "The encryption key is invalid. Make sure it matches the value in the device’s YAML configuration under `api -> encryption -> key`." + "invalid_psk": "The encryption key is invalid. Make sure it matches the value in the device’s YAML configuration under `api -> encryption -> key`.", + "requires_encryption_key": "The ESPHome device requires an encryption key. Enter the key defined in the device’s YAML configuration under `api -> encryption -> key`.", + "resolve_error": "Unable to resolve the address of the ESPHome device. If this issue continues, consider setting a static IP address." }, + "flow_title": "{name}", "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "IP address or hostname of the ESPHome device", - "port": "Port that the native API is running on" - }, - "description": "Please enter connection settings of your ESPHome device." - }, "authenticate": { "data": { "password": "[%key:common::config_flow::data::password%]" @@ -47,6 +37,10 @@ }, "description": "Please enter the password you set in your ESPHome device YAML configuration for `{name}`." }, + "discovery_confirm": { + "description": "Do you want to add the device `{name}` to Home Assistant?", + "title": "Discovered ESPHome device" + }, "encryption_key": { "data": { "noise_psk": "Encryption key" @@ -56,6 +50,14 @@ }, "description": "Please enter the encryption key for `{name}`. You can find it in the ESPHome Dashboard or in your ESPHome device YAML configuration." }, + "name_conflict": { + "description": "**The name `{name}` is already being used by another device: {existing_title} (MAC address: `{existing_mac}`)**\n\nTo continue, please choose one of the following options:\n\n**Migrate configuration to new device:** If this is a replacement, migrate the existing settings to the new device (`{mac}`).\n**Overwrite the existing configuration:** If this is not a replacement, delete the old configuration for `{existing_mac}` and use the new device instead.", + "menu_options": { + "name_conflict_migrate": "Migrate configuration to new device", + "name_conflict_overwrite": "Overwrite the existing configuration" + }, + "title": "Name conflict" + }, "reauth_confirm": { "data": { "noise_psk": "[%key:component::esphome::config::step::encryption_key::data::noise_psk%]" @@ -68,32 +70,16 @@ "reauth_encryption_removed_confirm": { "description": "The ESPHome device `{name}` disabled transport encryption. Please confirm that you want to remove the encryption key and allow unencrypted connections." }, - "discovery_confirm": { - "description": "Do you want to add the device `{name}` to Home Assistant?", - "title": "Discovered ESPHome device" - }, - "name_conflict": { - "title": "Name conflict", - "description": "**The name `{name}` is already being used by another device: {existing_title} (MAC address: `{existing_mac}`)**\n\nTo continue, please choose one of the following options:\n\n**Migrate configuration to new device:** If this is a replacement, migrate the existing settings to the new device (`{mac}`).\n**Overwrite the existing configuration:** If this is not a replacement, delete the old configuration for `{existing_mac}` and use the new device instead.", - "menu_options": { - "name_conflict_migrate": "Migrate configuration to new device", - "name_conflict_overwrite": "Overwrite the existing configuration" - } - } - }, - "flow_title": "{name}" - }, - "options": { - "step": { - "init": { + "user": { "data": { - "allow_service_calls": "Allow the device to perform Home Assistant actions.", - "subscribe_logs": "Subscribe to logs from the device." + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" }, "data_description": { - "allow_service_calls": "When enabled, ESPHome devices can perform Home Assistant actions or send events. Only enable this if you trust the device.", - "subscribe_logs": "When enabled, the device will send logs to Home Assistant and you can view them in the logs panel." - } + "host": "IP address or hostname of the ESPHome device", + "port": "Port that the native API is running on" + }, + "description": "Please enter connection settings of your ESPHome device." } } }, @@ -103,29 +89,6 @@ "name": "[%key:component::assist_satellite::entity_component::_::name%]" } }, - "select": { - "pipeline": { - "name": "[%key:component::assist_pipeline::entity::select::pipeline::name%]", - "state": { - "preferred": "[%key:component::assist_pipeline::entity::select::pipeline::state::preferred%]" - } - }, - "vad_sensitivity": { - "name": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::name%]", - "state": { - "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", - "aggressive": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::aggressive%]", - "relaxed": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::relaxed%]" - } - }, - "wake_word": { - "name": "Wake word{index}", - "state": { - "no_wake_word": "No wake word", - "okay_nabu": "Okay Nabu" - } - } - }, "climate": { "climate": { "state_attributes": { @@ -136,51 +99,27 @@ } } } - } - }, - "issues": { - "assist_in_progress_deprecated": { - "title": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::title%]", - "fix_flow": { - "step": { - "confirm_disable_entity": { - "description": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::fix_flow::step::confirm_disable_entity::description%]" - } + }, + "select": { + "pipeline": { + "name": "[%key:component::assist_pipeline::entity::select::pipeline::name%]", + "state": { + "preferred": "[%key:component::assist_pipeline::entity::select::pipeline::state::preferred%]" } - } - }, - "ble_firmware_outdated": { - "title": "Update {name} with ESPHome {version} or later", - "description": "To improve Bluetooth reliability and performance, we highly recommend updating {name} with ESPHome {version} or later. When updating the device from ESPHome earlier than 2022.12.0, it is recommended to use a serial cable instead of an over-the-air update to take advantage of the new partition scheme." - }, - "api_password_deprecated": { - "title": "API password deprecated on {name}", - "description": "The API password for ESPHome is deprecated and the use of an API encryption key is recommended instead.\n\nRemove the API password and add an encryption key to your ESPHome device to resolve this issue." - }, - "service_calls_not_allowed": { - "title": "{name} is not permitted to perform Home Assistant actions", - "description": "The ESPHome device attempted to perform a Home Assistant action, but this functionality is not enabled.\n\nIf you trust this device and want to allow it to perform Home Assistant action, you can enable this functionality in the options flow." - }, - "device_conflict": { - "title": "Device conflict for {name}", - "fix_flow": { - "step": { - "init": { - "title": "Device conflict for {name}", - "description": "**The device `{name}` (`{model}`) at `{ip}` has reported a MAC address change from `{stored_mac}` to `{mac}`.**\n\nIf you have multiple devices with the same name, please rename or remove the one with MAC address `{mac}` to avoid conflicts.\n\nIf this is a hardware replacement, please confirm that you would like to migrate the Home Assistant configuration to the new device with MAC address `{mac}`.", - "menu_options": { - "migrate": "Migrate configuration to new device", - "manual": "Remove or rename device" - } - }, - "migrate": { - "title": "Confirm device replacement for {name}", - "description": "Are you sure you want to migrate the Home Assistant configuration for `{name}` (`{model}`) at `{ip}` from `{stored_mac}` to `{mac}`?" - }, - "manual": { - "title": "Remove or rename device {name}", - "description": "To resolve the conflict, either remove the device with MAC address `{mac}` from the network and restart the one with MAC address `{stored_mac}`, or re-flash the device with MAC address `{mac}` using a different name than `{name}`. Submit again once done." - } + }, + "vad_sensitivity": { + "name": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::name%]", + "state": { + "aggressive": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::aggressive%]", + "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", + "relaxed": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::relaxed%]" + } + }, + "wake_word": { + "name": "Wake word{index}", + "state": { + "no_wake_word": "No wake word", + "okay_nabu": "Okay Nabu" } } } @@ -201,5 +140,66 @@ "ota_in_progress": { "message": "An OTA (Over-The-Air) update is already in progress for {configuration}." } + }, + "issues": { + "api_password_deprecated": { + "description": "The API password for ESPHome is deprecated and the use of an API encryption key is recommended instead.\n\nRemove the API password and add an encryption key to your ESPHome device to resolve this issue.", + "title": "API password deprecated on {name}" + }, + "assist_in_progress_deprecated": { + "fix_flow": { + "step": { + "confirm_disable_entity": { + "description": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::fix_flow::step::confirm_disable_entity::description%]" + } + } + }, + "title": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::title%]" + }, + "ble_firmware_outdated": { + "description": "To improve Bluetooth reliability and performance, we highly recommend updating {name} with ESPHome {version} or later. When updating the device from ESPHome earlier than 2022.12.0, it is recommended to use a serial cable instead of an over-the-air update to take advantage of the new partition scheme.", + "title": "Update {name} with ESPHome {version} or later" + }, + "device_conflict": { + "fix_flow": { + "step": { + "init": { + "description": "**The device `{name}` (`{model}`) at `{ip}` has reported a MAC address change from `{stored_mac}` to `{mac}`.**\n\nIf you have multiple devices with the same name, please rename or remove the one with MAC address `{mac}` to avoid conflicts.\n\nIf this is a hardware replacement, please confirm that you would like to migrate the Home Assistant configuration to the new device with MAC address `{mac}`.", + "menu_options": { + "manual": "Remove or rename device", + "migrate": "Migrate configuration to new device" + }, + "title": "Device conflict for {name}" + }, + "manual": { + "description": "To resolve the conflict, either remove the device with MAC address `{mac}` from the network and restart the one with MAC address `{stored_mac}`, or re-flash the device with MAC address `{mac}` using a different name than `{name}`. Submit again once done.", + "title": "Remove or rename device {name}" + }, + "migrate": { + "description": "Are you sure you want to migrate the Home Assistant configuration for `{name}` (`{model}`) at `{ip}` from `{stored_mac}` to `{mac}`?", + "title": "Confirm device replacement for {name}" + } + } + }, + "title": "Device conflict for {name}" + }, + "service_calls_not_allowed": { + "description": "The ESPHome device attempted to perform a Home Assistant action, but this functionality is not enabled.\n\nIf you trust this device and want to allow it to perform Home Assistant action, you can enable this functionality in the options flow.", + "title": "{name} is not permitted to perform Home Assistant actions" + } + }, + "options": { + "step": { + "init": { + "data": { + "allow_service_calls": "Allow the device to perform Home Assistant actions.", + "subscribe_logs": "Subscribe to logs from the device." + }, + "data_description": { + "allow_service_calls": "When enabled, ESPHome devices can perform Home Assistant actions or send events. Only enable this if you trust the device.", + "subscribe_logs": "When enabled, the device will send logs to Home Assistant and you can view them in the logs panel." + } + } + } } } diff --git a/homeassistant/components/eufylife_ble/strings.json b/homeassistant/components/eufylife_ble/strings.json index 72f0e7b5973..898457eefe5 100644 --- a/homeassistant/components/eufylife_ble/strings.json +++ b/homeassistant/components/eufylife_ble/strings.json @@ -1,34 +1,34 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } }, "entity": { "sensor": { + "heart_rate": { + "name": "Heart rate" + }, "real_time_weight": { "name": "Real-time weight" }, "weight": { "name": "Weight" - }, - "heart_rate": { - "name": "Heart rate" } } } diff --git a/homeassistant/components/event/strings.json b/homeassistant/components/event/strings.json index 02f4da8ca08..8dc2abf6fef 100644 --- a/homeassistant/components/event/strings.json +++ b/homeassistant/components/event/strings.json @@ -1,5 +1,4 @@ { - "title": "Event", "entity_component": { "_": { "name": "[%key:component::button::title%]", @@ -12,14 +11,15 @@ } } }, - "doorbell": { - "name": "Doorbell" - }, "button": { "name": "Button" }, + "doorbell": { + "name": "Doorbell" + }, "motion": { "name": "Motion" } - } + }, + "title": "Event" } diff --git a/homeassistant/components/evil_genius_labs/strings.json b/homeassistant/components/evil_genius_labs/strings.json index 123d164444d..991f9425411 100644 --- a/homeassistant/components/evil_genius_labs/strings.json +++ b/homeassistant/components/evil_genius_labs/strings.json @@ -1,5 +1,10 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "timeout": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,11 +14,6 @@ "host": "The hostname or IP address of your Evil Genius Labs device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout": "[%key:common::config_flow::error::timeout_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/evohome/icons.json b/homeassistant/components/evohome/icons.json index 54488440e60..440595932f2 100644 --- a/homeassistant/components/evohome/icons.json +++ b/homeassistant/components/evohome/icons.json @@ -1,19 +1,19 @@ { "services": { - "set_system_mode": { - "service": "mdi:pencil" - }, - "reset_system": { - "service": "mdi:refresh" + "clear_zone_override": { + "service": "mdi:motion-sensor-off" }, "refresh_system": { "service": "mdi:refresh" }, + "reset_system": { + "service": "mdi:refresh" + }, + "set_system_mode": { + "service": "mdi:pencil" + }, "set_zone_override": { "service": "mdi:motion-sensor" - }, - "clear_zone_override": { - "service": "mdi:motion-sensor-off" } } } diff --git a/homeassistant/components/evohome/strings.json b/homeassistant/components/evohome/strings.json index 4fc51c30b97..4f69eef4193 100644 --- a/homeassistant/components/evohome/strings.json +++ b/homeassistant/components/evohome/strings.json @@ -1,58 +1,58 @@ { "services": { - "set_system_mode": { - "name": "Set system mode", - "description": "Sets the system mode, either indefinitely, or for a specified period of time, after which it will revert to Auto. Not all systems support all modes.", - "fields": { - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Mode to set the system to." - }, - "period": { - "name": "Period", - "description": "A period of time in days; used only with Away, DayOff, or Custom mode. The system will revert to Auto mode at midnight (up to 99 days, today is day 1)." - }, - "duration": { - "name": "Duration", - "description": "The duration in hours; used only with AutoWithEco mode (up to 24 hours)." - } - } - }, - "reset_system": { - "name": "Reset system", - "description": "Sets the system to Auto mode and resets all the zones to follow their schedules. Not all Evohome systems support this feature (i.e. AutoWithReset mode)." - }, - "refresh_system": { - "name": "Refresh system", - "description": "Pulls the latest data from the vendor's servers now, rather than waiting for the next scheduled update." - }, - "set_zone_override": { - "name": "Set zone override", - "description": "Overrides a zone's setpoint, either indefinitely, or for a specified period of time, after which it will revert to following its schedule.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "The entity ID of the Evohome zone." - }, - "setpoint": { - "name": "Setpoint", - "description": "The temperature to be used instead of the scheduled setpoint." - }, - "duration": { - "name": "Duration", - "description": "The zone will revert to its schedule after this time. If 0 the change is until the next scheduled setpoint." - } - } - }, "clear_zone_override": { - "name": "Clear zone override", "description": "Sets a zone to follow its schedule.", "fields": { "entity_id": { - "name": "[%key:component::evohome::services::set_zone_override::fields::entity_id::name%]", - "description": "[%key:component::evohome::services::set_zone_override::fields::entity_id::description%]" + "description": "[%key:component::evohome::services::set_zone_override::fields::entity_id::description%]", + "name": "[%key:component::evohome::services::set_zone_override::fields::entity_id::name%]" } - } + }, + "name": "Clear zone override" + }, + "refresh_system": { + "description": "Pulls the latest data from the vendor's servers now, rather than waiting for the next scheduled update.", + "name": "Refresh system" + }, + "reset_system": { + "description": "Sets the system to Auto mode and resets all the zones to follow their schedules. Not all Evohome systems support this feature (i.e. AutoWithReset mode).", + "name": "Reset system" + }, + "set_system_mode": { + "description": "Sets the system mode, either indefinitely, or for a specified period of time, after which it will revert to Auto. Not all systems support all modes.", + "fields": { + "duration": { + "description": "The duration in hours; used only with AutoWithEco mode (up to 24 hours).", + "name": "Duration" + }, + "mode": { + "description": "Mode to set the system to.", + "name": "[%key:common::config_flow::data::mode%]" + }, + "period": { + "description": "A period of time in days; used only with Away, DayOff, or Custom mode. The system will revert to Auto mode at midnight (up to 99 days, today is day 1).", + "name": "Period" + } + }, + "name": "Set system mode" + }, + "set_zone_override": { + "description": "Overrides a zone's setpoint, either indefinitely, or for a specified period of time, after which it will revert to following its schedule.", + "fields": { + "duration": { + "description": "The zone will revert to its schedule after this time. If 0 the change is until the next scheduled setpoint.", + "name": "Duration" + }, + "entity_id": { + "description": "The entity ID of the Evohome zone.", + "name": "Entity" + }, + "setpoint": { + "description": "The temperature to be used instead of the scheduled setpoint.", + "name": "Setpoint" + } + }, + "name": "Set zone override" } } } diff --git a/homeassistant/components/ezviz/icons.json b/homeassistant/components/ezviz/icons.json index e4a2e49a22c..6f34593b41d 100644 --- a/homeassistant/components/ezviz/icons.json +++ b/homeassistant/components/ezviz/icons.json @@ -1,9 +1,6 @@ { "entity": { "button": { - "ptz_up": { - "default": "mdi:pan" - }, "ptz_down": { "default": "mdi:pan" }, @@ -12,6 +9,9 @@ }, "ptz_right": { "default": "mdi:pan" + }, + "ptz_up": { + "default": "mdi:pan" } }, "number": { diff --git a/homeassistant/components/ezviz/strings.json b/homeassistant/components/ezviz/strings.json index b03a5dbc61a..818d41c102c 100644 --- a/homeassistant/components/ezviz/strings.json +++ b/homeassistant/components/ezviz/strings.json @@ -1,40 +1,10 @@ { "config": { - "flow_title": "{serial}", - "step": { - "user": { - "title": "Connect to EZVIZ Cloud", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "url": "[%key:common::config_flow::data::url%]" - } - }, - "user_custom_url": { - "title": "Connect to custom EZVIZ URL", - "description": "Manually specify your region URL", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "url": "[%key:common::config_flow::data::url%]" - } - }, - "confirm": { - "title": "Discovered EZVIZ Camera", - "description": "Enter RTSP credentials for EZVIZ camera {serial} with IP {ip_address}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Enter credentials to reauthenticate to EZVIZ cloud account", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", + "ezviz_cloud_account_missing": "EZVIZ cloud account missing. Please reconfigure EZVIZ cloud account", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -42,53 +12,53 @@ "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "mfa_required": "2FA enabled on account, please disable and retry" }, - "abort": { - "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "ezviz_cloud_account_missing": "EZVIZ cloud account missing. Please reconfigure EZVIZ cloud account", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { + "flow_title": "{serial}", "step": { - "init": { + "confirm": { "data": { - "timeout": "Request timeout (seconds)", - "ffmpeg_arguments": "Arguments passed to FFmpeg for cameras" - } + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Enter RTSP credentials for EZVIZ camera {serial} with IP {ip_address}", + "title": "Discovered EZVIZ Camera" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Enter credentials to reauthenticate to EZVIZ cloud account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Connect to EZVIZ Cloud" + }, + "user_custom_url": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Manually specify your region URL", + "title": "Connect to custom EZVIZ URL" } } }, "entity": { - "select": { - "alarm_sound_mode": { - "name": "Warning sound", - "state": { - "soft": "Soft", - "intensive": "Intensive", - "silent": "Silent" - } + "binary_sensor": { + "alarm_schedules_enabled": { + "name": "Alarm schedules enabled" }, - "battery_camera_work_mode": { - "name": "Battery work mode", - "state": { - "plugged_in": "Plugged in", - "high_performance": "High performance", - "power_save": "Power save", - "super_power_save": "Super power saving", - "custom": "Custom" - } - } - }, - "image": { - "last_motion_image": { - "name": "Last motion image" + "encrypted": { + "name": "Encryption" } }, "button": { - "ptz_up": { - "name": "PTZ up" - }, "ptz_down": { "name": "PTZ down" }, @@ -97,14 +67,14 @@ }, "ptz_right": { "name": "PTZ right" + }, + "ptz_up": { + "name": "PTZ up" } }, - "binary_sensor": { - "alarm_schedules_enabled": { - "name": "Alarm schedules enabled" - }, - "encrypted": { - "name": "Encryption" + "image": { + "last_motion_image": { + "name": "Last motion image" } }, "light": { @@ -117,100 +87,130 @@ "name": "Detection sensitivity" } }, + "select": { + "alarm_sound_mode": { + "name": "Warning sound", + "state": { + "intensive": "Intensive", + "silent": "Silent", + "soft": "Soft" + } + }, + "battery_camera_work_mode": { + "name": "Battery work mode", + "state": { + "custom": "Custom", + "high_performance": "High performance", + "plugged_in": "Plugged in", + "power_save": "Power save", + "super_power_save": "Super power saving" + } + } + }, "sensor": { "alarm_sound_mod": { "name": "Alarm sound level" }, - "last_alarm_time": { - "name": "Last alarm time" - }, - "seconds_last_trigger": { - "name": "Seconds since last trigger" - }, "last_alarm_pic": { "name": "Last alarm picture URL" }, - "supported_channels": { - "name": "Supported channels" - }, - "local_ip": { - "name": "Local IP" - }, - "wan_ip": { - "name": "WAN IP" - }, - "pir_status": { - "name": "PIR status" + "last_alarm_time": { + "name": "Last alarm time" }, "last_alarm_type_code": { "name": "Last alarm type code" }, "last_alarm_type_name": { "name": "Last alarm type name" + }, + "local_ip": { + "name": "Local IP" + }, + "pir_status": { + "name": "PIR status" + }, + "seconds_last_trigger": { + "name": "Seconds since last trigger" + }, + "supported_channels": { + "name": "Supported channels" + }, + "wan_ip": { + "name": "WAN IP" + } + }, + "siren": { + "siren": { + "name": "[%key:component::siren::title%]" } }, "switch": { - "status_light": { - "name": "Status light" - }, - "privacy": { - "name": "Privacy" - }, - "infrared_light": { - "name": "Infrared light" - }, - "sleep": { - "name": "Sleep" + "all_day_video_recording": { + "name": "All day video recording" }, "audio": { "name": "Audio" }, - "motion_tracking": { - "name": "Motion tracking" - }, - "all_day_video_recording": { - "name": "All day video recording" - }, "auto_sleep": { "name": "Auto sleep" }, "flicker_light_on_movement": { "name": "Flicker light on movement" }, + "follow_movement": { + "name": "Follow movement" + }, + "infrared_light": { + "name": "Infrared light" + }, + "motion_tracking": { + "name": "Motion tracking" + }, "pir_motion_activated_light": { "name": "PIR motion activated light" }, + "privacy": { + "name": "Privacy" + }, + "sleep": { + "name": "Sleep" + }, + "status_light": { + "name": "Status light" + }, "tamper_alarm": { "name": "Tamper alarm" - }, - "follow_movement": { - "name": "Follow movement" } - }, - "siren": { - "siren": { - "name": "[%key:component::siren::title%]" + } + }, + "options": { + "step": { + "init": { + "data": { + "ffmpeg_arguments": "Arguments passed to FFmpeg for cameras", + "timeout": "Request timeout (seconds)" + } } } }, "services": { "set_alarm_detection_sensibility": { - "name": "Set detection sensibility", "description": "Changes the sensibility level of the motion detection.", "fields": { "level": { - "name": "Level", - "description": "Sensibility level. 1-6 for type 0 (normal camera), or 1-100 for type 3 (PIR sensor camera)." + "description": "Sensibility level. 1-6 for type 0 (normal camera), or 1-100 for type 3 (PIR sensor camera).", + "name": "Level" }, "type_value": { - "name": "Type", - "description": "Detection type. 0 for normal camera, or 3 for PIR sensor camera." + "description": "Detection type. 0 for normal camera, or 3 for PIR sensor camera.", + "name": "Type" } - } + }, + "name": "Set detection sensibility" }, "wake_device": { - "name": "Wake camera", - "description": "Wakes a camera from sleep mode. Especially useful for battery cameras." + "description": "Wakes a camera from sleep mode. Especially useful for battery cameras.", + "name": "Wake camera" } } } diff --git a/homeassistant/components/faa_delays/icons.json b/homeassistant/components/faa_delays/icons.json index e5a795a99c4..a2700ba3e5c 100644 --- a/homeassistant/components/faa_delays/icons.json +++ b/homeassistant/components/faa_delays/icons.json @@ -1,20 +1,20 @@ { "entity": { "binary_sensor": { - "ground_delay": { - "default": "mdi:airport" - }, - "ground_stop": { - "default": "mdi:airport" - }, - "depart_delay": { - "default": "mdi:airplane-takeoff" - }, "arrive_delay": { "default": "mdi:airplane-landing" }, "closure": { "default": "mdi:airplane-off" + }, + "depart_delay": { + "default": "mdi:airplane-takeoff" + }, + "ground_delay": { + "default": "mdi:airport" + }, + "ground_stop": { + "default": "mdi:airport" } } } diff --git a/homeassistant/components/faa_delays/strings.json b/homeassistant/components/faa_delays/strings.json index 145c9e3ab34..a220bdc69a1 100644 --- a/homeassistant/components/faa_delays/strings.json +++ b/homeassistant/components/faa_delays/strings.json @@ -1,25 +1,70 @@ { "config": { - "step": { - "user": { - "title": "FAA Delays", - "description": "Enter a US Airport Code in IATA Format", - "data": { - "id": "Airport" - } - } - }, - "error": { - "invalid_airport": "Airport code is not valid", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "This airport is already configured." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_airport": "Airport code is not valid", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "id": "Airport" + }, + "description": "Enter a US Airport Code in IATA Format", + "title": "FAA Delays" + } } }, "entity": { "binary_sensor": { + "arrive_delay": { + "name": "Arrival delay", + "state_attributes": { + "maximum": { + "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::maximum::name%]" + }, + "minimum": { + "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::minimum::name%]" + }, + "reason": { + "name": "[%key:component::faa_delays::entity::binary_sensor::ground_delay::state_attributes::reason::name%]" + }, + "trend": { + "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::trend::name%]" + } + } + }, + "closure": { + "name": "Closure", + "state_attributes": { + "begin": { + "name": "Begin" + }, + "end": { + "name": "End" + } + } + }, + "depart_delay": { + "name": "Departure delay", + "state_attributes": { + "maximum": { + "name": "Maximum" + }, + "minimum": { + "name": "Minimum" + }, + "reason": { + "name": "[%key:component::faa_delays::entity::binary_sensor::ground_delay::state_attributes::reason::name%]" + }, + "trend": { + "name": "Trend" + } + } + }, "ground_delay": { "name": "Ground delay", "state_attributes": { @@ -41,51 +86,6 @@ "name": "[%key:component::faa_delays::entity::binary_sensor::ground_delay::state_attributes::reason::name%]" } } - }, - "depart_delay": { - "name": "Departure delay", - "state_attributes": { - "minimum": { - "name": "Minimum" - }, - "maximum": { - "name": "Maximum" - }, - "trend": { - "name": "Trend" - }, - "reason": { - "name": "[%key:component::faa_delays::entity::binary_sensor::ground_delay::state_attributes::reason::name%]" - } - } - }, - "arrive_delay": { - "name": "Arrival delay", - "state_attributes": { - "minimum": { - "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::minimum::name%]" - }, - "maximum": { - "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::maximum::name%]" - }, - "trend": { - "name": "[%key:component::faa_delays::entity::binary_sensor::depart_delay::state_attributes::trend::name%]" - }, - "reason": { - "name": "[%key:component::faa_delays::entity::binary_sensor::ground_delay::state_attributes::reason::name%]" - } - } - }, - "closure": { - "name": "Closure", - "state_attributes": { - "begin": { - "name": "Begin" - }, - "end": { - "name": "End" - } - } } } } diff --git a/homeassistant/components/fan/strings.json b/homeassistant/components/fan/strings.json index 485d6aa4b59..a62e8bfd4ca 100644 --- a/homeassistant/components/fan/strings.json +++ b/homeassistant/components/fan/strings.json @@ -1,22 +1,21 @@ { - "title": "Fan", "device_automation": { - "condition_type": { - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" - }, - "trigger_type": { - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" - }, "action_type": { "toggle": "[%key:common::device_automation::action_type::toggle%]", - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", - "turn_off": "[%key:common::device_automation::action_type::turn_off%]" + "turn_off": "[%key:common::device_automation::action_type::turn_off%]", + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" + }, + "condition_type": { + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]" }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { @@ -37,8 +36,8 @@ "oscillating": { "name": "Oscillating", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "percentage": { @@ -47,97 +46,18 @@ "percentage_step": { "name": "Speed step" }, - "preset_modes": { - "name": "Available preset modes" - }, "preset_mode": { "name": "Preset mode" + }, + "preset_modes": { + "name": "Available preset modes" } } } }, - "services": { - "set_preset_mode": { - "name": "Set preset mode", - "description": "Sets preset fan mode.", - "fields": { - "preset_mode": { - "name": "Preset mode", - "description": "Preset fan mode." - } - } - }, - "set_percentage": { - "name": "Set speed", - "description": "Sets the speed of a fan.", - "fields": { - "percentage": { - "name": "Percentage", - "description": "Speed of the fan." - } - } - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns fan on.", - "fields": { - "percentage": { - "name": "[%key:component::fan::services::set_percentage::fields::percentage::name%]", - "description": "[%key:component::fan::services::set_percentage::fields::percentage::description%]" - }, - "preset_mode": { - "name": "[%key:component::fan::services::set_preset_mode::fields::preset_mode::name%]", - "description": "[%key:component::fan::services::set_preset_mode::fields::preset_mode::description%]" - } - } - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns fan off." - }, - "oscillate": { - "name": "Oscillate", - "description": "Controls the oscillation of a fan.", - "fields": { - "oscillating": { - "name": "Oscillating", - "description": "Turns oscillation on/off." - } - } - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles a fan on/off." - }, - "set_direction": { - "name": "Set direction", - "description": "Sets a fan's rotation direction.", - "fields": { - "direction": { - "name": "Direction", - "description": "Direction of the fan rotation." - } - } - }, - "increase_speed": { - "name": "Increase speed", - "description": "Increases the speed of a fan.", - "fields": { - "percentage_step": { - "name": "Increment", - "description": "Percentage step by which the speed should be increased." - } - } - }, - "decrease_speed": { - "name": "Decrease speed", - "description": "Decreases the speed of a fan.", - "fields": { - "percentage_step": { - "name": "Decrement", - "description": "Percentage step by which the speed should be decreased." - } - } + "exceptions": { + "not_valid_preset_mode": { + "message": "Preset mode {preset_mode} is not valid, valid preset modes are: {preset_modes}." } }, "selector": { @@ -148,9 +68,89 @@ } } }, - "exceptions": { - "not_valid_preset_mode": { - "message": "Preset mode {preset_mode} is not valid, valid preset modes are: {preset_modes}." + "services": { + "decrease_speed": { + "description": "Decreases the speed of a fan.", + "fields": { + "percentage_step": { + "description": "Percentage step by which the speed should be decreased.", + "name": "Decrement" + } + }, + "name": "Decrease speed" + }, + "increase_speed": { + "description": "Increases the speed of a fan.", + "fields": { + "percentage_step": { + "description": "Percentage step by which the speed should be increased.", + "name": "Increment" + } + }, + "name": "Increase speed" + }, + "oscillate": { + "description": "Controls the oscillation of a fan.", + "fields": { + "oscillating": { + "description": "Turns oscillation on/off.", + "name": "Oscillating" + } + }, + "name": "Oscillate" + }, + "set_direction": { + "description": "Sets a fan's rotation direction.", + "fields": { + "direction": { + "description": "Direction of the fan rotation.", + "name": "Direction" + } + }, + "name": "Set direction" + }, + "set_percentage": { + "description": "Sets the speed of a fan.", + "fields": { + "percentage": { + "description": "Speed of the fan.", + "name": "Percentage" + } + }, + "name": "Set speed" + }, + "set_preset_mode": { + "description": "Sets preset fan mode.", + "fields": { + "preset_mode": { + "description": "Preset fan mode.", + "name": "Preset mode" + } + }, + "name": "Set preset mode" + }, + "toggle": { + "description": "Toggles a fan on/off.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Turns fan off.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Turns fan on.", + "fields": { + "percentage": { + "description": "[%key:component::fan::services::set_percentage::fields::percentage::description%]", + "name": "[%key:component::fan::services::set_percentage::fields::percentage::name%]" + }, + "preset_mode": { + "description": "[%key:component::fan::services::set_preset_mode::fields::preset_mode::description%]", + "name": "[%key:component::fan::services::set_preset_mode::fields::preset_mode::name%]" + } + }, + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Fan" } diff --git a/homeassistant/components/fastdotcom/strings.json b/homeassistant/components/fastdotcom/strings.json index 36863f1a0a3..1efed4a1b62 100644 --- a/homeassistant/components/fastdotcom/strings.json +++ b/homeassistant/components/fastdotcom/strings.json @@ -1,12 +1,12 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "user": { "description": "Do you want to start the setup? The initial setup will take about 30-40 seconds." } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, "entity": { diff --git a/homeassistant/components/feedreader/strings.json b/homeassistant/components/feedreader/strings.json index 35022e82bb1..c6900b9ff81 100644 --- a/homeassistant/components/feedreader/strings.json +++ b/homeassistant/components/feedreader/strings.json @@ -1,24 +1,30 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]" - } - }, - "reconfigure": { - "description": "Update your configuration information for {name}.", - "data": { - "url": "[%key:common::config_flow::data::url%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "url_error": "The URL could not be opened." + }, + "step": { + "reconfigure": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + }, + "description": "Update your configuration information for {name}." + }, + "user": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + } + } + } + }, + "issues": { + "import_yaml_error_url_error": { + "description": "Configuring the Feedreader using YAML is being removed but there was a connection error when trying to import the YAML configuration for `{url}`.\n\nPlease verify that the URL is reachable and accessible for Home Assistant and restart Home Assistant to try again or remove the Feedreader YAML configuration from your configuration.yaml file and continue to set up the integration manually.", + "title": "The Feedreader YAML configuration import failed" } }, "options": { @@ -32,11 +38,5 @@ } } } - }, - "issues": { - "import_yaml_error_url_error": { - "title": "The Feedreader YAML configuration import failed", - "description": "Configuring the Feedreader using YAML is being removed but there was a connection error when trying to import the YAML configuration for `{url}`.\n\nPlease verify that the URL is reachable and accessible for Home Assistant and restart Home Assistant to try again or remove the Feedreader YAML configuration from your configuration.yaml file and continue to set up the integration manually." - } } } diff --git a/homeassistant/components/ffmpeg/strings.json b/homeassistant/components/ffmpeg/strings.json index cac7fcfc48c..e448faed131 100644 --- a/homeassistant/components/ffmpeg/strings.json +++ b/homeassistant/components/ffmpeg/strings.json @@ -1,34 +1,34 @@ { "services": { "restart": { - "name": "[%key:common::action::restart%]", "description": "Sends a restart command to an FFmpeg-based sensor.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name of entity that will restart. Platform dependent." + "description": "Name of entity that will restart. Platform dependent.", + "name": "Entity" } - } + }, + "name": "[%key:common::action::restart%]" }, "start": { - "name": "[%key:common::action::start%]", "description": "Sends a start command to an FFmpeg-based sensor.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name of entity that will start. Platform dependent." + "description": "Name of entity that will start. Platform dependent.", + "name": "Entity" } - } + }, + "name": "[%key:common::action::start%]" }, "stop": { - "name": "[%key:common::action::stop%]", "description": "Sends a stop command to an FFmpeg-based sensor.", "fields": { "entity_id": { - "name": "Entity", - "description": "Name of entity that will stop. Platform dependent." + "description": "Name of entity that will stop. Platform dependent.", + "name": "Entity" } - } + }, + "name": "[%key:common::action::stop%]" } } } diff --git a/homeassistant/components/fibaro/strings.json b/homeassistant/components/fibaro/strings.json index 99f718d545c..6d8188306f6 100644 --- a/homeassistant/components/fibaro/strings.json +++ b/homeassistant/components/fibaro/strings.json @@ -1,20 +1,15 @@ { "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": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "import_plugins": "Import entities from fibaro plugins / quickapps" - }, - "data_description": { - "url": "The URL of the Fibaro hub in the format `http(s)://IP`.", - "username": "The username of the Fibaro hub user.", - "password": "The password of the Fibaro hub user.", - "import_plugins": "Select if entities from Fibaro plugins / quickapps should be imported." - } - }, "reauth_confirm": { "data": { "password": "[%key:common::config_flow::data::password%]" @@ -22,18 +17,23 @@ "data_description": { "password": "[%key:component::fibaro::config::step::user::data_description::password%]" }, - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please update your password for {username}" + "description": "Please update your password for {username}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "import_plugins": "Import entities from fibaro plugins / quickapps", + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "import_plugins": "Select if entities from Fibaro plugins / quickapps should be imported.", + "password": "The password of the Fibaro hub user.", + "url": "The URL of the Fibaro hub in the format `http(s)://IP`.", + "username": "The username of the Fibaro hub user." + } } - }, - "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } } } diff --git a/homeassistant/components/file/strings.json b/homeassistant/components/file/strings.json index 66666b3dd7d..9ba3a0c3dcc 100644 --- a/homeassistant/components/file/strings.json +++ b/homeassistant/components/file/strings.json @@ -1,30 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "not_allowed": "Access to the selected file path is not allowed" + }, "step": { - "user": { - "description": "Make a choice", - "menu_options": { - "sensor": "Set up a file-based sensor", - "notify": "Set up a notification service" - } - }, - "sensor": { - "title": "File sensor", - "description": "[%key:component::file::config::step::user::menu_options::sensor%]", - "data": { - "file_path": "File path", - "value_template": "Value template", - "unit_of_measurement": "Unit of measurement" - }, - "data_description": { - "file_path": "The local file path to retrieve the sensor value from", - "value_template": "A template to render the sensor's value based on the file content", - "unit_of_measurement": "Unit of measurement for the sensor" - } - }, "notify": { - "title": "Notification to file service", - "description": "Set up a service that allows to write notification to a file.", "data": { "file_path": "[%key:component::file::config::step::sensor::data::file_path%]", "timestamp": "Timestamp" @@ -32,28 +15,29 @@ "data_description": { "file_path": "A local file path to write the notification to", "timestamp": "Add a timestamp to the notification" - } - } - }, - "error": { - "not_allowed": "Access to the selected file path is not allowed" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { - "step": { - "init": { + }, + "description": "Set up a service that allows to write notification to a file.", + "title": "Notification to file service" + }, + "sensor": { "data": { - "value_template": "[%key:component::file::config::step::sensor::data::value_template%]", - "unit_of_measurement": "[%key:component::file::config::step::sensor::data::unit_of_measurement%]", - "timestamp": "[%key:component::file::config::step::notify::data::timestamp%]" + "file_path": "File path", + "unit_of_measurement": "Unit of measurement", + "value_template": "Value template" }, "data_description": { - "value_template": "[%key:component::file::config::step::sensor::data_description::value_template%]", - "unit_of_measurement": "[%key:component::file::config::step::sensor::data_description::unit_of_measurement%]", - "timestamp": "[%key:component::file::config::step::notify::data_description::timestamp%]" + "file_path": "The local file path to retrieve the sensor value from", + "unit_of_measurement": "Unit of measurement for the sensor", + "value_template": "A template to render the sensor's value based on the file content" + }, + "description": "[%key:component::file::config::step::user::menu_options::sensor%]", + "title": "File sensor" + }, + "user": { + "description": "Make a choice", + "menu_options": { + "notify": "Set up a notification service", + "sensor": "Set up a file-based sensor" } } } @@ -62,15 +46,6 @@ "dir_not_allowed": { "message": "Access to {filename} is not allowed." }, - "write_access_failed": { - "message": "Write access to {filename} failed: {exc}." - }, - "no_access_to_path": { - "message": "Cannot read {filename}, no access to path; `allowlist_external_dirs` may need to be adjusted in `configuration.yaml`" - }, - "unsupported_file_encoding": { - "message": "Cannot read {filename}, unsupported file encoding {encoding}." - }, "file_decoding": { "message": "Cannot read file {filename} as {encoding}." }, @@ -79,22 +54,47 @@ }, "file_read_error": { "message": "Error reading {filename}." + }, + "no_access_to_path": { + "message": "Cannot read {filename}, no access to path; `allowlist_external_dirs` may need to be adjusted in `configuration.yaml`" + }, + "unsupported_file_encoding": { + "message": "Cannot read {filename}, unsupported file encoding {encoding}." + }, + "write_access_failed": { + "message": "Write access to {filename} failed: {exc}." + } + }, + "options": { + "step": { + "init": { + "data": { + "timestamp": "[%key:component::file::config::step::notify::data::timestamp%]", + "unit_of_measurement": "[%key:component::file::config::step::sensor::data::unit_of_measurement%]", + "value_template": "[%key:component::file::config::step::sensor::data::value_template%]" + }, + "data_description": { + "timestamp": "[%key:component::file::config::step::notify::data_description::timestamp%]", + "unit_of_measurement": "[%key:component::file::config::step::sensor::data_description::unit_of_measurement%]", + "value_template": "[%key:component::file::config::step::sensor::data_description::value_template%]" + } + } } }, "services": { "read_file": { - "name": "Read file", "description": "Reads a file and returns the contents.", "fields": { - "file_name": { - "name": "File name", - "description": "Name of the file to read." - }, "file_encoding": { - "name": "File encoding", - "description": "Encoding of the file (JSON, YAML.)" + "description": "Encoding of the file (JSON, YAML.)", + "name": "File encoding" + }, + "file_name": { + "description": "Name of the file to read.", + "name": "File name" } - } + }, + "name": "Read file" } } } diff --git a/homeassistant/components/filesize/icons.json b/homeassistant/components/filesize/icons.json index 059a51a9e34..e51bae43938 100644 --- a/homeassistant/components/filesize/icons.json +++ b/homeassistant/components/filesize/icons.json @@ -1,16 +1,16 @@ { "entity": { "sensor": { - "size": { - "default": "mdi:file" - }, - "size_bytes": { + "created": { "default": "mdi:file" }, "last_updated": { "default": "mdi:file" }, - "created": { + "size": { + "default": "mdi:file" + }, + "size_bytes": { "default": "mdi:file" } } diff --git a/homeassistant/components/filesize/strings.json b/homeassistant/components/filesize/strings.json index 6623cf9c375..edafdd51926 100644 --- a/homeassistant/components/filesize/strings.json +++ b/homeassistant/components/filesize/strings.json @@ -1,41 +1,41 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "not_allowed": "Path is not allowed", + "not_valid": "Path is not valid" + }, "step": { - "user": { - "data": { - "file_path": "Path to file" - } - }, "reconfigure": { "data": { "file_path": "[%key:component::filesize::config::step::user::data::file_path%]" } + }, + "user": { + "data": { + "file_path": "Path to file" + } } - }, - "error": { - "not_valid": "Path is not valid", - "not_allowed": "Path is not allowed" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, - "title": "Filesize", "entity": { "sensor": { + "created": { + "name": "Created" + }, + "last_updated": { + "name": "Last updated" + }, "size": { "name": "Size" }, "size_bytes": { "name": "Size in bytes" - }, - "last_updated": { - "name": "Last updated" - }, - "created": { - "name": "Created" } } - } + }, + "title": "Filesize" } diff --git a/homeassistant/components/filter/strings.json b/homeassistant/components/filter/strings.json index faa1de8b9df..2edf5b9cb4a 100644 --- a/homeassistant/components/filter/strings.json +++ b/homeassistant/components/filter/strings.json @@ -1,120 +1,119 @@ { - "title": "Filter", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "step": { - "user": { - "description": "Add a filter sensor. UI configuration is limited to a single filter, use YAML for filter chain.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "Entity", - "filter": "Filter" - }, - "data_description": { - "name": "Name for the created entity.", - "entity_id": "Entity to filter from.", - "filter": "Select filter to configure." - } - }, - "outlier": { - "description": "Read the documentation for further details on how to configure the filter sensor using these options.", - "data": { - "window_size": "Window size", - "precision": "Precision", - "radius": "Radius", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" - }, - "data_description": { - "window_size": "Size of the window of previous states.", - "precision": "Defines the number of decimal places of the calculated sensor value.", - "radius": "Band radius from median of previous states.", - "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } - }, "lowpass": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "time_constant": "Time constant", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", + "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "time_constant": "Loosely relates to the amount of time it takes for a state to influence the output.", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" + }, + "outlier": { + "data": { + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "Precision", + "radius": "Radius", + "window_size": "Window size" + }, + "data_description": { "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "Defines the number of decimal places of the calculated sensor value.", + "radius": "Band radius from median of previous states.", + "window_size": "Size of the window of previous states." + }, + "description": "Read the documentation for further details on how to configure the filter sensor using these options." }, "range": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", "lower_bound": "Lower bound", - "upper_bound": "Upper bound", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" - }, - "data_description": { - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", - "lower_bound": "Lower bound for filter range.", - "upper_bound": "Upper bound for filter range.", - "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } - }, - "time_simple_moving_average": { - "description": "[%key:component::filter::config::step::outlier::description%]", - "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]", - "type": "Type", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "upper_bound": "Upper bound" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", - "type": "Defines the type of Simple Moving Average.", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "lower_bound": "Lower bound for filter range.", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "upper_bound": "Upper bound for filter range." + }, + "description": "[%key:component::filter::config::step::outlier::description%]" }, "throttle": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" + }, + "time_simple_moving_average": { + "data": { + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "type": "Type", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" + }, + "data_description": { + "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "type": "Defines the type of Simple Moving Average.", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" }, "time_throttle": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" + }, + "user": { + "data": { + "entity_id": "Entity", + "filter": "Filter", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "entity_id": "Entity to filter from.", + "filter": "Select filter to configure.", + "name": "Name for the created entity." + }, + "description": "Add a filter sensor. UI configuration is limited to a single filter, use YAML for filter chain." } } }, @@ -123,115 +122,115 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "step": { - "outlier": { - "description": "[%key:component::filter::config::step::outlier::description%]", - "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", - "radius": "[%key:component::filter::config::step::outlier::data::radius%]", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" - }, - "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", - "radius": "[%key:component::filter::config::step::outlier::data_description::radius%]", - "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } - }, "lowpass": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "time_constant": "[%key:component::filter::config::step::lowpass::data::time_constant%]", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", + "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "time_constant": "[%key:component::filter::config::step::lowpass::data_description::time_constant%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" + }, + "outlier": { + "data": { + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "radius": "[%key:component::filter::config::step::outlier::data::radius%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" + }, + "data_description": { "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "radius": "[%key:component::filter::config::step::outlier::data_description::radius%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" }, "range": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", "lower_bound": "[%key:component::filter::config::step::range::data::lower_bound%]", - "upper_bound": "[%key:component::filter::config::step::range::data::upper_bound%]", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" - }, - "data_description": { - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", - "lower_bound": "[%key:component::filter::config::step::range::data_description::lower_bound%]", - "upper_bound": "[%key:component::filter::config::step::range::data_description::upper_bound%]", - "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } - }, - "time_simple_moving_average": { - "description": "[%key:component::filter::config::step::outlier::description%]", - "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", "precision": "[%key:component::filter::config::step::outlier::data::precision%]", - "type": "[%key:component::filter::config::step::time_simple_moving_average::data::type%]", - "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "upper_bound": "[%key:component::filter::config::step::range::data::upper_bound%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", - "type": "[%key:component::filter::config::step::time_simple_moving_average::data_description::type%]", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "lower_bound": "[%key:component::filter::config::step::range::data_description::lower_bound%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "upper_bound": "[%key:component::filter::config::step::range::data_description::upper_bound%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" }, "throttle": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" + }, + "time_simple_moving_average": { + "data": { + "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "type": "[%key:component::filter::config::step::time_simple_moving_average::data::type%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" + }, + "data_description": { + "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "type": "[%key:component::filter::config::step::time_simple_moving_average::data_description::type%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" }, "time_throttle": { - "description": "[%key:component::filter::config::step::outlier::description%]", "data": { - "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data::precision%]", "entity_id": "[%key:component::filter::config::step::user::data::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data::filter%]" + "filter": "[%key:component::filter::config::step::user::data::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data::window_size%]" }, "data_description": { - "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]", - "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", "entity_id": "[%key:component::filter::config::step::user::data_description::entity_id%]", - "filter": "[%key:component::filter::config::step::user::data_description::filter%]" - } + "filter": "[%key:component::filter::config::step::user::data_description::filter%]", + "precision": "[%key:component::filter::config::step::outlier::data_description::precision%]", + "window_size": "[%key:component::filter::config::step::outlier::data_description::window_size%]" + }, + "description": "[%key:component::filter::config::step::outlier::description%]" } } }, "selector": { "filter": { "options": { - "range": "Range", "lowpass": "Lowpass", "outlier": "Outlier", + "range": "Range", "throttle": "Throttle", - "time_throttle": "Time throttle", - "time_simple_moving_average": "Moving average (time-based)" + "time_simple_moving_average": "Moving average (time-based)", + "time_throttle": "Time throttle" } }, "type": { @@ -242,8 +241,9 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads filters from the YAML-configuration." + "description": "Reloads filters from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Filter" } diff --git a/homeassistant/components/fing/strings.json b/homeassistant/components/fing/strings.json index 347deb1fbdb..abc037b2e3b 100644 --- a/homeassistant/components/fing/strings.json +++ b/homeassistant/components/fing/strings.json @@ -1,31 +1,31 @@ { "config": { - "step": { - "user": { - "title": "Set up Fing agent", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "ip_address": "IP address of the Fing agent.", - "port": "Port number of the Fing API.", - "api_key": "API key used to authenticate with the Fing API." - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "url_error": "[%key:common::config_flow::error::invalid_host%]", - "http_status_error": "HTTP request failed: {message}" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "api_version_error": "Your agent is using an outdated API version. The required 'network_id' parameter is missing. Please update to the latest API version." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "http_status_error": "HTTP request failed: {message}", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "url_error": "[%key:common::config_flow::error::invalid_host%]" + }, + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "ip_address": "[%key:common::config_flow::data::ip%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "api_key": "API key used to authenticate with the Fing API.", + "ip_address": "IP address of the Fing agent.", + "port": "Port number of the Fing API." + }, + "title": "Set up Fing agent" + } } } } diff --git a/homeassistant/components/firefly_iii/icons.json b/homeassistant/components/firefly_iii/icons.json index 3a7d777e2e8..a6f2195dfc7 100644 --- a/homeassistant/components/firefly_iii/icons.json +++ b/homeassistant/components/firefly_iii/icons.json @@ -1,20 +1,20 @@ { "entity": { "sensor": { - "account_type": { - "default": "mdi:bank" - }, "account_balance": { "default": "mdi:currency-usd" }, "account_role": { "default": "mdi:account-circle" }, - "category": { - "default": "mdi:label" + "account_type": { + "default": "mdi:bank" }, "budget": { "default": "mdi:chart-pie" + }, + "category": { + "default": "mdi:label" } } } diff --git a/homeassistant/components/firefly_iii/strings.json b/homeassistant/components/firefly_iii/strings.json index c18e022a0ba..4e097810335 100644 --- a/homeassistant/components/firefly_iii/strings.json +++ b/homeassistant/components/firefly_iii/strings.json @@ -1,19 +1,16 @@ { "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%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "The API key for authenticating with Firefly", - "verify_ssl": "Verify the SSL certificate of the Firefly instance" - }, - "description": "You can create an API key in the Firefly UI. Go to **Options > Profile** and select the **OAuth** tab. Create a new personal access token and copy it (it will only display once)." - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" @@ -22,17 +19,52 @@ "api_key": "The new API access token for authenticating with Firefly III" }, "description": "The access token for your Firefly III instance is invalid and needs to be updated. Go to **Options > Profile** and select the **OAuth** tab. Create a new personal access token and copy it (it will only display once)." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "The API key for authenticating with Firefly", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "Verify the SSL certificate of the Firefly instance" + }, + "description": "You can create an API key in the Firefly UI. Go to **Options > Profile** and select the **OAuth** tab. Create a new personal access token and copy it (it will only display once)." + } + } + }, + "entity": { + "sensor": { + "account_balance": { + "name": "Account Balance" + }, + "account_role": { + "name": "Account Role", + "state": { + "cash_wallet_asset": "Cash wallet asset", + "cc_asset": "Credit card asset", + "default_asset": "Default asset", + "saving_asset": "Saving asset", + "shared_asset": "Shared asset" + } + }, + "account_type": { + "name": "Account Type", + "state": { + "asset": "Asset", + "expense": "Expense", + "liability": "Liability", + "revenue": "Revenue" + } + }, + "budget": { + "name": "Budget" + }, + "category": { + "name": "Earned/Spent" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "exceptions": { @@ -45,37 +77,5 @@ "timeout_connect": { "message": "A timeout occurred while trying to connect to the Firefly instance: {error}" } - }, - "entity": { - "sensor": { - "account_balance": { - "name": "Account Balance" - }, - "account_role": { - "name": "Account Role", - "state": { - "default_asset": "Default asset", - "shared_asset": "Shared asset", - "saving_asset": "Saving asset", - "cc_asset": "Credit card asset", - "cash_wallet_asset": "Cash wallet asset" - } - }, - "account_type": { - "name": "Account Type", - "state": { - "asset": "Asset", - "expense": "Expense", - "revenue": "Revenue", - "liability": "Liability" - } - }, - "category": { - "name": "Earned/Spent" - }, - "budget": { - "name": "Budget" - } - } } } diff --git a/homeassistant/components/fireservicerota/strings.json b/homeassistant/components/fireservicerota/strings.json index 9a23161b7ec..bb874de8bb2 100644 --- a/homeassistant/components/fireservicerota/strings.json +++ b/homeassistant/components/fireservicerota/strings.json @@ -1,29 +1,29 @@ { "config": { - "step": { - "user": { - "data": { - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]", - "url": "Website" - } - }, - "reauth_confirm": { - "description": "Authentication tokens became invalid, log in to recreate them.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Authentication tokens became invalid, log in to recreate them." + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "Website", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { diff --git a/homeassistant/components/fitbit/strings.json b/homeassistant/components/fitbit/strings.json index 37e1259a35c..c84d4acd585 100644 --- a/homeassistant/components/fitbit/strings.json +++ b/homeassistant/components/fitbit/strings.json @@ -1,23 +1,5 @@ { "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "auth": { - "title": "Link Fitbit" - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Fitbit integration needs to re-authenticate your account" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -26,27 +8,59 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "The user credentials provided do not match this Fitbit account.", + "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]" + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "wrong_account": "The user credentials provided do not match this Fitbit account." }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "step": { + "auth": { + "title": "Link Fitbit" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The Fitbit integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } + } + }, + "device": { + "tracker": { + "name": "{display_name} tracker" } }, "entity": { "sensor": { + "activity_calories": { + "name": "Activity calories" + }, + "awakenings_count": { + "name": "Awakenings count" + }, "battery": { "name": "Battery" }, "battery_level": { "name": "Battery level" }, - "activity_calories": { - "name": "Activity calories" + "bmi": { + "name": "BMI" + }, + "body_fat": { + "name": "Body fat" }, "calories": { "name": "Calories" @@ -54,14 +68,17 @@ "calories_bmr": { "name": "Calories BMR" }, + "calories_in": { + "name": "Calories in" + }, "elevation": { "name": "Elevation" }, "floors": { "name": "Floors" }, - "resting_heart_rate": { - "name": "Resting heart rate" + "minutes_after_wakeup": { + "name": "Minutes after wakeup" }, "minutes_fairly_active": { "name": "Minutes fairly active" @@ -75,27 +92,12 @@ "minutes_very_active": { "name": "Minutes very active" }, - "sleep_start_time": { - "name": "Sleep start time" - }, - "steps": { - "name": "Steps" - }, - "bmi": { - "name": "BMI" - }, - "body_fat": { - "name": "Body fat" - }, - "awakenings_count": { - "name": "Awakenings count" + "resting_heart_rate": { + "name": "Resting heart rate" }, "sleep_efficiency": { "name": "Sleep efficiency" }, - "minutes_after_wakeup": { - "name": "Minutes after wakeup" - }, "sleep_minutes_asleep": { "name": "Sleep minutes asleep" }, @@ -105,21 +107,18 @@ "sleep_minutes_to_fall_asleep": { "name": "Sleep minutes to fall asleep" }, + "sleep_start_time": { + "name": "Sleep start time" + }, "sleep_time_in_bed": { "name": "Sleep time in bed" }, - "calories_in": { - "name": "Calories in" + "steps": { + "name": "Steps" }, "water": { "name": "Water" } } - }, - - "device": { - "tracker": { - "name": "{display_name} tracker" - } } } diff --git a/homeassistant/components/fivem/strings.json b/homeassistant/components/fivem/strings.json index f925a625259..01135e132e6 100644 --- a/homeassistant/components/fivem/strings.json +++ b/homeassistant/components/fivem/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "The hostname or IP address of your FiveM server." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "Failed to connect. Please check the host and port and try again. Also ensure that you are running the latest FiveM server.", "invalid_game_name": "The API of the game you are trying to connect to is not a FiveM game.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "The hostname or IP address of your FiveM server." + } + } } }, "entity": { diff --git a/homeassistant/components/fjaraskupan/manifest.json b/homeassistant/components/fjaraskupan/manifest.json index 2691ac7ff44..5aac42b5ed3 100644 --- a/homeassistant/components/fjaraskupan/manifest.json +++ b/homeassistant/components/fjaraskupan/manifest.json @@ -4,8 +4,8 @@ "bluetooth": [ { "connectable": false, - "manufacturer_id": 20296, - "manufacturer_data_start": [79, 68, 70, 74, 65, 82] + "manufacturer_data_start": [79, 68, 70, 74, 65, 82], + "manufacturer_id": 20296 } ], "codeowners": ["@elupus"], diff --git a/homeassistant/components/fjaraskupan/strings.json b/homeassistant/components/fjaraskupan/strings.json index 024152a0a00..9f02109dcf6 100644 --- a/homeassistant/components/fjaraskupan/strings.json +++ b/homeassistant/components/fjaraskupan/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up Fjäråskupan?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "entity": { "binary_sensor": { - "grease_filter": { - "name": "Grease filter" - }, "carbon_filter": { "name": "Carbon filter" + }, + "grease_filter": { + "name": "Grease filter" } }, "number": { @@ -26,17 +26,17 @@ } }, "exceptions": { - "write_error": { - "message": "Failed to write data to device" + "connection_error": { + "message": "Failed to connect to device" }, "read_error": { "message": "Failed to read data from device" }, - "connection_error": { - "message": "Failed to connect to device" - }, "unexpected_error": { "message": "Unexpected error occurred: {msg}" + }, + "write_error": { + "message": "Failed to write data to device" } } } diff --git a/homeassistant/components/flexit_bacnet/icons.json b/homeassistant/components/flexit_bacnet/icons.json index d03cffab9ad..41cbc0fd121 100644 --- a/homeassistant/components/flexit_bacnet/icons.json +++ b/homeassistant/components/flexit_bacnet/icons.json @@ -16,6 +16,9 @@ "fireplace_extract_fan_setpoint": { "default": "mdi:fan-minus" }, + "fireplace_mode_runtime": { + "default": "mdi:fireplace" + }, "fireplace_supply_fan_setpoint": { "default": "mdi:fan-plus" }, @@ -30,12 +33,15 @@ }, "home_supply_fan_setpoint": { "default": "mdi:fan-plus" - }, - "fireplace_mode_runtime": { - "default": "mdi:fireplace" } }, "switch": { + "cooker_hood_mode": { + "default": "mdi:kettle-steam", + "state": { + "off": "mdi:kettle" + } + }, "electric_heater": { "default": "mdi:radiator", "state": { @@ -47,12 +53,6 @@ "state": { "off": "mdi:fireplace-off" } - }, - "cooker_hood_mode": { - "default": "mdi:kettle-steam", - "state": { - "off": "mdi:kettle" - } } } } diff --git a/homeassistant/components/flexit_bacnet/strings.json b/homeassistant/components/flexit_bacnet/strings.json index 6364d59e4e8..fd8359ce64b 100644 --- a/homeassistant/components/flexit_bacnet/strings.json +++ b/homeassistant/components/flexit_bacnet/strings.json @@ -1,23 +1,23 @@ { "config": { - "step": { - "user": { - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "device_id": "[%key:common::config_flow::data::device%]" - }, - "data_description": { - "ip_address": "The IP address of the Flexit Nordic device", - "device_id": "The device ID of the Flexit Nordic device" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "device_id": "[%key:common::config_flow::data::device%]", + "ip_address": "[%key:common::config_flow::data::ip%]" + }, + "data_description": { + "device_id": "The device ID of the Flexit Nordic device", + "ip_address": "The IP address of the Flexit Nordic device" + } + } } }, "entity": { @@ -42,6 +42,9 @@ "fireplace_extract_fan_setpoint": { "name": "Fireplace extract fan setpoint" }, + "fireplace_mode_runtime": { + "name": "Fireplace mode runtime" + }, "fireplace_supply_fan_setpoint": { "name": "Fireplace supply fan setpoint" }, @@ -56,38 +59,14 @@ }, "home_supply_fan_setpoint": { "name": "Home supply fan setpoint" - }, - "fireplace_mode_runtime": { - "name": "Fireplace mode runtime" } }, "sensor": { - "outside_air_temperature": { - "name": "Outside air temperature" + "air_filter_operating_time": { + "name": "Air filter operating time" }, - "supply_air_temperature": { - "name": "Supply air temperature" - }, - "exhaust_air_temperature": { - "name": "Exhaust air temperature" - }, - "extract_air_temperature": { - "name": "Extract air temperature" - }, - "room_temperature": { - "name": "Room temperature" - }, - "fireplace_ventilation_remaining_duration": { - "name": "Fireplace ventilation remaining duration" - }, - "rapid_ventilation_remaining_duration": { - "name": "Rapid ventilation remaining duration" - }, - "supply_air_fan_control_signal": { - "name": "Supply air fan control signal" - }, - "supply_air_fan_rpm": { - "name": "Supply air fan" + "electric_heater_power": { + "name": "Electric heater power" }, "exhaust_air_fan_control_signal": { "name": "Exhaust air fan control signal" @@ -95,37 +74,58 @@ "exhaust_air_fan_rpm": { "name": "Exhaust air fan" }, - "electric_heater_power": { - "name": "Electric heater power" + "exhaust_air_temperature": { + "name": "Exhaust air temperature" }, - "air_filter_operating_time": { - "name": "Air filter operating time" + "extract_air_temperature": { + "name": "Extract air temperature" + }, + "fireplace_ventilation_remaining_duration": { + "name": "Fireplace ventilation remaining duration" }, "heat_exchanger_efficiency": { "name": "Heat exchanger efficiency" }, "heat_exchanger_speed": { "name": "Heat exchanger speed" + }, + "outside_air_temperature": { + "name": "Outside air temperature" + }, + "rapid_ventilation_remaining_duration": { + "name": "Rapid ventilation remaining duration" + }, + "room_temperature": { + "name": "Room temperature" + }, + "supply_air_fan_control_signal": { + "name": "Supply air fan control signal" + }, + "supply_air_fan_rpm": { + "name": "Supply air fan" + }, + "supply_air_temperature": { + "name": "Supply air temperature" } }, "switch": { + "cooker_hood_mode": { + "name": "Cooker hood mode" + }, "electric_heater": { "name": "Electric heater" }, "fireplace_mode": { "name": "Fireplace mode" - }, - "cooker_hood_mode": { - "name": "Cooker hood mode" } } }, "exceptions": { - "set_value_error": { - "message": "Failed setting the value {value}." + "not_ready": { + "message": "Timeout while connecting to {ip}." }, - "switch_turn": { - "message": "Failed to turn the switch {state}." + "set_hvac_mode": { + "message": "Failed to set HVAC mode {mode}." }, "set_preset_mode": { "message": "Failed to set preset mode {preset}." @@ -133,11 +133,11 @@ "set_temperature": { "message": "Failed to set temperature {temperature}." }, - "set_hvac_mode": { - "message": "Failed to set HVAC mode {mode}." + "set_value_error": { + "message": "Failed setting the value {value}." }, - "not_ready": { - "message": "Timeout while connecting to {ip}." + "switch_turn": { + "message": "Failed to turn the switch {state}." } } } diff --git a/homeassistant/components/flick_electric/strings.json b/homeassistant/components/flick_electric/strings.json index 4b1fd300e2b..5f05883d679 100644 --- a/homeassistant/components/flick_electric/strings.json +++ b/homeassistant/components/flick_electric/strings.json @@ -1,32 +1,32 @@ { "config": { - "step": { - "user": { - "title": "Flick Login Credentials", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "client_id": "Client ID (optional)", - "client_secret": "Client Secret (optional)" - } - }, - "select_account": { - "title": "Select account", - "data": { - "account_id": "Account" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "no_accounts": "No services are active on this Flick account", + "no_permissions": "Cannot get pricing for this account. Please check user permissions.", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "no_permissions": "Cannot get pricing for this account. Please check user permissions.", - "no_accounts": "No services are active on this Flick account" + "step": { + "select_account": { + "data": { + "account_id": "Account" + }, + "title": "Select account" + }, + "user": { + "data": { + "client_id": "Client ID (optional)", + "client_secret": "Client Secret (optional)", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Flick Login Credentials" + } } }, "entity": { diff --git a/homeassistant/components/flipr/strings.json b/homeassistant/components/flipr/strings.json index 5c1a55e8b2a..6613a177b55 100644 --- a/homeassistant/components/flipr/strings.json +++ b/homeassistant/components/flipr/strings.json @@ -1,43 +1,29 @@ { "config": { - "step": { - "user": { - "title": "Connect to Flipr", - "description": "Connect using your Flipr account.", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "no_flipr_id_found": "No Flipr or hub associated to your account for now. You should verify it is working with the Flipr mobile app first." + "no_flipr_id_found": "No Flipr or hub associated to your account for now. You should verify it is working with the Flipr mobile app first.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Connect using your Flipr account.", + "title": "Connect to Flipr" + } } }, "entity": { "binary_sensor": { - "ph_status": { - "name": "pH status" - }, "chlorine_status": { "name": "Chlorine status" - } - }, - "sensor": { - "chlorine": { - "name": "Chlorine" }, - "water_temperature": { - "name": "Water temperature" - }, - "last_measured": { - "name": "Last measured" - }, - "red_ox": { - "name": "Red OX" + "ph_status": { + "name": "pH status" } }, "select": { @@ -49,6 +35,20 @@ "planning": "Planning" } } + }, + "sensor": { + "chlorine": { + "name": "Chlorine" + }, + "last_measured": { + "name": "Last measured" + }, + "red_ox": { + "name": "Red OX" + }, + "water_temperature": { + "name": "Water temperature" + } } } } diff --git a/homeassistant/components/flo/icons.json b/homeassistant/components/flo/icons.json index 4bd0380c56c..30d4aae0945 100644 --- a/homeassistant/components/flo/icons.json +++ b/homeassistant/components/flo/icons.json @@ -10,8 +10,8 @@ } }, "services": { - "set_sleep_mode": { - "service": "mdi:sleep" + "run_health_test": { + "service": "mdi:heart-flash" }, "set_away_mode": { "service": "mdi:home-off" @@ -19,8 +19,8 @@ "set_home_mode": { "service": "mdi:home" }, - "run_health_test": { - "service": "mdi:heart-flash" + "set_sleep_mode": { + "service": "mdi:sleep" } } } diff --git a/homeassistant/components/flo/strings.json b/homeassistant/components/flo/strings.json index 64e22bedec3..de98b118bbc 100644 --- a/homeassistant/components/flo/strings.json +++ b/homeassistant/components/flo/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Flo device." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Flo device." + } + } } }, "entity": { @@ -31,20 +31,20 @@ } }, "sensor": { - "daily_consumption": { - "name": "Today's water usage" + "current_flow_rate": { + "name": "Water flow rate" }, "current_system_mode": { "name": "Current system mode" }, - "current_flow_rate": { - "name": "Water flow rate" - }, - "water_temperature": { - "name": "Water temperature" + "daily_consumption": { + "name": "Today's water usage" }, "water_pressure": { "name": "Water pressure" + }, + "water_temperature": { + "name": "Water temperature" } }, "switch": { @@ -54,31 +54,31 @@ } }, "services": { - "set_sleep_mode": { - "name": "Set sleep mode", - "description": "Sets the location into sleep mode.", - "fields": { - "sleep_minutes": { - "name": "Sleep minutes", - "description": "The duration to sleep in minutes." - }, - "revert_to_mode": { - "name": "Revert to mode", - "description": "The mode to revert to after the 'Sleep minutes' duration has elapsed." - } - } + "run_health_test": { + "description": "Requests the Flo device to run a health test.", + "name": "Run health test" }, "set_away_mode": { - "name": "Set away mode", - "description": "Sets the location into away mode." + "description": "Sets the location into away mode.", + "name": "Set away mode" }, "set_home_mode": { - "name": "Set home mode", - "description": "Sets the location into home mode." + "description": "Sets the location into home mode.", + "name": "Set home mode" }, - "run_health_test": { - "name": "Run health test", - "description": "Requests the Flo device to run a health test." + "set_sleep_mode": { + "description": "Sets the location into sleep mode.", + "fields": { + "revert_to_mode": { + "description": "The mode to revert to after the 'Sleep minutes' duration has elapsed.", + "name": "Revert to mode" + }, + "sleep_minutes": { + "description": "The duration to sleep in minutes.", + "name": "Sleep minutes" + } + }, + "name": "Set sleep mode" } } } diff --git a/homeassistant/components/flume/icons.json b/homeassistant/components/flume/icons.json index 90830943689..ea1a7d81aca 100644 --- a/homeassistant/components/flume/icons.json +++ b/homeassistant/components/flume/icons.json @@ -1,11 +1,11 @@ { "entity": { "binary_sensor": { - "leak": { - "default": "mdi:pipe-leak" - }, "flow": { "default": "mdi:waves" + }, + "leak": { + "default": "mdi:pipe-leak" } } }, diff --git a/homeassistant/components/flume/strings.json b/homeassistant/components/flume/strings.json index e138da2c4f0..8a6630a05d1 100644 --- a/homeassistant/components/flume/strings.json +++ b/homeassistant/components/flume/strings.json @@ -1,77 +1,77 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "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%]" }, "step": { - "user": { - "description": "In order to access the Flume Personal API, you will need to request a 'Client ID' and 'Client Secret' at {api_url}", - "title": "Connect to your Flume account", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "client_secret": "Client Secret", - "client_id": "Client ID", - "password": "[%key:common::config_flow::data::password%]" - } - }, "reauth_confirm": { - "description": "The password for {username} is no longer valid.", - "title": "Reauthenticate your Flume account", "data": { "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "The password for {username} is no longer valid.", + "title": "Reauthenticate your Flume account" + }, + "user": { + "data": { + "client_id": "Client ID", + "client_secret": "Client Secret", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "In order to access the Flume Personal API, you will need to request a 'Client ID' and 'Client Secret' at {api_url}", + "title": "Connect to your Flume account" } - }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" } }, "entity": { "binary_sensor": { - "leak": { - "name": "Leak detected" - }, "flow": { "name": "High flow" + }, + "leak": { + "name": "Leak detected" } }, "sensor": { "current_interval": { "name": "Current" }, - "month_to_date": { - "name": "Current month" - }, - "week_to_date": { - "name": "Current week" - }, - "today": { - "name": "Current day" - }, - "last_60_min": { - "name": "60 minutes" - }, "last_24_hrs": { "name": "24 hours" }, "last_30_days": { "name": "30 days" + }, + "last_60_min": { + "name": "60 minutes" + }, + "month_to_date": { + "name": "Current month" + }, + "today": { + "name": "Current day" + }, + "week_to_date": { + "name": "Current week" } } }, "services": { "list_notifications": { - "name": "List notifications", "description": "Returns a list of fetched user notifications.", "fields": { "config_entry": { - "name": "Flume", - "description": "The Flume config entry for which to return notifications." + "description": "The Flume config entry for which to return notifications.", + "name": "Flume" } - } + }, + "name": "List notifications" } } } diff --git a/homeassistant/components/flux_led/icons.json b/homeassistant/components/flux_led/icons.json index 07c27869ff7..f5a64f8acbc 100644 --- a/homeassistant/components/flux_led/icons.json +++ b/homeassistant/components/flux_led/icons.json @@ -9,26 +9,26 @@ "effect_speed": { "default": "mdi:speedometer" }, - "pixels_per_segment": { - "default": "mdi:dots-grid" - }, - "segments": { - "default": "mdi:segment" - }, "music_pixels_per_segment": { "default": "mdi:dots-grid" }, "music_segments": { "default": "mdi:segment" + }, + "pixels_per_segment": { + "default": "mdi:dots-grid" + }, + "segments": { + "default": "mdi:segment" } }, "select": { - "power_restored": { - "default": "mdi:transmission-tower-off" - }, "ic_type": { "default": "mdi:chip" }, + "power_restored": { + "default": "mdi:transmission-tower-off" + }, "wiring": { "default": "mdi:led-strip-variant" } @@ -39,17 +39,17 @@ } }, "switch": { - "remote_access": { - "default": "mdi:cloud-off-outline", - "state": { - "on": "mdi:cloud-outline" - } - }, "music": { "default": "mdi:microphone-off", "state": { "on": "mdi:microphone" } + }, + "remote_access": { + "default": "mdi:cloud-off-outline", + "state": { + "on": "mdi:cloud-outline" + } } } }, @@ -57,11 +57,11 @@ "set_custom_effect": { "service": "mdi:creation" }, - "set_zones": { - "service": "mdi:texture-box" - }, "set_music_mode": { "service": "mdi:music" + }, + "set_zones": { + "service": "mdi:texture-box" } } } diff --git a/homeassistant/components/flux_led/manifest.json b/homeassistant/components/flux_led/manifest.json index 2c5e1b3839e..6da2326d15f 100644 --- a/homeassistant/components/flux_led/manifest.json +++ b/homeassistant/components/flux_led/manifest.json @@ -9,32 +9,32 @@ "registered_devices": true }, { - "macaddress": "18B905*", - "hostname": "[ba][lk]*" + "hostname": "[ba][lk]*", + "macaddress": "18B905*" }, { - "macaddress": "249494*", - "hostname": "[ba][lk]*" + "hostname": "[ba][lk]*", + "macaddress": "249494*" }, { - "macaddress": "7CB94C*", - "hostname": "[ba][lk]*" + "hostname": "[ba][lk]*", + "macaddress": "7CB94C*" }, { - "macaddress": "ACCF23*", - "hostname": "[hba][flk]*" + "hostname": "[hba][flk]*", + "macaddress": "ACCF23*" }, { - "macaddress": "B4E842*", - "hostname": "[ba][lk]*" + "hostname": "[ba][lk]*", + "macaddress": "B4E842*" }, { - "macaddress": "F0FE6B*", - "hostname": "[hba][flk]*" + "hostname": "[hba][flk]*", + "macaddress": "F0FE6B*" }, { - "macaddress": "8CCE4E*", - "hostname": "lwip*" + "hostname": "lwip*", + "macaddress": "8CCE4E*" }, { "hostname": "hf-lpb100-zj*" @@ -46,8 +46,8 @@ "hostname": "zengge" }, { - "macaddress": "C82E47*", - "hostname": "sta*" + "hostname": "sta*", + "macaddress": "C82E47*" } ], "documentation": "https://www.home-assistant.io/integrations/flux_led", diff --git a/homeassistant/components/flux_led/strings.json b/homeassistant/components/flux_led/strings.json index 8f4517ff722..ea1d083c504 100644 --- a/homeassistant/components/flux_led/strings.json +++ b/homeassistant/components/flux_led/strings.json @@ -1,35 +1,23 @@ { "config": { - "flow_title": "{model} {id} ({ipaddr})", - "step": { - "user": { - "description": "If you leave the host empty, discovery will be used to find devices.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up {model} {id} ({ipaddr})?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" - } - }, - "options": { + "flow_title": "{model} {id} ({ipaddr})", "step": { - "init": { + "discovery_confirm": { + "description": "Do you want to set up {model} {id} ({ipaddr})?" + }, + "user": { "data": { - "mode": "The chosen brightness mode.", - "custom_effect_colors": "Custom Effect: List of 1 to 16 [R,G,B] colors. Example: [255,0,255],[60,128,0]", - "custom_effect_speed_pct": "Custom Effect: Speed in percentage for the effects that switch colors.", - "custom_effect_transition": "Custom Effect: Type of transition between the colors." - } + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "If you leave the host empty, discovery will be used to find devices." } } }, @@ -40,11 +28,8 @@ } }, "number": { - "pixels_per_segment": { - "name": "Pixels per segment" - }, - "segments": { - "name": "Segments" + "effect_speed": { + "name": "Effect speed" }, "music_pixels_per_segment": { "name": "Music pixels per segment" @@ -52,19 +37,22 @@ "music_segments": { "name": "Music segments" }, - "effect_speed": { - "name": "Effect speed" + "pixels_per_segment": { + "name": "Pixels per segment" + }, + "segments": { + "name": "Segments" } }, "select": { + "ic_type": { + "name": "IC type" + }, "operating_mode": { "name": "Operating mode" }, - "wiring": { - "name": "Wiring" - }, - "ic_type": { - "name": "IC type" + "power_restored": { + "name": "Power restored" }, "remote_config": { "name": "Remote config" @@ -72,8 +60,8 @@ "white_channel": { "name": "White channel" }, - "power_restored": { - "name": "Power restored" + "wiring": { + "name": "Wiring" } }, "sensor": { @@ -82,80 +70,92 @@ } }, "switch": { - "remote_access": { - "name": "Remote access" - }, "music": { "name": "Music" + }, + "remote_access": { + "name": "Remote access" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "custom_effect_colors": "Custom Effect: List of 1 to 16 [R,G,B] colors. Example: [255,0,255],[60,128,0]", + "custom_effect_speed_pct": "Custom Effect: Speed in percentage for the effects that switch colors.", + "custom_effect_transition": "Custom Effect: Type of transition between the colors.", + "mode": "The chosen brightness mode." + } } } }, "services": { "set_custom_effect": { - "name": "Set custom effect", "description": "Sets a custom light effect.", "fields": { "colors": { - "name": "Colors", - "description": "List of colors for the custom effect (RGB). (Max 16 Colors)." + "description": "List of colors for the custom effect (RGB). (Max 16 Colors).", + "name": "Colors" }, "speed_pct": { - "name": "Speed", - "description": "The speed of the effect in % (0-100, default 50)." + "description": "The speed of the effect in % (0-100, default 50).", + "name": "Speed" }, "transition": { - "name": "Transition", - "description": "Effect transition." + "description": "Effect transition.", + "name": "Transition" } - } + }, + "name": "Set custom effect" + }, + "set_music_mode": { + "description": "Configures music mode on Controller RGB with MIC (0x08), Addressable v2 (0xA2), and Addressable v3 (0xA3) devices that have a built-in microphone.", + "fields": { + "background_color": { + "description": "The background RGB color (Addressable models only).", + "name": "Background color" + }, + "brightness": { + "description": "Light brightness (0-100).", + "name": "Brightness" + }, + "effect": { + "description": "Effect (1-16 on Addressable models, 0-3 on RGB with MIC models).", + "name": "Effect" + }, + "foreground_color": { + "description": "The foreground RGB color.", + "name": "Foreground color" + }, + "light_screen": { + "description": "Light screen mode for 2 dimensional pixels (Addressable models only).", + "name": "Light screen" + }, + "sensitivity": { + "description": "Microphone sensitivity (0-100).", + "name": "Sensitivity" + } + }, + "name": "Set music mode" }, "set_zones": { - "name": "Set zones", "description": "Sets strip zones for Addressable v3 controllers (0xA3).", "fields": { "colors": { - "name": "[%key:component::flux_led::services::set_custom_effect::fields::colors::name%]", - "description": "List of colors for each zone (RGB). The length of each zone is the number of pixels per segment divided by the number of colors. (Max 2048 Colors)." + "description": "List of colors for each zone (RGB). The length of each zone is the number of pixels per segment divided by the number of colors. (Max 2048 Colors).", + "name": "[%key:component::flux_led::services::set_custom_effect::fields::colors::name%]" + }, + "effect": { + "description": "Effect.", + "name": "Effect" }, "speed_pct": { - "name": "Speed", - "description": "[%key:component::flux_led::services::set_custom_effect::fields::speed_pct::description%]" - }, - "effect": { - "name": "Effect", - "description": "Effect." + "description": "[%key:component::flux_led::services::set_custom_effect::fields::speed_pct::description%]", + "name": "Speed" } - } - }, - "set_music_mode": { - "name": "Set music mode", - "description": "Configures music mode on Controller RGB with MIC (0x08), Addressable v2 (0xA2), and Addressable v3 (0xA3) devices that have a built-in microphone.", - "fields": { - "sensitivity": { - "name": "Sensitivity", - "description": "Microphone sensitivity (0-100)." - }, - "brightness": { - "name": "Brightness", - "description": "Light brightness (0-100)." - }, - "light_screen": { - "name": "Light screen", - "description": "Light screen mode for 2 dimensional pixels (Addressable models only)." - }, - "effect": { - "name": "Effect", - "description": "Effect (1-16 on Addressable models, 0-3 on RGB with MIC models)." - }, - "foreground_color": { - "name": "Foreground color", - "description": "The foreground RGB color." - }, - "background_color": { - "name": "Background color", - "description": "The background RGB color (Addressable models only)." - } - } + }, + "name": "Set zones" } } } diff --git a/homeassistant/components/folder_watcher/strings.json b/homeassistant/components/folder_watcher/strings.json index 5b1f72bf254..a8f36bc6aa8 100644 --- a/homeassistant/components/folder_watcher/strings.json +++ b/homeassistant/components/folder_watcher/strings.json @@ -4,9 +4,9 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { + "not_allowed_dir": "Configured path is not in allowlist", "not_dir": "Configured path is not a directory", - "not_readable_dir": "Configured path is not readable", - "not_allowed_dir": "Configured path is not in allowlist" + "not_readable_dir": "Configured path is not readable" }, "step": { "user": { @@ -21,6 +21,31 @@ } } }, + "entity": { + "sensor": { + "folder_watcher": { + "state_attributes": { + "dest_file": { "name": "Destination file" }, + "dest_folder": { "name": "Destination folder" }, + "dest_path": { "name": "Destination path" }, + "event_type": { "name": "Event type" }, + "file": { "name": "File" }, + "folder": { "name": "Folder" }, + "path": { "name": "Path" } + } + } + } + }, + "issues": { + "import_failed_not_allowed_path": { + "description": "Configuring Folder Watcher using YAML is being removed but your configuration could not be imported as the folder {path} is not in the configured allowlist.\n\nPlease add it to `{config_variable}` in configuration.yaml and restart Home Assistant to import it and fix this issue.", + "title": "The Folder Watcher YAML configuration could not be imported" + }, + "setup_not_allowed_path": { + "description": "The path {path} is not accessible or not allowed to be accessed.\n\nPlease check the path is accessible and add it to `{config_variable}` in configuration.yaml and restart Home Assistant to fix this issue.", + "title": "The Folder Watcher configuration for {path} could not start" + } + }, "options": { "step": { "init": { @@ -32,30 +57,5 @@ } } } - }, - "issues": { - "import_failed_not_allowed_path": { - "title": "The Folder Watcher YAML configuration could not be imported", - "description": "Configuring Folder Watcher using YAML is being removed but your configuration could not be imported as the folder {path} is not in the configured allowlist.\n\nPlease add it to `{config_variable}` in configuration.yaml and restart Home Assistant to import it and fix this issue." - }, - "setup_not_allowed_path": { - "title": "The Folder Watcher configuration for {path} could not start", - "description": "The path {path} is not accessible or not allowed to be accessed.\n\nPlease check the path is accessible and add it to `{config_variable}` in configuration.yaml and restart Home Assistant to fix this issue." - } - }, - "entity": { - "sensor": { - "folder_watcher": { - "state_attributes": { - "event_type": { "name": "Event type" }, - "path": { "name": "Path" }, - "file": { "name": "File" }, - "folder": { "name": "Folder" }, - "dest_path": { "name": "Destination path" }, - "dest_file": { "name": "Destination file" }, - "dest_folder": { "name": "Destination folder" } - } - } - } } } diff --git a/homeassistant/components/forecast_solar/strings.json b/homeassistant/components/forecast_solar/strings.json index 278e68db9a1..b6cc406877f 100644 --- a/homeassistant/components/forecast_solar/strings.json +++ b/homeassistant/components/forecast_solar/strings.json @@ -2,7 +2,6 @@ "config": { "step": { "user": { - "description": "Fill in the data of your solar panels. Please refer to the documentation if a field is unclear.", "data": { "azimuth": "Azimuth (360 degrees, 0 = North, 90 = East, 180 = South, 270 = West)", "declination": "Declination (0 = Horizontal, 90 = Vertical)", @@ -10,31 +9,19 @@ "longitude": "[%key:common::config_flow::data::longitude%]", "modules_power": "Total Watt peak power of your solar modules", "name": "[%key:common::config_flow::data::name%]" - } - } - } - }, - "options": { - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" - }, - "step": { - "init": { - "description": "These values allow tweaking the Forecast.Solar result. Please refer to the documentation if a field is unclear.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "azimuth": "[%key:component::forecast_solar::config::step::user::data::azimuth%]", - "damping_morning": "Damping factor: adjusts the results in the morning", - "damping_evening": "Damping factor: adjusts the results in the evening", - "inverter_size": "Inverter size (Watt)", - "declination": "[%key:component::forecast_solar::config::step::user::data::declination%]", - "modules_power": "[%key:component::forecast_solar::config::step::user::data::modules_power%]" - } + }, + "description": "Fill in the data of your solar panels. Please refer to the documentation if a field is unclear." } } }, "entity": { "sensor": { + "energy_current_hour": { + "name": "Estimated energy production - this hour" + }, + "energy_next_hour": { + "name": "Estimated energy production - next hour" + }, "energy_production_today": { "name": "Estimated energy production - today" }, @@ -50,23 +37,36 @@ "power_highest_peak_time_tomorrow": { "name": "Highest power peak time - tomorrow" }, - "power_production_now": { - "name": "Estimated power production - now" - }, - "power_production_next_hour": { - "name": "Estimated power production - in 1 hour" - }, "power_production_next_12hours": { "name": "Estimated power production - in 12 hours" }, "power_production_next_24hours": { "name": "Estimated power production - in 24 hours" }, - "energy_current_hour": { - "name": "Estimated energy production - this hour" + "power_production_next_hour": { + "name": "Estimated power production - in 1 hour" }, - "energy_next_hour": { - "name": "Estimated energy production - next hour" + "power_production_now": { + "name": "Estimated power production - now" + } + } + }, + "options": { + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" + }, + "step": { + "init": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "azimuth": "[%key:component::forecast_solar::config::step::user::data::azimuth%]", + "damping_evening": "Damping factor: adjusts the results in the evening", + "damping_morning": "Damping factor: adjusts the results in the morning", + "declination": "[%key:component::forecast_solar::config::step::user::data::declination%]", + "inverter_size": "Inverter size (Watt)", + "modules_power": "[%key:component::forecast_solar::config::step::user::data::modules_power%]" + }, + "description": "These values allow tweaking the Forecast.Solar result. Please refer to the documentation if a field is unclear." } } } diff --git a/homeassistant/components/forked_daapd/strings.json b/homeassistant/components/forked_daapd/strings.json index a41bb4d6865..1dad9eae59f 100644 --- a/homeassistant/components/forked_daapd/strings.json +++ b/homeassistant/components/forked_daapd/strings.json @@ -1,41 +1,41 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "title": "Set up OwnTone device", - "data": { - "name": "Friendly name", - "host": "[%key:common::config_flow::data::host%]", - "port": "API port", - "password": "API password (leave blank if no password)" - } - } - }, - "error": { - "forbidden": "Unable to connect. Please check your OwnTone network permissions.", - "websocket_not_enabled": "OwnTone server websocket not enabled.", - "wrong_host_or_port": "Unable to connect. Please check host and port.", - "wrong_password": "Incorrect password.", - "wrong_server_type": "The OwnTone integration requires an OwnTone server with version >= 27.0.", - "unknown_error": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "not_forked_daapd": "Device is not an OwnTone server." + }, + "error": { + "forbidden": "Unable to connect. Please check your OwnTone network permissions.", + "unknown_error": "[%key:common::config_flow::error::unknown%]", + "websocket_not_enabled": "OwnTone server websocket not enabled.", + "wrong_host_or_port": "Unable to connect. Please check host and port.", + "wrong_password": "Incorrect password.", + "wrong_server_type": "The OwnTone integration requires an OwnTone server with version >= 27.0." + }, + "flow_title": "{name} ({host})", + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "Friendly name", + "password": "API password (leave blank if no password)", + "port": "API port" + }, + "title": "Set up OwnTone device" + } } }, "options": { "step": { "init": { - "title": "Configure OwnTone options", - "description": "Set various options for the OwnTone integration.", "data": { "librespot_java_port": "Port for librespot-java pipe control (if used)", "max_playlists": "Max number of playlists used as sources", - "tts_volume": "TTS volume (float in range [0,1])", - "tts_pause_time": "Seconds to pause before and after TTS" - } + "tts_pause_time": "Seconds to pause before and after TTS", + "tts_volume": "TTS volume (float in range [0,1])" + }, + "description": "Set various options for the OwnTone integration.", + "title": "Configure OwnTone options" } } } diff --git a/homeassistant/components/foscam/icons.json b/homeassistant/components/foscam/icons.json index de9e13faa00..7df85845419 100644 --- a/homeassistant/components/foscam/icons.json +++ b/homeassistant/components/foscam/icons.json @@ -1,54 +1,5 @@ { - "services": { - "ptz": { - "service": "mdi:pan" - }, - "ptz_preset": { - "service": "mdi:target-variant" - } - }, "entity": { - "switch": { - "flip_switch": { - "default": "mdi:flip-vertical" - }, - "mirror_switch": { - "default": "mdi:mirror" - }, - "ir_switch": { - "default": "mdi:theme-light-dark" - }, - "sleep_switch": { - "default": "mdi:sleep" - }, - "white_light_switch": { - "default": "mdi:light-flood-down" - }, - "siren_alarm_switch": { - "default": "mdi:alarm-note" - }, - "turn_off_volume_switch": { - "default": "mdi:volume-off" - }, - "turn_off_light_switch": { - "default": "mdi:lightbulb-fluorescent-tube" - }, - "hdr_switch": { - "default": "mdi:hdr" - }, - "wdr_switch": { - "default": "mdi:alpha-w-box" - }, - "pet_detection": { - "default": "mdi:paw" - }, - "car_detection": { - "default": "mdi:car-hatchback" - }, - "human_detection": { - "default": "mdi:human" - } - }, "number": { "device_volume": { "default": "mdi:volume-source" @@ -56,6 +7,55 @@ "speak_volume": { "default": "mdi:account-voice" } + }, + "switch": { + "car_detection": { + "default": "mdi:car-hatchback" + }, + "flip_switch": { + "default": "mdi:flip-vertical" + }, + "hdr_switch": { + "default": "mdi:hdr" + }, + "human_detection": { + "default": "mdi:human" + }, + "ir_switch": { + "default": "mdi:theme-light-dark" + }, + "mirror_switch": { + "default": "mdi:mirror" + }, + "pet_detection": { + "default": "mdi:paw" + }, + "siren_alarm_switch": { + "default": "mdi:alarm-note" + }, + "sleep_switch": { + "default": "mdi:sleep" + }, + "turn_off_light_switch": { + "default": "mdi:lightbulb-fluorescent-tube" + }, + "turn_off_volume_switch": { + "default": "mdi:volume-off" + }, + "wdr_switch": { + "default": "mdi:alpha-w-box" + }, + "white_light_switch": { + "default": "mdi:light-flood-down" + } + } + }, + "services": { + "ptz": { + "service": "mdi:pan" + }, + "ptz_preset": { + "service": "mdi:target-variant" } } } diff --git a/homeassistant/components/foscam/strings.json b/homeassistant/components/foscam/strings.json index e42a74a2683..5348bd4e209 100644 --- a/homeassistant/components/foscam/strings.json +++ b/homeassistant/components/foscam/strings.json @@ -1,24 +1,7 @@ { "config": { - "step": { - "user": { - "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%]", - "rtsp_port": "RTSP port", - "stream": "Stream" - }, - "data_description": { - "host": "The hostname or IP address of your Foscam camera.", - "port": "The port of your Foscam camera, default is 88.", - "username": "The username to log in to your Foscam camera.", - "password": "The password to log in to your Foscam camera.", - "rtsp_port": "The RTSP protocol port of the camera, used to pull the camera's real-time video stream. New model cameras only support RTSP ports 88 and 554, while old model cameras only support ports 88 and 65534.", - "stream": "Select the video stream type to pull. The main stream offers higher clarity but requires a better network environment." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -26,52 +9,28 @@ "invalid_response": "Invalid response from the device", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "rtsp_port": "RTSP port", + "stream": "Stream", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Foscam camera.", + "password": "The password to log in to your Foscam camera.", + "port": "The port of your Foscam camera, default is 88.", + "rtsp_port": "The RTSP protocol port of the camera, used to pull the camera's real-time video stream. New model cameras only support RTSP ports 88 and 554, while old model cameras only support ports 88 and 65534.", + "stream": "Select the video stream type to pull. The main stream offers higher clarity but requires a better network environment.", + "username": "The username to log in to your Foscam camera." + } + } } }, "entity": { - "switch": { - "flip_switch": { - "name": "Flip" - }, - "mirror_switch": { - "name": "Mirror" - }, - "ir_switch": { - "name": "Infrared mode" - }, - "sleep_switch": { - "name": "Sleep mode" - }, - "white_light_switch": { - "name": "White light" - }, - "siren_alarm_switch": { - "name": "Siren alarm" - }, - "turn_off_volume_switch": { - "name": "Volume muted" - }, - "turn_off_light_switch": { - "name": "Light" - }, - "hdr_switch": { - "name": "HDR" - }, - "wdr_switch": { - "name": "WDR" - }, - "pet_detection": { - "name": "Pet detection" - }, - "car_detection": { - "name": "Car detection" - }, - "human_detection": { - "name": "Human detection" - } - }, "number": { "device_volume": { "name": "Device volume" @@ -79,32 +38,73 @@ "speak_volume": { "name": "Speak volume" } + }, + "switch": { + "car_detection": { + "name": "Car detection" + }, + "flip_switch": { + "name": "Flip" + }, + "hdr_switch": { + "name": "HDR" + }, + "human_detection": { + "name": "Human detection" + }, + "ir_switch": { + "name": "Infrared mode" + }, + "mirror_switch": { + "name": "Mirror" + }, + "pet_detection": { + "name": "Pet detection" + }, + "siren_alarm_switch": { + "name": "Siren alarm" + }, + "sleep_switch": { + "name": "Sleep mode" + }, + "turn_off_light_switch": { + "name": "Light" + }, + "turn_off_volume_switch": { + "name": "Volume muted" + }, + "wdr_switch": { + "name": "WDR" + }, + "white_light_switch": { + "name": "White light" + } } }, "services": { "ptz": { - "name": "PTZ", "description": "Moves a Foscam camera to a specified direction.", "fields": { "movement": { - "name": "Movement", - "description": "Direction of the movement." + "description": "Direction of the movement.", + "name": "Movement" }, "travel_time": { - "name": "Travel time", - "description": "Travel time in seconds." + "description": "Travel time in seconds.", + "name": "Travel time" } - } + }, + "name": "PTZ" }, "ptz_preset": { - "name": "PTZ preset", "description": "Moves a Foscam camera to a predefined position.", "fields": { "preset_name": { - "name": "Preset name", - "description": "The name of the preset to move to. Presets can be created from within the official Foscam apps." + "description": "The name of the preset to move to. Presets can be created from within the official Foscam apps.", + "name": "Preset name" } - } + }, + "name": "PTZ preset" } } } diff --git a/homeassistant/components/freebox/strings.json b/homeassistant/components/freebox/strings.json index 0d91daaa290..a1383045e09 100644 --- a/homeassistant/components/freebox/strings.json +++ b/homeassistant/components/freebox/strings.json @@ -1,6 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "register_failed": "Failed to register, please try again", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "link": { + "description": "Select **Submit**, then touch the right arrow on the router to register Freebox with Home Assistant.\n\n![Location of button on the router](/static/images/config_freebox.png)", + "title": "Link Freebox router" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -9,25 +21,13 @@ "data_description": { "host": "The hostname or IP address of your Freebox router." } - }, - "link": { - "title": "Link Freebox router", - "description": "Select **Submit**, then touch the right arrow on the router to register Freebox with Home Assistant.\n\n![Location of button on the router](/static/images/config_freebox.png)" } - }, - "error": { - "register_failed": "Failed to register, please try again", - "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%]" } }, "services": { "reboot": { - "name": "Reboot", - "description": "Reboots the Freebox." + "description": "Reboots the Freebox.", + "name": "Reboot" } } } diff --git a/homeassistant/components/freedompro/strings.json b/homeassistant/components/freedompro/strings.json index 01316aadc34..900846cb358 100644 --- a/homeassistant/components/freedompro/strings.json +++ b/homeassistant/components/freedompro/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "user": { "data": { @@ -8,13 +15,6 @@ "description": "Please enter the API key obtained from {api_key_url}", "title": "Freedompro API key" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/fritz/icons.json b/homeassistant/components/fritz/icons.json index 436e4a5781c..c20a8518b10 100644 --- a/homeassistant/components/fritz/icons.json +++ b/homeassistant/components/fritz/icons.json @@ -12,59 +12,59 @@ "external_ipv6": { "default": "mdi:earth" }, - "kb_s_sent": { - "default": "mdi:upload" - }, - "kb_s_received": { - "default": "mdi:download" - }, - "max_kb_s_sent": { - "default": "mdi:upload" - }, - "max_kb_s_received": { + "gb_received": { "default": "mdi:download" }, "gb_sent": { "default": "mdi:upload" }, - "gb_received": { + "kb_s_received": { "default": "mdi:download" }, - "link_kb_s_sent": { + "kb_s_sent": { "default": "mdi:upload" }, - "link_kb_s_received": { - "default": "mdi:download" - }, - "link_noise_margin_sent": { - "default": "mdi:upload" - }, - "link_noise_margin_received": { + "link_attenuation_received": { "default": "mdi:download" }, "link_attenuation_sent": { "default": "mdi:upload" }, - "link_attenuation_received": { + "link_kb_s_received": { "default": "mdi:download" + }, + "link_kb_s_sent": { + "default": "mdi:upload" + }, + "link_noise_margin_received": { + "default": "mdi:download" + }, + "link_noise_margin_sent": { + "default": "mdi:upload" + }, + "max_kb_s_received": { + "default": "mdi:download" + }, + "max_kb_s_sent": { + "default": "mdi:upload" } } }, "services": { - "reconnect": { - "service": "mdi:connection" + "cleanup": { + "service": "mdi:broom" + }, + "dial": { + "service": "mdi:phone-dial" }, "reboot": { "service": "mdi:refresh" }, - "cleanup": { - "service": "mdi:broom" + "reconnect": { + "service": "mdi:connection" }, "set_guest_wifi_password": { "service": "mdi:form-textbox-password" - }, - "dial": { - "service": "mdi:phone-dial" } } } diff --git a/homeassistant/components/fritz/strings.json b/homeassistant/components/fritz/strings.json index 6d49f09b9a6..baff078bc41 100644 --- a/homeassistant/components/fritz/strings.json +++ b/homeassistant/components/fritz/strings.json @@ -1,47 +1,60 @@ { "common": { - "data_description_host": "The hostname or IP address of your FRITZ!Box router.", - "data_description_port": "Leave empty to use the default port.", - "data_description_username": "Username for the FRITZ!Box.", - "data_description_password": "Password for the FRITZ!Box.", - "data_description_ssl": "Use SSL to connect to the FRITZ!Box.", "data_description_feature_device_tracking": "Enable or disable the network device tracking feature.", + "data_description_host": "The hostname or IP address of your FRITZ!Box router.", + "data_description_password": "Password for the FRITZ!Box.", + "data_description_port": "Leave empty to use the default port.", + "data_description_ssl": "Use SSL to connect to the FRITZ!Box.", + "data_description_username": "Username for the FRITZ!Box.", "data_feature_device_tracking": "Enable network device tracking" }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "ignore_ip6_link_local": "IPv6 link local address is not supported.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "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%]", + "unknown_error": "[%key:common::config_flow::error::unknown%]", + "upnp_not_configured": "Missing UPnP settings on device." + }, "flow_title": "{name}", "step": { "confirm": { - "title": "Set up FRITZ!Box Tools", - "description": "Discovered FRITZ!Box: {name}\n\nSet up FRITZ!Box Tools to control your {name}", "data": { - "username": "[%key:common::config_flow::data::username%]", + "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]", "password": "[%key:common::config_flow::data::password%]", "ssl": "[%key:common::config_flow::data::ssl%]", - "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]" + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "username": "[%key:component::fritz::common::data_description_username%]", + "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]", "password": "[%key:component::fritz::common::data_description_password%]", "ssl": "[%key:component::fritz::common::data_description_ssl%]", - "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]" - } + "username": "[%key:component::fritz::common::data_description_username%]" + }, + "description": "Discovered FRITZ!Box: {name}\n\nSet up FRITZ!Box Tools to control your {name}", + "title": "Set up FRITZ!Box Tools" }, "reauth_confirm": { - "title": "FRITZ!Box Tools - Update credentials", - "description": "Update FRITZ!Box Tools credentials for: {host}.\n\nFRITZ!Box Tools is unable to log in to your FRITZ!Box.", "data": { - "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": { - "username": "[%key:component::fritz::common::data_description_username%]", - "password": "[%key:component::fritz::common::data_description_password%]" - } + "password": "[%key:component::fritz::common::data_description_password%]", + "username": "[%key:component::fritz::common::data_description_username%]" + }, + "description": "Update FRITZ!Box Tools credentials for: {host}.\n\nFRITZ!Box Tools is unable to log in to your FRITZ!Box.", + "title": "FRITZ!Box Tools - Update credentials" }, "reconfigure": { - "title": "FRITZ!Box Tools - Update configuration", - "description": "Update FRITZ!Box Tools configuration for: {host}.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]", @@ -51,58 +64,29 @@ "host": "[%key:component::fritz::common::data_description_host%]", "port": "[%key:component::fritz::common::data_description_port%]", "ssl": "[%key:component::fritz::common::data_description_ssl%]" - } + }, + "description": "Update FRITZ!Box Tools configuration for: {host}.", + "title": "FRITZ!Box Tools - Update configuration" }, "user": { - "title": "[%key:component::fritz::config::step::confirm::title%]", - "description": "Set up FRITZ!Box Tools to control your FRITZ!Box.\nMinimum needed: username, password.", "data": { + "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]", "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%]", + "port": "[%key:common::config_flow::data::port%]", "ssl": "[%key:common::config_flow::data::ssl%]", - "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]" + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { + "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]", "host": "[%key:component::fritz::common::data_description_host%]", - "port": "[%key:component::fritz::common::data_description_port%]", - "username": "[%key:component::fritz::common::data_description_username%]", "password": "[%key:component::fritz::common::data_description_password%]", + "port": "[%key:component::fritz::common::data_description_port%]", "ssl": "[%key:component::fritz::common::data_description_ssl%]", - "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]" - } - } - }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "ignore_ip6_link_local": "IPv6 link local address is not supported.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - }, - "error": { - "unknown_error": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "upnp_not_configured": "Missing UPnP settings on device.", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "consider_home": "Seconds to consider a device at 'home'", - "old_discovery": "Enable old discovery method", - "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]" + "username": "[%key:component::fritz::common::data_description_username%]" }, - "data_description": { - "consider_home": "Time in seconds to consider a device at home. Default is 180 seconds.", - "old_discovery": "Enable old discovery method. This is needed for some scenarios.", - "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]" - } + "description": "Set up FRITZ!Box Tools to control your FRITZ!Box.\nMinimum needed: username, password.", + "title": "[%key:component::fritz::config::step::confirm::title%]" } } }, @@ -130,6 +114,9 @@ "connection_uptime": { "name": "Connection uptime" }, + "cpu_temperature": { + "name": "CPU temperature" + }, "device_uptime": { "name": "Last restart" }, @@ -174,47 +161,6 @@ }, "max_kb_s_sent": { "name": "Max connection upload throughput" - }, - "cpu_temperature": { - "name": "CPU temperature" - } - } - }, - "services": { - "set_guest_wifi_password": { - "name": "Set guest Wi-Fi password", - "description": "Sets a new password for the guest Wi-Fi. The password must be between 8 and 63 characters long. If no additional parameter is set, the password will be auto-generated with a length of 12 characters.", - "fields": { - "device_id": { - "name": "FRITZ!Box device", - "description": "Select the FRITZ!Box to configure." - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "New password for the guest Wi-Fi." - }, - "length": { - "name": "Password length", - "description": "Length of the new password. It will be auto-generated if no password is set." - } - } - }, - "dial": { - "name": "Dial a phone number", - "description": "Makes the FRITZ!Box dial a phone number.", - "fields": { - "device_id": { - "name": "FRITZ!Box device", - "description": "Select the FRITZ!Box to dial from." - }, - "number": { - "name": "Phone number", - "description": "The phone number to dial." - }, - "max_ring_seconds": { - "name": "Maximum ring duration", - "description": "The maximum number of seconds to ring after dialing." - } } } }, @@ -222,17 +168,17 @@ "config_entry_not_found": { "message": "Failed to perform action \"{service}\". Config entry for target not found" }, + "error_refresh_hosts_info": { + "message": "Error refreshing hosts info" + }, "service_dial_failed": { "message": "Failed to dial, check if the click to dial service of the FRITZ!Box is activated" }, - "service_parameter_unknown": { - "message": "Action or parameter unknown" - }, "service_not_supported": { "message": "Action not supported" }, - "error_refresh_hosts_info": { - "message": "Error refreshing hosts info" + "service_parameter_unknown": { + "message": "Action or parameter unknown" }, "unable_to_connect": { "message": "Unable to establish a connection" @@ -240,5 +186,59 @@ "update_failed": { "message": "Error while updating the data: {error}" } + }, + "options": { + "step": { + "init": { + "data": { + "consider_home": "Seconds to consider a device at 'home'", + "feature_device_tracking": "[%key:component::fritz::common::data_feature_device_tracking%]", + "old_discovery": "Enable old discovery method" + }, + "data_description": { + "consider_home": "Time in seconds to consider a device at home. Default is 180 seconds.", + "feature_device_tracking": "[%key:component::fritz::common::data_description_feature_device_tracking%]", + "old_discovery": "Enable old discovery method. This is needed for some scenarios." + } + } + } + }, + "services": { + "dial": { + "description": "Makes the FRITZ!Box dial a phone number.", + "fields": { + "device_id": { + "description": "Select the FRITZ!Box to dial from.", + "name": "FRITZ!Box device" + }, + "max_ring_seconds": { + "description": "The maximum number of seconds to ring after dialing.", + "name": "Maximum ring duration" + }, + "number": { + "description": "The phone number to dial.", + "name": "Phone number" + } + }, + "name": "Dial a phone number" + }, + "set_guest_wifi_password": { + "description": "Sets a new password for the guest Wi-Fi. The password must be between 8 and 63 characters long. If no additional parameter is set, the password will be auto-generated with a length of 12 characters.", + "fields": { + "device_id": { + "description": "Select the FRITZ!Box to configure.", + "name": "FRITZ!Box device" + }, + "length": { + "description": "Length of the new password. It will be auto-generated if no password is set.", + "name": "Password length" + }, + "password": { + "description": "New password for the guest Wi-Fi.", + "name": "[%key:common::config_flow::data::password%]" + } + }, + "name": "Set guest Wi-Fi password" + } } } diff --git a/homeassistant/components/fritzbox/icons.json b/homeassistant/components/fritzbox/icons.json index 4557b23511c..999a7704dbf 100644 --- a/homeassistant/components/fritzbox/icons.json +++ b/homeassistant/components/fritzbox/icons.json @@ -4,22 +4,22 @@ "holiday_active": { "default": "mdi:bag-suitcase-outline", "state": { - "on": "mdi:bag-suitcase-outline", - "off": "mdi:bag-suitcase-off-outline" + "off": "mdi:bag-suitcase-off-outline", + "on": "mdi:bag-suitcase-outline" } }, "summer_active": { "default": "mdi:radiator-off", "state": { - "on": "mdi:radiator-off", - "off": "mdi:radiator" + "off": "mdi:radiator", + "on": "mdi:radiator-off" } }, "window_open": { "default": "mdi:window-open", "state": { - "on": "mdi:window-open", - "off": "mdi:window-closed" + "off": "mdi:window-closed", + "on": "mdi:window-open" } } }, diff --git a/homeassistant/components/fritzbox/strings.json b/homeassistant/components/fritzbox/strings.json index e77a7f842bc..0f60ebe70b2 100644 --- a/homeassistant/components/fritzbox/strings.json +++ b/homeassistant/components/fritzbox/strings.json @@ -1,45 +1,8 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Enter your FRITZ!Box information.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your FRITZ!Box router." - } - }, - "confirm": { - "description": "Do you want to set up {name}?", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "description": "Update your login information for {name}.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reconfigure": { - "description": "Update your configuration information for {name}.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of your FRITZ!Box router." - } - } - }, "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "ignore_ip6_link_local": "IPv6 link local address is not supported.", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "not_supported": "Connected to FRITZ!Box but it's unable to control Smart Home devices.", @@ -47,8 +10,45 @@ "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "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%]" + }, + "flow_title": "{name}", + "step": { + "confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Do you want to set up {name}?" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Update your login information for {name}." + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of your FRITZ!Box router." + }, + "description": "Update your configuration information for {name}." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your FRITZ!Box router." + }, + "description": "Enter your FRITZ!Box information." + } } }, "entity": { @@ -66,8 +66,8 @@ "preset_mode": { "name": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::name%]", "state": { - "eco": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::eco%]", "comfort": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]", + "eco": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::eco%]", "holiday": "Holiday", "summer": "Summer" } @@ -85,14 +85,14 @@ } }, "exceptions": { - "manual_switching_disabled": { - "message": "Can't toggle switch while manual switching is disabled for the device." + "change_settings_while_active_mode": { + "message": "Can't change settings while holiday or summer mode is active on the device." }, "change_settings_while_lock_enabled": { "message": "Can't change settings while manual access for telephone, app, or user interface is disabled on the device" }, - "change_settings_while_active_mode": { - "message": "Can't change settings while holiday or summer mode is active on the device." + "manual_switching_disabled": { + "message": "Can't toggle switch while manual switching is disabled for the device." } } } diff --git a/homeassistant/components/fritzbox_callmonitor/icons.json b/homeassistant/components/fritzbox_callmonitor/icons.json index 836d3159681..a6595796f3a 100644 --- a/homeassistant/components/fritzbox_callmonitor/icons.json +++ b/homeassistant/components/fritzbox_callmonitor/icons.json @@ -4,8 +4,8 @@ "fritzbox_callmonitor": { "default": "mdi:phone", "state": { - "ringing": "mdi:phone-incoming", "dialing": "mdi:phone-outgoing", + "ringing": "mdi:phone-incoming", "talking": "mdi:phone-in-talk" } } diff --git a/homeassistant/components/fritzbox_callmonitor/strings.json b/homeassistant/components/fritzbox_callmonitor/strings.json index 8fb843da399..d97b2ab6815 100644 --- a/homeassistant/components/fritzbox_callmonitor/strings.json +++ b/homeassistant/components/fritzbox_callmonitor/strings.json @@ -1,18 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "insufficient_permissions": "User has insufficient permissions to access FRITZ!Box settings and its phonebooks.", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "insufficient_permissions": "[%key:component::fritzbox_callmonitor::config::abort::insufficient_permissions%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "flow_title": "{name}", "step": { - "user": { - "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 hostname or IP address of your FRITZ!Box router." - } - }, "phonebook": { "data": { "phonebook": "Phonebook" @@ -20,33 +19,21 @@ }, "reauth_confirm": { "data": { - "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%]" } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "insufficient_permissions": "User has insufficient permissions to access FRITZ!Box settings and its phonebooks.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - }, - "error": { - "insufficient_permissions": "[%key:component::fritzbox_callmonitor::config::abort::insufficient_permissions%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - } - }, - "options": { - "step": { - "init": { - "title": "Configure prefixes", + }, + "user": { "data": { - "prefixes": "Prefixes (comma-separated list)" + "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 hostname or IP address of your FRITZ!Box router." } } - }, - "error": { - "malformed_prefixes": "Prefixes are malformed, please check their format." } }, "entity": { @@ -54,13 +41,22 @@ "fritzbox_callmonitor": { "name": "Call monitor {phonebook_name}", "state": { - "ringing": "Ringing", "dialing": "Dialing", - "talking": "Talking", - "idle": "[%key:common::state::idle%]" + "idle": "[%key:common::state::idle%]", + "ringing": "Ringing", + "talking": "Talking" }, "state_attributes": { + "accepted": { "name": "Accepted" }, + "closed": { "name": "Closed" }, + "device": { "name": "[%key:common::config_flow::data::device%]" }, + "duration": { "name": "Duration" }, + "from": { "name": "Caller number" }, + "from_name": { "name": "Caller name" }, + "initiated": { "name": "Initiated" }, "prefixes": { "name": "Prefixes" }, + "to": { "name": "Number called" }, + "to_name": { "name": "Called name" }, "type": { "name": "Type", "state": { @@ -68,20 +64,24 @@ "outgoing": "Outgoing" } }, - "from": { "name": "Caller number" }, - "to": { "name": "Number called" }, - "device": { "name": "[%key:common::config_flow::data::device%]" }, - "initiated": { "name": "Initiated" }, - "from_name": { "name": "Caller name" }, - "to_name": { "name": "Called name" }, + "vip": { "name": "Important" }, "with": { "name": "With number" }, - "accepted": { "name": "Accepted" }, - "with_name": { "name": "With name" }, - "duration": { "name": "Duration" }, - "closed": { "name": "Closed" }, - "vip": { "name": "Important" } + "with_name": { "name": "With name" } } } } + }, + "options": { + "error": { + "malformed_prefixes": "Prefixes are malformed, please check their format." + }, + "step": { + "init": { + "data": { + "prefixes": "Prefixes (comma-separated list)" + }, + "title": "Configure prefixes" + } + } } } diff --git a/homeassistant/components/fronius/icons.json b/homeassistant/components/fronius/icons.json index 59d5a110449..e899dcf3282 100644 --- a/homeassistant/components/fronius/icons.json +++ b/homeassistant/components/fronius/icons.json @@ -1,24 +1,18 @@ { "entity": { "sensor": { + "cash_factor": { + "default": "mdi:cash-plus" + }, + "co2_factor": { + "default": "mdi:molecule-co2" + }, "current_dc": { "default": "mdi:current-dc" }, "current_dc_mppt_no": { "default": "mdi:current-dc" }, - "voltage_dc": { - "default": "mdi:current-dc" - }, - "voltage_dc_mppt_no": { - "default": "mdi:current-dc" - }, - "co2_factor": { - "default": "mdi:molecule-co2" - }, - "cash_factor": { - "default": "mdi:cash-plus" - }, "delivery_factor": { "default": "mdi:cash-minus" }, @@ -34,11 +28,17 @@ "relative_self_consumption": { "default": "mdi:solar-power" }, + "voltage_dc": { + "default": "mdi:current-dc" + }, "voltage_dc_maximum_cell": { "default": "mdi:current-dc" }, "voltage_dc_minimum_cell": { "default": "mdi:current-dc" + }, + "voltage_dc_mppt_no": { + "default": "mdi:current-dc" } } } diff --git a/homeassistant/components/fronius/strings.json b/homeassistant/components/fronius/strings.json index e965e3117c5..2c742d0d89c 100644 --- a/homeassistant/components/fronius/strings.json +++ b/homeassistant/components/fronius/strings.json @@ -1,209 +1,56 @@ { "config": { - "flow_title": "{device}", - "step": { - "user": { - "description": "Configure your Fronius SolarAPI device.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The IP address or hostname of your Fronius device." - } - }, - "confirm_discovery": { - "description": "Do you want to add {device} to Home Assistant?" - }, - "reconfigure": { - "description": "Update your configuration information for {device}.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "[%key:component::fronius::config::step::user::data_description::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%]", "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "unique_id_mismatch": "The identifier does not match the previous identifier" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{device}", + "step": { + "confirm_discovery": { + "description": "Do you want to add {device} to Home Assistant?" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "[%key:component::fronius::config::step::user::data_description::host%]" + }, + "description": "Update your configuration information for {device}." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The IP address or hostname of your Fronius device." + }, + "description": "Configure your Fronius SolarAPI device." + } } }, "entity": { "sensor": { - "energy_day": { - "name": "Energy day" + "capacity_designed": { + "name": "Designed capacity" }, - "energy_year": { - "name": "Energy year" - }, - "energy_total": { - "name": "Total energy" - }, - "current_ac": { - "name": "AC current" - }, - "current_dc": { - "name": "DC current" - }, - "current_dc_mppt_no": { - "name": "DC current {mppt_no}" - }, - "power_ac": { - "name": "AC power" - }, - "voltage_ac": { - "name": "AC voltage" - }, - "voltage_dc": { - "name": "DC voltage" - }, - "voltage_dc_mppt_no": { - "name": "DC voltage {mppt_no}" - }, - "inverter_state": { - "name": "Inverter state" - }, - "error_code": { - "name": "Error code" - }, - "error_message": { - "name": "Error message", - "state": { - "no_error": "No error", - "ac_voltage_too_high": "AC voltage too high", - "ac_voltage_too_low": "AC voltage too low", - "ac_frequency_too_high": "AC frequency too high", - "ac_frequency_too_low": "AC frequency too low", - "ac_grid_outside_permissible_limits": "AC grid outside the permissible limits", - "stand_alone_operation_detected": "Stand-alone operation detected", - "rcmu_error": "RCMU error", - "arc_detection_triggered": "Arc detection triggered", - "overcurrent_ac": "Overcurrent (AC)", - "overcurrent_dc": "Overcurrent (DC)", - "dc_module_over_temperature": "DC module overtemperature", - "ac_module_over_temperature": "AC module overtemperature", - "no_power_fed_in_despite_closed_relay": "No power being fed in, despite closed relay", - "pv_output_too_low_for_feeding_energy_into_the_grid": "PV output too low for feeding energy into the grid", - "low_pv_voltage_dc_input_voltage_too_low": "Low PV voltage - DC input voltage too low for feeding energy into the grid", - "intermediate_circuit_voltage_too_high": "Intermediate circuit voltage too high", - "dc_input_voltage_mppt_1_too_high": "DC input voltage MPPT 1 too high", - "polarity_of_dc_strings_reversed": "Polarity of DC strings reversed", - "dc_input_voltage_mppt_2_too_high": "DC input voltage MPPT 2 too high", - "current_sensor_calibration_timeout": "Current sensor calibration timeout", - "ac_current_sensor_error": "AC current sensor error", - "interrupt_check_fail": "Interrupt Check fail", - "overtemperature_in_connection_area": "Overtemperature in the connection area", - "fan_1_error": "Fan 1 error", - "fan_2_error": "Fan 2 error", - "no_communication_with_power_stage_set": "No communication with the power stage set possible", - "ac_module_temperature_sensor_faulty_l1": "AC module temperature sensor faulty (L1)", - "ac_module_temperature_sensor_faulty_l2": "AC module temperature sensor faulty (L2)", - "dc_component_measured_in_grid_too_high": "DC component measured in the grid too high", - "fixed_voltage_mode_out_of_range": "Fixed voltage mode has been selected instead of MPP voltage mode and the fixed voltage has been set to too low or too high a value", - "safety_cut_out_triggered": "Safety cut-out via option card or RECERBO has triggered", - "no_communication_between_power_stage_and_control_system": "No communication possible between power stage set and control system", - "hardware_id_problem": "Hardware ID problem", - "unique_id_conflict": "Unique ID conflict", - "no_communication_with_hybrid_manager": "No communication possible with the Hybrid manager", - "hid_range_error": "HID range error", - "possible_hardware_fault": "Possible hardware fault", - "software_problem": "Software problem", - "functional_incompatibility_between_pc_boards": "Functional incompatibility (one or more PC boards in the inverter are not compatible with each other, e.g. after a PC board has been replaced)", - "power_stage_set_problem": "Power stage set problem", - "intermediate_circuit_voltage_too_low_or_asymmetric": "Intermediate circuit voltage too low or asymmetric", - "compatibility_error_invalid_power_stage_configuration": "Compatibility error (e.g. due to replacement of a PC board) - invalid power stage set configuration", - "insulation_fault": "Insulation fault", - "neutral_conductor_not_connected": "Neutral conductor not connected", - "guard_cannot_be_found": "Guard cannot be found", - "memory_error_detected": "Memory error detected", - "communication": "Communication error", - "insulation_error_on_solar_panels": "Insulation error on the solar panels", - "no_energy_fed_into_grid_past_24_hours": "No energy fed into the grid in the past 24 hours", - "no_communication_with_filter": "No communication with filter possible", - "no_communication_with_storage_unit": "No communication possible with the storage unit", - "power_derating_due_to_high_temperature": "Power derating caused by too high a temperature", - "internal_dsp_malfunction": "Internal DSP malfunction", - "no_energy_fed_by_mppt1_past_24_hours": "No energy fed into the grid by MPPT1 in the past 24 hours", - "dc_low_string_1": "DC low string 1", - "dc_low_string_2": "DC low string 2", - "derating_caused_by_over_frequency": "Derating caused by overfrequency", - "arc_detector_switched_off": "Arc detector switched off (e.g. during external arc monitoring)", - "grid_voltage_dependent_power_reduction_active": "Grid voltage-dependent power reduction (GVDPR) is active", - "can_bus_full": "CAN bus is full", - "ac_module_temperature_sensor_faulty_l3": "AC module temperature sensor faulty (L3)", - "dc_module_temperature_sensor_faulty": "DC module temperature sensor faulty", - "internal_processor_status": "Warning about the internal processor status. See status code for more information", - "eeprom_reinitialised": "EEPROM has been re-initialized", - "initialisation_error_usb_flash_drive_not_supported": "Initialization error – USB flash drive is not supported", - "initialisation_error_usb_stick_over_current": "Initialization error – Overcurrent on USB stick", - "no_usb_flash_drive_connected": "No USB flash drive connected", - "update_file_not_recognised_or_missing": "Update file not recognized or not present", - "update_file_does_not_match_device": "Update file does not match the device, update file too old", - "write_or_read_error_occurred": "Write or read error occurred", - "file_could_not_be_opened": "File could not be opened", - "log_file_cannot_be_saved": "Log file cannot be saved (e.g. USB flash drive is write-protected or full)", - "initialisation_error_file_system_error_on_usb": "Initialization error in file system on USB flash drive", - "error_during_logging_data_recording": "Error during recording of logging data", - "error_during_update_process": "Error occurred during update process", - "update_file_corrupt": "Update file corrupt", - "time_lost": "Time lost", - "real_time_clock_communication_error": "Real Time Clock module communication error", - "real_time_clock_in_emergency_mode": "Internal error: Real Time Clock module is in emergency mode", - "real_time_clock_hardware_error": "Hardware error in the Real Time Clock module", - "internal_hardware_error": "Internal hardware error", - "emergency_power_derating_activated": "Emergency power derating activated", - "different_power_limitation_in_hardware_modules": "Different power limitation in the hardware modules", - "storage_unit_not_available": "Storage unit not available", - "software_update_invalid_country_setup": "Software update group 0 (invalid country setup)", - "pmc_power_stage_set_not_available": "PMC power stage set not available", - "invalid_device_type": "Invalid device type", - "insulation_measurement_triggered": "Insulation measurement triggered", - "inverter_settings_changed_restart_required": "Inverter settings have been changed, inverter restart required", - "wired_shut_down_triggered": "Wired shutdown triggered", - "grid_frequency_exceeded_limit_reconnecting": "The grid frequency has exceeded a limit value when reconnecting", - "mains_voltage_dependent_power_reduction": "Mains voltage-dependent power reduction", - "too_little_dc_power_for_feed_in_operation": "Too little DC power for feed-in operation", - "inverter_required_setup_values_not_received": "Inverter required setup values could not be received", - "dc_connection_inverter_battery_interrupted": "DC connection between inverter and battery interrupted" - } - }, - "status_code": { - "name": "Status code" - }, - "status_message": { - "name": "Status message", - "state": { - "startup": "Startup", - "running": "Running", - "standby": "[%key:common::state::standby%]", - "bootloading": "Bootloading", - "error": "[%key:common::state::error%]", - "idle": "[%key:common::state::idle%]", - "ready": "Ready", - "sleeping": "Sleeping" - } - }, - "led_state": { - "name": "LED state" - }, - "led_color": { - "name": "LED color" - }, - "co2_factor": { - "name": "CO₂ factor" + "capacity_maximum": { + "name": "Maximum capacity" }, "cash_factor": { "name": "Grid export tariff" }, - "delivery_factor": { - "name": "Grid import tariff" + "co2_factor": { + "name": "CO₂ factor" + }, + "current_ac": { + "name": "AC current" }, "current_ac_phase_1": { "name": "Current phase 1" @@ -214,12 +61,27 @@ "current_ac_phase_3": { "name": "Current phase 3" }, + "current_dc": { + "name": "DC current" + }, + "current_dc_mppt_no": { + "name": "DC current {mppt_no}" + }, + "delivery_factor": { + "name": "Grid import tariff" + }, + "energy_day": { + "name": "Energy day" + }, "energy_reactive_ac_consumed": { "name": "Reactive energy consumed" }, "energy_reactive_ac_produced": { "name": "Reactive energy produced" }, + "energy_real_ac_consumed": { + "name": "Energy consumed" + }, "energy_real_ac_minus": { "name": "Real energy minus" }, @@ -232,22 +94,147 @@ "energy_real_produced": { "name": "Real energy produced" }, + "energy_total": { + "name": "Total energy" + }, + "energy_year": { + "name": "Energy year" + }, + "error_code": { + "name": "Error code" + }, + "error_message": { + "name": "Error message", + "state": { + "ac_current_sensor_error": "AC current sensor error", + "ac_frequency_too_high": "AC frequency too high", + "ac_frequency_too_low": "AC frequency too low", + "ac_grid_outside_permissible_limits": "AC grid outside the permissible limits", + "ac_module_over_temperature": "AC module overtemperature", + "ac_module_temperature_sensor_faulty_l1": "AC module temperature sensor faulty (L1)", + "ac_module_temperature_sensor_faulty_l2": "AC module temperature sensor faulty (L2)", + "ac_module_temperature_sensor_faulty_l3": "AC module temperature sensor faulty (L3)", + "ac_voltage_too_high": "AC voltage too high", + "ac_voltage_too_low": "AC voltage too low", + "arc_detection_triggered": "Arc detection triggered", + "arc_detector_switched_off": "Arc detector switched off (e.g. during external arc monitoring)", + "can_bus_full": "CAN bus is full", + "communication": "Communication error", + "compatibility_error_invalid_power_stage_configuration": "Compatibility error (e.g. due to replacement of a PC board) - invalid power stage set configuration", + "current_sensor_calibration_timeout": "Current sensor calibration timeout", + "dc_component_measured_in_grid_too_high": "DC component measured in the grid too high", + "dc_connection_inverter_battery_interrupted": "DC connection between inverter and battery interrupted", + "dc_input_voltage_mppt_1_too_high": "DC input voltage MPPT 1 too high", + "dc_input_voltage_mppt_2_too_high": "DC input voltage MPPT 2 too high", + "dc_low_string_1": "DC low string 1", + "dc_low_string_2": "DC low string 2", + "dc_module_over_temperature": "DC module overtemperature", + "dc_module_temperature_sensor_faulty": "DC module temperature sensor faulty", + "derating_caused_by_over_frequency": "Derating caused by overfrequency", + "different_power_limitation_in_hardware_modules": "Different power limitation in the hardware modules", + "eeprom_reinitialised": "EEPROM has been re-initialized", + "emergency_power_derating_activated": "Emergency power derating activated", + "error_during_logging_data_recording": "Error during recording of logging data", + "error_during_update_process": "Error occurred during update process", + "fan_1_error": "Fan 1 error", + "fan_2_error": "Fan 2 error", + "file_could_not_be_opened": "File could not be opened", + "fixed_voltage_mode_out_of_range": "Fixed voltage mode has been selected instead of MPP voltage mode and the fixed voltage has been set to too low or too high a value", + "functional_incompatibility_between_pc_boards": "Functional incompatibility (one or more PC boards in the inverter are not compatible with each other, e.g. after a PC board has been replaced)", + "grid_frequency_exceeded_limit_reconnecting": "The grid frequency has exceeded a limit value when reconnecting", + "grid_voltage_dependent_power_reduction_active": "Grid voltage-dependent power reduction (GVDPR) is active", + "guard_cannot_be_found": "Guard cannot be found", + "hardware_id_problem": "Hardware ID problem", + "hid_range_error": "HID range error", + "initialisation_error_file_system_error_on_usb": "Initialization error in file system on USB flash drive", + "initialisation_error_usb_flash_drive_not_supported": "Initialization error – USB flash drive is not supported", + "initialisation_error_usb_stick_over_current": "Initialization error – Overcurrent on USB stick", + "insulation_error_on_solar_panels": "Insulation error on the solar panels", + "insulation_fault": "Insulation fault", + "insulation_measurement_triggered": "Insulation measurement triggered", + "intermediate_circuit_voltage_too_high": "Intermediate circuit voltage too high", + "intermediate_circuit_voltage_too_low_or_asymmetric": "Intermediate circuit voltage too low or asymmetric", + "internal_dsp_malfunction": "Internal DSP malfunction", + "internal_hardware_error": "Internal hardware error", + "internal_processor_status": "Warning about the internal processor status. See status code for more information", + "interrupt_check_fail": "Interrupt Check fail", + "invalid_device_type": "Invalid device type", + "inverter_required_setup_values_not_received": "Inverter required setup values could not be received", + "inverter_settings_changed_restart_required": "Inverter settings have been changed, inverter restart required", + "log_file_cannot_be_saved": "Log file cannot be saved (e.g. USB flash drive is write-protected or full)", + "low_pv_voltage_dc_input_voltage_too_low": "Low PV voltage - DC input voltage too low for feeding energy into the grid", + "mains_voltage_dependent_power_reduction": "Mains voltage-dependent power reduction", + "memory_error_detected": "Memory error detected", + "neutral_conductor_not_connected": "Neutral conductor not connected", + "no_communication_between_power_stage_and_control_system": "No communication possible between power stage set and control system", + "no_communication_with_filter": "No communication with filter possible", + "no_communication_with_hybrid_manager": "No communication possible with the Hybrid manager", + "no_communication_with_power_stage_set": "No communication with the power stage set possible", + "no_communication_with_storage_unit": "No communication possible with the storage unit", + "no_energy_fed_by_mppt1_past_24_hours": "No energy fed into the grid by MPPT1 in the past 24 hours", + "no_energy_fed_into_grid_past_24_hours": "No energy fed into the grid in the past 24 hours", + "no_error": "No error", + "no_power_fed_in_despite_closed_relay": "No power being fed in, despite closed relay", + "no_usb_flash_drive_connected": "No USB flash drive connected", + "overcurrent_ac": "Overcurrent (AC)", + "overcurrent_dc": "Overcurrent (DC)", + "overtemperature_in_connection_area": "Overtemperature in the connection area", + "pmc_power_stage_set_not_available": "PMC power stage set not available", + "polarity_of_dc_strings_reversed": "Polarity of DC strings reversed", + "possible_hardware_fault": "Possible hardware fault", + "power_derating_due_to_high_temperature": "Power derating caused by too high a temperature", + "power_stage_set_problem": "Power stage set problem", + "pv_output_too_low_for_feeding_energy_into_the_grid": "PV output too low for feeding energy into the grid", + "rcmu_error": "RCMU error", + "real_time_clock_communication_error": "Real Time Clock module communication error", + "real_time_clock_hardware_error": "Hardware error in the Real Time Clock module", + "real_time_clock_in_emergency_mode": "Internal error: Real Time Clock module is in emergency mode", + "safety_cut_out_triggered": "Safety cut-out via option card or RECERBO has triggered", + "software_problem": "Software problem", + "software_update_invalid_country_setup": "Software update group 0 (invalid country setup)", + "stand_alone_operation_detected": "Stand-alone operation detected", + "storage_unit_not_available": "Storage unit not available", + "time_lost": "Time lost", + "too_little_dc_power_for_feed_in_operation": "Too little DC power for feed-in operation", + "unique_id_conflict": "Unique ID conflict", + "update_file_corrupt": "Update file corrupt", + "update_file_does_not_match_device": "Update file does not match the device, update file too old", + "update_file_not_recognised_or_missing": "Update file not recognized or not present", + "wired_shut_down_triggered": "Wired shutdown triggered", + "write_or_read_error_occurred": "Write or read error occurred" + } + }, "frequency_phase_average": { "name": "Frequency phase average" }, + "inverter_state": { + "name": "Inverter state" + }, + "led_color": { + "name": "LED color" + }, + "led_state": { + "name": "LED state" + }, "meter_location": { "name": "Meter location" }, "meter_location_description": { "name": "Meter location description", "state": { - "feed_in": "Grid interconnection point", "consumption_path": "Consumption path", - "external_generator": "External generator", "external_battery": "External battery", + "external_generator": "External generator", + "feed_in": "Grid interconnection point", "subload": "Subload" } }, + "meter_mode": { + "name": "Meter mode" + }, + "power_ac": { + "name": "AC power" + }, "power_apparent_phase_1": { "name": "Apparent power phase 1" }, @@ -257,6 +244,15 @@ "power_apparent_phase_3": { "name": "Apparent power phase 3" }, + "power_battery": { + "name": "Power battery" + }, + "power_battery_charge": { + "name": "Power battery charge" + }, + "power_battery_discharge": { + "name": "Power battery discharge" + }, "power_factor_phase_1": { "name": "Power factor phase 1" }, @@ -266,6 +262,30 @@ "power_factor_phase_3": { "name": "Power factor phase 3" }, + "power_grid": { + "name": "Power grid" + }, + "power_grid_export": { + "name": "Power grid export" + }, + "power_grid_import": { + "name": "Power grid import" + }, + "power_load": { + "name": "Power load" + }, + "power_load_consumed": { + "name": "Power load consumed" + }, + "power_load_generated": { + "name": "Power load generated" + }, + "power_photovoltaics": { + "name": "Power photovoltaics" + }, + "power_reactive": { + "name": "Reactive power" + }, "power_reactive_phase_1": { "name": "Reactive power phase 1" }, @@ -275,8 +295,8 @@ "power_reactive_phase_3": { "name": "Reactive power phase 3" }, - "power_reactive": { - "name": "Reactive power" + "power_real": { + "name": "Real power" }, "power_real_phase_1": { "name": "Real power phase 1" @@ -287,8 +307,50 @@ "power_real_phase_3": { "name": "Real power phase 3" }, - "power_real": { - "name": "Real power" + "relative_autonomy": { + "name": "Relative autonomy" + }, + "relative_self_consumption": { + "name": "Relative self-consumption" + }, + "state_code": { + "name": "State code" + }, + "state_message": { + "name": "State message", + "state": { + "boost_mode": "Boost mode", + "critical_fault": "Critical fault", + "fault": "[%key:common::state::fault%]", + "keep_minimum_temperature": "Keep minimum temperature", + "legionella_protection": "Legionella protection", + "up_and_running": "Up and running" + } + }, + "state_of_charge": { + "name": "State of charge" + }, + "status_code": { + "name": "Status code" + }, + "status_message": { + "name": "Status message", + "state": { + "bootloading": "Bootloading", + "error": "[%key:common::state::error%]", + "idle": "[%key:common::state::idle%]", + "ready": "Ready", + "running": "Running", + "sleeping": "Sleeping", + "standby": "[%key:common::state::standby%]", + "startup": "Startup" + } + }, + "temperature_cell": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "voltage_ac": { + "name": "AC voltage" }, "voltage_ac_phase_1": { "name": "Voltage phase 1" @@ -308,67 +370,8 @@ "voltage_ac_phase_to_phase_31": { "name": "Voltage phase 3-1" }, - "energy_real_ac_consumed": { - "name": "Energy consumed" - }, - "state_code": { - "name": "State code" - }, - "state_message": { - "name": "State message", - "state": { - "fault": "[%key:common::state::fault%]", - "critical_fault": "Critical fault", - "up_and_running": "Up and running", - "keep_minimum_temperature": "Keep minimum temperature", - "legionella_protection": "Legionella protection", - "boost_mode": "Boost mode" - } - }, - "meter_mode": { - "name": "Meter mode" - }, - "power_battery": { - "name": "Power battery" - }, - "power_battery_discharge": { - "name": "Power battery discharge" - }, - "power_battery_charge": { - "name": "Power battery charge" - }, - "power_grid": { - "name": "Power grid" - }, - "power_grid_import": { - "name": "Power grid import" - }, - "power_grid_export": { - "name": "Power grid export" - }, - "power_load": { - "name": "Power load" - }, - "power_load_generated": { - "name": "Power load generated" - }, - "power_load_consumed": { - "name": "Power load consumed" - }, - "power_photovoltaics": { - "name": "Power photovoltaics" - }, - "relative_autonomy": { - "name": "Relative autonomy" - }, - "relative_self_consumption": { - "name": "Relative self-consumption" - }, - "capacity_maximum": { - "name": "Maximum capacity" - }, - "capacity_designed": { - "name": "Designed capacity" + "voltage_dc": { + "name": "DC voltage" }, "voltage_dc_maximum_cell": { "name": "Maximum cell voltage" @@ -376,11 +379,8 @@ "voltage_dc_minimum_cell": { "name": "Minimum cell voltage" }, - "state_of_charge": { - "name": "State of charge" - }, - "temperature_cell": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" + "voltage_dc_mppt_no": { + "name": "DC voltage {mppt_no}" } } }, diff --git a/homeassistant/components/frontend/icons.json b/homeassistant/components/frontend/icons.json index b4bcdef6194..69f13151eae 100644 --- a/homeassistant/components/frontend/icons.json +++ b/homeassistant/components/frontend/icons.json @@ -1,10 +1,10 @@ { "services": { - "set_theme": { - "service": "mdi:palette-swatch" - }, "reload_themes": { "service": "mdi:reload" + }, + "set_theme": { + "service": "mdi:palette-swatch" } } } diff --git a/homeassistant/components/frontend/strings.json b/homeassistant/components/frontend/strings.json index b5fdeb612c4..b15ad1f1b4a 100644 --- a/homeassistant/components/frontend/strings.json +++ b/homeassistant/components/frontend/strings.json @@ -1,24 +1,4 @@ { - "services": { - "set_theme": { - "name": "Set the default theme", - "description": "Sets the default theme Home Assistant uses. Can be overridden by a user.", - "fields": { - "name": { - "name": "Theme", - "description": "Name of a theme." - }, - "mode": { - "name": "Mode", - "description": "Theme mode." - } - } - }, - "reload_themes": { - "name": "Reload themes", - "description": "Reloads themes from the YAML-configuration." - } - }, "selector": { "mode": { "options": { @@ -26,5 +6,25 @@ "light": "Light" } } + }, + "services": { + "reload_themes": { + "description": "Reloads themes from the YAML-configuration.", + "name": "Reload themes" + }, + "set_theme": { + "description": "Sets the default theme Home Assistant uses. Can be overridden by a user.", + "fields": { + "mode": { + "description": "Theme mode.", + "name": "Mode" + }, + "name": { + "description": "Name of a theme.", + "name": "Theme" + } + }, + "name": "Set the default theme" + } } } diff --git a/homeassistant/components/frontier_silicon/strings.json b/homeassistant/components/frontier_silicon/strings.json index d3e1cd84e4a..cc13e2d0d47 100644 --- a/homeassistant/components/frontier_silicon/strings.json +++ b/homeassistant/components/frontier_silicon/strings.json @@ -1,6 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "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": { + "confirm": { + "description": "Do you want to set up {name}?" + }, + "device_config": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "The PIN can be found via 'MENU button > Main Menu > System setting > Network > NetRemote PIN setup'", + "title": "Device configuration" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -9,29 +31,7 @@ "data_description": { "host": "The hostname or IP address of your Frontier Silicon device." } - }, - "device_config": { - "title": "Device configuration", - "description": "The PIN can be found via 'MENU button > Main Menu > System setting > Network > NetRemote PIN setup'", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - }, - "confirm": { - "description": "Do you want to set up {name}?" } - }, - "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "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%]" } } } diff --git a/homeassistant/components/fujitsu_fglair/strings.json b/homeassistant/components/fujitsu_fglair/strings.json index ea97ca416e5..e53a92ed1ba 100644 --- a/homeassistant/components/fujitsu_fglair/strings.json +++ b/homeassistant/components/fujitsu_fglair/strings.json @@ -1,38 +1,29 @@ { "config": { - "step": { - "user": { - "title": "Enter your FGLair credentials", - "data": { - "region": "Region", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please re-enter the password for {username}:", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "selector": { - "region": { - "options": { - "default": "Other", - "eu": "Europe", - "cn": "China" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please re-enter the password for {username}:", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "region": "Region", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Enter your FGLair credentials" } } }, @@ -42,5 +33,14 @@ "name": "Outside temperature" } } + }, + "selector": { + "region": { + "options": { + "cn": "China", + "default": "Other", + "eu": "Europe" + } + } } } diff --git a/homeassistant/components/fully_kiosk/strings.json b/homeassistant/components/fully_kiosk/strings.json index 11c91c1f637..10fe679bf1d 100644 --- a/homeassistant/components/fully_kiosk/strings.json +++ b/homeassistant/components/fully_kiosk/strings.json @@ -5,9 +5,15 @@ "data_description_verify_ssl": "Should SSL certificates be verified? This should be off for self-signed certificates." }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "cannot_connect": "Cannot connect. Details: {error_detail}", + "unknown": "Unknown. Details: {error_detail}" + }, "step": { "discovery_confirm": { - "description": "Do you want to set up {name} ({host})?", "data": { "password": "[%key:common::config_flow::data::password%]", "ssl": "[%key:common::config_flow::data::ssl%]", @@ -17,7 +23,8 @@ "password": "[%key:component::fully_kiosk::common::data_description_password%]", "ssl": "[%key:component::fully_kiosk::common::data_description_ssl%]", "verify_ssl": "[%key:component::fully_kiosk::common::data_description_verify_ssl%]" - } + }, + "description": "Do you want to set up {name} ({host})?" }, "user": { "data": { @@ -33,45 +40,38 @@ "verify_ssl": "[%key:component::fully_kiosk::common::data_description_verify_ssl%]" } } - }, - "error": { - "cannot_connect": "Cannot connect. Details: {error_detail}", - "unknown": "Unknown. Details: {error_detail}" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" } }, "entity": { "binary_sensor": { + "device_admin": { + "name": "Device admin" + }, "kiosk_mode": { "name": "Kiosk mode" }, "plugged_in": { "name": "Plugged in" - }, - "device_admin": { - "name": "Device admin" } }, "button": { + "clear_cache": { + "name": "Clear browser cache" + }, + "load_start_url": { + "name": "Load start URL" + }, "restart_browser": { "name": "Restart browser" }, "restart_device": { "name": "Restart device" }, - "to_foreground": { - "name": "Bring to foreground" - }, "to_background": { "name": "Send to background" }, - "load_start_url": { - "name": "Load start URL" - }, - "clear_cache": { - "name": "Clear browser cache" + "to_foreground": { + "name": "Bring to foreground" } }, "image": { @@ -88,106 +88,106 @@ } }, "number": { - "screensaver_time": { - "name": "Screensaver timer" - }, - "screensaver_brightness": { - "name": "Screensaver brightness" + "screen_brightness": { + "name": "Screen brightness" }, "screen_off_time": { "name": "Screen off timer" }, - "screen_brightness": { - "name": "Screen brightness" + "screensaver_brightness": { + "name": "Screensaver brightness" + }, + "screensaver_time": { + "name": "Screensaver timer" } }, "sensor": { "current_page": { "name": "Current page" }, - "screen_orientation": { - "name": "Screen orientation" - }, "foreground_app": { "name": "Foreground app" }, - "internal_storage_total_space": { - "name": "Internal storage total space" - }, "internal_storage_free_space": { "name": "Internal storage free space" }, + "internal_storage_total_space": { + "name": "Internal storage total space" + }, "ram_free_memory": { "name": "Free memory" }, "ram_total_memory": { "name": "Total memory" + }, + "screen_orientation": { + "name": "Screen orientation" } }, "switch": { - "screensaver": { - "name": "Screensaver" + "kiosk": { + "name": "Kiosk lock" }, "maintenance": { "name": "Maintenance mode" }, - "kiosk": { - "name": "Kiosk lock" - }, "motion_detection": { "name": "Motion detection" }, "screen_on": { "name": "Screen" + }, + "screensaver": { + "name": "Screensaver" } } }, "services": { "load_url": { - "name": "Load URL", "description": "Loads a URL on Fully Kiosk Browser.", "fields": { "device_id": { - "name": "Device ID", - "description": "The target device for this action." + "description": "The target device for this action.", + "name": "Device ID" }, "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "URL to load." + "description": "URL to load.", + "name": "[%key:common::config_flow::data::url%]" } - } + }, + "name": "Load URL" }, "set_config": { - "name": "Set configuration", "description": "Sets a configuration parameter on Fully Kiosk Browser.", "fields": { "device_id": { - "name": "[%key:component::fully_kiosk::services::load_url::fields::device_id::name%]", - "description": "[%key:component::fully_kiosk::services::load_url::fields::device_id::description%]" + "description": "[%key:component::fully_kiosk::services::load_url::fields::device_id::description%]", + "name": "[%key:component::fully_kiosk::services::load_url::fields::device_id::name%]" }, "key": { - "name": "Key", - "description": "Configuration parameter to set." + "description": "Configuration parameter to set.", + "name": "Key" }, "value": { - "name": "Value", - "description": "Value for the configuration parameter." + "description": "Value for the configuration parameter.", + "name": "Value" } - } + }, + "name": "Set configuration" }, "start_application": { - "name": "Start application", "description": "Starts an application on the device running Fully Kiosk Browser.", "fields": { "application": { - "name": "Application", - "description": "Package name of the application to start." + "description": "Package name of the application to start.", + "name": "Application" }, "device_id": { - "name": "[%key:component::fully_kiosk::services::load_url::fields::device_id::name%]", - "description": "[%key:component::fully_kiosk::services::load_url::fields::device_id::description%]" + "description": "[%key:component::fully_kiosk::services::load_url::fields::device_id::description%]", + "name": "[%key:component::fully_kiosk::services::load_url::fields::device_id::name%]" } - } + }, + "name": "Start application" } } } diff --git a/homeassistant/components/fyta/icons.json b/homeassistant/components/fyta/icons.json index 5b6380196f4..ade0a3d3606 100644 --- a/homeassistant/components/fyta/icons.json +++ b/homeassistant/components/fyta/icons.json @@ -21,11 +21,11 @@ } }, "sensor": { - "status": { - "default": "mdi:flower" + "last_fertilised": { + "default": "mdi:calendar-check" }, - "temperature_status": { - "default": "mdi:thermometer-lines" + "light": { + "default": "mdi:weather-sunny" }, "light_status": { "default": "mdi:sun-clock-outline" @@ -33,23 +33,23 @@ "moisture_status": { "default": "mdi:water-percent-alert" }, + "next_fertilisation": { + "default": "mdi:calendar-end" + }, "nutrients_status": { "default": "mdi:emoticon-poop" }, - "salinity_status": { - "default": "mdi:sprout-outline" - }, - "light": { - "default": "mdi:weather-sunny" - }, "salinity": { "default": "mdi:sprout-outline" }, - "last_fertilised": { - "default": "mdi:calendar-check" + "salinity_status": { + "default": "mdi:sprout-outline" }, - "next_fertilisation": { - "default": "mdi:calendar-end" + "status": { + "default": "mdi:flower" + }, + "temperature_status": { + "default": "mdi:thermometer-lines" } } } diff --git a/homeassistant/components/fyta/strings.json b/homeassistant/components/fyta/strings.json index b0c14e0d4c1..d8209a6107f 100644 --- a/homeassistant/components/fyta/strings.json +++ b/homeassistant/components/fyta/strings.json @@ -1,30 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Credentials for FYTA API", - "description": "Provide email and password to connect to the FYTA server", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The email address to log in to your FYTA account.", - "password": "The password to log in to your FYTA account." - } - }, - "reauth_confirm": { - "description": "Update your credentials for FYTA API", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::fyta::config::step::user::data_description::username%]", - "password": "[%key:component::fyta::config::step::user::data_description::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -35,6 +10,31 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "password_error": "Invalid password", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::fyta::config::step::user::data_description::password%]", + "username": "[%key:component::fyta::config::step::user::data_description::username%]" + }, + "description": "Update your credentials for FYTA API" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "data_description": { + "password": "The password to log in to your FYTA account.", + "username": "The email address to log in to your FYTA account." + }, + "description": "Provide email and password to connect to the FYTA server", + "title": "Credentials for FYTA API" + } } }, "entity": { @@ -70,72 +70,8 @@ } }, "sensor": { - "scientific_name": { - "name": "Scientific name" - }, - "plant_status": { - "name": "Plant state", - "state": { - "deleted": "Deleted", - "doing_great": "Doing great", - "need_attention": "Needs attention", - "no_sensor": "No sensor" - } - }, - "temperature_status": { - "name": "Temperature state", - "state": { - "no_data": "No data", - "too_low": "Too low", - "low": "[%key:common::state::low%]", - "perfect": "Perfect", - "high": "[%key:common::state::high%]", - "too_high": "Too high" - } - }, - "light_status": { - "name": "Light state", - "state": { - "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", - "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]", - "low": "[%key:common::state::low%]", - "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", - "high": "[%key:common::state::high%]", - "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]" - } - }, - "moisture_status": { - "name": "Moisture state", - "state": { - "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", - "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]", - "low": "[%key:common::state::low%]", - "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", - "high": "[%key:common::state::high%]", - "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]" - } - }, - "nutrients_status": { - "name": "Nutrients state", - "state": { - "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", - "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]", - "low": "[%key:common::state::low%]", - "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", - "high": "[%key:common::state::high%]", - "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]" - } - }, - "salinity_status": { - "name": "Salinity state", - "state": { - "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", - "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]", - "low": "[%key:common::state::low%]", - "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", - "high": "[%key:common::state::high%]", - "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]" - } + "last_fertilised": { + "name": "Last fertilized" }, "light": { "name": "Light", @@ -146,6 +82,17 @@ "min_good": { "name": "Minimum good" } } }, + "light_status": { + "name": "Light state", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", + "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", + "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]", + "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]" + } + }, "moisture": { "name": "[%key:component::sensor::entity_component::moisture::name%]", "state_attributes": { @@ -163,6 +110,40 @@ } } }, + "moisture_status": { + "name": "Moisture state", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", + "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", + "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]", + "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]" + } + }, + "next_fertilisation": { + "name": "Next fertilization" + }, + "nutrients_status": { + "name": "Nutrients state", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", + "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", + "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]", + "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]" + } + }, + "plant_status": { + "name": "Plant state", + "state": { + "deleted": "Deleted", + "doing_great": "Doing great", + "need_attention": "Needs attention", + "no_sensor": "No sensor" + } + }, "salinity": { "name": "Salinity", "state_attributes": { @@ -180,6 +161,20 @@ } } }, + "salinity_status": { + "name": "Salinity state", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]", + "perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]", + "too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]", + "too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]" + } + }, + "scientific_name": { + "name": "Scientific name" + }, "temperature": { "name": "[%key:component::sensor::entity_component::temperature::name%]", "state_attributes": { @@ -197,23 +192,28 @@ } } }, - "last_fertilised": { - "name": "Last fertilized" - }, - "next_fertilisation": { - "name": "Next fertilization" + "temperature_status": { + "name": "Temperature state", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "no_data": "No data", + "perfect": "Perfect", + "too_high": "Too high", + "too_low": "Too low" + } } } }, "exceptions": { - "update_error": { - "message": "Error while updating data from the API." + "auth_failed": { + "message": "Error while logging in to the API." }, "config_entry_not_ready": { "message": "Error while loading the config entry." }, - "auth_failed": { - "message": "Error while logging in to the API." + "update_error": { + "message": "Error while updating data from the API." } } } diff --git a/homeassistant/components/garages_amsterdam/icons.json b/homeassistant/components/garages_amsterdam/icons.json index 156ee85f157..6c7cadb5c4a 100644 --- a/homeassistant/components/garages_amsterdam/icons.json +++ b/homeassistant/components/garages_amsterdam/icons.json @@ -1,17 +1,17 @@ { "entity": { "sensor": { - "free_space_short": { - "default": "mdi:car" - }, "free_space_long": { "default": "mdi:car" }, - "short_capacity": { + "free_space_short": { "default": "mdi:car" }, "long_capacity": { "default": "mdi:car" + }, + "short_capacity": { + "default": "mdi:car" } } } diff --git a/homeassistant/components/garages_amsterdam/strings.json b/homeassistant/components/garages_amsterdam/strings.json index 19157afdafb..dc50ff63c54 100644 --- a/homeassistant/components/garages_amsterdam/strings.json +++ b/homeassistant/components/garages_amsterdam/strings.json @@ -1,46 +1,46 @@ { - "title": "Garages Amsterdam", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "description": "Select a garage from the list", "data": { "garage_name": "Garage name" }, "data_description": { "garage_name": "The name of the garage you want to monitor." - } + }, + "description": "Select a garage from the list" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { + "binary_sensor": { + "state": { + "name": "State" + } + }, "sensor": { - "free_space_short": { - "name": "Short parking free space", - "unit_of_measurement": "cars" - }, "free_space_long": { "name": "Long parking free space", "unit_of_measurement": "cars" }, - "short_capacity": { - "name": "Short parking capacity", + "free_space_short": { + "name": "Short parking free space", "unit_of_measurement": "cars" }, "long_capacity": { "name": "Long parking capacity", "unit_of_measurement": "cars" - } - }, - "binary_sensor": { - "state": { - "name": "State" + }, + "short_capacity": { + "name": "Short parking capacity", + "unit_of_measurement": "cars" } } - } + }, + "title": "Garages Amsterdam" } diff --git a/homeassistant/components/gardena_bluetooth/manifest.json b/homeassistant/components/gardena_bluetooth/manifest.json index 8c9cda7d998..0cc63c83840 100644 --- a/homeassistant/components/gardena_bluetooth/manifest.json +++ b/homeassistant/components/gardena_bluetooth/manifest.json @@ -3,9 +3,9 @@ "name": "Gardena Bluetooth", "bluetooth": [ { + "connectable": true, "manufacturer_id": 1062, - "service_uuid": "98bd0001-0b0e-421a-84e5-ddbf75dc6de4", - "connectable": true + "service_uuid": "98bd0001-0b0e-421a-84e5-ddbf75dc6de4" } ], "codeowners": ["@elupus"], diff --git a/homeassistant/components/gardena_bluetooth/strings.json b/homeassistant/components/gardena_bluetooth/strings.json index dd50bac0b2a..0926d4dd645 100644 --- a/homeassistant/components/gardena_bluetooth/strings.json +++ b/homeassistant/components/gardena_bluetooth/strings.json @@ -1,32 +1,32 @@ { "config": { - "step": { - "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", - "data": { - "address": "[%key:common::config_flow::data::device%]" - } - }, - "confirm": { - "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" }, "error": { "cannot_connect": "Failed to connect: {error}" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "step": { + "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": { "binary_sensor": { - "valve_connected_state": { - "name": "Valve connection" - }, "sensor_connected_state": { "name": "Sensor connection" + }, + "valve_connected_state": { + "name": "Valve connection" } }, "button": { @@ -35,18 +35,18 @@ } }, "number": { - "remaining_open_time": { - "name": "Remaining open time" - }, - "remaining_open_set": { - "name": "Open for" - }, "manual_watering_time": { "name": "Manual watering time" }, "rain_pause": { "name": "Rain pause" }, + "remaining_open_set": { + "name": "Open for" + }, + "remaining_open_time": { + "name": "Remaining open time" + }, "seasonal_adjust": { "name": "Seasonal adjust" }, @@ -58,17 +58,17 @@ "activation_reason": { "name": "Activation reason" }, + "remaining_open_timestamp": { + "name": "Valve closing" + }, "sensor_battery_level": { "name": "Sensor battery" }, - "sensor_type": { - "name": "Sensor type" - }, "sensor_measurement_timestamp": { "name": "Sensor timestamp" }, - "remaining_open_timestamp": { - "name": "Valve closing" + "sensor_type": { + "name": "Sensor type" } }, "switch": { diff --git a/homeassistant/components/gdacs/strings.json b/homeassistant/components/gdacs/strings.json index b728865b347..cb38765405a 100644 --- a/homeassistant/components/gdacs/strings.json +++ b/homeassistant/components/gdacs/strings.json @@ -1,15 +1,15 @@ { "config": { - "step": { - "user": { - "title": "Fill in your filter details.", - "data": { - "radius": "Radius" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "data": { + "radius": "Radius" + }, + "title": "Fill in your filter details." + } } } } diff --git a/homeassistant/components/generic/strings.json b/homeassistant/components/generic/strings.json index 4a5d672fcde..836769970fb 100644 --- a/homeassistant/components/generic/strings.json +++ b/homeassistant/components/generic/strings.json @@ -1,66 +1,84 @@ { - "title": "Generic Camera", "config": { - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "unknown_with_details": "An unknown error occurred: {error}", - "already_exists": "A camera with these URL settings already exists.", - "unable_still_load": "Unable to load valid image from still image URL (e.g. invalid host, URL or authentication failure). Review log for more info.", - "unable_still_load_auth": "Unable to load valid image from still image URL: The camera may require a user name and password, or they are not correct.", - "unable_still_load_not_found": "Unable to load valid image from still image URL: The URL was not found on the server.", - "unable_still_load_server_error": "Unable to load valid image from still image URL: The camera replied with a server error.", - "unable_still_load_no_image": "Unable to load valid image from still image URL: No image was returned.", - "no_still_image_or_stream_url": "You must specify at least a still image or stream URL", - "invalid_still_image": "URL did not return a valid still image", - "malformed_url": "Malformed URL", - "relative_url": "Relative URLs are not allowed", - "template_error": "Error rendering template. Review log for more info.", - "timeout": "Timeout while loading URL", - "stream_not_set_up": "The stream integration is not set up. Please ensure that you have 'default_config:' or 'stream:' in your configuration.yaml", - "stream_no_route_to_host": "Could not find host while trying to connect to stream", - "stream_io_error": "Input/Output error while trying to connect to stream. Wrong RTSP transport protocol?", - "stream_not_permitted": "Operation not permitted while trying to connect to stream. Wrong RTSP transport protocol?" - }, "abort": { "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, + "error": { + "already_exists": "A camera with these URL settings already exists.", + "invalid_still_image": "URL did not return a valid still image", + "malformed_url": "Malformed URL", + "no_still_image_or_stream_url": "You must specify at least a still image or stream URL", + "relative_url": "Relative URLs are not allowed", + "stream_io_error": "Input/Output error while trying to connect to stream. Wrong RTSP transport protocol?", + "stream_no_route_to_host": "Could not find host while trying to connect to stream", + "stream_not_permitted": "Operation not permitted while trying to connect to stream. Wrong RTSP transport protocol?", + "stream_not_set_up": "The stream integration is not set up. Please ensure that you have 'default_config:' or 'stream:' in your configuration.yaml", + "template_error": "Error rendering template. Review log for more info.", + "timeout": "Timeout while loading URL", + "unable_still_load": "Unable to load valid image from still image URL (e.g. invalid host, URL or authentication failure). Review log for more info.", + "unable_still_load_auth": "Unable to load valid image from still image URL: The camera may require a user name and password, or they are not correct.", + "unable_still_load_no_image": "Unable to load valid image from still image URL: No image was returned.", + "unable_still_load_not_found": "Unable to load valid image from still image URL: The URL was not found on the server.", + "unable_still_load_server_error": "Unable to load valid image from still image URL: The camera replied with a server error.", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unknown_with_details": "An unknown error occurred: {error}" + }, "step": { "user": { - "description": "Enter the settings to connect to the camera.", "data": { - "still_image_url": "Still image URL (e.g. http://...)", - "stream_source": "Stream source URL (e.g. rtsp://...)", - "rtsp_transport": "RTSP transport protocol", "authentication": "Authentication", + "framerate": "Frame rate (Hz)", "limit_refetch_to_url_change": "Limit refetch to URL change", "password": "[%key:common::config_flow::data::password%]", + "rtsp_transport": "RTSP transport protocol", + "still_image_url": "Still image URL (e.g. http://...)", + "stream_source": "Stream source URL (e.g. rtsp://...)", "username": "[%key:common::config_flow::data::username%]", - "framerate": "Frame rate (Hz)", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } + }, + "description": "Enter the settings to connect to the camera." }, "user_confirm": { - "title": "Confirmation", - "description": "Please wait for previews to load...", "data": { "confirmed_ok": "Everything looks good." - } + }, + "description": "Please wait for previews to load...", + "title": "Confirmation" } } }, "options": { + "error": { + "already_exists": "[%key:component::generic::config::error::already_exists%]", + "invalid_still_image": "[%key:component::generic::config::error::invalid_still_image%]", + "malformed_url": "[%key:component::generic::config::error::malformed_url%]", + "no_still_image_or_stream_url": "[%key:component::generic::config::error::no_still_image_or_stream_url%]", + "relative_url": "[%key:component::generic::config::error::relative_url%]", + "stream_io_error": "[%key:component::generic::config::error::stream_io_error%]", + "stream_no_route_to_host": "[%key:component::generic::config::error::stream_no_route_to_host%]", + "stream_not_permitted": "[%key:component::generic::config::error::stream_not_permitted%]", + "template_error": "[%key:component::generic::config::error::template_error%]", + "timeout": "[%key:component::generic::config::error::timeout%]", + "unable_still_load": "[%key:component::generic::config::error::unable_still_load%]", + "unable_still_load_auth": "[%key:component::generic::config::error::unable_still_load_auth%]", + "unable_still_load_no_image": "[%key:component::generic::config::error::unable_still_load_no_image%]", + "unable_still_load_not_found": "[%key:component::generic::config::error::unable_still_load_not_found%]", + "unable_still_load_server_error": "[%key:component::generic::config::error::unable_still_load_server_error%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unknown_with_details": "[%key:component::generic::config::error::unknown_with_details%]" + }, "step": { "init": { "data": { - "still_image_url": "[%key:component::generic::config::step::user::data::still_image_url%]", - "stream_source": "[%key:component::generic::config::step::user::data::stream_source%]", - "rtsp_transport": "[%key:component::generic::config::step::user::data::rtsp_transport%]", "authentication": "[%key:component::generic::config::step::user::data::authentication%]", + "framerate": "[%key:component::generic::config::step::user::data::framerate%]", "limit_refetch_to_url_change": "[%key:component::generic::config::step::user::data::limit_refetch_to_url_change%]", "password": "[%key:common::config_flow::data::password%]", + "rtsp_transport": "[%key:component::generic::config::step::user::data::rtsp_transport%]", + "still_image_url": "[%key:component::generic::config::step::user::data::still_image_url%]", + "stream_source": "[%key:component::generic::config::step::user::data::stream_source%]", "use_wallclock_as_timestamps": "Use wallclock as timestamps", "username": "[%key:common::config_flow::data::username%]", - "framerate": "[%key:component::generic::config::step::user::data::framerate%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, "data_description": { @@ -68,37 +86,19 @@ } }, "user_confirm": { - "title": "Confirmation", - "description": "Please wait for previews to load...", "data": { "confirmed_ok": "Everything looks good." - } + }, + "description": "Please wait for previews to load...", + "title": "Confirmation" } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "unknown_with_details": "[%key:component::generic::config::error::unknown_with_details%]", - "already_exists": "[%key:component::generic::config::error::already_exists%]", - "unable_still_load": "[%key:component::generic::config::error::unable_still_load%]", - "unable_still_load_auth": "[%key:component::generic::config::error::unable_still_load_auth%]", - "unable_still_load_not_found": "[%key:component::generic::config::error::unable_still_load_not_found%]", - "unable_still_load_server_error": "[%key:component::generic::config::error::unable_still_load_server_error%]", - "unable_still_load_no_image": "[%key:component::generic::config::error::unable_still_load_no_image%]", - "no_still_image_or_stream_url": "[%key:component::generic::config::error::no_still_image_or_stream_url%]", - "invalid_still_image": "[%key:component::generic::config::error::invalid_still_image%]", - "malformed_url": "[%key:component::generic::config::error::malformed_url%]", - "relative_url": "[%key:component::generic::config::error::relative_url%]", - "template_error": "[%key:component::generic::config::error::template_error%]", - "timeout": "[%key:component::generic::config::error::timeout%]", - "stream_no_route_to_host": "[%key:component::generic::config::error::stream_no_route_to_host%]", - "stream_io_error": "[%key:component::generic::config::error::stream_io_error%]", - "stream_not_permitted": "[%key:component::generic::config::error::stream_not_permitted%]" } }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads generic cameras from the YAML-configuration." + "description": "Reloads generic cameras from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Generic Camera" } diff --git a/homeassistant/components/generic_hygrostat/strings.json b/homeassistant/components/generic_hygrostat/strings.json index 7b8d56dbaa5..f9e08acbce3 100644 --- a/homeassistant/components/generic_hygrostat/strings.json +++ b/homeassistant/components/generic_hygrostat/strings.json @@ -1,10 +1,7 @@ { - "title": "Generic hygrostat", "config": { "step": { "user": { - "title": "Create generic hygrostat", - "description": "Create a humidifier entity that controls the humidity via a switch and sensor.", "data": { "device_class": "Device class", "dry_tolerance": "Dry tolerance", @@ -20,7 +17,9 @@ "min_cycle_duration": "Set a minimum duration for which the specified switch must remain in its current state before it can be toggled off or on.", "target_sensor": "Sensor with current humidity.", "wet_tolerance": "The minimum amount of difference between the humidity read by the sensor specified in the target sensor option and the target humidity that must change prior to being switched off." - } + }, + "description": "Create a humidifier entity that controls the humidity via a switch and sensor.", + "title": "Create generic hygrostat" } } }, @@ -48,9 +47,10 @@ "selector": { "device_class": { "options": { - "humidifier": "Humidifier", - "dehumidifier": "Dehumidifier" + "dehumidifier": "Dehumidifier", + "humidifier": "Humidifier" } } - } + }, + "title": "Generic hygrostat" } diff --git a/homeassistant/components/generic_thermostat/strings.json b/homeassistant/components/generic_thermostat/strings.json index 735e0b0f9e6..6c8876d28eb 100644 --- a/homeassistant/components/generic_thermostat/strings.json +++ b/homeassistant/components/generic_thermostat/strings.json @@ -1,40 +1,39 @@ { - "title": "Generic thermostat", "config": { "step": { - "user": { - "title": "Create generic thermostat", - "description": "Create a climate entity that controls the temperature via a switch and sensor.", - "data": { - "ac_mode": "Cooling mode", - "heater": "Actuator switch", - "target_sensor": "Temperature sensor", - "min_cycle_duration": "Minimum cycle duration", - "name": "[%key:common::config_flow::data::name%]", - "cold_tolerance": "Cold tolerance", - "hot_tolerance": "Hot tolerance", - "min_temp": "Minimum target temperature", - "max_temp": "Maximum target temperature" - }, - "data_description": { - "ac_mode": "Set the actuator specified to be treated as a cooling device instead of a heating device.", - "heater": "Switch entity used to cool or heat depending on A/C mode.", - "target_sensor": "Temperature sensor that reflects the current temperature.", - "min_cycle_duration": "Set a minimum amount of time that the switch specified must be in its current state prior to being switched either off or on.", - "cold_tolerance": "Minimum amount of difference between the temperature read by the temperature sensor the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor goes below 24.5.", - "hot_tolerance": "Minimum amount of difference between the temperature read by the temperature sensor the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5." - } - }, "presets": { - "title": "Temperature presets", "data": { - "home_temp": "[%key:common::state::home%]", + "activity_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::activity%]", "away_temp": "[%key:common::state::not_home%]", "comfort_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]", "eco_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::eco%]", - "sleep_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]", - "activity_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::activity%]" - } + "home_temp": "[%key:common::state::home%]", + "sleep_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]" + }, + "title": "Temperature presets" + }, + "user": { + "data": { + "ac_mode": "Cooling mode", + "cold_tolerance": "Cold tolerance", + "heater": "Actuator switch", + "hot_tolerance": "Hot tolerance", + "max_temp": "Maximum target temperature", + "min_cycle_duration": "Minimum cycle duration", + "min_temp": "Minimum target temperature", + "name": "[%key:common::config_flow::data::name%]", + "target_sensor": "Temperature sensor" + }, + "data_description": { + "ac_mode": "Set the actuator specified to be treated as a cooling device instead of a heating device.", + "cold_tolerance": "Minimum amount of difference between the temperature read by the temperature sensor the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor goes below 24.5.", + "heater": "Switch entity used to cool or heat depending on A/C mode.", + "hot_tolerance": "Minimum amount of difference between the temperature read by the temperature sensor the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5.", + "min_cycle_duration": "Set a minimum amount of time that the switch specified must be in its current state prior to being switched either off or on.", + "target_sensor": "Temperature sensor that reflects the current temperature." + }, + "description": "Create a climate entity that controls the temperature via a switch and sensor.", + "title": "Create generic thermostat" } } }, @@ -43,40 +42,41 @@ "init": { "data": { "ac_mode": "[%key:component::generic_thermostat::config::step::user::data::ac_mode%]", - "heater": "[%key:component::generic_thermostat::config::step::user::data::heater%]", - "target_sensor": "[%key:component::generic_thermostat::config::step::user::data::target_sensor%]", - "min_cycle_duration": "[%key:component::generic_thermostat::config::step::user::data::min_cycle_duration%]", "cold_tolerance": "[%key:component::generic_thermostat::config::step::user::data::cold_tolerance%]", + "heater": "[%key:component::generic_thermostat::config::step::user::data::heater%]", "hot_tolerance": "[%key:component::generic_thermostat::config::step::user::data::hot_tolerance%]", + "max_temp": "[%key:component::generic_thermostat::config::step::user::data::max_temp%]", + "min_cycle_duration": "[%key:component::generic_thermostat::config::step::user::data::min_cycle_duration%]", "min_temp": "[%key:component::generic_thermostat::config::step::user::data::min_temp%]", - "max_temp": "[%key:component::generic_thermostat::config::step::user::data::max_temp%]" + "target_sensor": "[%key:component::generic_thermostat::config::step::user::data::target_sensor%]" }, "data_description": { - "heater": "[%key:component::generic_thermostat::config::step::user::data_description::heater%]", - "target_sensor": "[%key:component::generic_thermostat::config::step::user::data_description::target_sensor%]", "ac_mode": "[%key:component::generic_thermostat::config::step::user::data_description::ac_mode%]", - "min_cycle_duration": "[%key:component::generic_thermostat::config::step::user::data_description::min_cycle_duration%]", "cold_tolerance": "[%key:component::generic_thermostat::config::step::user::data_description::cold_tolerance%]", - "hot_tolerance": "[%key:component::generic_thermostat::config::step::user::data_description::hot_tolerance%]" + "heater": "[%key:component::generic_thermostat::config::step::user::data_description::heater%]", + "hot_tolerance": "[%key:component::generic_thermostat::config::step::user::data_description::hot_tolerance%]", + "min_cycle_duration": "[%key:component::generic_thermostat::config::step::user::data_description::min_cycle_duration%]", + "target_sensor": "[%key:component::generic_thermostat::config::step::user::data_description::target_sensor%]" } }, "presets": { - "title": "[%key:component::generic_thermostat::config::step::presets::title%]", "data": { - "home_temp": "[%key:common::state::home%]", + "activity_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::activity%]", "away_temp": "[%key:common::state::not_home%]", "comfort_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]", "eco_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::eco%]", - "sleep_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]", - "activity_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::activity%]" - } + "home_temp": "[%key:common::state::home%]", + "sleep_temp": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::sleep%]" + }, + "title": "[%key:component::generic_thermostat::config::step::presets::title%]" } } }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads generic thermostats from the YAML-configuration." + "description": "Reloads generic thermostats from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Generic thermostat" } diff --git a/homeassistant/components/geniushub/icons.json b/homeassistant/components/geniushub/icons.json index c8a59dedbbd..b109b6a8453 100644 --- a/homeassistant/components/geniushub/icons.json +++ b/homeassistant/components/geniushub/icons.json @@ -1,13 +1,13 @@ { "services": { + "set_switch_override": { + "service": "mdi:toggle-switch-variant" + }, "set_zone_mode": { "service": "mdi:auto-mode" }, "set_zone_override": { "service": "mdi:thermometer-lines" - }, - "set_switch_override": { - "service": "mdi:toggle-switch-variant" } } } diff --git a/homeassistant/components/geniushub/strings.json b/homeassistant/components/geniushub/strings.json index 79eee2c9a1b..57521666ffb 100644 --- a/homeassistant/components/geniushub/strings.json +++ b/homeassistant/components/geniushub/strings.json @@ -1,28 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Genius Hub configuration", - "menu_options": { - "local_api": "Local: IP address and user credentials", - "cloud_api": "Cloud: API token" - } - }, - "local_api": { - "title": "Genius Hub local configuration", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]" - } - }, - "cloud_api": { - "title": "Genius Hub cloud configuration", - "data": { - "token": "[%key:common::config_flow::data::access_token%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, @@ -31,51 +8,74 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "cloud_api": { + "data": { + "token": "[%key:common::config_flow::data::access_token%]" + }, + "title": "Genius Hub cloud configuration" + }, + "local_api": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Genius Hub local configuration" + }, + "user": { + "menu_options": { + "cloud_api": "Cloud: API token", + "local_api": "Local: IP address and user credentials" + }, + "title": "Genius Hub configuration" + } } }, "services": { - "set_zone_mode": { - "name": "Set zone mode", - "description": "Sets the zone to an operating mode.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "The zone's entity ID." - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The zone's operating mode." - } - } - }, - "set_zone_override": { - "name": "Set zone override", - "description": "Overrides the zone's setpoint for a given duration.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "[%key:component::geniushub::services::set_zone_mode::fields::entity_id::description%]" - }, - "temperature": { - "name": "Temperature", - "description": "The target temperature." - }, - "duration": { - "name": "Duration", - "description": "The duration of the override. Optional, default 1 hour, maximum 24 hours." - } - } - }, "set_switch_override": { - "name": "Set switch override", "description": "Overrides switch for a given duration.", "fields": { "duration": { - "name": "Duration", - "description": "[%key:component::geniushub::services::set_zone_override::fields::duration::description%]" + "description": "[%key:component::geniushub::services::set_zone_override::fields::duration::description%]", + "name": "Duration" } - } + }, + "name": "Set switch override" + }, + "set_zone_mode": { + "description": "Sets the zone to an operating mode.", + "fields": { + "entity_id": { + "description": "The zone's entity ID.", + "name": "Entity" + }, + "mode": { + "description": "The zone's operating mode.", + "name": "[%key:common::config_flow::data::mode%]" + } + }, + "name": "Set zone mode" + }, + "set_zone_override": { + "description": "Overrides the zone's setpoint for a given duration.", + "fields": { + "duration": { + "description": "The duration of the override. Optional, default 1 hour, maximum 24 hours.", + "name": "Duration" + }, + "entity_id": { + "description": "[%key:component::geniushub::services::set_zone_mode::fields::entity_id::description%]", + "name": "Entity" + }, + "temperature": { + "description": "The target temperature.", + "name": "Temperature" + } + }, + "name": "Set zone override" } } } diff --git a/homeassistant/components/geo_json_events/strings.json b/homeassistant/components/geo_json_events/strings.json index 1a2409b1cd2..a612317bf69 100644 --- a/homeassistant/components/geo_json_events/strings.json +++ b/homeassistant/components/geo_json_events/strings.json @@ -1,16 +1,16 @@ { "config": { - "step": { - "user": { - "title": "Fill in your GeoJSON feed details.", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "location": "[%key:common::config_flow::data::location%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "data": { + "location": "[%key:common::config_flow::data::location%]", + "url": "[%key:common::config_flow::data::url%]" + }, + "title": "Fill in your GeoJSON feed details." + } } } } diff --git a/homeassistant/components/geo_location/strings.json b/homeassistant/components/geo_location/strings.json index 4678790b520..2e0cdca716b 100644 --- a/homeassistant/components/geo_location/strings.json +++ b/homeassistant/components/geo_location/strings.json @@ -1,5 +1,4 @@ { - "title": "Geolocation", "entity_component": { "_": { "name": "[%key:component::geo_location::title%]", @@ -15,5 +14,6 @@ } } } - } + }, + "title": "Geolocation" } diff --git a/homeassistant/components/geocaching/icons.json b/homeassistant/components/geocaching/icons.json index 1431efee62b..8e508163047 100644 --- a/homeassistant/components/geocaching/icons.json +++ b/homeassistant/components/geocaching/icons.json @@ -1,38 +1,38 @@ { "entity": { "sensor": { - "find_count": { - "default": "mdi:notebook-edit-outline" - }, - "hide_count": { - "default": "mdi:eye-off-outline" - }, - "favorite_points": { - "default": "mdi:heart-outline" - }, - "souvenir_count": { - "default": "mdi:license" - }, "awarded_favorite_points": { "default": "mdi:heart" }, + "cache_favorite_points": { + "default": "mdi:star-check" + }, + "cache_found": { + "default": "mdi:package-variant-closed-check" + }, + "cache_found_date": { + "default": "mdi:calendar-search" + }, + "cache_hidden_date": { + "default": "mdi:calendar-badge" + }, "cache_name": { "default": "mdi:label" }, "cache_owner": { "default": "mdi:account" }, - "cache_found_date": { - "default": "mdi:calendar-search" + "favorite_points": { + "default": "mdi:heart-outline" }, - "cache_found": { - "default": "mdi:package-variant-closed-check" + "find_count": { + "default": "mdi:notebook-edit-outline" }, - "cache_favorite_points": { - "default": "mdi:star-check" + "hide_count": { + "default": "mdi:eye-off-outline" }, - "cache_hidden_date": { - "default": "mdi:calendar-badge" + "souvenir_count": { + "default": "mdi:license" } } } diff --git a/homeassistant/components/geocaching/strings.json b/homeassistant/components/geocaching/strings.json index 990ebf9f0f8..e3b92ef8d67 100644 --- a/homeassistant/components/geocaching/strings.json +++ b/homeassistant/components/geocaching/strings.json @@ -1,38 +1,56 @@ { "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%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Geocaching integration needs to re-authenticate your account" + "description": "The Geocaching integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "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%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "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%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { "sensor": { + "awarded_favorite_points": { + "name": "Awarded favorite points", + "unit_of_measurement": "points" + }, + "cache_favorite_points": { + "name": "Favorite points", + "unit_of_measurement": "points" + }, + "cache_found_date": { + "name": "Found date" + }, + "cache_hidden_date": { + "name": "Hidden date" + }, + "favorite_points": { + "name": "Favorite points", + "unit_of_measurement": "points" + }, "find_count": { "name": "Total finds", "unit_of_measurement": "caches" @@ -41,27 +59,9 @@ "name": "Total hides", "unit_of_measurement": "caches" }, - "favorite_points": { - "name": "Favorite points", - "unit_of_measurement": "points" - }, "souvenir_count": { "name": "Total souvenirs", "unit_of_measurement": "souvenirs" - }, - "awarded_favorite_points": { - "name": "Awarded favorite points", - "unit_of_measurement": "points" - }, - "cache_found_date": { - "name": "Found date" - }, - "cache_favorite_points": { - "name": "Favorite points", - "unit_of_measurement": "points" - }, - "cache_hidden_date": { - "name": "Hidden date" } } } diff --git a/homeassistant/components/geofency/strings.json b/homeassistant/components/geofency/strings.json index aa1b51697bf..82c6da6d5b2 100644 --- a/homeassistant/components/geofency/strings.json +++ b/homeassistant/components/geofency/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the Geofency webhook", - "description": "Are you sure you want to set up the Geofency webhook?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up the webhook feature in Geofency.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "Are you sure you want to set up the Geofency webhook?", + "title": "Set up the Geofency webhook" + } } } } diff --git a/homeassistant/components/geonetnz_quakes/strings.json b/homeassistant/components/geonetnz_quakes/strings.json index 3a84bdae701..ead287081a0 100644 --- a/homeassistant/components/geonetnz_quakes/strings.json +++ b/homeassistant/components/geonetnz_quakes/strings.json @@ -1,13 +1,13 @@ { "config": { - "step": { - "user": { - "title": "Fill in your filter details.", - "data": { "radius": "Radius", "mmi": "MMI" } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "data": { "mmi": "MMI", "radius": "Radius" }, + "title": "Fill in your filter details." + } } } } diff --git a/homeassistant/components/geonetnz_volcano/strings.json b/homeassistant/components/geonetnz_volcano/strings.json index f49fb4f9830..ecc12646bc4 100644 --- a/homeassistant/components/geonetnz_volcano/strings.json +++ b/homeassistant/components/geonetnz_volcano/strings.json @@ -1,13 +1,13 @@ { "config": { - "step": { - "user": { - "title": "Fill in your filter details.", - "data": { "radius": "Radius" } - } - }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" + }, + "step": { + "user": { + "data": { "radius": "Radius" }, + "title": "Fill in your filter details." + } } } } diff --git a/homeassistant/components/gios/strings.json b/homeassistant/components/gios/strings.json index d19edd63717..0242e09be0e 100644 --- a/homeassistant/components/gios/strings.json +++ b/homeassistant/components/gios/strings.json @@ -1,26 +1,21 @@ { "config": { - "step": { - "user": { - "title": "GIO\u015a (Polish Chief Inspectorate Of Environmental Protection)", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "station_id": "Measuring station" - } - } - }, - "error": { - "invalid_sensors_data": "Invalid sensors' data for this measuring station.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "system_health": { - "info": { - "can_reach_server": "Reach GIO\u015a server" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_sensors_data": "Invalid sensors' data for this measuring station." + }, + "step": { + "user": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "station_id": "Measuring station" + }, + "title": "GIO\u015a (Polish Chief Inspectorate Of Environmental Protection)" + } } }, "entity": { @@ -28,21 +23,21 @@ "aqi": { "name": "[%key:component::sensor::entity_component::aqi::name%]", "state": { - "very_bad": "Very bad", "bad": "Bad", - "sufficient": "Sufficient", - "moderate": "Moderate", "good": "Good", + "moderate": "Moderate", + "sufficient": "Sufficient", + "very_bad": "Very bad", "very_good": "Very good" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -57,21 +52,21 @@ "no2_index": { "name": "Nitrogen dioxide index", "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -83,21 +78,21 @@ "o3_index": { "name": "Ozone index", "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -106,21 +101,21 @@ "pm10_index": { "name": "PM10 index", "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -129,21 +124,21 @@ "pm25_index": { "name": "PM2.5 index", "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -152,21 +147,21 @@ "so2_index": { "name": "Sulphur dioxide index", "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" }, "state_attributes": { "options": { "state": { - "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "bad": "[%key:component::gios::entity::sensor::aqi::state::bad%]", - "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", - "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", "good": "[%key:component::gios::entity::sensor::aqi::state::good%]", + "moderate": "[%key:component::gios::entity::sensor::aqi::state::moderate%]", + "sufficient": "[%key:component::gios::entity::sensor::aqi::state::sufficient%]", + "very_bad": "[%key:component::gios::entity::sensor::aqi::state::very_bad%]", "very_good": "[%key:component::gios::entity::sensor::aqi::state::very_good%]" } } @@ -181,5 +176,10 @@ "update_error": { "message": "An error occurred while retrieving data from the GIOS API for {entry}: {error}" } + }, + "system_health": { + "info": { + "can_reach_server": "Reach GIO\u015a server" + } } } diff --git a/homeassistant/components/github/icons.json b/homeassistant/components/github/icons.json index f8a2eefe0c8..2f6696980b7 100644 --- a/homeassistant/components/github/icons.json +++ b/homeassistant/components/github/icons.json @@ -4,38 +4,38 @@ "discussions_count": { "default": "mdi:forum" }, - "stargazers_count": { - "default": "mdi:star" - }, - "subscribers_count": { - "default": "mdi:glasses" - }, "forks_count": { "default": "mdi:source-fork" }, "issues_count": { "default": "mdi:github" }, - "pulls_count": { - "default": "mdi:source-pull" - }, "latest_commit": { "default": "mdi:source-commit" }, "latest_discussion": { "default": "mdi:forum" }, - "latest_release": { - "default": "mdi:github" - }, "latest_issue": { "default": "mdi:github" }, "latest_pull_request": { "default": "mdi:source-pull" }, + "latest_release": { + "default": "mdi:github" + }, "latest_tag": { "default": "mdi:tag" + }, + "pulls_count": { + "default": "mdi:source-pull" + }, + "stargazers_count": { + "default": "mdi:star" + }, + "subscribers_count": { + "default": "mdi:glasses" } } } diff --git a/homeassistant/components/github/strings.json b/homeassistant/components/github/strings.json index bcda47d72fb..205b641ed9a 100644 --- a/homeassistant/components/github/strings.json +++ b/homeassistant/components/github/strings.json @@ -1,19 +1,19 @@ { "config": { - "step": { - "repositories": { - "title": "Configure repositories", - "data": { - "repositories": "Select repositories to track." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "could_not_register": "Could not register integration with GitHub" }, "progress": { "wait_for_device": "Open {url}, and paste the following code to authorize the integration: \n```\n{code}\n```" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "could_not_register": "Could not register integration with GitHub" + "step": { + "repositories": { + "data": { + "repositories": "Select repositories to track." + }, + "title": "Configure repositories" + } } }, "entity": { @@ -22,14 +22,6 @@ "name": "Discussions", "unit_of_measurement": "discussions" }, - "stargazers_count": { - "name": "Stars", - "unit_of_measurement": "stars" - }, - "subscribers_count": { - "name": "Watchers", - "unit_of_measurement": "watchers" - }, "forks_count": { "name": "Forks", "unit_of_measurement": "forks" @@ -38,27 +30,35 @@ "name": "Issues", "unit_of_measurement": "issues" }, - "pulls_count": { - "name": "Pull requests", - "unit_of_measurement": "pull requests" - }, "latest_commit": { "name": "Latest commit" }, "latest_discussion": { "name": "Latest discussion" }, - "latest_release": { - "name": "Latest release" - }, "latest_issue": { "name": "Latest issue" }, "latest_pull_request": { "name": "Latest pull request" }, + "latest_release": { + "name": "Latest release" + }, "latest_tag": { "name": "Latest tag" + }, + "pulls_count": { + "name": "Pull requests", + "unit_of_measurement": "pull requests" + }, + "stargazers_count": { + "name": "Stars", + "unit_of_measurement": "stars" + }, + "subscribers_count": { + "name": "Watchers", + "unit_of_measurement": "watchers" } } } diff --git a/homeassistant/components/glances/icons.json b/homeassistant/components/glances/icons.json index f6a1dcfea39..0a9d2888339 100644 --- a/homeassistant/components/glances/icons.json +++ b/homeassistant/components/glances/icons.json @@ -1,42 +1,6 @@ { "entity": { "sensor": { - "disk_usage": { - "default": "mdi:harddisk" - }, - "disk_used": { - "default": "mdi:harddisk" - }, - "disk_free": { - "default": "mdi:harddisk" - }, - "diskio_read": { - "default": "mdi:harddisk" - }, - "diskio_write": { - "default": "mdi:harddisk" - }, - "memory_usage": { - "default": "mdi:memory" - }, - "memory_use": { - "default": "mdi:memory" - }, - "memory_free": { - "default": "mdi:memory" - }, - "swap_usage": { - "default": "mdi:memory" - }, - "swap_use": { - "default": "mdi:memory" - }, - "swap_free": { - "default": "mdi:memory" - }, - "fan_speed": { - "default": "mdi:fan" - }, "container_active": { "default": "mdi:docker" }, @@ -46,19 +10,37 @@ "container_memory_used": { "default": "mdi:docker" }, - "raid_available": { + "disk_free": { "default": "mdi:harddisk" }, - "raid_used": { + "disk_usage": { "default": "mdi:harddisk" }, - "uptime": { - "default": "mdi:clock-time-eight-outline" + "disk_used": { + "default": "mdi:harddisk" + }, + "diskio_read": { + "default": "mdi:harddisk" + }, + "diskio_write": { + "default": "mdi:harddisk" + }, + "fan_speed": { + "default": "mdi:fan" + }, + "gpu_memory_usage": { + "default": "mdi:memory" }, "gpu_processor_usage": { "default": "mdi:expansion-card" }, - "gpu_memory_usage": { + "memory_free": { + "default": "mdi:memory" + }, + "memory_usage": { + "default": "mdi:memory" + }, + "memory_use": { "default": "mdi:memory" }, "network_rx": { @@ -66,6 +48,24 @@ }, "network_tx": { "default": "mdi:transmission-tower" + }, + "raid_available": { + "default": "mdi:harddisk" + }, + "raid_used": { + "default": "mdi:harddisk" + }, + "swap_free": { + "default": "mdi:memory" + }, + "swap_usage": { + "default": "mdi:memory" + }, + "swap_use": { + "default": "mdi:memory" + }, + "uptime": { + "default": "mdi:clock-time-eight-outline" } } } diff --git a/homeassistant/components/glances/strings.json b/homeassistant/components/glances/strings.json index 92aa1b47e31..3d90310366b 100644 --- a/homeassistant/components/glances/strings.json +++ b/homeassistant/components/glances/strings.json @@ -1,94 +1,37 @@ { "config": { - "step": { - "user": { - "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%]", - "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 system running your Glances system monitor." - } - }, - "reauth_confirm": { - "description": "The password for {username} is invalid.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The password for {username} is invalid." + }, + "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 system running your Glances system monitor." + } + } } }, "entity": { "sensor": { - "disk_usage": { - "name": "{sensor_label} disk usage" - }, - "disk_used": { - "name": "{sensor_label} disk used" - }, - "disk_free": { - "name": "{sensor_label} disk free" - }, - "diskio_read": { - "name": "{sensor_label} disk read" - }, - "diskio_write": { - "name": "{sensor_label} disk write" - }, - "memory_usage": { - "name": "Memory usage" - }, - "memory_use": { - "name": "Memory use" - }, - "memory_free": { - "name": "Memory free" - }, - "swap_usage": { - "name": "Swap usage" - }, - "swap_use": { - "name": "Swap use" - }, - "swap_free": { - "name": "Swap free" - }, - "processor_load": { - "name": "CPU load" - }, - "process_running": { - "name": "Running" - }, - "process_total": { - "name": "Total" - }, - "process_threads": { - "name": "Threads" - }, - "process_sleeping": { - "name": "Sleeping" - }, - "cpu_usage": { - "name": "CPU usage" - }, - "temperature": { - "name": "{sensor_label} temperature" - }, - "fan_speed": { - "name": "{sensor_label} fan speed" - }, "charge": { "name": "{sensor_label} charge" }, @@ -101,14 +44,26 @@ "container_memory_used": { "name": "Containers memory used" }, - "raid_available": { - "name": "{sensor_label} available" + "cpu_usage": { + "name": "CPU usage" }, - "raid_used": { - "name": "{sensor_label} used" + "disk_free": { + "name": "{sensor_label} disk free" }, - "uptime": { - "name": "Uptime" + "disk_usage": { + "name": "{sensor_label} disk usage" + }, + "disk_used": { + "name": "{sensor_label} disk used" + }, + "diskio_read": { + "name": "{sensor_label} disk read" + }, + "diskio_write": { + "name": "{sensor_label} disk write" + }, + "fan_speed": { + "name": "{sensor_label} fan speed" }, "gpu_memory_usage": { "name": "{sensor_label} memory usage" @@ -116,11 +71,56 @@ "gpu_processor_usage": { "name": "{sensor_label} processor usage" }, + "memory_free": { + "name": "Memory free" + }, + "memory_usage": { + "name": "Memory usage" + }, + "memory_use": { + "name": "Memory use" + }, "network_rx": { "name": "{sensor_label} RX" }, "network_tx": { "name": "{sensor_label} TX" + }, + "process_running": { + "name": "Running" + }, + "process_sleeping": { + "name": "Sleeping" + }, + "process_threads": { + "name": "Threads" + }, + "process_total": { + "name": "Total" + }, + "processor_load": { + "name": "CPU load" + }, + "raid_available": { + "name": "{sensor_label} available" + }, + "raid_used": { + "name": "{sensor_label} used" + }, + "swap_free": { + "name": "Swap free" + }, + "swap_usage": { + "name": "Swap usage" + }, + "swap_use": { + "name": "Swap use" + }, + "temperature": { + "name": "{sensor_label} temperature" + }, + "uptime": { + "name": "Uptime" } } } diff --git a/homeassistant/components/go2rtc/strings.json b/homeassistant/components/go2rtc/strings.json index e350c19af96..ce60f5d26c4 100644 --- a/homeassistant/components/go2rtc/strings.json +++ b/homeassistant/components/go2rtc/strings.json @@ -1,8 +1,8 @@ { "issues": { "recommended_version": { - "title": "Outdated go2rtc server detected", - "description": "We detected that you are using an outdated go2rtc server version. For the best experience, we recommend updating the go2rtc server to version `{recommended_version}`.\nCurrently you are using version `{current_version}`." + "description": "We detected that you are using an outdated go2rtc server version. For the best experience, we recommend updating the go2rtc server to version `{recommended_version}`.\nCurrently you are using version `{current_version}`.", + "title": "Outdated go2rtc server detected" } } } diff --git a/homeassistant/components/goalzero/strings.json b/homeassistant/components/goalzero/strings.json index 8c0477c8f6a..452521ece6b 100644 --- a/homeassistant/components/goalzero/strings.json +++ b/homeassistant/components/goalzero/strings.json @@ -1,90 +1,90 @@ { "config": { - "step": { - "user": { - "description": "Please refer to the documentation to make sure all requirements are met.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "host": "The hostname or IP address of your Goal Zero Yeti." - } - }, - "confirm_discovery": { - "description": "DHCP reservation on your router is recommended. If not set up, the device may become unavailable until Home Assistant detects the new IP address. Refer to your router's user manual." - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "step": { + "confirm_discovery": { + "description": "DHCP reservation on your router is recommended. If not set up, the device may become unavailable until Home Assistant detects the new IP address. Refer to your router's user manual." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "host": "The hostname or IP address of your Goal Zero Yeti." + }, + "description": "Please refer to the documentation to make sure all requirements are met." + } } }, "entity": { "binary_sensor": { - "backlight": { - "name": "Backlight" - }, "app_online": { "name": "App online" }, + "backlight": { + "name": "Backlight" + }, "input_detected": { "name": "Input detected" } }, "sensor": { - "watts_in": { - "name": "Power in" - }, "amps_in": { "name": "Current in" }, - "watts_out": { - "name": "Power out" - }, "amps_out": { "name": "Current out" }, + "ip_addr": { + "name": "IP address" + }, + "soc_percent": { + "name": "State of charge percent" + }, + "ssid": { + "name": "Wi-Fi SSID" + }, + "time_to_empty_full": { + "name": "Time to empty/full" + }, + "timestamp": { + "name": "Total run time" + }, + "watts_in": { + "name": "Power in" + }, + "watts_out": { + "name": "Power out" + }, "wh_out": { "name": "Energy out" }, "wh_stored": { "name": "Energy stored" }, - "soc_percent": { - "name": "State of charge percent" - }, - "time_to_empty_full": { - "name": "Time to empty/full" - }, "wifi_strength": { "name": "Wi-Fi strength" - }, - "timestamp": { - "name": "Total run time" - }, - "ssid": { - "name": "Wi-Fi SSID" - }, - "ip_addr": { - "name": "IP address" } }, "switch": { - "v12_port_status": { - "name": "12V port status" + "ac_port_status": { + "name": "AC port status" }, "usb_port_status": { "name": "USB port status" }, - "ac_port_status": { - "name": "AC port status" + "v12_port_status": { + "name": "12V port status" } } } diff --git a/homeassistant/components/gogogate2/strings.json b/homeassistant/components/gogogate2/strings.json index 17349764642..d66f22922a6 100644 --- a/homeassistant/components/gogogate2/strings.json +++ b/homeassistant/components/gogogate2/strings.json @@ -1,22 +1,22 @@ { "config": { - "flow_title": "{device} ({ip_address})", + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, + "flow_title": "{device} ({ip_address})", "step": { "user": { - "title": "Set up Gogogate2 or ismartgate", - "description": "Provide requisite information below.", "data": { "ip_address": "[%key:common::config_flow::data::ip%]", - "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%]" + }, + "description": "Provide requisite information below.", + "title": "Set up Gogogate2 or ismartgate" } } } diff --git a/homeassistant/components/goodwe/icons.json b/homeassistant/components/goodwe/icons.json index f5abd358baa..5f8ba77edec 100644 --- a/homeassistant/components/goodwe/icons.json +++ b/homeassistant/components/goodwe/icons.json @@ -6,11 +6,11 @@ } }, "number": { - "grid_export_limit": { - "default": "mdi:transmission-tower" - }, "battery_discharge_depth": { "default": "mdi:battery-arrow-down" + }, + "grid_export_limit": { + "default": "mdi:transmission-tower" } }, "select": { diff --git a/homeassistant/components/goodwe/strings.json b/homeassistant/components/goodwe/strings.json index 6348da45618..fc8c3bccb23 100644 --- a/homeassistant/components/goodwe/strings.json +++ b/homeassistant/components/goodwe/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "title": "GoodWe inverter", - "description": "Connect to inverter", - "data": { - "host": "[%key:common::config_flow::data::ip%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" }, "error": { "connection_error": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]" + }, + "description": "Connect to inverter", + "title": "GoodWe inverter" + } } }, "entity": { @@ -24,24 +24,24 @@ } }, "number": { - "grid_export_limit": { - "name": "Grid export limit" - }, "battery_discharge_depth": { "name": "Depth of discharge (on-grid)" + }, + "grid_export_limit": { + "name": "Grid export limit" } }, "select": { "operation_mode": { "name": "Inverter operation mode", "state": { - "general": "General mode", - "off_grid": "Off-grid mode", "backup": "Backup mode", "eco": "Eco mode", - "peak_shaving": "Peak shaving mode", "eco_charge": "Eco charge mode", - "eco_discharge": "Eco discharge mode" + "eco_discharge": "Eco discharge mode", + "general": "General mode", + "off_grid": "Off-grid mode", + "peak_shaving": "Peak shaving mode" } } } diff --git a/homeassistant/components/google/strings.json b/homeassistant/components/google/strings.json index 7ac16ab0af6..4c4104c0654 100644 --- a/homeassistant/components/google/strings.json +++ b/homeassistant/components/google/strings.json @@ -1,46 +1,59 @@ { + "application_credentials": { + "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Calendar. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." + }, "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Calendar integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" - } - }, "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "calendar_api_disabled": "You must [enable the Google Calendar API]({calendar_api_url}) in the Google Cloud Console", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", "code_expired": "Authentication code expired or credential setup is invalid, please try again.", - "calendar_api_disabled": "You must [enable the Google Calendar API]({calendar_api_url}) in the Google Cloud Console" + "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" }, "progress": { "exchange": "To link your Google account, visit the [{url}]({url}) and enter code:\n\n{user_code}" + }, + "step": { + "auth": { + "title": "Link Google Account" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The Google Calendar integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } + } + }, + "entity": { + "calendar": { + "birthdays": { + "name": "Birthdays" + }, + "working_location": { + "name": "Working location" + } } }, "options": { @@ -52,95 +65,82 @@ } } }, - "application_credentials": { - "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Calendar. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." - }, "services": { "add_event": { - "name": "Add event", "description": "Adds a new calendar event.", "fields": { "calendar_id": { - "name": "Calendar ID", - "description": "The id of the calendar you want." - }, - "summary": { - "name": "Summary", - "description": "Acts as the title of the event." + "description": "The id of the calendar you want.", + "name": "Calendar ID" }, "description": { - "name": "Description", - "description": "The description of the event. Optional." - }, - "start_date_time": { - "name": "Start time", - "description": "The date and time the event should start." - }, - "end_date_time": { - "name": "End time", - "description": "The date and time the event should end." - }, - "start_date": { - "name": "Start date", - "description": "The date the whole day event should start." + "description": "The description of the event. Optional.", + "name": "Description" }, "end_date": { - "name": "End date", - "description": "The date the whole day event should end." + "description": "The date the whole day event should end.", + "name": "End date" + }, + "end_date_time": { + "description": "The date and time the event should end.", + "name": "End time" }, "in": { - "name": "In", - "description": "Days or weeks that you want to create the event in." + "description": "Days or weeks that you want to create the event in.", + "name": "In" + }, + "start_date": { + "description": "The date the whole day event should start.", + "name": "Start date" + }, + "start_date_time": { + "description": "The date and time the event should start.", + "name": "Start time" + }, + "summary": { + "description": "Acts as the title of the event.", + "name": "Summary" } - } + }, + "name": "Add event" }, "create_event": { - "name": "Create event", "description": "Adds a new calendar event.", "fields": { - "summary": { - "name": "Summary", - "description": "[%key:component::google::services::add_event::fields::summary::description%]" - }, "description": { - "name": "Description", - "description": "[%key:component::google::services::add_event::fields::description::description%]" - }, - "start_date_time": { - "name": "Start time", - "description": "The date and time the event should start." - }, - "end_date_time": { - "name": "End time", - "description": "The date and time the event should end." - }, - "start_date": { - "name": "Start date", - "description": "[%key:component::google::services::add_event::fields::start_date::description%]" + "description": "[%key:component::google::services::add_event::fields::description::description%]", + "name": "Description" }, "end_date": { - "name": "End date", - "description": "[%key:component::google::services::add_event::fields::end_date::description%]" + "description": "[%key:component::google::services::add_event::fields::end_date::description%]", + "name": "End date" + }, + "end_date_time": { + "description": "The date and time the event should end.", + "name": "End time" }, "in": { - "name": "In", - "description": "Days or weeks that you want to create the event in." + "description": "Days or weeks that you want to create the event in.", + "name": "In" }, "location": { - "name": "[%key:common::config_flow::data::location%]", - "description": "The location of the event. Optional." + "description": "The location of the event. Optional.", + "name": "[%key:common::config_flow::data::location%]" + }, + "start_date": { + "description": "[%key:component::google::services::add_event::fields::start_date::description%]", + "name": "Start date" + }, + "start_date_time": { + "description": "The date and time the event should start.", + "name": "Start time" + }, + "summary": { + "description": "[%key:component::google::services::add_event::fields::summary::description%]", + "name": "Summary" } - } - } - }, - "entity": { - "calendar": { - "working_location": { - "name": "Working location" }, - "birthdays": { - "name": "Birthdays" - } + "name": "Create event" } } } diff --git a/homeassistant/components/google_assistant/strings.json b/homeassistant/components/google_assistant/strings.json index d67600fece1..212bd8845a3 100644 --- a/homeassistant/components/google_assistant/strings.json +++ b/homeassistant/components/google_assistant/strings.json @@ -8,14 +8,14 @@ }, "services": { "request_sync": { - "name": "Request sync", "description": "Sends a request_sync command to Google.", "fields": { "agent_user_id": { - "name": "Agent user ID", - "description": "Only needed for automations. Specific Home Assistant user ID (not username, ID in Settings > People > Users > under username) to sync with Google Assistant. Not needed when you use this action through Home Assistant frontend or API. Used in automation, script or other place where context.user_id is missing." + "description": "Only needed for automations. Specific Home Assistant user ID (not username, ID in Settings > People > Users > under username) to sync with Google Assistant. Not needed when you use this action through Home Assistant frontend or API. Used in automation, script or other place where context.user_id is missing.", + "name": "Agent user ID" } - } + }, + "name": "Request sync" } } } diff --git a/homeassistant/components/google_assistant_sdk/strings.json b/homeassistant/components/google_assistant_sdk/strings.json index be03cadb408..7e67ed50f7a 100644 --- a/homeassistant/components/google_assistant_sdk/strings.json +++ b/homeassistant/components/google_assistant_sdk/strings.json @@ -1,67 +1,42 @@ { + "application_credentials": { + "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Assistant SDK. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n1. Add `{redirect_url}` under *Authorized redirect URI*." + }, "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Assistant SDK integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" - } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "language_code": "Language code" - } - } - } - }, - "application_credentials": { - "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Assistant SDK. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n1. Add `{redirect_url}` under *Authorized redirect URI*." - }, - "services": { - "send_text_command": { - "name": "Send text command", - "description": "Sends a command as a text query to Google Assistant.", - "fields": { - "command": { - "name": "Command", - "description": "Command(s) to send to Google Assistant." - }, - "media_player": { - "name": "Media player entity", - "description": "Name(s) of media player entities to play the Google Assistant's audio response on. This does not target the device for the command itself." - } + "description": "The Google Assistant SDK integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } } }, @@ -75,5 +50,30 @@ "reauth_required": { "message": "Credentials are invalid, re-authentication required" } + }, + "options": { + "step": { + "init": { + "data": { + "language_code": "Language code" + } + } + } + }, + "services": { + "send_text_command": { + "description": "Sends a command as a text query to Google Assistant.", + "fields": { + "command": { + "description": "Command(s) to send to Google Assistant.", + "name": "Command" + }, + "media_player": { + "description": "Name(s) of media player entities to play the Google Assistant's audio response on. This does not target the device for the command itself.", + "name": "Media player entity" + } + }, + "name": "Send text command" + } } } diff --git a/homeassistant/components/google_cloud/strings.json b/homeassistant/components/google_cloud/strings.json index 4b3ffa1c012..0ea82b65587 100644 --- a/homeassistant/components/google_cloud/strings.json +++ b/homeassistant/components/google_cloud/strings.json @@ -1,31 +1,31 @@ { "config": { - "step": { - "user": { - "description": "Upload your Google Cloud service account JSON file that you can create at {url}.", - "data": { - "uploaded_key_file": "Upload service account JSON file" - } - } - }, "error": { "invalid_file": "Invalid service account JSON file" + }, + "step": { + "user": { + "data": { + "uploaded_key_file": "Upload service account JSON file" + }, + "description": "Upload your Google Cloud service account JSON file that you can create at {url}." + } } }, "options": { "step": { "init": { "data": { - "language": "Default language of the voice", - "gender": "Default gender of the voice", - "voice": "Default voice name (overrides language and gender)", "encoding": "Default audio encoder", - "speed": "Default rate/speed of the voice", - "pitch": "Default pitch of the voice", "gain": "Default volume gain (in dB) of the voice", + "gender": "Default gender of the voice", + "language": "Default language of the voice", + "pitch": "Default pitch of the voice", "profiles": "Default audio profiles", + "speed": "Default rate/speed of the voice", + "stt_model": "Speech-to-Text model", "text_type": "Default text type", - "stt_model": "Speech-to-Text model" + "voice": "Default voice name (overrides language and gender)" } } } diff --git a/homeassistant/components/google_drive/strings.json b/homeassistant/components/google_drive/strings.json index 3dc958b7dfc..5eb316dd758 100644 --- a/homeassistant/components/google_drive/strings.json +++ b/homeassistant/components/google_drive/strings.json @@ -1,46 +1,46 @@ { + "application_credentials": { + "description": "Follow the [instructions]({more_info_url}) to configure the Cloud Console:\n\n1. Go to the [OAuth consent screen]({oauth_consent_url}) and configure\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n1. Add `{redirect_url}` under *Authorized redirect URI*." + }, "config": { + "abort": { + "access_not_configured": "Unable to access the Google Drive API:\n\n{message}", + "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%]", + "create_folder_failure": "Error while creating Google Drive folder:\n\n{message}", + "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "Wrong account: Please authenticate with {email}." + }, + "create_entry": { + "default": "Using [{folder_name}]({url}) folder. Feel free to rename it in Google Drive as you wish." + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Drive integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" + "description": "The Google Drive integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "access_not_configured": "Unable to access the Google Drive API:\n\n{message}", - "create_folder_failure": "Error while creating Google Drive folder:\n\n{message}", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "Wrong account: Please authenticate with {email}." - }, - "create_entry": { - "default": "Using [{folder_name}]({url}) folder. Feel free to rename it in Google Drive as you wish." } - }, - "application_credentials": { - "description": "Follow the [instructions]({more_info_url}) to configure the Cloud Console:\n\n1. Go to the [OAuth consent screen]({oauth_consent_url}) and configure\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type.\n1. Add `{redirect_url}` under *Authorized redirect URI*." } } diff --git a/homeassistant/components/google_generative_ai_conversation/strings.json b/homeassistant/components/google_generative_ai_conversation/strings.json index cc94d7de8fe..b908c872e1c 100644 --- a/homeassistant/components/google_generative_ai_conversation/strings.json +++ b/homeassistant/components/google_generative_ai_conversation/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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": { "api": { "data": { @@ -8,170 +17,161 @@ "description": "Get your API key from [here]({api_key_url})." }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Your current API key: {api_key} is no longer valid. Please enter a new valid API key." + "description": "Your current API key: {api_key} is no longer valid. Please enter a new valid API key.", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "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": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "config_subentries": { - "conversation": { - "initiate_flow": { - "user": "Add conversation agent", - "reconfigure": "Reconfigure conversation agent" + "ai_task_data": { + "abort": { + "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "entry_type": "AI task", + "initiate_flow": { + "reconfigure": "Reconfigure AI task", + "user": "Add AI task" }, - "entry_type": "Conversation agent", "step": { "set_options": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "recommended": "Recommended model settings", - "prompt": "[%key:common::config_flow::data::prompt%]", "chat_model": "[%key:common::generic::model%]", - "temperature": "Temperature", - "top_p": "Top P", - "top_k": "Top K", - "max_tokens": "Maximum tokens to return in response", - "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", - "harassment_block_threshold": "Negative or harmful comments targeting identity and/or protected attributes", - "hate_block_threshold": "Content that is rude, disrespectful, or profane", - "sexual_block_threshold": "Contains references to sexual acts or other lewd content", - "dangerous_block_threshold": "Promotes, facilitates, or encourages harmful acts", - "enable_google_search_tool": "Enable Google Search tool" - }, - "data_description": { - "prompt": "Instruct how the LLM should respond. This can be a template.", - "enable_google_search_tool": "Only works if there is nothing selected in the \"Control Home Assistant\" setting. See docs for a workaround using it with \"Assist\"." + "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]", + "harassment_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::harassment_block_threshold%]", + "hate_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::hate_block_threshold%]", + "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", + "name": "[%key:common::config_flow::data::name%]", + "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", + "sexual_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::sexual_block_threshold%]", + "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", + "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", + "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]" } } - }, + } + }, + "conversation": { "abort": { "entry_not_loaded": "Cannot add things while the configuration is disabled.", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, + "entry_type": "Conversation agent", "error": { "invalid_google_search_option": "Google Search can only be enabled if nothing is selected in the \"Control Home Assistant\" setting." - } - }, - "stt": { - "initiate_flow": { - "user": "Add Speech-to-Text service", - "reconfigure": "Reconfigure Speech-to-Text service" }, - "entry_type": "Speech-to-Text", + "initiate_flow": { + "reconfigure": "Reconfigure conversation agent", + "user": "Add conversation agent" + }, "step": { "set_options": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", - "prompt": "[%key:common::config_flow::data::prompt%]", "chat_model": "[%key:common::generic::model%]", - "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", - "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]", - "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", - "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", + "dangerous_block_threshold": "Promotes, facilitates, or encourages harmful acts", + "enable_google_search_tool": "Enable Google Search tool", + "harassment_block_threshold": "Negative or harmful comments targeting identity and/or protected attributes", + "hate_block_threshold": "Content that is rude, disrespectful, or profane", + "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", + "max_tokens": "Maximum tokens to return in response", + "name": "[%key:common::config_flow::data::name%]", + "prompt": "[%key:common::config_flow::data::prompt%]", + "recommended": "Recommended model settings", + "sexual_block_threshold": "Contains references to sexual acts or other lewd content", + "temperature": "Temperature", + "top_k": "Top K", + "top_p": "Top P" + }, + "data_description": { + "enable_google_search_tool": "Only works if there is nothing selected in the \"Control Home Assistant\" setting. See docs for a workaround using it with \"Assist\".", + "prompt": "Instruct how the LLM should respond. This can be a template." + } + } + } + }, + "stt": { + "abort": { + "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "entry_type": "Speech-to-Text", + "initiate_flow": { + "reconfigure": "Reconfigure Speech-to-Text service", + "user": "Add Speech-to-Text service" + }, + "step": { + "set_options": { + "data": { + "chat_model": "[%key:common::generic::model%]", + "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]", "harassment_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::harassment_block_threshold%]", "hate_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::hate_block_threshold%]", + "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", + "name": "[%key:common::config_flow::data::name%]", + "prompt": "[%key:common::config_flow::data::prompt%]", + "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", "sexual_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::sexual_block_threshold%]", - "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]" + "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", + "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", + "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]" }, "data_description": { "prompt": "Instruct how the LLM should transcribe the audio." } } - }, - "abort": { - "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "tts": { - "initiate_flow": { - "user": "Add Text-to-Speech service", - "reconfigure": "Reconfigure Text-to-Speech service" + "abort": { + "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "entry_type": "Text-to-Speech", - "step": { - "set_options": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", - "chat_model": "[%key:common::generic::model%]", - "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", - "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]", - "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", - "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", - "harassment_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::harassment_block_threshold%]", - "hate_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::hate_block_threshold%]", - "sexual_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::sexual_block_threshold%]", - "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]" - } - } - }, - "abort": { - "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "ai_task_data": { "initiate_flow": { - "user": "Add AI task", - "reconfigure": "Reconfigure AI task" + "reconfigure": "Reconfigure Text-to-Speech service", + "user": "Add Text-to-Speech service" }, - "entry_type": "AI task", "step": { "set_options": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", "chat_model": "[%key:common::generic::model%]", - "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", - "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]", - "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", - "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", + "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]", "harassment_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::harassment_block_threshold%]", "hate_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::hate_block_threshold%]", + "max_tokens": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::max_tokens%]", + "name": "[%key:common::config_flow::data::name%]", + "recommended": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::recommended%]", "sexual_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::sexual_block_threshold%]", - "dangerous_block_threshold": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::dangerous_block_threshold%]" + "temperature": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::temperature%]", + "top_k": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_k%]", + "top_p": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::step::set_options::data::top_p%]" } } - }, - "abort": { - "entry_not_loaded": "[%key:component::google_generative_ai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } } }, "issues": { "deprecated_generate_content": { - "title": "Deprecated 'generate_content' action", - "description": "Action 'google_generative_ai_conversation.generate_content' is deprecated and will be removed in the 2026.4.0 release. Please use the 'ai_task.generate_data' action instead" + "description": "Action 'google_generative_ai_conversation.generate_content' is deprecated and will be removed in the 2026.4.0 release. Please use the 'ai_task.generate_data' action instead", + "title": "Deprecated 'generate_content' action" } }, "services": { "generate_content": { - "name": "Generate content (deprecated)", "description": "Generate content from a prompt consisting of text and optionally images (deprecated)", "fields": { - "prompt": { - "name": "Prompt", - "description": "The prompt", - "example": "Describe what you see in these images" - }, "filenames": { - "name": "Attachment filenames", "description": "Attachments to add to the prompt (images, PDFs, etc)", - "example": "/config/www/image.jpg" + "example": "/config/www/image.jpg", + "name": "Attachment filenames" + }, + "prompt": { + "description": "The prompt", + "example": "Describe what you see in these images", + "name": "Prompt" } - } + }, + "name": "Generate content (deprecated)" } } } diff --git a/homeassistant/components/google_mail/strings.json b/homeassistant/components/google_mail/strings.json index c856b0d3329..a4b5cf9a4d7 100644 --- a/homeassistant/components/google_mail/strings.json +++ b/homeassistant/components/google_mail/strings.json @@ -1,45 +1,45 @@ { + "application_credentials": { + "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Mail. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." + }, "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "Wrong account: Please authenticate with {email}." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Mail integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" + "description": "The Google Mail integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "Wrong account: Please authenticate with {email}." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, - "application_credentials": { - "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Mail. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." - }, "entity": { "sensor": { "vacation_end_date": { @@ -49,42 +49,42 @@ }, "services": { "set_vacation": { - "name": "Set vacation", "description": "Sets vacation responder settings for Google Mail.", "fields": { "enabled": { - "name": "[%key:common::state::enabled%]", - "description": "Turn this off to end vacation responses." - }, - "title": { - "name": "Title", - "description": "The subject for the email." - }, - "message": { - "name": "Message", - "description": "Body of the email." - }, - "plain_text": { - "name": "Plain text", - "description": "Choose to send message in plain text or HTML." - }, - "restrict_contacts": { - "name": "Restrict to contacts", - "description": "Restrict automatic reply to contacts." - }, - "restrict_domain": { - "name": "Restrict to domain", - "description": "Restrict automatic reply to domain. This only affects Google Workspace accounts." - }, - "start": { - "name": "Start", - "description": "First day of the vacation." + "description": "Turn this off to end vacation responses.", + "name": "[%key:common::state::enabled%]" }, "end": { - "name": "End", - "description": "Last day of the vacation." + "description": "Last day of the vacation.", + "name": "End" + }, + "message": { + "description": "Body of the email.", + "name": "Message" + }, + "plain_text": { + "description": "Choose to send message in plain text or HTML.", + "name": "Plain text" + }, + "restrict_contacts": { + "description": "Restrict automatic reply to contacts.", + "name": "Restrict to contacts" + }, + "restrict_domain": { + "description": "Restrict automatic reply to domain. This only affects Google Workspace accounts.", + "name": "Restrict to domain" + }, + "start": { + "description": "First day of the vacation.", + "name": "Start" + }, + "title": { + "description": "The subject for the email.", + "name": "Title" } - } + }, + "name": "Set vacation" } } } diff --git a/homeassistant/components/google_photos/strings.json b/homeassistant/components/google_photos/strings.json index 503f27d8125..443645a6eb1 100644 --- a/homeassistant/components/google_photos/strings.json +++ b/homeassistant/components/google_photos/strings.json @@ -3,100 +3,100 @@ "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Photos. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." }, "config": { + "abort": { + "access_not_configured": "Unable to access the Google API:\n\n{message}", + "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "Wrong account: Please authenticate with the right account." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Photos integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" + "description": "The Google Photos integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "access_not_configured": "Unable to access the Google API:\n\n{message}", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "Wrong account: Please authenticate with the right account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "exceptions": { - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." - }, - "not_loaded": { - "message": "{target} is not loaded." - }, - "no_access_to_path": { - "message": "Cannot read {filename}, no access to path; `allowlist_external_dirs` may need to be adjusted in `configuration.yaml`" - }, - "filename_does_not_exist": { - "message": "`{filename}` does not exist" - }, - "file_too_large": { - "message": "`{filename}` is too large ({size} > {limit})" - }, - "filename_is_not_image": { - "message": "`{filename}` is not an image" - }, - "missing_upload_permission": { - "message": "Home Assistant was not granted permission to upload to Google Photos" - }, - "upload_error": { - "message": "Failed to upload content: {message}" - }, - "create_album_error": { - "message": "Failed to create album: {message}" + "albums_failed": { + "message": "Cannot fetch albums from the Google Photos API" }, "api_error": { "message": "Google Photos API responded with error: {message}" }, - "albums_failed": { - "message": "Cannot fetch albums from the Google Photos API" + "create_album_error": { + "message": "Failed to create album: {message}" + }, + "file_too_large": { + "message": "`{filename}` is too large ({size} > {limit})" + }, + "filename_does_not_exist": { + "message": "`{filename}` does not exist" + }, + "filename_is_not_image": { + "message": "`{filename}` is not an image" + }, + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, + "missing_upload_permission": { + "message": "Home Assistant was not granted permission to upload to Google Photos" + }, + "no_access_to_path": { + "message": "Cannot read {filename}, no access to path; `allowlist_external_dirs` may need to be adjusted in `configuration.yaml`" + }, + "not_loaded": { + "message": "{target} is not loaded." + }, + "upload_error": { + "message": "Failed to upload content: {message}" } }, "services": { "upload": { - "name": "Upload media", "description": "Uploads images or videos to Google Photos.", "fields": { + "album": { + "description": "Album name that is the destination for the uploaded content.", + "example": "Family photos", + "name": "Album" + }, "config_entry_id": { - "name": "Integration ID", - "description": "The Google Photos integration ID." + "description": "The Google Photos integration ID.", + "name": "Integration ID" }, "filename": { - "name": "Filename", "description": "Path to the image or video to upload.", - "example": "/config/www/image.jpg" - }, - "album": { - "name": "Album", - "description": "Album name that is the destination for the uploaded content.", - "example": "Family photos" + "example": "/config/www/image.jpg", + "name": "Filename" } - } + }, + "name": "Upload media" } } } diff --git a/homeassistant/components/google_sheets/strings.json b/homeassistant/components/google_sheets/strings.json index 9a5ed48767d..d7c6516e25c 100644 --- a/homeassistant/components/google_sheets/strings.json +++ b/homeassistant/components/google_sheets/strings.json @@ -1,64 +1,64 @@ { + "application_credentials": { + "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Sheets. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." + }, "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%]", + "create_spreadsheet_failure": "Error while creating spreadsheet, see error log for details", + "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%]", + "open_spreadsheet_failure": "Error while opening spreadsheet, see error log for details", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "Successfully authenticated and spreadsheet created at: {url}" + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Sheets integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" + "description": "The Google Sheets integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "create_spreadsheet_failure": "Error while creating spreadsheet, see error log for details", - "open_spreadsheet_failure": "Error while opening spreadsheet, see error log for details" - }, - "create_entry": { - "default": "Successfully authenticated and spreadsheet created at: {url}" } }, - "application_credentials": { - "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Sheets. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." - }, "services": { "append_sheet": { - "name": "Append to sheet", "description": "Appends data to a worksheet in Google Sheets.", "fields": { "config_entry": { - "name": "Sheet", - "description": "The sheet to add data to." - }, - "worksheet": { - "name": "Worksheet", - "description": "Name of the worksheet. Defaults to the first one in the document." + "description": "The sheet to add data to.", + "name": "Sheet" }, "data": { - "name": "Data", - "description": "Data to be appended to the worksheet. This puts the values on new rows underneath the matching column (key). Any new key is placed on the top of a new column." + "description": "Data to be appended to the worksheet. This puts the values on new rows underneath the matching column (key). Any new key is placed on the top of a new column.", + "name": "Data" + }, + "worksheet": { + "description": "Name of the worksheet. Defaults to the first one in the document.", + "name": "Worksheet" } - } + }, + "name": "Append to sheet" } } } diff --git a/homeassistant/components/google_tasks/strings.json b/homeassistant/components/google_tasks/strings.json index 3a7ef8a1ec8..65123732a8b 100644 --- a/homeassistant/components/google_tasks/strings.json +++ b/homeassistant/components/google_tasks/strings.json @@ -3,43 +3,43 @@ "description": "Follow the [instructions]({more_info_url}) for [OAuth consent screen]({oauth_consent_url}) to give Home Assistant access to your Google Tasks. You also need to create Application Credentials linked to your account:\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web application** for the Application Type." }, "config": { + "abort": { + "access_not_configured": "Unable to access the Google API:\n\n{message}", + "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "Wrong account: Please authenticate with the right account." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "auth": { + "title": "Link Google Account" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Google Tasks integration needs to re-authenticate your account" - }, - "auth": { - "title": "Link Google Account" + "description": "The Google Tasks integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "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%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "access_not_configured": "Unable to access the Google API:\n\n{message}", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "Wrong account: Please authenticate with the right account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } } } diff --git a/homeassistant/components/google_translate/strings.json b/homeassistant/components/google_translate/strings.json index 1ff177e4b45..6d35f3dbe8b 100644 --- a/homeassistant/components/google_translate/strings.json +++ b/homeassistant/components/google_translate/strings.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "step": { "user": { "data": { @@ -7,9 +10,6 @@ "tld": "TLD" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } } } diff --git a/homeassistant/components/google_travel_time/strings.json b/homeassistant/components/google_travel_time/strings.json index b114c3d9225..40059d6d033 100644 --- a/homeassistant/components/google_travel_time/strings.json +++ b/homeassistant/components/google_travel_time/strings.json @@ -1,76 +1,75 @@ { - "title": "Google Maps Travel Time", "config": { - "step": { - "user": { - "description": "You can specify the origin and destination in the form of an address, latitude/longitude coordinates or an entity ID that provides this information in its state, an entity ID with latitude and longitude attributes, or a zone's friendly name (case-sensitive)", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "origin": "Origin", - "destination": "Destination" - } - }, - "reconfigure": { - "description": "[%key:component::google_travel_time::config::step::user::description%]", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "origin": "[%key:component::google_travel_time::config::step::user::data::origin%]", - "destination": "[%key:component::google_travel_time::config::step::user::data::destination%]" - } - } - }, - "error": { - "permission_denied": "The Routes API is not enabled for this API key. Please see the setup instructions for detailed information.", - "invalid_auth": "[%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%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "permission_denied": "The Routes API is not enabled for this API key. Please see the setup instructions for detailed information.", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" + }, + "step": { + "reconfigure": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "destination": "[%key:component::google_travel_time::config::step::user::data::destination%]", + "origin": "[%key:component::google_travel_time::config::step::user::data::origin%]" + }, + "description": "[%key:component::google_travel_time::config::step::user::description%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "destination": "Destination", + "name": "[%key:common::config_flow::data::name%]", + "origin": "Origin" + }, + "description": "You can specify the origin and destination in the form of an address, latitude/longitude coordinates or an entity ID that provides this information in its state, an entity ID with latitude and longitude attributes, or a zone's friendly name (case-sensitive)" + } + } + }, + "issues": { + "routes_api_disabled": { + "description": "Your Google Travel Time integration `{entry_title}` uses an API key which does not have the Routes API enabled.\n\n Please follow the instructions to [enable the API for your project]({enable_api_url}) and make sure your [API key restrictions]({api_key_restrictions_url}) allow access to the Routes API.\n\n After enabling the API this issue will be resolved automatically.", + "title": "The Routes API must be enabled" } }, "options": { "step": { "init": { - "description": "You can optionally specify either a departure time or arrival time in the form of a 24 hour time string like `08:00:00`", "data": { - "mode": "Travel mode", - "language": "[%key:common::config_flow::data::language%]", - "time_type": "Time type", - "time": "Time", "avoid": "Avoid", + "language": "[%key:common::config_flow::data::language%]", + "mode": "Travel mode", + "time": "Time", + "time_type": "Time type", "traffic_model": "Traffic model", "transit_mode": "Transit mode", "transit_routing_preference": "Transit routing preference", "units": "Units" - } + }, + "description": "You can optionally specify either a departure time or arrival time in the form of a 24 hour time string like `08:00:00`" } } }, "selector": { - "mode": { - "options": { - "driving": "Driving", - "walking": "Walking", - "bicycling": "Bicycling", - "transit": "Transit" - } - }, "avoid": { "options": { - "none": "Avoid nothing", - "tolls": "Tolls", - "highways": "Highways", "ferries": "Ferries", - "indoor": "Indoor" + "highways": "Highways", + "indoor": "Indoor", + "none": "Avoid nothing", + "tolls": "Tolls" } }, - "units": { + "mode": { "options": { - "metric": "Metric system", - "imperial": "Imperial system" + "bicycling": "Bicycling", + "driving": "Driving", + "transit": "Transit", + "walking": "Walking" } }, "time_type": { @@ -82,30 +81,31 @@ "traffic_model": { "options": { "best_guess": "Best guess", - "pessimistic": "Pessimistic", - "optimistic": "Optimistic" + "optimistic": "Optimistic", + "pessimistic": "Pessimistic" } }, "transit_mode": { "options": { "bus": "Bus", + "rail": "Rail", "subway": "Subway", "train": "Train", - "tram": "Tram", - "rail": "Rail" + "tram": "Tram" } }, "transit_routing_preference": { "options": { - "less_walking": "Less walking", - "fewer_transfers": "Fewer transfers" + "fewer_transfers": "Fewer transfers", + "less_walking": "Less walking" + } + }, + "units": { + "options": { + "imperial": "Imperial system", + "metric": "Metric system" } } }, - "issues": { - "routes_api_disabled": { - "title": "The Routes API must be enabled", - "description": "Your Google Travel Time integration `{entry_title}` uses an API key which does not have the Routes API enabled.\n\n Please follow the instructions to [enable the API for your project]({enable_api_url}) and make sure your [API key restrictions]({api_key_restrictions_url}) allow access to the Routes API.\n\n After enabling the API this issue will be resolved automatically." - } - } + "title": "Google Maps Travel Time" } diff --git a/homeassistant/components/govee_ble/manifest.json b/homeassistant/components/govee_ble/manifest.json index 93f90e36876..bdc7cb4ea84 100644 --- a/homeassistant/components/govee_ble/manifest.json +++ b/homeassistant/components/govee_ble/manifest.json @@ -3,135 +3,135 @@ "name": "Govee Bluetooth", "bluetooth": [ { - "local_name": "Govee*", - "connectable": false + "connectable": false, + "local_name": "Govee*" }, { - "local_name": "GVH5*", - "connectable": false + "connectable": false, + "local_name": "GVH5*" }, { - "local_name": "B5178*", - "connectable": false + "connectable": false, + "local_name": "B5178*" }, { - "local_name": "GV5121*", - "connectable": false + "connectable": false, + "local_name": "GV5121*" }, { - "local_name": "GV5122*", - "connectable": false + "connectable": false, + "local_name": "GV5122*" }, { - "local_name": "GV5123*", - "connectable": false + "connectable": false, + "local_name": "GV5123*" }, { - "local_name": "GV5124*", - "connectable": false + "connectable": false, + "local_name": "GV5124*" }, { - "local_name": "GV5125*", - "connectable": false + "connectable": false, + "local_name": "GV5125*" }, { - "local_name": "GV5126*", - "connectable": false + "connectable": false, + "local_name": "GV5126*" }, { - "local_name": "GV5179*", - "connectable": false + "connectable": false, + "local_name": "GV5179*" }, { - "local_name": "GVH5127*", - "connectable": false + "connectable": false, + "local_name": "GVH5127*" }, { - "local_name": "GVH5130*", - "connectable": false + "connectable": false, + "local_name": "GVH5130*" }, { - "local_name": "GVH5110*", - "connectable": false + "connectable": false, + "local_name": "GVH5110*" }, { + "connectable": false, "manufacturer_id": 1, - "service_uuid": "0000ec88-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "0000ec88-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 6966, - "service_uuid": "00008451-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008451-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 63391, - "service_uuid": "00008351-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008351-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 26589, - "service_uuid": "00008351-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008351-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 57391, - "service_uuid": "00008351-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008351-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 18994, - "service_uuid": "00008551-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008551-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 818, - "service_uuid": "00008551-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008551-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 53579, - "service_uuid": "00008151-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008151-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 43682, - "service_uuid": "00008151-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008151-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 59970, - "service_uuid": "00008151-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008151-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 63585, - "service_uuid": "00008151-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008151-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 14474, - "service_uuid": "00008151-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008151-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 10032, - "service_uuid": "00008251-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00008251-0000-1000-8000-00805f9b34fb" }, { + "connectable": false, "manufacturer_id": 19506, - "service_uuid": "00001801-0000-1000-8000-00805f9b34fb", - "connectable": false + "service_uuid": "00001801-0000-1000-8000-00805f9b34fb" }, { - "manufacturer_id": 61320, - "connectable": false + "connectable": false, + "manufacturer_id": 61320 }, { - "manufacturer_id": 34819, + "connectable": false, "manufacturer_data_start": [236, 0, 0, 1], - "connectable": false + "manufacturer_id": 34819 } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/govee_ble/strings.json b/homeassistant/components/govee_ble/strings.json index c3f4729873c..09fa7208772 100644 --- a/homeassistant/components/govee_ble/strings.json +++ b/homeassistant/components/govee_ble/strings.json @@ -1,44 +1,25 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } }, "entity": { "event": { - "motion": { - "state_attributes": { - "event_type": { - "state": { - "motion": "[%key:component::event::entity_component::motion::name%]" - } - } - } - }, - "vibration": { - "name": "Vibration", - "state_attributes": { - "event_type": { - "state": { - "vibration": "Vibration" - } - } - } - }, "button_0": { "name": "Button 1", "state_attributes": { @@ -98,6 +79,25 @@ } } } + }, + "motion": { + "state_attributes": { + "event_type": { + "state": { + "motion": "[%key:component::event::entity_component::motion::name%]" + } + } + } + }, + "vibration": { + "name": "Vibration", + "state_attributes": { + "event_type": { + "state": { + "vibration": "Vibration" + } + } + } } } } diff --git a/homeassistant/components/govee_light_local/strings.json b/homeassistant/components/govee_light_local/strings.json index 49f3a2cbeb9..15140f174dc 100644 --- a/homeassistant/components/govee_light_local/strings.json +++ b/homeassistant/components/govee_light_local/strings.json @@ -1,13 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "entity": { @@ -16,18 +16,18 @@ "state_attributes": { "effect": { "state": { + "breathe": "Breathe", + "candlelight": "Candlelight", + "crossing": "Crossing", + "dating": "Dating", + "energetic": "Energetic", + "movie": "Movie", "none": "None", + "romantic": "Romantic", + "snowflake": "Snowflake", "sunrise": "Sunrise", "sunset": "Sunset", - "movie": "Movie", - "dating": "Dating", - "romantic": "Romantic", - "twinkle": "Twinkle", - "candlelight": "Candlelight", - "snowflake": "Snowflake", - "energetic": "Energetic", - "breathe": "Breathe", - "crossing": "Crossing" + "twinkle": "Twinkle" } } } diff --git a/homeassistant/components/gpsd/icons.json b/homeassistant/components/gpsd/icons.json index 3605bdc6d70..7cb6d62b0ab 100644 --- a/homeassistant/components/gpsd/icons.json +++ b/homeassistant/components/gpsd/icons.json @@ -1,12 +1,8 @@ { "entity": { "sensor": { - "mode": { - "default": "mdi:crosshairs", - "state": { - "2d_fix": "mdi:crosshairs-gps", - "3d_fix": "mdi:crosshairs-gps" - } + "elevation": { + "default": "mdi:arrow-up-down" }, "latitude": { "default": "mdi:latitude" @@ -14,8 +10,12 @@ "longitude": { "default": "mdi:longitude" }, - "elevation": { - "default": "mdi:arrow-up-down" + "mode": { + "default": "mdi:crosshairs", + "state": { + "2d_fix": "mdi:crosshairs-gps", + "3d_fix": "mdi:crosshairs-gps" + } }, "total_satellites": { "default": "mdi:satellite-variant" diff --git a/homeassistant/components/gpsd/strings.json b/homeassistant/components/gpsd/strings.json index a5d6c570b54..2aba4bfb10a 100644 --- a/homeassistant/components/gpsd/strings.json +++ b/homeassistant/components/gpsd/strings.json @@ -1,5 +1,9 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { @@ -10,21 +14,14 @@ "host": "The hostname or IP address of GPSD." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "sensor": { + "climb": { "name": "Climb" }, + "elevation": { "name": "[%key:common::config_flow::data::elevation%]" }, "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, "longitude": { "name": "[%key:common::config_flow::data::longitude%]" }, - "elevation": { "name": "[%key:common::config_flow::data::elevation%]" }, - "time": { - "name": "[%key:component::time_date::selector::display_options::options::time%]" - }, - "climb": { "name": "Climb" }, "mode": { "name": "[%key:common::config_flow::data::mode%]", "state": { @@ -32,9 +29,8 @@ "3d_fix": "3D Fix" }, "state_attributes": { - "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, - "longitude": { - "name": "[%key:common::config_flow::data::longitude%]" + "climb": { + "name": "[%key:component::gpsd::entity::sensor::climb::name%]" }, "elevation": { "name": "[%key:common::config_flow::data::elevation%]" @@ -42,15 +38,19 @@ "gps_time": { "name": "[%key:component::time_date::selector::display_options::options::time%]" }, + "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, + "longitude": { + "name": "[%key:common::config_flow::data::longitude%]" + }, + "mode": { "name": "[%key:common::config_flow::data::mode%]" }, "speed": { "name": "[%key:component::sensor::entity_component::speed::name%]" - }, - "climb": { - "name": "[%key:component::gpsd::entity::sensor::climb::name%]" - }, - "mode": { "name": "[%key:common::config_flow::data::mode%]" } + } } }, + "time": { + "name": "[%key:component::time_date::selector::display_options::options::time%]" + }, "total_satellites": { "name": "Total satellites", "unit_of_measurement": "satellites" diff --git a/homeassistant/components/gpslogger/strings.json b/homeassistant/components/gpslogger/strings.json index 3238d6f460e..e6458c38007 100644 --- a/homeassistant/components/gpslogger/strings.json +++ b/homeassistant/components/gpslogger/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the GPSLogger webhook", - "description": "Are you sure you want to set up the GPSLogger webhook?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up the webhook feature in GPSLogger.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "Are you sure you want to set up the GPSLogger webhook?", + "title": "Set up the GPSLogger webhook" + } } } } diff --git a/homeassistant/components/gree/icons.json b/homeassistant/components/gree/icons.json index ac8e45ebf89..755d1702a35 100644 --- a/homeassistant/components/gree/icons.json +++ b/homeassistant/components/gree/icons.json @@ -1,11 +1,11 @@ { "entity": { "switch": { - "light": { - "default": "mdi:lightbulb" - }, "health_mode": { "default": "mdi:pine-tree" + }, + "light": { + "default": "mdi:lightbulb" } } } diff --git a/homeassistant/components/gree/strings.json b/homeassistant/components/gree/strings.json index 403cf7d45fc..153919fb0dc 100644 --- a/homeassistant/components/gree/strings.json +++ b/homeassistant/components/gree/strings.json @@ -1,31 +1,31 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "entity": { "switch": { + "fresh_air": { + "name": "Fresh air" + }, + "health_mode": { + "name": "Health mode" + }, "light": { "name": "Panel light" }, "quiet": { "name": "Quiet mode" }, - "fresh_air": { - "name": "Fresh air" - }, "xfan": { "name": "Xtra fan" - }, - "health_mode": { - "name": "Health mode" } } } diff --git a/homeassistant/components/group/icons.json b/homeassistant/components/group/icons.json index 577d1effac0..e3084bf950d 100644 --- a/homeassistant/components/group/icons.json +++ b/homeassistant/components/group/icons.json @@ -3,11 +3,11 @@ "reload": { "service": "mdi:reload" }, - "set": { - "service": "mdi:home-group-plus" - }, "remove": { "service": "mdi:home-group-remove" + }, + "set": { + "service": "mdi:home-group-plus" } } } diff --git a/homeassistant/components/group/strings.json b/homeassistant/components/group/strings.json index 5f4fdb563a1..ba4cb242700 100644 --- a/homeassistant/components/group/strings.json +++ b/homeassistant/components/group/strings.json @@ -1,9 +1,116 @@ { - "title": "Group", "config": { "step": { + "binary_sensor": { + "data": { + "all": "All entities", + "entities": "Members", + "hide_members": "Hide members", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "all": "If enabled, the group's state is on only if all members are on. If disabled, the group's state is on if any member is on." + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "button": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "cover": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "event": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "fan": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "light": { + "data": { + "all": "[%key:component::group::config::step::binary_sensor::data::all%]", + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "all": "[%key:component::group::config::step::binary_sensor::data_description::all%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "lock": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "media_player": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "notify": { + "data": { + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "sensor": { + "data": { + "device_class": "Device class", + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "ignore_non_numeric": "Ignore non-numeric", + "name": "[%key:common::config_flow::data::name%]", + "round_digits": "Round value to number of decimals", + "state_class": "State class", + "type": "Type", + "unit_of_measurement": "Unit of measurement" + }, + "data_description": { + "ignore_non_numeric": "If enabled, the group's state is calculated if at least one member has a numerical value. If disabled, the group's state is calculated only if all group members have numerical values." + }, + "title": "[%key:component::group::config::step::user::title%]" + }, + "switch": { + "data": { + "all": "[%key:component::group::config::step::binary_sensor::data::all%]", + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "all": "[%key:component::group::config::step::binary_sensor::data_description::all%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + }, "user": { - "title": "Create group", "description": "Groups allow you to create a new entity that represents multiple entities of the same type.", "menu_options": { "binary_sensor": "Binary sensor group", @@ -18,119 +125,10 @@ "sensor": "Sensor group", "switch": "Switch group", "valve": "Valve group" - } - }, - "binary_sensor": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "all": "All entities", - "entities": "Members", - "hide_members": "Hide members", - "name": "[%key:common::config_flow::data::name%]" }, - "data_description": { - "all": "If enabled, the group's state is on only if all members are on. If disabled, the group's state is on if any member is on." - } - }, - "button": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "cover": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "event": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "fan": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "light": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "all": "[%key:component::group::config::step::binary_sensor::data::all%]", - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "all": "[%key:component::group::config::step::binary_sensor::data_description::all%]" - } - }, - "lock": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "media_player": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "notify": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "sensor": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "ignore_non_numeric": "Ignore non-numeric", - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]", - "type": "Type", - "round_digits": "Round value to number of decimals", - "device_class": "Device class", - "state_class": "State class", - "unit_of_measurement": "Unit of measurement" - }, - "data_description": { - "ignore_non_numeric": "If enabled, the group's state is calculated if at least one member has a numerical value. If disabled, the group's state is calculated only if all group members have numerical values." - } - }, - "switch": { - "title": "[%key:component::group::config::step::user::title%]", - "data": { - "all": "[%key:component::group::config::step::binary_sensor::data::all%]", - "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", - "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "all": "[%key:component::group::config::step::binary_sensor::data_description::all%]" - } + "title": "Create group" }, "valve": { - "title": "[%key:component::group::config::step::user::title%]", "data": { "all": "[%key:component::group::config::step::binary_sensor::data::all%]", "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", @@ -139,10 +137,51 @@ }, "data_description": { "all": "[%key:component::group::config::step::binary_sensor::data_description::all%]" + }, + "title": "[%key:component::group::config::step::user::title%]" + } + } + }, + "entity_component": { + "_": { + "name": "[%key:component::group::title%]", + "state": { + "closed": "[%key:common::state::closed%]", + "home": "[%key:common::state::home%]", + "locked": "[%key:common::state::locked%]", + "not_home": "[%key:common::state::not_home%]", + "off": "[%key:common::state::off%]", + "ok": "[%key:component::binary_sensor::entity_component::problem::state::off%]", + "on": "[%key:common::state::on%]", + "open": "[%key:common::state::open%]", + "problem": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "unlocked": "[%key:common::state::unlocked%]" + }, + "state_attributes": { + "entity_id": { + "name": "[%key:component::group::config::step::binary_sensor::data::entities%]" } } } }, + "issues": { + "device_classes_not_matching": { + "description": "Device classes `{device_classes}` on source entities `{source_entities}` need to be identical for sensor group `{entity_id}`.\n\nPlease correct the device classes on the source entities and reload the group sensor to fix this issue.", + "title": "Device classes are not correct" + }, + "state_classes_not_matching": { + "description": "State classes `{state_classes}` on source entities `{source_entities}` need to be identical for sensor group `{entity_id}`.\n\nPlease correct the state classes on the source entities and reload the group sensor to fix this issue.", + "title": "State classes are not correct" + }, + "uoms_not_matching_device_class": { + "description": "Units of measurement `{uoms}` of input sensors `{source_entities}` are not compatible and can't be converted with the device class `{device_class}` of sensor group `{entity_id}`.\n\nPlease correct the unit of measurement on the source entities and reload the group sensor to fix this issue.", + "title": "Units of measurement are not correct" + }, + "uoms_not_matching_no_device_class": { + "description": "Units of measurement `{uoms}` of input sensors `{source_entities}` are not compatible when not using a device class on sensor group `{entity_id}`.\n\nPlease correct the unit of measurement on the source entities or set a proper device class on the sensor group and reload the group sensor to fix this issue.", + "title": "Units of measurement are not correct" + } + }, "options": { "step": { "binary_sensor": { @@ -203,13 +242,13 @@ }, "sensor": { "data": { - "ignore_non_numeric": "[%key:component::group::config::step::sensor::data::ignore_non_numeric%]", + "device_class": "[%key:component::group::config::step::sensor::data::device_class%]", "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", - "type": "[%key:component::group::config::step::sensor::data::type%]", + "ignore_non_numeric": "[%key:component::group::config::step::sensor::data::ignore_non_numeric%]", "round_digits": "[%key:component::group::config::step::sensor::data::round_digits%]", - "device_class": "[%key:component::group::config::step::sensor::data::device_class%]", "state_class": "[%key:component::group::config::step::sensor::data::state_class%]", + "type": "[%key:component::group::config::step::sensor::data::type%]", "unit_of_measurement": "[%key:component::group::config::step::sensor::data::unit_of_measurement%]" }, "data_description": { @@ -238,28 +277,6 @@ } } }, - "entity_component": { - "_": { - "name": "[%key:component::group::title%]", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "home": "[%key:common::state::home%]", - "not_home": "[%key:common::state::not_home%]", - "open": "[%key:common::state::open%]", - "closed": "[%key:common::state::closed%]", - "locked": "[%key:common::state::locked%]", - "unlocked": "[%key:common::state::unlocked%]", - "ok": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "problem": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - }, - "state_attributes": { - "entity_id": { - "name": "[%key:component::group::config::step::binary_sensor::data::entities%]" - } - } - } - }, "selector": { "type": { "options": { @@ -277,70 +294,53 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads group configuration, entities, and notify services from YAML-configuration." - }, - "set": { - "name": "Set", - "description": "Creates/Updates a group.", - "fields": { - "object_id": { - "name": "Object ID", - "description": "Object ID of this group. This object ID is used as part of the entity ID. Entity ID format: [domain].[object_id]." - }, - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the group." - }, - "icon": { - "name": "Icon", - "description": "Name of the icon for the group." - }, - "entities": { - "name": "Entities", - "description": "List of all members in the group. Cannot be used in combination with `Add entities` or `Remove entities`." - }, - "add_entities": { - "name": "Add entities", - "description": "List of members to be added to the group. Cannot be used in combination with `Entities` or `Remove entities`." - }, - "remove_entities": { - "name": "Remove entities", - "description": "List of members to be removed from a group. Cannot be used in combination with `Entities` or `Add entities`." - }, - "all": { - "name": "All", - "description": "Enable this option if the group should only be used when all entities are in state `on`." - } - } + "description": "Reloads group configuration, entities, and notify services from YAML-configuration.", + "name": "[%key:common::action::reload%]" }, "remove": { - "name": "Remove", "description": "Removes a group.", "fields": { "object_id": { - "name": "[%key:component::group::services::set::fields::object_id::name%]", - "description": "[%key:component::group::services::set::fields::object_id::description%]" + "description": "[%key:component::group::services::set::fields::object_id::description%]", + "name": "[%key:component::group::services::set::fields::object_id::name%]" } - } + }, + "name": "Remove" + }, + "set": { + "description": "Creates/Updates a group.", + "fields": { + "add_entities": { + "description": "List of members to be added to the group. Cannot be used in combination with `Entities` or `Remove entities`.", + "name": "Add entities" + }, + "all": { + "description": "Enable this option if the group should only be used when all entities are in state `on`.", + "name": "All" + }, + "entities": { + "description": "List of all members in the group. Cannot be used in combination with `Add entities` or `Remove entities`.", + "name": "Entities" + }, + "icon": { + "description": "Name of the icon for the group.", + "name": "Icon" + }, + "name": { + "description": "Name of the group.", + "name": "[%key:common::config_flow::data::name%]" + }, + "object_id": { + "description": "Object ID of this group. This object ID is used as part of the entity ID. Entity ID format: [domain].[object_id].", + "name": "Object ID" + }, + "remove_entities": { + "description": "List of members to be removed from a group. Cannot be used in combination with `Entities` or `Add entities`.", + "name": "Remove entities" + } + }, + "name": "Set" } }, - "issues": { - "uoms_not_matching_device_class": { - "title": "Units of measurement are not correct", - "description": "Units of measurement `{uoms}` of input sensors `{source_entities}` are not compatible and can't be converted with the device class `{device_class}` of sensor group `{entity_id}`.\n\nPlease correct the unit of measurement on the source entities and reload the group sensor to fix this issue." - }, - "uoms_not_matching_no_device_class": { - "title": "Units of measurement are not correct", - "description": "Units of measurement `{uoms}` of input sensors `{source_entities}` are not compatible when not using a device class on sensor group `{entity_id}`.\n\nPlease correct the unit of measurement on the source entities or set a proper device class on the sensor group and reload the group sensor to fix this issue." - }, - "device_classes_not_matching": { - "title": "Device classes are not correct", - "description": "Device classes `{device_classes}` on source entities `{source_entities}` need to be identical for sensor group `{entity_id}`.\n\nPlease correct the device classes on the source entities and reload the group sensor to fix this issue." - }, - "state_classes_not_matching": { - "title": "State classes are not correct", - "description": "State classes `{state_classes}` on source entities `{source_entities}` need to be identical for sensor group `{entity_id}`.\n\nPlease correct the state classes on the source entities and reload the group sensor to fix this issue." - } - } + "title": "Group" } diff --git a/homeassistant/components/growatt_server/strings.json b/homeassistant/components/growatt_server/strings.json index 93a1ded5c3d..4fc1b065843 100644 --- a/homeassistant/components/growatt_server/strings.json +++ b/homeassistant/components/growatt_server/strings.json @@ -6,121 +6,131 @@ "no_plants": "No plants have been found on this account" }, "error": { - "invalid_auth": "Authentication failed. Please check your credentials and try again.", - "cannot_connect": "Cannot connect to Growatt servers. Please check your internet connection and try again." + "cannot_connect": "Cannot connect to Growatt servers. Please check your internet connection and try again.", + "invalid_auth": "Authentication failed. Please check your credentials and try again." }, "step": { - "user": { - "title": "Choose authentication method", - "description": "Note: API Token authentication is currently only supported for MIN/TLX devices. For other device types, please use Username & Password authentication.", - "menu_options": { - "password_auth": "Username & Password", - "token_auth": "API Token (MIN/TLX only)" - } - }, "password_auth": { - "title": "Enter your Growatt login credentials", "data": { - "username": "[%key:common::config_flow::data::username%]", "password": "[%key:common::config_flow::data::password%]", - "url": "[%key:common::config_flow::data::url%]" - } - }, - "token_auth": { - "title": "Enter your API token", - "description": "Token authentication is only supported for MIN/TLX devices. For other device types, please use username/password authentication.", - "data": { - "token": "API Token" - } + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Enter your Growatt login credentials" }, "plant": { "data": { "plant_id": "Plant" }, "title": "Select your plant" + }, + "token_auth": { + "data": { + "token": "API Token" + }, + "description": "Token authentication is only supported for MIN/TLX devices. For other device types, please use username/password authentication.", + "title": "Enter your API token" + }, + "user": { + "description": "Note: API Token authentication is currently only supported for MIN/TLX devices. For other device types, please use Username & Password authentication.", + "menu_options": { + "password_auth": "Username & Password", + "token_auth": "API Token (MIN/TLX only)" + }, + "title": "Choose authentication method" } } }, - "title": "Growatt Server", "entity": { + "number": { + "battery_charge_power_limit": { + "name": "Battery charge power limit" + }, + "battery_charge_soc_limit": { + "name": "Battery charge SOC limit" + }, + "battery_discharge_power_limit": { + "name": "Battery discharge power limit" + }, + "battery_discharge_soc_limit": { + "name": "Battery discharge SOC limit" + } + }, "sensor": { + "inverter_amperage_input_1": { + "name": "Input 1 amperage" + }, + "inverter_amperage_input_2": { + "name": "Input 2 amperage" + }, + "inverter_amperage_input_3": { + "name": "Input 3 amperage" + }, + "inverter_current_reactive_wattage": { + "name": "Reactive wattage" + }, + "inverter_current_wattage": { + "name": "Output power" + }, "inverter_energy_today": { "name": "Energy today" }, "inverter_energy_total": { "name": "Lifetime energy output" }, - "inverter_voltage_input_1": { - "name": "Input 1 voltage" - }, - "inverter_amperage_input_1": { - "name": "Input 1 amperage" - }, - "inverter_wattage_input_1": { - "name": "Input 1 wattage" - }, - "inverter_voltage_input_2": { - "name": "Input 2 voltage" - }, - "inverter_amperage_input_2": { - "name": "Input 2 amperage" - }, - "inverter_wattage_input_2": { - "name": "Input 2 wattage" - }, - "inverter_voltage_input_3": { - "name": "Input 3 voltage" - }, - "inverter_amperage_input_3": { - "name": "Input 3 amperage" - }, - "inverter_wattage_input_3": { - "name": "Input 3 wattage" + "inverter_frequency": { + "name": "AC frequency" }, "inverter_internal_wattage": { "name": "Internal wattage" }, - "inverter_reactive_voltage": { - "name": "Reactive voltage" + "inverter_ipm_temperature": { + "name": "Intelligent Power Management temperature" }, "inverter_reactive_amperage": { "name": "Reactive amperage" }, - "inverter_frequency": { - "name": "AC frequency" - }, - "inverter_current_wattage": { - "name": "Output power" - }, - "inverter_current_reactive_wattage": { - "name": "Reactive wattage" - }, - "inverter_ipm_temperature": { - "name": "Intelligent Power Management temperature" + "inverter_reactive_voltage": { + "name": "Reactive voltage" }, "inverter_temperature": { "name": "Inverter temperature" }, - "mix_statement_of_charge": { - "name": "State of charge" + "inverter_voltage_input_1": { + "name": "Input 1 voltage" }, - "mix_battery_charge_today": { - "name": "Battery charged today" + "inverter_voltage_input_2": { + "name": "Input 2 voltage" + }, + "inverter_voltage_input_3": { + "name": "Input 3 voltage" + }, + "inverter_wattage_input_1": { + "name": "Input 1 wattage" + }, + "inverter_wattage_input_2": { + "name": "Input 2 wattage" + }, + "inverter_wattage_input_3": { + "name": "Input 3 wattage" + }, + "mix_battery_charge": { + "name": "Battery charging" }, "mix_battery_charge_lifetime": { "name": "Lifetime battery charged" }, - "mix_battery_discharge_today": { - "name": "Battery discharged today" + "mix_battery_charge_today": { + "name": "Battery charged today" + }, + "mix_battery_discharge_kw": { + "name": "Battery discharging kW" }, "mix_battery_discharge_lifetime": { "name": "Lifetime battery discharged" }, - "mix_solar_generation_today": { - "name": "Solar energy today" - }, - "mix_solar_generation_lifetime": { - "name": "Lifetime solar energy" + "mix_battery_discharge_today": { + "name": "Battery discharged today" }, "mix_battery_discharge_w": { "name": "Battery discharging W" @@ -128,29 +138,68 @@ "mix_battery_voltage": { "name": "Battery voltage" }, + "mix_export_to_grid": { + "name": "Export to grid" + }, + "mix_export_to_grid_lifetime": { + "name": "Lifetime export to grid" + }, + "mix_export_to_grid_today": { + "name": "Export to grid today" + }, + "mix_grid_voltage": { + "name": "Grid voltage" + }, + "mix_import_from_grid": { + "name": "Import from grid" + }, + "mix_import_from_grid_today": { + "name": "Import from grid today (load)" + }, + "mix_import_from_grid_today_combined": { + "name": "Import from grid today (load + charging)" + }, + "mix_last_update": { + "name": "Last data update" + }, + "mix_load_consumption": { + "name": "Load consumption" + }, + "mix_load_consumption_battery_today": { + "name": "Load consumption today (battery)" + }, + "mix_load_consumption_lifetime": { + "name": "Lifetime load consumption" + }, + "mix_load_consumption_solar_today": { + "name": "Load consumption today (solar)" + }, + "mix_load_consumption_today": { + "name": "Load consumption today" + }, + "mix_load_consumption_total": { + "name": "Lifetime total load consumption" + }, "mix_pv1_voltage": { "name": "PV1 voltage" }, "mix_pv2_voltage": { "name": "PV2 voltage" }, - "mix_load_consumption_today": { - "name": "Load consumption today" + "mix_self_consumption_today": { + "name": "Self-consumption today (solar + battery)" }, - "mix_load_consumption_lifetime": { - "name": "Lifetime load consumption" + "mix_solar_generation_lifetime": { + "name": "Lifetime solar energy" }, - "mix_export_to_grid_today": { - "name": "Export to grid today" + "mix_solar_generation_today": { + "name": "Solar energy today" }, - "mix_export_to_grid_lifetime": { - "name": "Lifetime export to grid" + "mix_statement_of_charge": { + "name": "State of charge" }, - "mix_battery_charge": { - "name": "Battery charging" - }, - "mix_load_consumption": { - "name": "Load consumption" + "mix_system_production_today": { + "name": "System production today (self-consumption + export)" }, "mix_wattage_pv_1": { "name": "PV1 wattage" @@ -161,90 +210,54 @@ "mix_wattage_pv_all": { "name": "All PV wattage" }, - "mix_export_to_grid": { - "name": "Export to grid" + "storage_ac_input_frequency_out": { + "name": "AC input frequency" }, - "mix_import_from_grid": { - "name": "Import from grid" - }, - "mix_battery_discharge_kw": { - "name": "Battery discharging kW" - }, - "mix_grid_voltage": { - "name": "Grid voltage" - }, - "mix_system_production_today": { - "name": "System production today (self-consumption + export)" - }, - "mix_load_consumption_solar_today": { - "name": "Load consumption today (solar)" - }, - "mix_self_consumption_today": { - "name": "Self-consumption today (solar + battery)" - }, - "mix_load_consumption_battery_today": { - "name": "Load consumption today (battery)" - }, - "mix_import_from_grid_today": { - "name": "Import from grid today (load)" - }, - "mix_last_update": { - "name": "Last data update" - }, - "mix_import_from_grid_today_combined": { - "name": "Import from grid today (load + charging)" - }, - "storage_storage_production_today": { - "name": "Storage production today" - }, - "storage_storage_production_lifetime": { - "name": "Lifetime storage production" - }, - "storage_grid_discharge_today": { - "name": "Grid discharged today" - }, - "storage_grid_discharge_lifetime": { - "name": "Lifetime grid discharged" - }, - "storage_load_consumption_today": { - "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" - }, - "storage_load_consumption_lifetime": { - "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_lifetime::name%]" - }, - "storage_grid_charged_today": { - "name": "Grid charged today" - }, - "storage_grid_charged_lifetime": { - "name": "Lifetime grid charged" - }, - "storage_charge_storage_lifetime": { - "name": "Lifetime stored charged" - }, - "storage_solar_production": { - "name": "Solar power production (PV1)" - }, - "storage_solar_production_2": { - "name": "Solar power production (PV2)" - }, - "storage_solar_output_today": { - "name": "Solar output today" - }, - "storage_solar_output_lifetime": { - "name": "Lifetime solar output" + "storage_ac_output_frequency": { + "name": "AC output frequency" }, "storage_battery_percentage": { "name": "Battery percentage" }, - "storage_power_flow": { - "name": "Storage charging/ discharging(-ve)" + "storage_battery_voltage": { + "name": "Battery voltage" }, - "storage_load_consumption_solar_storage": { - "name": "Load consumption (solar + storage)" + "storage_charge_storage_lifetime": { + "name": "Lifetime stored charged" }, "storage_charge_today": { "name": "Charge today" }, + "storage_current_1": { + "name": "PV1 current to storage" + }, + "storage_current_2": { + "name": "PV2 current to storage" + }, + "storage_current_pv": { + "name": "Solar charge current" + }, + "storage_grid_amperage_input": { + "name": "Grid charge current" + }, + "storage_grid_charged_lifetime": { + "name": "Lifetime grid charged" + }, + "storage_grid_charged_today": { + "name": "Grid charged today" + }, + "storage_grid_discharge_lifetime": { + "name": "Lifetime grid discharged" + }, + "storage_grid_discharge_today": { + "name": "Grid discharged today" + }, + "storage_grid_out_current": { + "name": "Grid out current" + }, + "storage_grid_voltage": { + "name": "AC input voltage" + }, "storage_import_from_grid": { "name": "[%key:component::growatt_server::entity::sensor::mix_import_from_grid::name%]" }, @@ -257,8 +270,23 @@ "storage_load_consumption": { "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption::name%]" }, - "storage_grid_voltage": { - "name": "AC input voltage" + "storage_load_consumption_lifetime": { + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_lifetime::name%]" + }, + "storage_load_consumption_solar_storage": { + "name": "Load consumption (solar + storage)" + }, + "storage_load_consumption_today": { + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" + }, + "storage_load_percentage": { + "name": "Load percentage" + }, + "storage_output_voltage": { + "name": "Output voltage" + }, + "storage_power_flow": { + "name": "Storage charging/ discharging(-ve)" }, "storage_pv_charging_voltage": { "name": "PV1 charging voltage" @@ -266,101 +294,155 @@ "storage_pv_charging_voltage_2": { "name": "PV2 charging voltage" }, - "storage_ac_input_frequency_out": { - "name": "AC input frequency" + "storage_solar_output_lifetime": { + "name": "Lifetime solar output" }, - "storage_output_voltage": { - "name": "Output voltage" + "storage_solar_output_today": { + "name": "Solar output today" }, - "storage_ac_output_frequency": { - "name": "AC output frequency" + "storage_solar_production": { + "name": "Solar power production (PV1)" }, - "storage_current_pv": { - "name": "Solar charge current" + "storage_solar_production_2": { + "name": "Solar power production (PV2)" }, - "storage_current_1": { - "name": "PV1 current to storage" + "storage_storage_production_lifetime": { + "name": "Lifetime storage production" }, - "storage_current_2": { - "name": "PV2 current to storage" + "storage_storage_production_today": { + "name": "Storage production today" }, - "storage_grid_amperage_input": { - "name": "Grid charge current" + "tlx_all_batteries_charge_today": { + "name": "All batteries charged today" }, - "storage_grid_out_current": { - "name": "Grid out current" + "tlx_all_batteries_charge_total": { + "name": "Lifetime total all batteries charged" }, - "storage_battery_voltage": { - "name": "Battery voltage" + "tlx_all_batteries_discharge_today": { + "name": "All batteries discharged today" }, - "storage_load_percentage": { - "name": "Load percentage" + "tlx_all_batteries_discharge_total": { + "name": "Lifetime total all batteries discharged" + }, + "tlx_amperage_input_1": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_1::name%]" + }, + "tlx_amperage_input_2": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_2::name%]" + }, + "tlx_amperage_input_3": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_3::name%]" + }, + "tlx_amperage_input_4": { + "name": "Input 4 amperage" + }, + "tlx_batteries_charged_from_grid_today": { + "name": "Batteries charged from grid today" + }, + "tlx_batteries_charged_from_grid_total": { + "name": "Lifetime batteries charged from grid" + }, + "tlx_battery_1_charge_total": { + "name": "Lifetime total battery 1 charged" + }, + "tlx_battery_1_charge_w": { + "name": "Battery 1 charging W" + }, + "tlx_battery_1_discharge_total": { + "name": "Lifetime total battery 1 discharged" + }, + "tlx_battery_1_discharge_w": { + "name": "Battery 1 discharging W" + }, + "tlx_battery_2_charge_total": { + "name": "Lifetime total battery 2 charged" + }, + "tlx_battery_2_charge_w": { + "name": "Battery 2 charging W" + }, + "tlx_battery_2_discharge_total": { + "name": "Lifetime total battery 2 discharged" + }, + "tlx_battery_2_discharge_w": { + "name": "Battery 2 discharging W" + }, + "tlx_current_wattage": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_current_wattage::name%]" }, "tlx_energy_today": { "name": "Energy today" }, + "tlx_energy_today_input_1": { + "name": "Energy today input 1" + }, + "tlx_energy_today_input_2": { + "name": "Energy today input 2" + }, + "tlx_energy_today_input_3": { + "name": "Energy today input 3" + }, + "tlx_energy_today_input_4": { + "name": "Energy today input 4" + }, "tlx_energy_total": { "name": "[%key:component::growatt_server::entity::sensor::inverter_energy_total::name%]" }, "tlx_energy_total_input_1": { "name": "Lifetime total energy input 1" }, - "tlx_energy_today_input_1": { - "name": "Energy today input 1" - }, - "tlx_voltage_input_1": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_1::name%]" - }, - "tlx_amperage_input_1": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_1::name%]" - }, - "tlx_wattage_input_1": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_1::name%]" - }, "tlx_energy_total_input_2": { "name": "Lifetime total energy input 2" }, - "tlx_energy_today_input_2": { - "name": "Energy today input 2" - }, - "tlx_voltage_input_2": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_2::name%]" - }, - "tlx_amperage_input_2": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_2::name%]" - }, - "tlx_wattage_input_2": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_2::name%]" - }, "tlx_energy_total_input_3": { "name": "Lifetime total energy input 3" }, - "tlx_energy_today_input_3": { - "name": "Energy today input 3" - }, - "tlx_voltage_input_3": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_3::name%]" - }, - "tlx_amperage_input_3": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_3::name%]" - }, - "tlx_wattage_input_3": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_3::name%]" - }, "tlx_energy_total_input_4": { "name": "Lifetime total energy input 4" }, - "tlx_energy_today_input_4": { - "name": "Energy today input 4" + "tlx_export_to_grid_today": { + "name": "[%key:component::growatt_server::entity::sensor::mix_export_to_grid_today::name%]" }, - "tlx_voltage_input_4": { - "name": "Input 4 voltage" + "tlx_export_to_grid_total": { + "name": "Lifetime total export to grid" }, - "tlx_amperage_input_4": { - "name": "Input 4 amperage" + "tlx_frequency": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_frequency::name%]" }, - "tlx_wattage_input_4": { - "name": "Input 4 wattage" + "tlx_import_from_grid_today": { + "name": "Import from grid today" + }, + "tlx_import_from_grid_total": { + "name": "Lifetime import from grid" + }, + "tlx_internal_wattage": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_internal_wattage::name%]" + }, + "tlx_load_consumption_today": { + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" + }, + "tlx_p_self": { + "name": "Self power" + }, + "tlx_p_system": { + "name": "System power" + }, + "tlx_pac_to_grid_total": { + "name": "Export power" + }, + "tlx_pac_to_local_load": { + "name": "Local load power" + }, + "tlx_pac_to_user_total": { + "name": "Import power" + }, + "tlx_reactive_voltage": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_reactive_voltage::name%]" + }, + "tlx_self_consumption_today": { + "name": "Self consumption today" + }, + "tlx_self_consumption_total": { + "name": "Lifetime self consumption" }, "tlx_solar_generation_today": { "name": "Solar energy today" @@ -368,17 +450,14 @@ "tlx_solar_generation_total": { "name": "Lifetime total solar energy" }, - "tlx_internal_wattage": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_internal_wattage::name%]" + "tlx_statement_of_charge": { + "name": "State of charge (SoC)" }, - "tlx_reactive_voltage": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_reactive_voltage::name%]" + "tlx_system_production_today": { + "name": "System production today" }, - "tlx_frequency": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_frequency::name%]" - }, - "tlx_current_wattage": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_current_wattage::name%]" + "tlx_system_production_total": { + "name": "Lifetime system production" }, "tlx_temperature_1": { "name": "Temperature 1" @@ -395,95 +474,38 @@ "tlx_temperature_5": { "name": "Temperature 5" }, - "tlx_all_batteries_discharge_today": { - "name": "All batteries discharged today" + "tlx_voltage_input_1": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_1::name%]" }, - "tlx_all_batteries_discharge_total": { - "name": "Lifetime total all batteries discharged" + "tlx_voltage_input_2": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_2::name%]" }, - "tlx_battery_1_discharge_w": { - "name": "Battery 1 discharging W" + "tlx_voltage_input_3": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_3::name%]" }, - "tlx_battery_1_discharge_total": { - "name": "Lifetime total battery 1 discharged" + "tlx_voltage_input_4": { + "name": "Input 4 voltage" }, - "tlx_battery_2_discharge_w": { - "name": "Battery 2 discharging W" + "tlx_wattage_input_1": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_1::name%]" }, - "tlx_battery_2_discharge_total": { - "name": "Lifetime total battery 2 discharged" + "tlx_wattage_input_2": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_2::name%]" }, - "tlx_all_batteries_charge_today": { - "name": "All batteries charged today" + "tlx_wattage_input_3": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_3::name%]" }, - "tlx_all_batteries_charge_total": { - "name": "Lifetime total all batteries charged" + "tlx_wattage_input_4": { + "name": "Input 4 wattage" }, - "tlx_battery_1_charge_w": { - "name": "Battery 1 charging W" + "total_energy_output": { + "name": "[%key:component::growatt_server::entity::sensor::inverter_energy_total::name%]" }, - "tlx_battery_1_charge_total": { - "name": "Lifetime total battery 1 charged" + "total_energy_today": { + "name": "Energy today" }, - "tlx_battery_2_charge_w": { - "name": "Battery 2 charging W" - }, - "tlx_battery_2_charge_total": { - "name": "Lifetime total battery 2 charged" - }, - "tlx_export_to_grid_today": { - "name": "[%key:component::growatt_server::entity::sensor::mix_export_to_grid_today::name%]" - }, - "tlx_export_to_grid_total": { - "name": "Lifetime total export to grid" - }, - "tlx_load_consumption_today": { - "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" - }, - "mix_load_consumption_total": { - "name": "Lifetime total load consumption" - }, - "tlx_statement_of_charge": { - "name": "State of charge (SoC)" - }, - "tlx_pac_to_local_load": { - "name": "Local load power" - }, - "tlx_pac_to_user_total": { - "name": "Import power" - }, - "tlx_pac_to_grid_total": { - "name": "Export power" - }, - "tlx_system_production_today": { - "name": "System production today" - }, - "tlx_system_production_total": { - "name": "Lifetime system production" - }, - "tlx_self_consumption_today": { - "name": "Self consumption today" - }, - "tlx_self_consumption_total": { - "name": "Lifetime self consumption" - }, - "tlx_import_from_grid_today": { - "name": "Import from grid today" - }, - "tlx_import_from_grid_total": { - "name": "Lifetime import from grid" - }, - "tlx_batteries_charged_from_grid_today": { - "name": "Batteries charged from grid today" - }, - "tlx_batteries_charged_from_grid_total": { - "name": "Lifetime batteries charged from grid" - }, - "tlx_p_system": { - "name": "System power" - }, - "tlx_p_self": { - "name": "Self power" + "total_maximum_output": { + "name": "Maximum power" }, "total_money_today": { "name": "Total money today" @@ -491,31 +513,8 @@ "total_money_total": { "name": "Money lifetime" }, - "total_energy_today": { - "name": "Energy today" - }, "total_output_power": { "name": "Output power" - }, - "total_energy_output": { - "name": "[%key:component::growatt_server::entity::sensor::inverter_energy_total::name%]" - }, - "total_maximum_output": { - "name": "Maximum power" - } - }, - "number": { - "battery_charge_power_limit": { - "name": "Battery charge power limit" - }, - "battery_charge_soc_limit": { - "name": "Battery charge SOC limit" - }, - "battery_discharge_power_limit": { - "name": "Battery discharge power limit" - }, - "battery_discharge_soc_limit": { - "name": "Battery discharge SOC limit" } }, "switch": { @@ -523,5 +522,6 @@ "name": "Charge from grid" } } - } + }, + "title": "Growatt Server" } diff --git a/homeassistant/components/guardian/icons.json b/homeassistant/components/guardian/icons.json index fe44eb0460b..d5638a31955 100644 --- a/homeassistant/components/guardian/icons.json +++ b/homeassistant/components/guardian/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "uptime": { - "default": "mdi:timer" - }, "travel_count": { "default": "mdi:counter" + }, + "uptime": { + "default": "mdi:timer" } }, "switch": { diff --git a/homeassistant/components/guardian/strings.json b/homeassistant/components/guardian/strings.json index b1b72b71002..cae34ef7f71 100644 --- a/homeassistant/components/guardian/strings.json +++ b/homeassistant/components/guardian/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "description": "Configure a local Elexa Guardian device.", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up this Guardian device?" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "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%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "discovery_confirm": { + "description": "Do you want to set up this Guardian device?" + }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "Configure a local Elexa Guardian device." + } } }, "entity": { @@ -68,54 +68,54 @@ }, "services": { "pair_sensor": { - "name": "Pair sensor", "description": "Adds a new paired sensor to the valve controller.", "fields": { "device_id": { - "name": "[%key:component::guardian::entity::valve::valve_controller::name%]", - "description": "The valve controller to add the sensor to." + "description": "The valve controller to add the sensor to.", + "name": "[%key:component::guardian::entity::valve::valve_controller::name%]" }, "uid": { - "name": "UID", - "description": "The UID of the paired sensor." + "description": "The UID of the paired sensor.", + "name": "UID" } - } + }, + "name": "Pair sensor" }, "unpair_sensor": { - "name": "Unpair sensor", "description": "Removes a paired sensor from the valve controller.", "fields": { "device_id": { - "name": "[%key:component::guardian::entity::valve::valve_controller::name%]", - "description": "The valve controller to remove the sensor from." + "description": "The valve controller to remove the sensor from.", + "name": "[%key:component::guardian::entity::valve::valve_controller::name%]" }, "uid": { - "name": "[%key:component::guardian::services::pair_sensor::fields::uid::name%]", - "description": "[%key:component::guardian::services::pair_sensor::fields::uid::description%]" + "description": "[%key:component::guardian::services::pair_sensor::fields::uid::description%]", + "name": "[%key:component::guardian::services::pair_sensor::fields::uid::name%]" } - } + }, + "name": "Unpair sensor" }, "upgrade_firmware": { - "name": "Upgrade firmware", "description": "Upgrades the device firmware.", "fields": { "device_id": { - "name": "[%key:component::guardian::entity::valve::valve_controller::name%]", - "description": "The valve controller whose firmware should be upgraded." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "The URL of the server hosting the firmware file." - }, - "port": { - "name": "[%key:common::config_flow::data::port%]", - "description": "The port on which the firmware file is served." + "description": "The valve controller whose firmware should be upgraded.", + "name": "[%key:component::guardian::entity::valve::valve_controller::name%]" }, "filename": { - "name": "Filename", - "description": "The firmware filename." + "description": "The firmware filename.", + "name": "Filename" + }, + "port": { + "description": "The port on which the firmware file is served.", + "name": "[%key:common::config_flow::data::port%]" + }, + "url": { + "description": "The URL of the server hosting the firmware file.", + "name": "[%key:common::config_flow::data::url%]" } - } + }, + "name": "Upgrade firmware" } } } diff --git a/homeassistant/components/habitica/icons.json b/homeassistant/components/habitica/icons.json index ee02429d371..d09a9226c82 100644 --- a/homeassistant/components/habitica/icons.json +++ b/homeassistant/components/habitica/icons.json @@ -1,192 +1,5 @@ { "entity": { - "todo": { - "todos": { - "default": "mdi:checkbox-outline" - }, - "dailys": { - "default": "mdi:calendar-month" - } - }, - "button": { - "run_cron": { - "default": "mdi:weather-sunset" - }, - "buy_health_potion": { - "default": "mdi:flask-round-bottom" - }, - "allocate_all_stat_points": { - "default": "mdi:chart-box-outline" - }, - "revive": { - "default": "mdi:grave-stone" - }, - "mpheal": { - "default": "mdi:broadcast" - }, - "earth": { - "default": "mdi:landslide" - }, - "frost": { - "default": "mdi:snowflake" - }, - "defensive_stance": { - "default": "mdi:shield-sword" - }, - "valorous_presence": { - "default": "mdi:shield-sun" - }, - "intimidate": { - "default": "mdi:emoticon-angry" - }, - "tools_of_trade": { - "default": "mdi:domino-mask" - }, - "stealth": { - "default": "mdi:ninja" - }, - "heal": { - "default": "mdi:aurora" - }, - "brightness": { - "default": "mdi:flare" - }, - "protect_aura": { - "default": "mdi:shimmer" - }, - "heal_all": { - "default": "mdi:hand-heart-outline" - } - }, - "calendar": { - "todos": { - "default": "mdi:calendar-check" - }, - "dailys": { - "default": "mdi:calendar-multiple" - }, - "todo_reminders": { - "default": "mdi:reminder" - }, - "daily_reminders": { - "default": "mdi:reminder" - } - }, - "sensor": { - "display_name": { - "default": "mdi:account-circle" - }, - "health": { - "default": "mdi:heart", - "state": { - "0": "mdi:skull-outline" - } - }, - "mana": { - "default": "mdi:flask", - "state": { - "0": "mdi:flask-empty-outline" - } - }, - "mana_max": { - "default": "mdi:flask" - }, - "experience": { - "default": "mdi:star-four-points" - }, - "experience_max": { - "default": "mdi:star-four-points" - }, - "level": { - "default": "mdi:crown-circle" - }, - "gold": { - "default": "mdi:sack" - }, - "gems": { - "default": "mdi:diamond-stone" - }, - "trinkets": { - "default": "mdi:timer-sand" - }, - "class": { - "default": "mdi:sword", - "state": { - "warrior": "mdi:sword", - "healer": "mdi:shield", - "wizard": "mdi:wizard-hat", - "rogue": "mdi:ninja" - } - }, - "strength": { - "default": "mdi:arm-flex-outline" - }, - "intelligence": { - "default": "mdi:head-snowflake-outline" - }, - "perception": { - "default": "mdi:eye-outline" - }, - "constitution": { - "default": "mdi:run-fast" - }, - "food_total": { - "default": "mdi:candy", - "state": { - "0": "mdi:candy-off" - } - }, - "eggs_total": { - "default": "mdi:egg", - "state": { - "0": "mdi:egg-off" - } - }, - "hatching_potions_total": { - "default": "mdi:flask-round-bottom" - }, - "saddle": { - "default": "mdi:horse" - }, - "quest_scrolls": { - "default": "mdi:script-text-outline" - }, - "pending_damage": { - "default": "mdi:sword" - }, - "pending_quest_items": { - "default": "mdi:sack" - }, - "group_leader": { - "default": "mdi:shield-crown" - }, - "quest": { - "default": "mdi:script-text-outline" - }, - "boss": { - "default": "mdi:emoticon-devil" - }, - "boss_hp": { - "default": "mdi:heart" - }, - "boss_hp_remaining": { - "default": "mdi:heart" - }, - "collected_items": { - "default": "mdi:sack" - }, - "last_checkin": { - "default": "mdi:login-variant" - } - }, - "switch": { - "sleep": { - "default": "mdi:sleep-off", - "state": { - "on": "mdi:sleep" - } - } - }, "binary_sensor": { "pending_quest": { "default": "mdi:script-outline", @@ -198,36 +11,252 @@ "default": "mdi:script-text-play" } }, + "button": { + "allocate_all_stat_points": { + "default": "mdi:chart-box-outline" + }, + "brightness": { + "default": "mdi:flare" + }, + "buy_health_potion": { + "default": "mdi:flask-round-bottom" + }, + "defensive_stance": { + "default": "mdi:shield-sword" + }, + "earth": { + "default": "mdi:landslide" + }, + "frost": { + "default": "mdi:snowflake" + }, + "heal": { + "default": "mdi:aurora" + }, + "heal_all": { + "default": "mdi:hand-heart-outline" + }, + "intimidate": { + "default": "mdi:emoticon-angry" + }, + "mpheal": { + "default": "mdi:broadcast" + }, + "protect_aura": { + "default": "mdi:shimmer" + }, + "revive": { + "default": "mdi:grave-stone" + }, + "run_cron": { + "default": "mdi:weather-sunset" + }, + "stealth": { + "default": "mdi:ninja" + }, + "tools_of_trade": { + "default": "mdi:domino-mask" + }, + "valorous_presence": { + "default": "mdi:shield-sun" + } + }, + "calendar": { + "daily_reminders": { + "default": "mdi:reminder" + }, + "dailys": { + "default": "mdi:calendar-multiple" + }, + "todo_reminders": { + "default": "mdi:reminder" + }, + "todos": { + "default": "mdi:calendar-check" + } + }, "notify": { "party_chat": { "default": "mdi:forum" } + }, + "sensor": { + "boss": { + "default": "mdi:emoticon-devil" + }, + "boss_hp": { + "default": "mdi:heart" + }, + "boss_hp_remaining": { + "default": "mdi:heart" + }, + "class": { + "default": "mdi:sword", + "state": { + "healer": "mdi:shield", + "rogue": "mdi:ninja", + "warrior": "mdi:sword", + "wizard": "mdi:wizard-hat" + } + }, + "collected_items": { + "default": "mdi:sack" + }, + "constitution": { + "default": "mdi:run-fast" + }, + "display_name": { + "default": "mdi:account-circle" + }, + "eggs_total": { + "default": "mdi:egg", + "state": { + "0": "mdi:egg-off" + } + }, + "experience": { + "default": "mdi:star-four-points" + }, + "experience_max": { + "default": "mdi:star-four-points" + }, + "food_total": { + "default": "mdi:candy", + "state": { + "0": "mdi:candy-off" + } + }, + "gems": { + "default": "mdi:diamond-stone" + }, + "gold": { + "default": "mdi:sack" + }, + "group_leader": { + "default": "mdi:shield-crown" + }, + "hatching_potions_total": { + "default": "mdi:flask-round-bottom" + }, + "health": { + "default": "mdi:heart", + "state": { + "0": "mdi:skull-outline" + } + }, + "intelligence": { + "default": "mdi:head-snowflake-outline" + }, + "last_checkin": { + "default": "mdi:login-variant" + }, + "level": { + "default": "mdi:crown-circle" + }, + "mana": { + "default": "mdi:flask", + "state": { + "0": "mdi:flask-empty-outline" + } + }, + "mana_max": { + "default": "mdi:flask" + }, + "pending_damage": { + "default": "mdi:sword" + }, + "pending_quest_items": { + "default": "mdi:sack" + }, + "perception": { + "default": "mdi:eye-outline" + }, + "quest": { + "default": "mdi:script-text-outline" + }, + "quest_scrolls": { + "default": "mdi:script-text-outline" + }, + "saddle": { + "default": "mdi:horse" + }, + "strength": { + "default": "mdi:arm-flex-outline" + }, + "trinkets": { + "default": "mdi:timer-sand" + } + }, + "switch": { + "sleep": { + "default": "mdi:sleep-off", + "state": { + "on": "mdi:sleep" + } + } + }, + "todo": { + "dailys": { + "default": "mdi:calendar-month" + }, + "todos": { + "default": "mdi:checkbox-outline" + } } }, "services": { - "api_call": { - "service": "mdi:console" - }, - "cast_skill": { - "service": "mdi:creation-outline" + "abort_quest": { + "service": "mdi:script-text-key" }, "accept_quest": { "service": "mdi:script-text" }, - "reject_quest": { - "service": "mdi:script-text" - }, - "leave_quest": { - "service": "mdi:script-text" - }, - "abort_quest": { - "service": "mdi:script-text-key" + "api_call": { + "service": "mdi:console" }, "cancel_quest": { "service": "mdi:script-text-key" }, - "start_quest": { - "service": "mdi:script-text-key" + "cast_skill": { + "service": "mdi:creation-outline" + }, + "create_daily": { + "sections": { + "developer_options": "mdi:test-tube", + "repeat_monthly_options": "mdi:calendar-refresh", + "repeat_weekly_options": "mdi:calendar-refresh" + }, + "service": "mdi:calendar-month" + }, + "create_habit": { + "sections": { + "developer_options": "mdi:test-tube" + }, + "service": "mdi:contrast-box" + }, + "create_reward": { + "sections": { + "developer_options": "mdi:test-tube" + }, + "service": "mdi:treasure-chest-outline" + }, + "create_todo": { + "sections": { + "developer_options": "mdi:test-tube" + }, + "service": "mdi:pencil-box-outline" + }, + "get_tasks": { + "sections": { + "filter": "mdi:calendar-filter" + }, + "service": "mdi:calendar-export" + }, + "leave_quest": { + "service": "mdi:script-text" + }, + "reject_quest": { + "service": "mdi:script-text" }, "score_habit": { "service": "mdi:counter" @@ -235,75 +264,46 @@ "score_reward": { "service": "mdi:sack" }, + "start_quest": { + "service": "mdi:script-text-key" + }, "transformation": { "service": "mdi:flask-round-bottom" }, - "get_tasks": { - "service": "mdi:calendar-export", - "sections": { - "filter": "mdi:calendar-filter" - } - }, - "update_reward": { - "service": "mdi:treasure-chest", - "sections": { - "tag_options": "mdi:tag", - "developer_options": "mdi:test-tube" - } - }, - "create_reward": { - "service": "mdi:treasure-chest-outline", - "sections": { - "developer_options": "mdi:test-tube" - } - }, - "update_habit": { - "service": "mdi:contrast-box", - "sections": { - "tag_options": "mdi:tag", - "developer_options": "mdi:test-tube" - } - }, - "create_habit": { - "service": "mdi:contrast-box", - "sections": { - "developer_options": "mdi:test-tube" - } - }, - "update_todo": { - "service": "mdi:pencil-box-outline", - "sections": { - "checklist_options": "mdi:format-list-checks", - "tag_options": "mdi:tag", - "developer_options": "mdi:test-tube", - "duedate_options": "mdi:calendar-blank", - "reminder_options": "mdi:reminder" - } - }, - "create_todo": { - "service": "mdi:pencil-box-outline", - "sections": { - "developer_options": "mdi:test-tube" - } - }, "update_daily": { - "service": "mdi:calendar-month", "sections": { "checklist_options": "mdi:format-list-checks", - "tag_options": "mdi:tag", "developer_options": "mdi:test-tube", "reminder_options": "mdi:reminder", + "repeat_monthly_options": "mdi:calendar-refresh", "repeat_weekly_options": "mdi:calendar-refresh", - "repeat_monthly_options": "mdi:calendar-refresh" - } + "tag_options": "mdi:tag" + }, + "service": "mdi:calendar-month" }, - "create_daily": { - "service": "mdi:calendar-month", + "update_habit": { "sections": { "developer_options": "mdi:test-tube", - "repeat_weekly_options": "mdi:calendar-refresh", - "repeat_monthly_options": "mdi:calendar-refresh" - } + "tag_options": "mdi:tag" + }, + "service": "mdi:contrast-box" + }, + "update_reward": { + "sections": { + "developer_options": "mdi:test-tube", + "tag_options": "mdi:tag" + }, + "service": "mdi:treasure-chest" + }, + "update_todo": { + "sections": { + "checklist_options": "mdi:format-list-checks", + "developer_options": "mdi:test-tube", + "duedate_options": "mdi:calendar-blank", + "reminder_options": "mdi:reminder", + "tag_options": "mdi:tag" + }, + "service": "mdi:pencil-box-outline" } } } diff --git a/homeassistant/components/habitica/strings.json b/homeassistant/components/habitica/strings.json index cd4b359c299..3896dcb8ff0 100644 --- a/homeassistant/components/habitica/strings.json +++ b/homeassistant/components/habitica/strings.json @@ -1,166 +1,155 @@ { "common": { - "todos": "To-Do's", - "dailies": "Dailies", - "config_entry_name": "Select character", - "task_name": "Task name", - "unit_health_points": "HP", - "unit_mana_points": "MP", - "unit_experience_points": "XP", - "unit_items": "items", - "unit_rage": "rage", - "config_entry_description": "Select the Habitica account to update a task.", - "task_description": "The name (or task ID) of the task you want to update.", - "rename_name": "Rename", - "rename_description": "The title for the Habitica task.", - "notes_name": "Notes", - "notes_description": "The notes for the Habitica task.", - "tag_name": "Add tags", - "tag_description": "Add tags to the Habitica task. If a tag does not already exist, a new one will be created.", - "remove_tag_name": "Remove tags", - "remove_tag_description": "Remove tags from the Habitica task.", - "alias_name": "Task alias", - "alias_description": "A task alias can be used instead of the name or task ID. Only dashes, underscores, and alphanumeric characters are supported. The task alias must be unique among all your tasks.", - "developer_options_name": "Advanced settings", - "developer_options_description": "Additional features available in developer mode.", - "tag_options_name": "Tags", - "tag_options_description": "Add or remove tags from a task.", - "name_description": "The title for the Habitica task.", - "cost_name": "Cost", - "priority_name": "Difficulty", - "priority_description": "The difficulty of the task.", - "frequency_name": "Counter reset", - "frequency_description": "The frequency at which the habit's counter resets: daily at the start of a new day, weekly after Sunday night, or monthly at the beginning of a new month.", - "up_down_name": "Rewards or losses", - "up_down_description": "Whether the habit is good and rewarding (positive), bad and penalizing (negative), or both.", - "add_checklist_item_name": "Add checklist items", "add_checklist_item_description": "The items to add to a task's checklist.", - "remove_checklist_item_name": "Delete items", - "remove_checklist_item_description": "Remove items from a task's checklist.", - "score_checklist_item_name": "Complete items", - "score_checklist_item_description": "Mark items from a task's checklist as completed.", - "unscore_checklist_item_name": "Uncomplete items", - "unscore_checklist_item_description": "Undo completion of items of a task's checklist.", - "checklist_options_name": "Checklist", + "add_checklist_item_name": "Add checklist items", + "alias_description": "A task alias can be used instead of the name or task ID. Only dashes, underscores, and alphanumeric characters are supported. The task alias must be unique among all your tasks.", + "alias_name": "Task alias", "checklist_options_description": "Add, remove, or update status of an item on a task's checklist.", - "reminder_name": "Add reminders", - "reminder_description": "Add reminders to a Habitica task.", - "remove_reminder_name": "Remove reminders", - "remove_reminder_description": "Remove specific reminders from a Habitica task.", - "clear_reminder_name": "Clear all reminders", + "checklist_options_name": "Checklist", "clear_reminder_description": "Remove all reminders from a Habitica task.", - "reminder_options_name": "Reminders", - "reminder_options_description": "Add, remove or clear reminders of a Habitica task.", - "date_name": "Due date", - "date_description": "The to-do's due date.", - "repeat_name": "Repeat on", - "start_date_name": "Start date", - "start_date_description": "Defines when the daily task becomes active and specifies the exact weekday or day of the month it repeats on.", - "frequency_daily_name": "Repeat interval", - "frequency_daily_description": "The repetition interval of a daily.", - "every_x_name": "Repeat every X", - "every_x_description": "The number of intervals (days, weeks, months, or years) after which the daily repeats, based on the chosen repetition interval. A value of 0 makes the daily inactive ('Grey Daily').", - "repeat_weekly_description": "The days of the week the daily repeats.", - "repeat_monthly_description": "Whether a monthly recurring task repeats on the same calendar day each month or on the same weekday and week of the month, based on the start date.", - "repeat_weekly_options_name": "Weekly repeat days", - "repeat_weekly_options_description": "Options related to weekly repetition, applicable when the repetition interval is set to weekly.", - "repeat_monthly_options_name": "Monthly repeat day", - "repeat_monthly_options_description": "Options related to monthly repetition, applicable when the repetition interval is set to monthly.", - "quest_name": "Quest", + "clear_reminder_name": "Clear all reminders", + "collapse_checklist_description": "Whether the checklist of a task is displayed as collapsed or expanded in Habitica.", "collapse_checklist_name": "Collapse/expand checklist", - "collapse_checklist_description": "Whether the checklist of a task is displayed as collapsed or expanded in Habitica." + "config_entry_description": "Select the Habitica account to update a task.", + "config_entry_name": "Select character", + "cost_name": "Cost", + "dailies": "Dailies", + "date_description": "The to-do's due date.", + "date_name": "Due date", + "developer_options_description": "Additional features available in developer mode.", + "developer_options_name": "Advanced settings", + "every_x_description": "The number of intervals (days, weeks, months, or years) after which the daily repeats, based on the chosen repetition interval. A value of 0 makes the daily inactive ('Grey Daily').", + "every_x_name": "Repeat every X", + "frequency_daily_description": "The repetition interval of a daily.", + "frequency_daily_name": "Repeat interval", + "frequency_description": "The frequency at which the habit's counter resets: daily at the start of a new day, weekly after Sunday night, or monthly at the beginning of a new month.", + "frequency_name": "Counter reset", + "name_description": "The title for the Habitica task.", + "notes_description": "The notes for the Habitica task.", + "notes_name": "Notes", + "priority_description": "The difficulty of the task.", + "priority_name": "Difficulty", + "quest_name": "Quest", + "reminder_description": "Add reminders to a Habitica task.", + "reminder_name": "Add reminders", + "reminder_options_description": "Add, remove or clear reminders of a Habitica task.", + "reminder_options_name": "Reminders", + "remove_checklist_item_description": "Remove items from a task's checklist.", + "remove_checklist_item_name": "Delete items", + "remove_reminder_description": "Remove specific reminders from a Habitica task.", + "remove_reminder_name": "Remove reminders", + "remove_tag_description": "Remove tags from the Habitica task.", + "remove_tag_name": "Remove tags", + "rename_description": "The title for the Habitica task.", + "rename_name": "Rename", + "repeat_monthly_description": "Whether a monthly recurring task repeats on the same calendar day each month or on the same weekday and week of the month, based on the start date.", + "repeat_monthly_options_description": "Options related to monthly repetition, applicable when the repetition interval is set to monthly.", + "repeat_monthly_options_name": "Monthly repeat day", + "repeat_name": "Repeat on", + "repeat_weekly_description": "The days of the week the daily repeats.", + "repeat_weekly_options_description": "Options related to weekly repetition, applicable when the repetition interval is set to weekly.", + "repeat_weekly_options_name": "Weekly repeat days", + "score_checklist_item_description": "Mark items from a task's checklist as completed.", + "score_checklist_item_name": "Complete items", + "start_date_description": "Defines when the daily task becomes active and specifies the exact weekday or day of the month it repeats on.", + "start_date_name": "Start date", + "tag_description": "Add tags to the Habitica task. If a tag does not already exist, a new one will be created.", + "tag_name": "Add tags", + "tag_options_description": "Add or remove tags from a task.", + "tag_options_name": "Tags", + "task_description": "The name (or task ID) of the task you want to update.", + "task_name": "Task name", + "todos": "To-Do's", + "unit_experience_points": "XP", + "unit_health_points": "HP", + "unit_items": "items", + "unit_mana_points": "MP", + "unit_rage": "rage", + "unscore_checklist_item_description": "Undo completion of items of a task's checklist.", + "unscore_checklist_item_name": "Uncomplete items", + "up_down_description": "Whether the habit is good and rewarding (positive), bad and penalizing (negative), or both.", + "up_down_name": "Rewards or losses" }, "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "unique_id_mismatch": "Hmm, those login details are correct, but they're not for this adventurer. Got another account to try?", "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": "Hmm, those login details are correct, but they're not for this adventurer. Got another account to try?" }, "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%]", - "invalid_credentials": "Input is incomplete. You must provide either your login details or an API token" + "invalid_credentials": "Input is incomplete. You must provide either your login details or an API token", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { - "user": { - "title": "Habitica - Gamify your life", - "menu_options": { - "login": "Log in to Habitica", - "advanced": "Log in to other instances" - }, - "description": "![Habiticans]({habiticans}) Connect your Habitica account to keep track of your adventurer's stats, progress, and manage your to-dos and daily tasks.\n\n[Don't have a Habitica account? Sign up here.]({signup})" - }, - "login": { - "title": "[%key:component::habitica::config::step::user::menu_options::login%]", - "data": { - "username": "Email or username (case-sensitive)", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Email or username (case-sensitive) to connect Home Assistant to your Habitica account", - "password": "Password for the account to connect Home Assistant to Habitica" - }, - "description": "Enter your login details to start using Habitica with Home Assistant\n\n[Forgot your password?]({forgot_password})" - }, "advanced": { - "title": "[%key:component::habitica::config::step::user::menu_options::advanced%]", "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_user": "User ID", "api_key": "API Token", + "api_user": "User ID", + "url": "[%key:common::config_flow::data::url%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, "data_description": { - "url": "URL of the Habitica installation to connect to. Defaults to `{default_url}`", - "api_user": "User ID of your Habitica account", "api_key": "API Token of the Habitica account", + "api_user": "User ID of your Habitica account", + "url": "URL of the Habitica installation to connect to. Defaults to `{default_url}`", "verify_ssl": "Enable SSL certificate verification for secure connections. Disable only if connecting to a Habitica instance using a self-signed certificate" }, - "description": "You can retrieve your `User ID` and `API Token` from [**Settings -> Site Data**]({site_data}) on Habitica or the instance you want to connect to" + "description": "You can retrieve your `User ID` and `API Token` from [**Settings -> Site Data**]({site_data}) on Habitica or the instance you want to connect to", + "title": "[%key:component::habitica::config::step::user::menu_options::advanced%]" + }, + "login": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "Email or username (case-sensitive)" + }, + "data_description": { + "password": "Password for the account to connect Home Assistant to Habitica", + "username": "Email or username (case-sensitive) to connect Home Assistant to your Habitica account" + }, + "description": "Enter your login details to start using Habitica with Home Assistant\n\n[Forgot your password?]({forgot_password})", + "title": "[%key:component::habitica::config::step::user::menu_options::login%]" }, "reauth_confirm": { - "title": "Re-authorize {name} with Habitica", "description": "![Habiticans]({habiticans}) It seems your API token for **{name}** has been reset. To re-authorize the integration, you can either log in with your username or email, and password, or directly provide your new API token.", "sections": { - "reauth_login": { - "name": "Re-authorize via login", - "description": "Enter your login details below to re-authorize the Home Assistant integration with Habitica", - "data": { - "username": "[%key:component::habitica::config::step::login::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::habitica::config::step::login::data_description::username%]", - "password": "[%key:component::habitica::config::step::login::data_description::password%]" - } - }, "reauth_api_key": { - "description": "Enter your new API token below. You can find it in Habitica under 'Settings -> Site Data'", - "name": "Re-authorize via API Token", "data": { "api_key": "[%key:component::habitica::config::step::advanced::data::api_key%]" }, "data_description": { "api_key": "[%key:component::habitica::config::step::advanced::data_description::api_key%]" - } + }, + "description": "Enter your new API token below. You can find it in Habitica under 'Settings -> Site Data'", + "name": "Re-authorize via API Token" + }, + "reauth_login": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:component::habitica::config::step::login::data::username%]" + }, + "data_description": { + "password": "[%key:component::habitica::config::step::login::data_description::password%]", + "username": "[%key:component::habitica::config::step::login::data_description::username%]" + }, + "description": "Enter your login details below to re-authorize the Home Assistant integration with Habitica", + "name": "Re-authorize via login" } - } + }, + "title": "Re-authorize {name} with Habitica" }, "reconfigure": { - "title": "Update Habitica configuration", - "description": "![Habiticans]({habiticans})\n\nEnter your new API token below. You can find it in Habitica under [**Settings -> Site Data**]({site_data})", "data": { "api_key": "[%key:component::habitica::config::step::advanced::data::api_key%]" }, "data_description": { "api_key": "[%key:component::habitica::config::step::advanced::data_description::api_key%]" }, + "description": "![Habiticans]({habiticans})\n\nEnter your new API token below. You can find it in Habitica under [**Settings -> Site Data**]({site_data})", "sections": { "danger_zone": { - "name": "Critical configuration options", - "description": "These settings impact core functionality. Modifications are unnecessary if connected to the official Habitica instance and may disrupt the integration. Proceed with caution.", "data": { "url": "[%key:common::config_flow::data::url%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" @@ -168,35 +157,46 @@ "data_description": { "url": "URL of the Habitica instance", "verify_ssl": "[%key:component::habitica::config::step::advanced::data_description::verify_ssl%]" - } + }, + "description": "These settings impact core functionality. Modifications are unnecessary if connected to the official Habitica instance and may disrupt the integration. Proceed with caution.", + "name": "Critical configuration options" } - } + }, + "title": "Update Habitica configuration" + }, + "user": { + "description": "![Habiticans]({habiticans}) Connect your Habitica account to keep track of your adventurer's stats, progress, and manage your to-dos and daily tasks.\n\n[Don't have a Habitica account? Sign up here.]({signup})", + "menu_options": { + "advanced": "Log in to other instances", + "login": "Log in to Habitica" + }, + "title": "Habitica - Gamify your life" } } }, "config_subentries": { "party_member": { + "abort": { + "already_configured": "This adventurer is already configured as a party member in this or another account.", + "already_configured_as_entry": "Already configured as a user. This adventurer cannot be added as a party member.", + "config_entry_disabled": "Cannot add party members when the main account is disabled or not loaded.", + "not_in_a_party": "You are currently not in a party. You can only add party members when your character is in a party." + }, + "entry_type": "Party member", + "initiate_flow": { + "user": "Add party member" + }, "step": { "user": { - "title": "Party members", - "description": "Track the stats of the adventurers in your party.", "data": { "party_member": "Party member" }, "data_description": { "party_member": "Select an adventurer from your party to track health and other stats." - } + }, + "description": "Track the stats of the adventurers in your party.", + "title": "Party members" } - }, - "initiate_flow": { - "user": "Add party member" - }, - "entry_type": "Party member", - "abort": { - "already_configured_as_entry": "Already configured as a user. This adventurer cannot be added as a party member.", - "already_configured": "This adventurer is already configured as a party member in this or another account.", - "config_entry_disabled": "Cannot add party members when the main account is disabled or not loaded.", - "not_in_a_party": "You are currently not in a party. You can only add party members when your character is in a party." } } }, @@ -210,20 +210,17 @@ } }, "button": { - "run_cron": { - "name": "Start my day" + "allocate_all_stat_points": { + "name": "Allocate all stat points" + }, + "brightness": { + "name": "Searing brightness" }, "buy_health_potion": { "name": "Buy a health potion" }, - "allocate_all_stat_points": { - "name": "Allocate all stat points" - }, - "revive": { - "name": "Revive from death" - }, - "mpheal": { - "name": "Ethereal surge" + "defensive_stance": { + "name": "Defensive stance" }, "earth": { "name": "Earthquake" @@ -231,37 +228,40 @@ "frost": { "name": "Chilling frost" }, - "defensive_stance": { - "name": "Defensive stance" + "heal": { + "name": "Healing light" }, - "valorous_presence": { - "name": "Valorous presence" + "heal_all": { + "name": "Blessing" }, "intimidate": { "name": "Intimidating gaze" }, - "tools_of_trade": { - "name": "Tools of the trade" - }, - "stealth": { - "name": "Stealth" - }, - "heal": { - "name": "Healing light" - }, - "brightness": { - "name": "Searing brightness" + "mpheal": { + "name": "Ethereal surge" }, "protect_aura": { "name": "Protective aura" }, - "heal_all": { - "name": "Blessing" + "revive": { + "name": "Revive from death" + }, + "run_cron": { + "name": "Start my day" + }, + "stealth": { + "name": "Stealth" + }, + "tools_of_trade": { + "name": "Tools of the trade" + }, + "valorous_presence": { + "name": "Valorous presence" } }, "calendar": { - "todos": { - "name": "[%key:component::habitica::common::todos%]" + "daily_reminders": { + "name": "Daily reminders" }, "dailys": { "name": "[%key:component::habitica::common::dailies%]", @@ -269,8 +269,8 @@ "yesterdaily": { "name": "Yester-Daily", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } } } @@ -278,8 +278,8 @@ "todo_reminders": { "name": "To-do reminders" }, - "daily_reminders": { - "name": "Daily reminders" + "todos": { + "name": "[%key:component::habitica::common::todos%]" } }, "image": { @@ -299,6 +299,66 @@ } }, "sensor": { + "boss": { + "name": "Quest boss" + }, + "boss_hp": { + "name": "Boss health", + "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" + }, + "boss_hp_remaining": { + "name": "Boss health remaining", + "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" + }, + "boss_rage": { + "name": "Boss rage", + "unit_of_measurement": "[%key:component::habitica::common::unit_rage%]" + }, + "boss_rage_limit": { + "name": "Boss rage limit break", + "state_attributes": { + "effect": { + "name": "Effect" + }, + "rage_skill": { + "name": "Rage skill" + } + }, + "unit_of_measurement": "[%key:component::habitica::common::unit_rage%]" + }, + "class": { + "name": "Class", + "state": { + "healer": "Healer", + "rogue": "Rogue", + "warrior": "Warrior", + "wizard": "Mage" + } + }, + "collected_items": { + "name": "Collected quest items", + "unit_of_measurement": "[%key:component::habitica::common::unit_items%]" + }, + "constitution": { + "name": "Constitution", + "state_attributes": { + "allocated": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" + }, + "buffs": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" + }, + "class": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" + }, + "equipment": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" + }, + "level": { + "name": "[%key:component::habitica::entity::sensor::level::name%]" + } + } + }, "display_name": { "name": "Display name", "state_attributes": { @@ -319,20 +379,9 @@ } } }, - "last_checkin": { - "name": "Last check-in" - }, - "health": { - "name": "Health", - "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" - }, - "mana": { - "name": "Mana", - "unit_of_measurement": "[%key:component::habitica::common::unit_mana_points%]" - }, - "mana_max": { - "name": "Max. mana", - "unit_of_measurement": "[%key:component::habitica::common::unit_mana_points%]" + "eggs_total": { + "name": "Eggs", + "unit_of_measurement": "eggs" }, "experience": { "name": "Experience", @@ -342,128 +391,66 @@ "name": "Next level", "unit_of_measurement": "[%key:component::habitica::common::unit_experience_points%]" }, - "level": { - "name": "Level" - }, - "gold": { - "name": "Gold", - "unit_of_measurement": "GP" + "food_total": { + "name": "Pet food", + "unit_of_measurement": "foods" }, "gems": { "name": "Gems", "unit_of_measurement": "gems" }, - "trinkets": { - "name": "Mystic hourglasses" + "gold": { + "name": "Gold", + "unit_of_measurement": "GP" }, - "class": { - "name": "Class", - "state": { - "warrior": "Warrior", - "healer": "Healer", - "wizard": "Mage", - "rogue": "Rogue" - } - }, - "strength": { - "name": "Strength", - "state_attributes": { - "level": { - "name": "[%key:component::habitica::entity::sensor::level::name%]" - }, - "equipment": { - "name": "Battle gear" - }, - "class": { - "name": "Class equip bonus" - }, - "allocated": { - "name": "Allocated attribute points" - }, - "buffs": { - "name": "Buffs" - } - } - }, - "intelligence": { - "name": "Intelligence", - "state_attributes": { - "level": { - "name": "[%key:component::habitica::entity::sensor::level::name%]" - }, - "equipment": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" - }, - "class": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" - }, - "allocated": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" - }, - "buffs": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" - } - } - }, - "perception": { - "name": "Perception", - "state_attributes": { - "level": { - "name": "[%key:component::habitica::entity::sensor::level::name%]" - }, - "equipment": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" - }, - "class": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" - }, - "allocated": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" - }, - "buffs": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" - } - } - }, - "constitution": { - "name": "Constitution", - "state_attributes": { - "level": { - "name": "[%key:component::habitica::entity::sensor::level::name%]" - }, - "equipment": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" - }, - "class": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" - }, - "allocated": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" - }, - "buffs": { - "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" - } - } - }, - "eggs_total": { - "name": "Eggs", - "unit_of_measurement": "eggs" + "group_leader": { + "name": "Group leader" }, "hatching_potions_total": { "name": "Hatching potions", "unit_of_measurement": "potions" }, - "food_total": { - "name": "Pet food", - "unit_of_measurement": "foods" + "health": { + "name": "Health", + "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" }, - "saddle": { - "name": "Saddles", - "unit_of_measurement": "saddles" + "intelligence": { + "name": "Intelligence", + "state_attributes": { + "allocated": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" + }, + "buffs": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" + }, + "class": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" + }, + "equipment": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" + }, + "level": { + "name": "[%key:component::habitica::entity::sensor::level::name%]" + } + } }, - "quest_scrolls": { - "name": "Quest scrolls", - "unit_of_measurement": "scrolls" + "last_checkin": { + "name": "Last check-in" + }, + "level": { + "name": "Level" + }, + "mana": { + "name": "Mana", + "unit_of_measurement": "[%key:component::habitica::common::unit_mana_points%]" + }, + "mana_max": { + "name": "Max. mana", + "unit_of_measurement": "[%key:component::habitica::common::unit_mana_points%]" + }, + "member_count": { + "name": "Member count", + "unit_of_measurement": "members" }, "pending_damage": { "name": "Pending damage", @@ -473,12 +460,25 @@ "name": "Pending quest items", "unit_of_measurement": "[%key:component::habitica::common::unit_items%]" }, - "member_count": { - "name": "Member count", - "unit_of_measurement": "members" - }, - "group_leader": { - "name": "Group leader" + "perception": { + "name": "Perception", + "state_attributes": { + "allocated": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::allocated::name%]" + }, + "buffs": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::buffs::name%]" + }, + "class": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::class::name%]" + }, + "equipment": { + "name": "[%key:component::habitica::entity::sensor::strength::state_attributes::equipment::name%]" + }, + "level": { + "name": "[%key:component::habitica::entity::sensor::level::name%]" + } + } }, "quest": { "name": "[%key:component::habitica::common::quest_name%]", @@ -488,36 +488,36 @@ } } }, - "boss": { - "name": "Quest boss" + "quest_scrolls": { + "name": "Quest scrolls", + "unit_of_measurement": "scrolls" }, - "boss_hp": { - "name": "Boss health", - "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" + "saddle": { + "name": "Saddles", + "unit_of_measurement": "saddles" }, - "boss_hp_remaining": { - "name": "Boss health remaining", - "unit_of_measurement": "[%key:component::habitica::common::unit_health_points%]" - }, - "collected_items": { - "name": "Collected quest items", - "unit_of_measurement": "[%key:component::habitica::common::unit_items%]" - }, - "boss_rage_limit": { - "name": "Boss rage limit break", - "unit_of_measurement": "[%key:component::habitica::common::unit_rage%]", + "strength": { + "name": "Strength", "state_attributes": { - "rage_skill": { - "name": "Rage skill" + "allocated": { + "name": "Allocated attribute points" }, - "effect": { - "name": "Effect" + "buffs": { + "name": "Buffs" + }, + "class": { + "name": "Class equip bonus" + }, + "equipment": { + "name": "Battle gear" + }, + "level": { + "name": "[%key:component::habitica::entity::sensor::level::name%]" } } }, - "boss_rage": { - "name": "Boss rage", - "unit_of_measurement": "[%key:component::habitica::common::unit_rage%]" + "trinkets": { + "name": "Mystic hourglasses" } }, "switch": { @@ -526,59 +526,26 @@ } }, "todo": { - "todos": { - "name": "[%key:component::habitica::common::todos%]" - }, "dailys": { "name": "[%key:component::habitica::common::dailies%]" + }, + "todos": { + "name": "[%key:component::habitica::common::todos%]" } } }, "exceptions": { - "delete_todos_failed": { - "message": "Unable to delete item from Habitica to-do list, please try again" - }, - "delete_completed_todos_failed": { - "message": "Unable to delete completed to-do items from Habitica to-do list, please try again" - }, - "move_todos_item_failed": { - "message": "Unable to move the Habitica to-do to position {pos}, please try again" - }, - "move_dailys_item_failed": { - "message": "Unable to move the Habitica daily to position {pos}, please try again" - }, - "update_todos_item_failed": { - "message": "Unable to update the Habitica to-do `{name}`, please try again" - }, - "update_dailys_item_failed": { - "message": "Unable to update the Habitica daily `{name}`, please try again" - }, - "score_todos_item_failed": { - "message": "Unable to update the score for your Habitica to-do `{name}`, please try again" - }, - "score_dailys_item_failed": { - "message": "Unable to update the score for your Habitica daily `{name}`, please try again" + "authentication_failed": { + "message": "Authentication failed. It looks like your API token has been reset. Please re-authenticate using your new token" }, "create_todos_item_failed": { "message": "Unable to create new to-do `{name}` for Habitica, please try again" }, - "setup_rate_limit_exception": { - "message": "Rate limit exceeded, try again in {retry_after} seconds" + "delete_completed_todos_failed": { + "message": "Unable to delete completed to-do items from Habitica to-do list, please try again" }, - "service_call_unallowed": { - "message": "Unable to complete action, the required conditions are not met" - }, - "service_call_exception": { - "message": "Unable to connect to Habitica: {reason}" - }, - "not_enough_mana": { - "message": "Unable to cast skill, not enough mana. Your character has {mana}, but the skill costs {cost}." - }, - "not_enough_gold": { - "message": "Unable to buy reward, not enough gold. Your character has {gold}, but the reward costs {cost}." - }, - "skill_not_found": { - "message": "Unable to cast skill, your character does not have the skill or spell {skill}." + "delete_todos_failed": { + "message": "Unable to delete item from Habitica to-do list, please try again" }, "entry_not_found": { "message": "The selected character is not configured in Home Assistant." @@ -586,8 +553,29 @@ "entry_not_loaded": { "message": "The selected character is currently not loaded or disabled in Home Assistant." }, - "task_not_found": { - "message": "Unable to complete action, could not find the task {task}" + "frequency_not_monthly": { + "message": "Unable to update task, monthly repeat settings apply only to monthly recurring dailies." + }, + "frequency_not_weekly": { + "message": "Unable to update task, weekly repeat settings apply only to weekly recurring dailies." + }, + "item_not_found": { + "message": "Unable to use {item}, you don't own this item." + }, + "move_dailys_item_failed": { + "message": "Unable to move the Habitica daily to position {pos}, please try again" + }, + "move_todos_item_failed": { + "message": "Unable to move the Habitica to-do to position {pos}, please try again" + }, + "not_enough_gold": { + "message": "Unable to buy reward, not enough gold. Your character has {gold}, but the reward costs {cost}." + }, + "not_enough_mana": { + "message": "Unable to cast skill, not enough mana. Your character has {mana}, but the skill costs {cost}." + }, + "party_not_found": { + "message": "Unable to find target, you are currently not in a party. You can only target yourself" }, "quest_action_unallowed": { "message": "Action not allowed, only quest leader or group leader can perform this action" @@ -595,787 +583,75 @@ "quest_not_found": { "message": "Unable to complete action, quest or group not found" }, - "target_not_found": { - "message": "Unable to find target {target} in your party" + "score_dailys_item_failed": { + "message": "Unable to update the score for your Habitica daily `{name}`, please try again" }, - "party_not_found": { - "message": "Unable to find target, you are currently not in a party. You can only target yourself" - }, - "item_not_found": { - "message": "Unable to use {item}, you don't own this item." - }, - "authentication_failed": { - "message": "Authentication failed. It looks like your API token has been reset. Please re-authenticate using your new token" - }, - "frequency_not_weekly": { - "message": "Unable to update task, weekly repeat settings apply only to weekly recurring dailies." - }, - "frequency_not_monthly": { - "message": "Unable to update task, monthly repeat settings apply only to monthly recurring dailies." + "score_todos_item_failed": { + "message": "Unable to update the score for your Habitica to-do `{name}`, please try again" }, "send_message_forbidden": { "message": "You are not allowed to send messages to {name}. ({reason})" }, "send_message_not_found": { "message": "Unable to send message, {name} not found. ({reason})" - } - }, - "services": { - "cast_skill": { - "name": "Cast a skill", - "description": "Uses a skill or spell from your Habitica character on a specific task to affect its progress or status.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Choose the Habitica character to cast the skill." - }, - "skill": { - "name": "Skill", - "description": "Select the skill or spell you want to cast on the task. Only skills corresponding to your character's class can be used." - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "The name (or task ID) of the task you want to target with the skill or spell." - } - } }, - "accept_quest": { - "name": "Accept a quest invitation", - "description": "Accepts a pending invitation to a quest.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Choose the Habitica character for which to perform the action." - } - } + "service_call_exception": { + "message": "Unable to connect to Habitica: {reason}" }, - "reject_quest": { - "name": "Reject a quest invitation", - "description": "Rejects a pending invitation to a quest.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]" - } - } + "service_call_unallowed": { + "message": "Unable to complete action, the required conditions are not met" }, - "leave_quest": { - "name": "Leave a quest", - "description": "Leaves the current quest you are participating in.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]" - } - } + "setup_rate_limit_exception": { + "message": "Rate limit exceeded, try again in {retry_after} seconds" }, - "abort_quest": { - "name": "Abort an active quest", - "description": "Terminates your party's ongoing quest. All progress will be lost and the quest roll returned to the owner's inventory. Only quest leader or group leader can perform this action.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]" - } - } + "skill_not_found": { + "message": "Unable to cast skill, your character does not have the skill or spell {skill}." }, - "cancel_quest": { - "name": "Cancel a pending quest", - "description": "Cancels a quest that has not yet started. All accepted and pending invitations will be canceled and the quest roll returned to the owner's inventory. Only quest leader or group leader can perform this action.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]" - } - } + "target_not_found": { + "message": "Unable to find target {target} in your party" }, - "start_quest": { - "name": "Force-start a pending quest", - "description": "Begins the quest immediately, bypassing any pending invitations that haven't been accepted or rejected. Only quest leader or group leader can perform this action.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]" - } - } + "task_not_found": { + "message": "Unable to complete action, could not find the task {task}" }, - "score_habit": { - "name": "Track a habit", - "description": "Increases the positive or negative streak of a habit to track its progress.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica character tracking your habit." - }, - "task": { - "name": "Habit name", - "description": "The name (or task ID) of the Habitica habit." - }, - "direction": { - "name": "Reward or loss", - "description": "Is it positive or negative progress you want to track for your habit." - } - } + "update_dailys_item_failed": { + "message": "Unable to update the Habitica daily `{name}`, please try again" }, - "score_reward": { - "name": "Buy a reward", - "description": "Buys one of your custom rewards with gold earned by fulfilling tasks.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica character buying the reward." - }, - "task": { - "name": "Reward name", - "description": "The name (or task ID) of the custom reward." - } - } - }, - "transformation": { - "name": "Use a transformation item", - "description": "Uses a transformation item from your Habitica character's inventory on a member of your party or yourself.", - "fields": { - "config_entry": { - "name": "Select character", - "description": "Choose the Habitica character to use the transformation item." - }, - "item": { - "name": "Transformation item", - "description": "Select the transformation item you want to use. Item must be in the characters inventory." - }, - "target": { - "name": "Target character", - "description": "The name of the character you want to use the transformation item on. You can also specify the players username or user ID." - } - } - }, - "get_tasks": { - "name": "Get tasks", - "description": "Retrieves tasks from your Habitica character.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Choose the Habitica character to retrieve tasks from." - }, - "type": { - "name": "Task type", - "description": "Filter tasks by type." - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "Filter tasks by difficulty." - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "Select tasks by matching their name (or task ID)." - }, - "tag": { - "name": "Tag", - "description": "Filter tasks that have one or more of the selected tags." - }, - "keyword": { - "name": "Keyword", - "description": "Filter tasks by keyword, searching across titles, notes, and checklists." - } - }, - "sections": { - "filter": { - "name": "Filter options", - "description": "Use the optional filters to narrow the returned tasks." - } - } - }, - "update_reward": { - "name": "Update a reward", - "description": "Updates a specific reward for the selected Habitica character", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica account to update a reward." - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::task_description%]" - }, - "rename": { - "name": "[%key:component::habitica::common::rename_name%]", - "description": "[%key:component::habitica::common::rename_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "remove_tag": { - "name": "[%key:component::habitica::common::remove_tag_name%]", - "description": "[%key:component::habitica::common::remove_tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "cost": { - "name": "[%key:component::habitica::common::cost_name%]", - "description": "Update the cost of a reward." - } - }, - "sections": { - "tag_options": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_options_description%]" - }, - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "create_reward": { - "name": "Create reward", - "description": "Adds a new custom reward.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica account to create a reward." - }, - "name": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::name_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "cost": { - "name": "[%key:component::habitica::common::cost_name%]", - "description": "The cost of the reward." - } - }, - "sections": { - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "update_habit": { - "name": "Update a habit", - "description": "Updates a specific habit for the selected Habitica character", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica account to update a habit." - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::task_description%]" - }, - "rename": { - "name": "[%key:component::habitica::common::rename_name%]", - "description": "[%key:component::habitica::common::rename_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "remove_tag": { - "name": "[%key:component::habitica::common::remove_tag_name%]", - "description": "[%key:component::habitica::common::remove_tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "frequency": { - "name": "[%key:component::habitica::common::frequency_name%]", - "description": "[%key:component::habitica::common::frequency_description%]" - }, - "up_down": { - "name": "[%key:component::habitica::common::up_down_name%]", - "description": "[%key:component::habitica::common::up_down_description%]" - }, - "counter_up": { - "name": "Adjust positive counter", - "description": "Update the up counter of a positive habit." - }, - "counter_down": { - "name": "Adjust negative counter", - "description": "Update the down counter of a negative habit." - } - }, - "sections": { - "tag_options": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_options_description%]" - }, - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "create_habit": { - "name": "Create habit", - "description": "Adds a new habit.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica account to create a habit." - }, - "name": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::name_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "frequency": { - "name": "[%key:component::habitica::common::frequency_name%]", - "description": "[%key:component::habitica::common::frequency_description%]" - }, - "up_down": { - "name": "[%key:component::habitica::common::up_down_name%]", - "description": "[%key:component::habitica::common::up_down_description%]" - } - }, - "sections": { - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "update_todo": { - "name": "Update a to-do", - "description": "Updates a specific to-do for a selected Habitica character", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::common::config_entry_description%]" - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "The name (or task ID) of the to-do you want to update." - }, - "rename": { - "name": "[%key:component::habitica::common::rename_name%]", - "description": "[%key:component::habitica::common::rename_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "remove_tag": { - "name": "[%key:component::habitica::common::remove_tag_name%]", - "description": "[%key:component::habitica::common::remove_tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "date": { - "name": "[%key:component::habitica::common::date_name%]", - "description": "[%key:component::habitica::common::date_description%]" - }, - "clear_date": { - "name": "Clear due date", - "description": "Remove the due date from the to-do." - }, - "reminder": { - "name": "[%key:component::habitica::common::reminder_name%]", - "description": "[%key:component::habitica::common::reminder_description%]" - }, - "remove_reminder": { - "name": "[%key:component::habitica::common::remove_reminder_name%]", - "description": "[%key:component::habitica::common::remove_reminder_description%]" - }, - "clear_reminder": { - "name": "[%key:component::habitica::common::clear_reminder_name%]", - "description": "[%key:component::habitica::common::clear_reminder_description%]" - }, - "add_checklist_item": { - "name": "[%key:component::habitica::common::add_checklist_item_name%]", - "description": "[%key:component::habitica::common::add_checklist_item_description%]" - }, - "remove_checklist_item": { - "name": "[%key:component::habitica::common::remove_checklist_item_name%]", - "description": "[%key:component::habitica::common::remove_checklist_item_description%]" - }, - "score_checklist_item": { - "name": "[%key:component::habitica::common::score_checklist_item_name%]", - "description": "[%key:component::habitica::common::score_checklist_item_description%]" - }, - "unscore_checklist_item": { - "name": "[%key:component::habitica::common::unscore_checklist_item_name%]", - "description": "[%key:component::habitica::common::unscore_checklist_item_description%]" - }, - "collapse_checklist": { - "name": "[%key:component::habitica::common::collapse_checklist_name%]", - "description": "[%key:component::habitica::common::collapse_checklist_description%]" - } - }, - "sections": { - "checklist_options": { - "name": "[%key:component::habitica::common::checklist_options_name%]", - "description": "[%key:component::habitica::common::checklist_options_description%]" - }, - "duedate_options": { - "name": "[%key:component::habitica::common::date_name%]", - "description": "Set, update or remove due dates of a to-do." - }, - "reminder_options": { - "name": "[%key:component::habitica::common::reminder_options_name%]", - "description": "[%key:component::habitica::common::reminder_options_description%]" - }, - "tag_options": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_options_description%]" - }, - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "create_todo": { - "name": "Create to-do", - "description": "Adds a new to-do.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "Select the Habitica account to create a to-do." - }, - "name": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::name_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "date": { - "name": "[%key:component::habitica::common::date_name%]", - "description": "[%key:component::habitica::common::date_description%]" - }, - "reminder": { - "name": "[%key:component::habitica::common::reminder_options_name%]", - "description": "[%key:component::habitica::common::reminder_description%]" - }, - "add_checklist_item": { - "name": "[%key:component::habitica::common::checklist_options_name%]", - "description": "[%key:component::habitica::common::add_checklist_item_description%]" - }, - "collapse_checklist": { - "name": "[%key:component::habitica::common::collapse_checklist_name%]", - "description": "[%key:component::habitica::common::collapse_checklist_description%]" - } - }, - "sections": { - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } - }, - "update_daily": { - "name": "Update a daily", - "description": "Updates a specific daily for a selected Habitica character", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::common::config_entry_description%]" - }, - "task": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "The name (or task ID) of the daily you want to update." - }, - "rename": { - "name": "[%key:component::habitica::common::rename_name%]", - "description": "[%key:component::habitica::common::rename_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "remove_tag": { - "name": "[%key:component::habitica::common::remove_tag_name%]", - "description": "[%key:component::habitica::common::remove_tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "start_date": { - "name": "[%key:component::habitica::common::start_date_name%]", - "description": "[%key:component::habitica::common::start_date_description%]" - }, - "frequency": { - "name": "[%key:component::habitica::common::frequency_daily_name%]", - "description": "[%key:component::habitica::common::frequency_daily_description%]" - }, - "every_x": { - "name": "[%key:component::habitica::common::every_x_name%]", - "description": "[%key:component::habitica::common::every_x_description%]" - }, - "repeat": { - "name": "[%key:component::habitica::common::repeat_name%]", - "description": "[%key:component::habitica::common::repeat_weekly_description%]" - }, - "repeat_monthly": { - "name": "[%key:component::habitica::common::repeat_name%]", - "description": "[%key:component::habitica::common::repeat_monthly_description%]" - }, - "add_checklist_item": { - "name": "[%key:component::habitica::common::add_checklist_item_name%]", - "description": "[%key:component::habitica::common::add_checklist_item_description%]" - }, - "remove_checklist_item": { - "name": "[%key:component::habitica::common::remove_checklist_item_name%]", - "description": "[%key:component::habitica::common::remove_checklist_item_description%]" - }, - "score_checklist_item": { - "name": "[%key:component::habitica::common::score_checklist_item_name%]", - "description": "[%key:component::habitica::common::score_checklist_item_description%]" - }, - "unscore_checklist_item": { - "name": "[%key:component::habitica::common::unscore_checklist_item_name%]", - "description": "[%key:component::habitica::common::unscore_checklist_item_description%]" - }, - "collapse_checklist": { - "name": "[%key:component::habitica::common::collapse_checklist_name%]", - "description": "[%key:component::habitica::common::collapse_checklist_description%]" - }, - "streak": { - "name": "Adjust streak", - "description": "Adjust or reset the streak counter of the daily." - }, - "reminder": { - "name": "[%key:component::habitica::common::reminder_name%]", - "description": "[%key:component::habitica::common::reminder_description%]" - }, - "remove_reminder": { - "name": "[%key:component::habitica::common::remove_reminder_name%]", - "description": "[%key:component::habitica::common::remove_reminder_description%]" - }, - "clear_reminder": { - "name": "[%key:component::habitica::common::clear_reminder_name%]", - "description": "[%key:component::habitica::common::clear_reminder_description%]" - } - }, - "sections": { - "checklist_options": { - "name": "[%key:component::habitica::common::checklist_options_name%]", - "description": "[%key:component::habitica::common::checklist_options_description%]" - }, - "repeat_weekly_options": { - "name": "[%key:component::habitica::common::repeat_weekly_options_name%]", - "description": "[%key:component::habitica::common::repeat_weekly_options_description%]" - }, - "repeat_monthly_options": { - "name": "[%key:component::habitica::common::repeat_monthly_options_name%]", - "description": "[%key:component::habitica::common::repeat_monthly_options_description%]" - }, - "tag_options": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_options_description%]" - }, - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - }, - "reminder_options": { - "name": "[%key:component::habitica::common::reminder_options_name%]", - "description": "[%key:component::habitica::common::reminder_options_description%]" - } - } - }, - "create_daily": { - "name": "Create a daily", - "description": "Adds a new daily.", - "fields": { - "config_entry": { - "name": "[%key:component::habitica::common::config_entry_name%]", - "description": "[%key:component::habitica::common::config_entry_description%]" - }, - "name": { - "name": "[%key:component::habitica::common::task_name%]", - "description": "[%key:component::habitica::common::name_description%]" - }, - "notes": { - "name": "[%key:component::habitica::common::notes_name%]", - "description": "[%key:component::habitica::common::notes_description%]" - }, - "tag": { - "name": "[%key:component::habitica::common::tag_options_name%]", - "description": "[%key:component::habitica::common::tag_description%]" - }, - "alias": { - "name": "[%key:component::habitica::common::alias_name%]", - "description": "[%key:component::habitica::common::alias_description%]" - }, - "priority": { - "name": "[%key:component::habitica::common::priority_name%]", - "description": "[%key:component::habitica::common::priority_description%]" - }, - "start_date": { - "name": "[%key:component::habitica::common::start_date_name%]", - "description": "[%key:component::habitica::common::start_date_description%]" - }, - "frequency": { - "name": "[%key:component::habitica::common::frequency_daily_name%]", - "description": "[%key:component::habitica::common::frequency_daily_description%]" - }, - "every_x": { - "name": "[%key:component::habitica::common::every_x_name%]", - "description": "[%key:component::habitica::common::every_x_description%]" - }, - "repeat": { - "name": "[%key:component::habitica::common::repeat_name%]", - "description": "[%key:component::habitica::common::repeat_weekly_description%]" - }, - "repeat_monthly": { - "name": "[%key:component::habitica::common::repeat_name%]", - "description": "[%key:component::habitica::common::repeat_monthly_description%]" - }, - "add_checklist_item": { - "name": "[%key:component::habitica::common::checklist_options_name%]", - "description": "[%key:component::habitica::common::add_checklist_item_description%]" - }, - "collapse_checklist": { - "name": "[%key:component::habitica::common::collapse_checklist_name%]", - "description": "[%key:component::habitica::common::collapse_checklist_description%]" - }, - "reminder": { - "name": "[%key:component::habitica::common::reminder_options_name%]", - "description": "[%key:component::habitica::common::reminder_description%]" - } - }, - "sections": { - "repeat_weekly_options": { - "name": "[%key:component::habitica::common::repeat_weekly_options_name%]", - "description": "[%key:component::habitica::common::repeat_weekly_options_description%]" - }, - "repeat_monthly_options": { - "name": "[%key:component::habitica::common::repeat_monthly_options_name%]", - "description": "[%key:component::habitica::common::repeat_monthly_options_description%]" - }, - "developer_options": { - "name": "[%key:component::habitica::common::developer_options_name%]", - "description": "[%key:component::habitica::common::developer_options_description%]" - } - } + "update_todos_item_failed": { + "message": "Unable to update the Habitica to-do `{name}`, please try again" } }, "selector": { - "skill_select": { + "collapse_checklist": { "options": { - "fireball": "Mage: Burst of flames", - "pickpocket": "Rogue: Pickpocket", - "backstab": "Rogue: Backstab", - "smash": "Warrior: Brutal smash" - } - }, - "transformation_item_select": { - "options": { - "snowball": "Snowball", - "spooky_sparkles": "Spooky sparkles", - "seafoam": "Seafoam", - "shiny_seed": "Shiny seed" - } - }, - "type": { - "options": { - "daily": "Daily", - "habit": "Habit", - "todo": "To-do", - "reward": "Reward" - } - }, - "priority": { - "options": { - "trivial": "Trivial", - "easy": "Easy", - "medium": "Medium", - "hard": "Hard" + "collapsed": "Collapsed", + "expanded": "Expanded" } }, "frequency": { "options": { "daily": "Daily", - "weekly": "Weekly", "monthly": "Monthly", + "weekly": "Weekly", "yearly": "Yearly" } }, + "priority": { + "options": { + "easy": "Easy", + "hard": "Hard", + "medium": "Medium", + "trivial": "Trivial" + } + }, "repeat": { "options": { - "m": "[%key:common::time::monday%]", - "t": "[%key:common::time::tuesday%]", - "w": "[%key:common::time::wednesday%]", - "th": "[%key:common::time::thursday%]", "f": "[%key:common::time::friday%]", + "m": "[%key:common::time::monday%]", "s": "[%key:common::time::saturday%]", - "su": "[%key:common::time::sunday%]" + "su": "[%key:common::time::sunday%]", + "t": "[%key:common::time::tuesday%]", + "th": "[%key:common::time::thursday%]", + "w": "[%key:common::time::wednesday%]" } }, "repeat_monthly": { @@ -1384,10 +660,734 @@ "day_of_week": "Day of the week" } }, - "collapse_checklist": { + "skill_select": { "options": { - "collapsed": "Collapsed", - "expanded": "Expanded" + "backstab": "Rogue: Backstab", + "fireball": "Mage: Burst of flames", + "pickpocket": "Rogue: Pickpocket", + "smash": "Warrior: Brutal smash" + } + }, + "transformation_item_select": { + "options": { + "seafoam": "Seafoam", + "shiny_seed": "Shiny seed", + "snowball": "Snowball", + "spooky_sparkles": "Spooky sparkles" + } + }, + "type": { + "options": { + "daily": "Daily", + "habit": "Habit", + "reward": "Reward", + "todo": "To-do" + } + } + }, + "services": { + "abort_quest": { + "description": "Terminates your party's ongoing quest. All progress will be lost and the quest roll returned to the owner's inventory. Only quest leader or group leader can perform this action.", + "fields": { + "config_entry": { + "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Abort an active quest" + }, + "accept_quest": { + "description": "Accepts a pending invitation to a quest.", + "fields": { + "config_entry": { + "description": "Choose the Habitica character for which to perform the action.", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Accept a quest invitation" + }, + "cancel_quest": { + "description": "Cancels a quest that has not yet started. All accepted and pending invitations will be canceled and the quest roll returned to the owner's inventory. Only quest leader or group leader can perform this action.", + "fields": { + "config_entry": { + "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Cancel a pending quest" + }, + "cast_skill": { + "description": "Uses a skill or spell from your Habitica character on a specific task to affect its progress or status.", + "fields": { + "config_entry": { + "description": "Choose the Habitica character to cast the skill.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "skill": { + "description": "Select the skill or spell you want to cast on the task. Only skills corresponding to your character's class can be used.", + "name": "Skill" + }, + "task": { + "description": "The name (or task ID) of the task you want to target with the skill or spell.", + "name": "[%key:component::habitica::common::task_name%]" + } + }, + "name": "Cast a skill" + }, + "create_daily": { + "description": "Adds a new daily.", + "fields": { + "add_checklist_item": { + "description": "[%key:component::habitica::common::add_checklist_item_description%]", + "name": "[%key:component::habitica::common::checklist_options_name%]" + }, + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "collapse_checklist": { + "description": "[%key:component::habitica::common::collapse_checklist_description%]", + "name": "[%key:component::habitica::common::collapse_checklist_name%]" + }, + "config_entry": { + "description": "[%key:component::habitica::common::config_entry_description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "every_x": { + "description": "[%key:component::habitica::common::every_x_description%]", + "name": "[%key:component::habitica::common::every_x_name%]" + }, + "frequency": { + "description": "[%key:component::habitica::common::frequency_daily_description%]", + "name": "[%key:component::habitica::common::frequency_daily_name%]" + }, + "name": { + "description": "[%key:component::habitica::common::name_description%]", + "name": "[%key:component::habitica::common::task_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "reminder": { + "description": "[%key:component::habitica::common::reminder_description%]", + "name": "[%key:component::habitica::common::reminder_options_name%]" + }, + "repeat": { + "description": "[%key:component::habitica::common::repeat_weekly_description%]", + "name": "[%key:component::habitica::common::repeat_name%]" + }, + "repeat_monthly": { + "description": "[%key:component::habitica::common::repeat_monthly_description%]", + "name": "[%key:component::habitica::common::repeat_name%]" + }, + "start_date": { + "description": "[%key:component::habitica::common::start_date_description%]", + "name": "[%key:component::habitica::common::start_date_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + }, + "name": "Create a daily", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + }, + "repeat_monthly_options": { + "description": "[%key:component::habitica::common::repeat_monthly_options_description%]", + "name": "[%key:component::habitica::common::repeat_monthly_options_name%]" + }, + "repeat_weekly_options": { + "description": "[%key:component::habitica::common::repeat_weekly_options_description%]", + "name": "[%key:component::habitica::common::repeat_weekly_options_name%]" + } + } + }, + "create_habit": { + "description": "Adds a new habit.", + "fields": { + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "config_entry": { + "description": "Select the Habitica account to create a habit.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "frequency": { + "description": "[%key:component::habitica::common::frequency_description%]", + "name": "[%key:component::habitica::common::frequency_name%]" + }, + "name": { + "description": "[%key:component::habitica::common::name_description%]", + "name": "[%key:component::habitica::common::task_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + }, + "up_down": { + "description": "[%key:component::habitica::common::up_down_description%]", + "name": "[%key:component::habitica::common::up_down_name%]" + } + }, + "name": "Create habit", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + } + } + }, + "create_reward": { + "description": "Adds a new custom reward.", + "fields": { + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "config_entry": { + "description": "Select the Habitica account to create a reward.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "cost": { + "description": "The cost of the reward.", + "name": "[%key:component::habitica::common::cost_name%]" + }, + "name": { + "description": "[%key:component::habitica::common::name_description%]", + "name": "[%key:component::habitica::common::task_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + }, + "name": "Create reward", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + } + } + }, + "create_todo": { + "description": "Adds a new to-do.", + "fields": { + "add_checklist_item": { + "description": "[%key:component::habitica::common::add_checklist_item_description%]", + "name": "[%key:component::habitica::common::checklist_options_name%]" + }, + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "collapse_checklist": { + "description": "[%key:component::habitica::common::collapse_checklist_description%]", + "name": "[%key:component::habitica::common::collapse_checklist_name%]" + }, + "config_entry": { + "description": "Select the Habitica account to create a to-do.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "date": { + "description": "[%key:component::habitica::common::date_description%]", + "name": "[%key:component::habitica::common::date_name%]" + }, + "name": { + "description": "[%key:component::habitica::common::name_description%]", + "name": "[%key:component::habitica::common::task_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "reminder": { + "description": "[%key:component::habitica::common::reminder_description%]", + "name": "[%key:component::habitica::common::reminder_options_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + }, + "name": "Create to-do", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + } + } + }, + "get_tasks": { + "description": "Retrieves tasks from your Habitica character.", + "fields": { + "config_entry": { + "description": "Choose the Habitica character to retrieve tasks from.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "keyword": { + "description": "Filter tasks by keyword, searching across titles, notes, and checklists.", + "name": "Keyword" + }, + "priority": { + "description": "Filter tasks by difficulty.", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "tag": { + "description": "Filter tasks that have one or more of the selected tags.", + "name": "Tag" + }, + "task": { + "description": "Select tasks by matching their name (or task ID).", + "name": "[%key:component::habitica::common::task_name%]" + }, + "type": { + "description": "Filter tasks by type.", + "name": "Task type" + } + }, + "name": "Get tasks", + "sections": { + "filter": { + "description": "Use the optional filters to narrow the returned tasks.", + "name": "Filter options" + } + } + }, + "leave_quest": { + "description": "Leaves the current quest you are participating in.", + "fields": { + "config_entry": { + "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Leave a quest" + }, + "reject_quest": { + "description": "Rejects a pending invitation to a quest.", + "fields": { + "config_entry": { + "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Reject a quest invitation" + }, + "score_habit": { + "description": "Increases the positive or negative streak of a habit to track its progress.", + "fields": { + "config_entry": { + "description": "Select the Habitica character tracking your habit.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "direction": { + "description": "Is it positive or negative progress you want to track for your habit.", + "name": "Reward or loss" + }, + "task": { + "description": "The name (or task ID) of the Habitica habit.", + "name": "Habit name" + } + }, + "name": "Track a habit" + }, + "score_reward": { + "description": "Buys one of your custom rewards with gold earned by fulfilling tasks.", + "fields": { + "config_entry": { + "description": "Select the Habitica character buying the reward.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "task": { + "description": "The name (or task ID) of the custom reward.", + "name": "Reward name" + } + }, + "name": "Buy a reward" + }, + "start_quest": { + "description": "Begins the quest immediately, bypassing any pending invitations that haven't been accepted or rejected. Only quest leader or group leader can perform this action.", + "fields": { + "config_entry": { + "description": "[%key:component::habitica::services::accept_quest::fields::config_entry::description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + } + }, + "name": "Force-start a pending quest" + }, + "transformation": { + "description": "Uses a transformation item from your Habitica character's inventory on a member of your party or yourself.", + "fields": { + "config_entry": { + "description": "Choose the Habitica character to use the transformation item.", + "name": "Select character" + }, + "item": { + "description": "Select the transformation item you want to use. Item must be in the characters inventory.", + "name": "Transformation item" + }, + "target": { + "description": "The name of the character you want to use the transformation item on. You can also specify the players username or user ID.", + "name": "Target character" + } + }, + "name": "Use a transformation item" + }, + "update_daily": { + "description": "Updates a specific daily for a selected Habitica character", + "fields": { + "add_checklist_item": { + "description": "[%key:component::habitica::common::add_checklist_item_description%]", + "name": "[%key:component::habitica::common::add_checklist_item_name%]" + }, + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "clear_reminder": { + "description": "[%key:component::habitica::common::clear_reminder_description%]", + "name": "[%key:component::habitica::common::clear_reminder_name%]" + }, + "collapse_checklist": { + "description": "[%key:component::habitica::common::collapse_checklist_description%]", + "name": "[%key:component::habitica::common::collapse_checklist_name%]" + }, + "config_entry": { + "description": "[%key:component::habitica::common::config_entry_description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "every_x": { + "description": "[%key:component::habitica::common::every_x_description%]", + "name": "[%key:component::habitica::common::every_x_name%]" + }, + "frequency": { + "description": "[%key:component::habitica::common::frequency_daily_description%]", + "name": "[%key:component::habitica::common::frequency_daily_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "reminder": { + "description": "[%key:component::habitica::common::reminder_description%]", + "name": "[%key:component::habitica::common::reminder_name%]" + }, + "remove_checklist_item": { + "description": "[%key:component::habitica::common::remove_checklist_item_description%]", + "name": "[%key:component::habitica::common::remove_checklist_item_name%]" + }, + "remove_reminder": { + "description": "[%key:component::habitica::common::remove_reminder_description%]", + "name": "[%key:component::habitica::common::remove_reminder_name%]" + }, + "remove_tag": { + "description": "[%key:component::habitica::common::remove_tag_description%]", + "name": "[%key:component::habitica::common::remove_tag_name%]" + }, + "rename": { + "description": "[%key:component::habitica::common::rename_description%]", + "name": "[%key:component::habitica::common::rename_name%]" + }, + "repeat": { + "description": "[%key:component::habitica::common::repeat_weekly_description%]", + "name": "[%key:component::habitica::common::repeat_name%]" + }, + "repeat_monthly": { + "description": "[%key:component::habitica::common::repeat_monthly_description%]", + "name": "[%key:component::habitica::common::repeat_name%]" + }, + "score_checklist_item": { + "description": "[%key:component::habitica::common::score_checklist_item_description%]", + "name": "[%key:component::habitica::common::score_checklist_item_name%]" + }, + "start_date": { + "description": "[%key:component::habitica::common::start_date_description%]", + "name": "[%key:component::habitica::common::start_date_name%]" + }, + "streak": { + "description": "Adjust or reset the streak counter of the daily.", + "name": "Adjust streak" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_name%]" + }, + "task": { + "description": "The name (or task ID) of the daily you want to update.", + "name": "[%key:component::habitica::common::task_name%]" + }, + "unscore_checklist_item": { + "description": "[%key:component::habitica::common::unscore_checklist_item_description%]", + "name": "[%key:component::habitica::common::unscore_checklist_item_name%]" + } + }, + "name": "Update a daily", + "sections": { + "checklist_options": { + "description": "[%key:component::habitica::common::checklist_options_description%]", + "name": "[%key:component::habitica::common::checklist_options_name%]" + }, + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + }, + "reminder_options": { + "description": "[%key:component::habitica::common::reminder_options_description%]", + "name": "[%key:component::habitica::common::reminder_options_name%]" + }, + "repeat_monthly_options": { + "description": "[%key:component::habitica::common::repeat_monthly_options_description%]", + "name": "[%key:component::habitica::common::repeat_monthly_options_name%]" + }, + "repeat_weekly_options": { + "description": "[%key:component::habitica::common::repeat_weekly_options_description%]", + "name": "[%key:component::habitica::common::repeat_weekly_options_name%]" + }, + "tag_options": { + "description": "[%key:component::habitica::common::tag_options_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + } + }, + "update_habit": { + "description": "Updates a specific habit for the selected Habitica character", + "fields": { + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "config_entry": { + "description": "Select the Habitica account to update a habit.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "counter_down": { + "description": "Update the down counter of a negative habit.", + "name": "Adjust negative counter" + }, + "counter_up": { + "description": "Update the up counter of a positive habit.", + "name": "Adjust positive counter" + }, + "frequency": { + "description": "[%key:component::habitica::common::frequency_description%]", + "name": "[%key:component::habitica::common::frequency_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "remove_tag": { + "description": "[%key:component::habitica::common::remove_tag_description%]", + "name": "[%key:component::habitica::common::remove_tag_name%]" + }, + "rename": { + "description": "[%key:component::habitica::common::rename_description%]", + "name": "[%key:component::habitica::common::rename_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_name%]" + }, + "task": { + "description": "[%key:component::habitica::common::task_description%]", + "name": "[%key:component::habitica::common::task_name%]" + }, + "up_down": { + "description": "[%key:component::habitica::common::up_down_description%]", + "name": "[%key:component::habitica::common::up_down_name%]" + } + }, + "name": "Update a habit", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + }, + "tag_options": { + "description": "[%key:component::habitica::common::tag_options_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + } + }, + "update_reward": { + "description": "Updates a specific reward for the selected Habitica character", + "fields": { + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "config_entry": { + "description": "Select the Habitica account to update a reward.", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "cost": { + "description": "Update the cost of a reward.", + "name": "[%key:component::habitica::common::cost_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "remove_tag": { + "description": "[%key:component::habitica::common::remove_tag_description%]", + "name": "[%key:component::habitica::common::remove_tag_name%]" + }, + "rename": { + "description": "[%key:component::habitica::common::rename_description%]", + "name": "[%key:component::habitica::common::rename_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_name%]" + }, + "task": { + "description": "[%key:component::habitica::common::task_description%]", + "name": "[%key:component::habitica::common::task_name%]" + } + }, + "name": "Update a reward", + "sections": { + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + }, + "tag_options": { + "description": "[%key:component::habitica::common::tag_options_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } + } + }, + "update_todo": { + "description": "Updates a specific to-do for a selected Habitica character", + "fields": { + "add_checklist_item": { + "description": "[%key:component::habitica::common::add_checklist_item_description%]", + "name": "[%key:component::habitica::common::add_checklist_item_name%]" + }, + "alias": { + "description": "[%key:component::habitica::common::alias_description%]", + "name": "[%key:component::habitica::common::alias_name%]" + }, + "clear_date": { + "description": "Remove the due date from the to-do.", + "name": "Clear due date" + }, + "clear_reminder": { + "description": "[%key:component::habitica::common::clear_reminder_description%]", + "name": "[%key:component::habitica::common::clear_reminder_name%]" + }, + "collapse_checklist": { + "description": "[%key:component::habitica::common::collapse_checklist_description%]", + "name": "[%key:component::habitica::common::collapse_checklist_name%]" + }, + "config_entry": { + "description": "[%key:component::habitica::common::config_entry_description%]", + "name": "[%key:component::habitica::common::config_entry_name%]" + }, + "date": { + "description": "[%key:component::habitica::common::date_description%]", + "name": "[%key:component::habitica::common::date_name%]" + }, + "notes": { + "description": "[%key:component::habitica::common::notes_description%]", + "name": "[%key:component::habitica::common::notes_name%]" + }, + "priority": { + "description": "[%key:component::habitica::common::priority_description%]", + "name": "[%key:component::habitica::common::priority_name%]" + }, + "reminder": { + "description": "[%key:component::habitica::common::reminder_description%]", + "name": "[%key:component::habitica::common::reminder_name%]" + }, + "remove_checklist_item": { + "description": "[%key:component::habitica::common::remove_checklist_item_description%]", + "name": "[%key:component::habitica::common::remove_checklist_item_name%]" + }, + "remove_reminder": { + "description": "[%key:component::habitica::common::remove_reminder_description%]", + "name": "[%key:component::habitica::common::remove_reminder_name%]" + }, + "remove_tag": { + "description": "[%key:component::habitica::common::remove_tag_description%]", + "name": "[%key:component::habitica::common::remove_tag_name%]" + }, + "rename": { + "description": "[%key:component::habitica::common::rename_description%]", + "name": "[%key:component::habitica::common::rename_name%]" + }, + "score_checklist_item": { + "description": "[%key:component::habitica::common::score_checklist_item_description%]", + "name": "[%key:component::habitica::common::score_checklist_item_name%]" + }, + "tag": { + "description": "[%key:component::habitica::common::tag_description%]", + "name": "[%key:component::habitica::common::tag_name%]" + }, + "task": { + "description": "The name (or task ID) of the to-do you want to update.", + "name": "[%key:component::habitica::common::task_name%]" + }, + "unscore_checklist_item": { + "description": "[%key:component::habitica::common::unscore_checklist_item_description%]", + "name": "[%key:component::habitica::common::unscore_checklist_item_name%]" + } + }, + "name": "Update a to-do", + "sections": { + "checklist_options": { + "description": "[%key:component::habitica::common::checklist_options_description%]", + "name": "[%key:component::habitica::common::checklist_options_name%]" + }, + "developer_options": { + "description": "[%key:component::habitica::common::developer_options_description%]", + "name": "[%key:component::habitica::common::developer_options_name%]" + }, + "duedate_options": { + "description": "Set, update or remove due dates of a to-do.", + "name": "[%key:component::habitica::common::date_name%]" + }, + "reminder_options": { + "description": "[%key:component::habitica::common::reminder_options_description%]", + "name": "[%key:component::habitica::common::reminder_options_name%]" + }, + "tag_options": { + "description": "[%key:component::habitica::common::tag_options_description%]", + "name": "[%key:component::habitica::common::tag_options_name%]" + } } } } diff --git a/homeassistant/components/harmony/icons.json b/homeassistant/components/harmony/icons.json index b6fe0d8c42e..fac9d65d993 100644 --- a/homeassistant/components/harmony/icons.json +++ b/homeassistant/components/harmony/icons.json @@ -10,11 +10,11 @@ } }, "services": { - "sync": { - "service": "mdi:sync" - }, "change_channel": { "service": "mdi:remote-tv" + }, + "sync": { + "service": "mdi:sync" } } } diff --git a/homeassistant/components/harmony/manifest.json b/homeassistant/components/harmony/manifest.json index f74bff314a4..9f72c9c2d37 100644 --- a/homeassistant/components/harmony/manifest.json +++ b/homeassistant/components/harmony/manifest.json @@ -10,8 +10,8 @@ "requirements": ["aioharmony==0.5.3"], "ssdp": [ { - "manufacturer": "Logitech", - "deviceType": "urn:myharmony-com:device:harmony:1" + "deviceType": "urn:myharmony-com:device:harmony:1", + "manufacturer": "Logitech" } ] } diff --git a/homeassistant/components/harmony/strings.json b/homeassistant/components/harmony/strings.json index 577eb308d78..14e6fd52c05 100644 --- a/homeassistant/components/harmony/strings.json +++ b/homeassistant/components/harmony/strings.json @@ -1,38 +1,27 @@ { "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%]" + }, "flow_title": "{name}", "step": { + "link": { + "description": "Do you want to set up {name} ({host})?", + "title": "[%key:component::harmony::config::step::user::title%]" + }, "user": { - "title": "Set up Logitech Harmony Hub", "data": { "host": "[%key:common::config_flow::data::host%]", "name": "Hub Name" }, "data_description": { "host": "The hostname or IP address of your Logitech Harmony Hub." - } - }, - "link": { - "title": "[%key:component::harmony::config::step::user::title%]", - "description": "Do you want to set up {name} ({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%]" - } - }, - "options": { - "step": { - "init": { - "description": "Adjust Harmony Hub options", - "data": { - "activity": "The default activity to execute when none is specified.", - "delay_secs": "The delay between sending commands." - } + }, + "title": "Set up Logitech Harmony Hub" } } }, @@ -46,20 +35,31 @@ } } }, + "options": { + "step": { + "init": { + "data": { + "activity": "The default activity to execute when none is specified.", + "delay_secs": "The delay between sending commands." + }, + "description": "Adjust Harmony Hub options" + } + } + }, "services": { - "sync": { - "name": "Sync", - "description": "Syncs the remote's configuration." - }, "change_channel": { - "name": "Change channel", "description": "Sends a change channel command to the Harmony Hub.", "fields": { "channel": { - "name": "Channel", - "description": "Channel number to change to." + "description": "Channel number to change to.", + "name": "Channel" } - } + }, + "name": "Change channel" + }, + "sync": { + "description": "Syncs the remote's configuration.", + "name": "Sync" } } } diff --git a/homeassistant/components/hassio/icons.json b/homeassistant/components/hassio/icons.json index 33eb154edc4..b5f382e7ac5 100644 --- a/homeassistant/components/hassio/icons.json +++ b/homeassistant/components/hassio/icons.json @@ -10,30 +10,30 @@ } }, "services": { - "addon_start": { - "service": "mdi:play" - }, "addon_restart": { "service": "mdi:restart" }, + "addon_start": { + "service": "mdi:play" + }, "addon_stdin": { "service": "mdi:console" }, "addon_stop": { "service": "mdi:stop" }, - "host_reboot": { - "service": "mdi:restart" - }, - "host_shutdown": { - "service": "mdi:power" - }, "backup_full": { "service": "mdi:content-save" }, "backup_partial": { "service": "mdi:content-save" }, + "host_reboot": { + "service": "mdi:restart" + }, + "host_shutdown": { + "service": "mdi:power" + }, "restore_full": { "service": "mdi:backup-restore" }, diff --git a/homeassistant/components/hassio/strings.json b/homeassistant/components/hassio/strings.json index 1c3e51069c1..0e92c3a2652 100644 --- a/homeassistant/components/hassio/strings.json +++ b/homeassistant/components/hassio/strings.json @@ -1,274 +1,4 @@ { - "system_health": { - "info": { - "agent_version": "Agent version", - "board": "Board", - "disk_total": "Disk total", - "disk_used": "Disk used", - "docker_version": "Docker version", - "healthy": "Healthy", - "host_os": "Host operating system", - "installed_addons": "Installed add-ons", - "nameservers": "Nameservers", - "supervisor_api": "Supervisor API", - "supervisor_version": "Supervisor version", - "supported": "Supported", - "update_channel": "Update channel", - "version_api": "Version API" - } - }, - "issues": { - "issue_addon_boot_fail": { - "title": "Add-on failed to start at boot", - "fix_flow": { - "step": { - "fix_menu": { - "description": "Add-on {addon} is set to start at boot but failed to start. Usually this occurs when the configuration is incorrect or the same port is used in multiple add-ons. Check the configuration as well as logs for {addon} and Supervisor.\n\nUse Start to try again or Disable to turn off the start at boot option.", - "menu_options": { - "addon_execute_start": "[%key:common::action::start%]", - "addon_disable_boot": "[%key:common::action::disable%]" - } - } - }, - "abort": { - "apply_suggestion_fail": "Could not apply the fix. Check the Supervisor logs for more details." - } - } - }, - "issue_addon_detached_addon_missing": { - "title": "Missing repository for an installed add-on", - "description": "Repository for add-on {addon} is missing. This means it will not get updates, and backups may not be restored correctly as the Home Assistant Supervisor may not be able to build/download the resources required.\n\nPlease check the [add-on's documentation]({addon_url}) for installation instructions and add the repository to the store." - }, - "issue_addon_detached_addon_removed": { - "title": "Installed add-on has been removed from repository", - "fix_flow": { - "step": { - "addon_execute_remove": { - "description": "Add-on {addon} has been removed from the repository it was installed from. This means it will not get updates, and backups may not be restored correctly as the Home Assistant Supervisor may not be able to build/download the resources required.\n\nSelecting **Submit** will uninstall this deprecated add-on. Alternatively, you can check [Home Assistant help]({help_url}) and the [community forum]({community_url}) for alternatives to migrate to." - } - }, - "abort": { - "apply_suggestion_fail": "Could not uninstall the add-on. Check the Supervisor logs for more details." - } - } - }, - "issue_addon_pwned": { - "title": "Insecure secrets detected in add-on configuration", - "description": "Add-on {addon} uses secrets/passwords in its configuration which are detected as not secure. See [pwned passwords and secrets]({more_info_pwned}) for more information on this issue." - }, - "issue_addon_deprecated_addon": { - "title": "Installed add-on is deprecated", - "fix_flow": { - "step": { - "addon_execute_remove": { - "description": "Add-on {addon} is marked deprecated by the developer. This means it is no longer being maintained and so may break or become a security issue over time.\n\nReview the [readme]({addon_info}) and [documentation]({addon_documentation}) of the add-on to see if the developer provided instructions.\n\nSelecting **Submit** will uninstall this deprecated add-on. Alternatively, you can check [Home Assistant help]({help_url}) and the [community forum]({community_url}) for alternatives to migrate to." - } - }, - "abort": { - "apply_suggestion_fail": "Could not uninstall the add-on. Check the Supervisor logs for more details." - } - } - }, - "issue_mount_mount_failed": { - "title": "Network storage device failed", - "fix_flow": { - "step": { - "fix_menu": { - "description": "Could not connect to `{reference}`. Check host logs for errors from the mount service for more details.\n\nUse reload to try to connect again. If you need to update `{reference}`, go to [storage]({storage_url}).", - "menu_options": { - "mount_execute_reload": "[%key:common::action::reload%]", - "mount_execute_remove": "Remove" - } - } - }, - "abort": { - "apply_suggestion_fail": "Could not apply the fix. Check the Supervisor logs for more details." - } - } - }, - "issue_system_docker_config": { - "title": "Restart(s) required", - "fix_flow": { - "step": { - "system_execute_rebuild": { - "description": "The default configuration for add-ons and Home Assistant has changed. To update the configuration with the new defaults, a restart is required for the following:\n\n- {components}" - } - }, - "abort": { - "apply_suggestion_fail": "One or more of the restarts failed. Check the Supervisor logs for more details." - } - } - }, - "issue_system_multiple_data_disks": { - "title": "Multiple data disks detected", - "fix_flow": { - "step": { - "fix_menu": { - "description": "At `{reference}`, we detected another active data disk (containing a file system `hassos-data` from another Home Assistant installation).\n\nYou need to decide what to do with it. Otherwise Home Assistant might choose the wrong data disk at system reboot.\n\nIf you don't want to use this data disk, unplug it from your system. If you leave it plugged in, choose one of the following options:", - "menu_options": { - "system_rename_data_disk": "Mark as inactive data disk (rename file system)", - "system_adopt_data_disk": "Use the detected data disk instead of the current system" - } - }, - "system_adopt_data_disk": { - "description": "Select **Submit** to make `{reference}` the active data disk. The one and only.\n\nYou won't have access anymore to the current Home Assistant data (will be marked as inactive data disk). After reboot, your system will be in the state of the Home Assistant data on `{reference}`." - } - }, - "abort": { - "apply_suggestion_fail": "Could not rename the filesystem. Check the Supervisor logs for more details." - } - } - }, - "issue_system_reboot_required": { - "title": "Reboot required", - "fix_flow": { - "step": { - "system_execute_reboot": { - "description": "Settings were changed which require a system reboot to take effect.\n\nThis fix will initiate a system reboot which will make Home Assistant and all the Add-ons inaccessible for a brief period." - } - }, - "abort": { - "apply_suggestion_fail": "Could not reboot the system. Check the Supervisor logs for more details." - } - } - }, - "issue_system_disk_lifetime": { - "title": "Disk lifetime exceeding 90%", - "description": "The data disk has exceeded 90% of its expected lifespan. The disk may soon malfunction which can lead to data loss. You should replace it soon and migrate your data." - }, - "issue_system_free_space": { - "title": "Data disk is running low on free space", - "description": "The data disk has only {free_space}GB free space left. This may cause issues with system stability and interfere with functionality such as backups and updates. See [clear up storage]({more_info_free_space}) for tips on how to free up space." - }, - "unhealthy": { - "title": "Unhealthy system - {reason}", - "description": "System is currently unhealthy due to {reason}. For troubleshooting information, select Learn more." - }, - "unhealthy_docker": { - "title": "Unhealthy system - Docker misconfigured", - "description": "System is currently unhealthy because Docker is configured incorrectly. For troubleshooting information, select Learn more." - }, - "unhealthy_duplicate_os_installation": { - "description": "System is currently unhealthy because it has detected multiple Home Assistant OS installations. For troubleshooting information, select Learn more.", - "title": "Unhealthy system - Duplicate Home Assistant OS installation" - }, - "unhealthy_oserror_bad_message": { - "description": "System is currently unhealthy because the operating system has reported an OS error: Bad message. For troubleshooting information, select Learn more.", - "title": "Unhealthy system - Operating System error: Bad message" - }, - "unhealthy_privileged": { - "title": "Unhealthy system - Not privileged", - "description": "System is currently unhealthy because it does not have privileged access to the docker runtime. For troubleshooting information, select Learn more." - }, - "unhealthy_setup": { - "title": "Unhealthy system - Setup failed", - "description": "System is currently unhealthy because setup failed to complete. There are a number of reasons this can occur, For troubleshooting information, select Learn more." - }, - "unhealthy_supervisor": { - "title": "Unhealthy system - Supervisor update failed", - "description": "System is currently unhealthy because an attempt to update Supervisor to the latest version has failed. For troubleshooting information, select Learn more." - }, - "unhealthy_untrusted": { - "title": "Unhealthy system - Untrusted code", - "description": "System is currently unhealthy because it has detected untrusted code or images in use. For troubleshooting information, select Learn more." - }, - "unsupported": { - "title": "Unsupported system - {reason}", - "description": "System is unsupported due to {reason}. For troubleshooting information, select Learn more." - }, - "unsupported_apparmor": { - "title": "Unsupported system - AppArmor issues", - "description": "System is unsupported because AppArmor is working incorrectly and add-ons are running in an unprotected and insecure way. For troubleshooting information, select Learn more." - }, - "unsupported_cgroup_version": { - "title": "Unsupported system - CGroup version", - "description": "System is unsupported because the wrong version of Docker CGroup is in use. Use the link to learn the correct version and how to fix this." - }, - "unsupported_connectivity_check": { - "title": "Unsupported system - Connectivity check disabled", - "description": "System is unsupported because Home Assistant cannot determine when an Internet connection is available. For troubleshooting information, select Learn more." - }, - "unsupported_content_trust": { - "title": "Unsupported system - Content-trust check disabled", - "description": "System is unsupported because Home Assistant cannot verify content being run is trusted and not modified by attackers. For troubleshooting information, select Learn more." - }, - "unsupported_dbus": { - "title": "Unsupported system - D-Bus issues", - "description": "System is unsupported because D-Bus is working incorrectly. Many things fail without this as Supervisor cannot communicate with the host. For troubleshooting information, select Learn more." - }, - "unsupported_dns_server": { - "title": "Unsupported system - DNS server issues", - "description": "System is unsupported because the provided DNS server does not work correctly and the fallback DNS option has been disabled. For troubleshooting information, select Learn more." - }, - "unsupported_docker_configuration": { - "title": "Unsupported system - Docker misconfigured", - "description": "System is unsupported because the Docker daemon is running in an unexpected way. For troubleshooting information, select Learn more." - }, - "unsupported_docker_version": { - "title": "Unsupported system - Docker version", - "description": "System is unsupported because the Docker version is out of date. For information about the required version and how to fix this, select Learn more." - }, - "unsupported_job_conditions": { - "title": "Unsupported system - Protections disabled", - "description": "System is unsupported because one or more job conditions have been disabled which protect from unexpected failures and breakages. For troubleshooting information, select Learn more." - }, - "unsupported_lxc": { - "title": "Unsupported system - LXC detected", - "description": "System is unsupported because it is being run in an LXC virtual machine. For troubleshooting information, select Learn more." - }, - "unsupported_network_manager": { - "title": "Unsupported system - Network Manager issues", - "description": "System is unsupported because Network Manager is missing, inactive or misconfigured. For troubleshooting information, select Learn more." - }, - "unsupported_os": { - "title": "Unsupported system - Operating System", - "description": "System is unsupported because the operating system in use is not tested or maintained for use with Supervisor. For information about supported operating systems and how to fix this, select Learn more." - }, - "unsupported_os_agent": { - "title": "Unsupported system - OS-Agent issues", - "description": "System is unsupported because OS-Agent is missing, inactive or misconfigured. For troubleshooting information, select Learn more." - }, - "unsupported_restart_policy": { - "title": "Unsupported system - Container restart policy", - "description": "System is unsupported because a Docker container has a restart policy set which could cause issues on startup. For troubleshooting information, select Learn more." - }, - "unsupported_software": { - "title": "Unsupported system - Unsupported software", - "description": "System is unsupported because additional software outside the Home Assistant ecosystem has been detected. For troubleshooting information, select Learn more." - }, - "unsupported_source_mods": { - "title": "Unsupported system - Supervisor source modifications", - "description": "System is unsupported because Supervisor source code has been modified. For troubleshooting information, select Learn more." - }, - "unsupported_supervisor_version": { - "title": "Unsupported system - Supervisor version", - "description": "System is unsupported because an out-of-date version of Supervisor is in use and auto-update has been disabled. For troubleshooting information, select Learn more." - }, - "unsupported_systemd": { - "title": "Unsupported system - Systemd issues", - "description": "System is unsupported because Systemd is missing, inactive or misconfigured. For troubleshooting information, select Learn more." - }, - "unsupported_systemd_journal": { - "title": "Unsupported system - Systemd Journal issues", - "description": "System is unsupported because Systemd Journal and/or the gateway service is missing, inactive or misconfigured. For troubleshooting information, select Learn more." - }, - "unsupported_systemd_resolved": { - "title": "Unsupported system - Systemd-Resolved issues", - "description": "System is unsupported because Systemd Resolved is missing, inactive or misconfigured. For troubleshooting information, select Learn more." - }, - "unsupported_virtualization_image": { - "title": "Unsupported system - Incorrect OS image for virtualization", - "description": "System is unsupported because the Home Assistant OS image in use is not intended for use in a virtualized environment. For troubleshooting information, select Learn more." - }, - "unsupported_os_version": { - "title": "Unsupported system - Home Assistant OS version", - "description": "System is unsupported because the Home Assistant OS version in use is not supported. For troubleshooting information, select Learn more." - }, - "unsupported_home_assistant_core_version": { - "title": "Unsupported system - Home Assistant Core version", - "description": "System is unsupported because the Home Assistant Core version in use is not supported. For troubleshooting information, select Learn more." - } - }, "entity": { "binary_sensor": { "state": { @@ -310,158 +40,428 @@ } } }, - "services": { - "addon_start": { - "name": "Start add-on", - "description": "Starts an add-on.", - "fields": { - "addon": { - "name": "Add-on", - "description": "The add-on to start." + "issues": { + "issue_addon_boot_fail": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not apply the fix. Check the Supervisor logs for more details." + }, + "step": { + "fix_menu": { + "description": "Add-on {addon} is set to start at boot but failed to start. Usually this occurs when the configuration is incorrect or the same port is used in multiple add-ons. Check the configuration as well as logs for {addon} and Supervisor.\n\nUse Start to try again or Disable to turn off the start at boot option.", + "menu_options": { + "addon_disable_boot": "[%key:common::action::disable%]", + "addon_execute_start": "[%key:common::action::start%]" + } + } } - } + }, + "title": "Add-on failed to start at boot" }, + "issue_addon_deprecated_addon": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not uninstall the add-on. Check the Supervisor logs for more details." + }, + "step": { + "addon_execute_remove": { + "description": "Add-on {addon} is marked deprecated by the developer. This means it is no longer being maintained and so may break or become a security issue over time.\n\nReview the [readme]({addon_info}) and [documentation]({addon_documentation}) of the add-on to see if the developer provided instructions.\n\nSelecting **Submit** will uninstall this deprecated add-on. Alternatively, you can check [Home Assistant help]({help_url}) and the [community forum]({community_url}) for alternatives to migrate to." + } + } + }, + "title": "Installed add-on is deprecated" + }, + "issue_addon_detached_addon_missing": { + "description": "Repository for add-on {addon} is missing. This means it will not get updates, and backups may not be restored correctly as the Home Assistant Supervisor may not be able to build/download the resources required.\n\nPlease check the [add-on's documentation]({addon_url}) for installation instructions and add the repository to the store.", + "title": "Missing repository for an installed add-on" + }, + "issue_addon_detached_addon_removed": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not uninstall the add-on. Check the Supervisor logs for more details." + }, + "step": { + "addon_execute_remove": { + "description": "Add-on {addon} has been removed from the repository it was installed from. This means it will not get updates, and backups may not be restored correctly as the Home Assistant Supervisor may not be able to build/download the resources required.\n\nSelecting **Submit** will uninstall this deprecated add-on. Alternatively, you can check [Home Assistant help]({help_url}) and the [community forum]({community_url}) for alternatives to migrate to." + } + } + }, + "title": "Installed add-on has been removed from repository" + }, + "issue_addon_pwned": { + "description": "Add-on {addon} uses secrets/passwords in its configuration which are detected as not secure. See [pwned passwords and secrets]({more_info_pwned}) for more information on this issue.", + "title": "Insecure secrets detected in add-on configuration" + }, + "issue_mount_mount_failed": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not apply the fix. Check the Supervisor logs for more details." + }, + "step": { + "fix_menu": { + "description": "Could not connect to `{reference}`. Check host logs for errors from the mount service for more details.\n\nUse reload to try to connect again. If you need to update `{reference}`, go to [storage]({storage_url}).", + "menu_options": { + "mount_execute_reload": "[%key:common::action::reload%]", + "mount_execute_remove": "Remove" + } + } + } + }, + "title": "Network storage device failed" + }, + "issue_system_disk_lifetime": { + "description": "The data disk has exceeded 90% of its expected lifespan. The disk may soon malfunction which can lead to data loss. You should replace it soon and migrate your data.", + "title": "Disk lifetime exceeding 90%" + }, + "issue_system_docker_config": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "One or more of the restarts failed. Check the Supervisor logs for more details." + }, + "step": { + "system_execute_rebuild": { + "description": "The default configuration for add-ons and Home Assistant has changed. To update the configuration with the new defaults, a restart is required for the following:\n\n- {components}" + } + } + }, + "title": "Restart(s) required" + }, + "issue_system_free_space": { + "description": "The data disk has only {free_space}GB free space left. This may cause issues with system stability and interfere with functionality such as backups and updates. See [clear up storage]({more_info_free_space}) for tips on how to free up space.", + "title": "Data disk is running low on free space" + }, + "issue_system_multiple_data_disks": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not rename the filesystem. Check the Supervisor logs for more details." + }, + "step": { + "fix_menu": { + "description": "At `{reference}`, we detected another active data disk (containing a file system `hassos-data` from another Home Assistant installation).\n\nYou need to decide what to do with it. Otherwise Home Assistant might choose the wrong data disk at system reboot.\n\nIf you don't want to use this data disk, unplug it from your system. If you leave it plugged in, choose one of the following options:", + "menu_options": { + "system_adopt_data_disk": "Use the detected data disk instead of the current system", + "system_rename_data_disk": "Mark as inactive data disk (rename file system)" + } + }, + "system_adopt_data_disk": { + "description": "Select **Submit** to make `{reference}` the active data disk. The one and only.\n\nYou won't have access anymore to the current Home Assistant data (will be marked as inactive data disk). After reboot, your system will be in the state of the Home Assistant data on `{reference}`." + } + } + }, + "title": "Multiple data disks detected" + }, + "issue_system_reboot_required": { + "fix_flow": { + "abort": { + "apply_suggestion_fail": "Could not reboot the system. Check the Supervisor logs for more details." + }, + "step": { + "system_execute_reboot": { + "description": "Settings were changed which require a system reboot to take effect.\n\nThis fix will initiate a system reboot which will make Home Assistant and all the Add-ons inaccessible for a brief period." + } + } + }, + "title": "Reboot required" + }, + "unhealthy": { + "description": "System is currently unhealthy due to {reason}. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - {reason}" + }, + "unhealthy_docker": { + "description": "System is currently unhealthy because Docker is configured incorrectly. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Docker misconfigured" + }, + "unhealthy_duplicate_os_installation": { + "description": "System is currently unhealthy because it has detected multiple Home Assistant OS installations. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Duplicate Home Assistant OS installation" + }, + "unhealthy_oserror_bad_message": { + "description": "System is currently unhealthy because the operating system has reported an OS error: Bad message. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Operating System error: Bad message" + }, + "unhealthy_privileged": { + "description": "System is currently unhealthy because it does not have privileged access to the docker runtime. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Not privileged" + }, + "unhealthy_setup": { + "description": "System is currently unhealthy because setup failed to complete. There are a number of reasons this can occur, For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Setup failed" + }, + "unhealthy_supervisor": { + "description": "System is currently unhealthy because an attempt to update Supervisor to the latest version has failed. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Supervisor update failed" + }, + "unhealthy_untrusted": { + "description": "System is currently unhealthy because it has detected untrusted code or images in use. For troubleshooting information, select Learn more.", + "title": "Unhealthy system - Untrusted code" + }, + "unsupported": { + "description": "System is unsupported due to {reason}. For troubleshooting information, select Learn more.", + "title": "Unsupported system - {reason}" + }, + "unsupported_apparmor": { + "description": "System is unsupported because AppArmor is working incorrectly and add-ons are running in an unprotected and insecure way. For troubleshooting information, select Learn more.", + "title": "Unsupported system - AppArmor issues" + }, + "unsupported_cgroup_version": { + "description": "System is unsupported because the wrong version of Docker CGroup is in use. Use the link to learn the correct version and how to fix this.", + "title": "Unsupported system - CGroup version" + }, + "unsupported_connectivity_check": { + "description": "System is unsupported because Home Assistant cannot determine when an Internet connection is available. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Connectivity check disabled" + }, + "unsupported_content_trust": { + "description": "System is unsupported because Home Assistant cannot verify content being run is trusted and not modified by attackers. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Content-trust check disabled" + }, + "unsupported_dbus": { + "description": "System is unsupported because D-Bus is working incorrectly. Many things fail without this as Supervisor cannot communicate with the host. For troubleshooting information, select Learn more.", + "title": "Unsupported system - D-Bus issues" + }, + "unsupported_dns_server": { + "description": "System is unsupported because the provided DNS server does not work correctly and the fallback DNS option has been disabled. For troubleshooting information, select Learn more.", + "title": "Unsupported system - DNS server issues" + }, + "unsupported_docker_configuration": { + "description": "System is unsupported because the Docker daemon is running in an unexpected way. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Docker misconfigured" + }, + "unsupported_docker_version": { + "description": "System is unsupported because the Docker version is out of date. For information about the required version and how to fix this, select Learn more.", + "title": "Unsupported system - Docker version" + }, + "unsupported_home_assistant_core_version": { + "description": "System is unsupported because the Home Assistant Core version in use is not supported. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Home Assistant Core version" + }, + "unsupported_job_conditions": { + "description": "System is unsupported because one or more job conditions have been disabled which protect from unexpected failures and breakages. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Protections disabled" + }, + "unsupported_lxc": { + "description": "System is unsupported because it is being run in an LXC virtual machine. For troubleshooting information, select Learn more.", + "title": "Unsupported system - LXC detected" + }, + "unsupported_network_manager": { + "description": "System is unsupported because Network Manager is missing, inactive or misconfigured. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Network Manager issues" + }, + "unsupported_os": { + "description": "System is unsupported because the operating system in use is not tested or maintained for use with Supervisor. For information about supported operating systems and how to fix this, select Learn more.", + "title": "Unsupported system - Operating System" + }, + "unsupported_os_agent": { + "description": "System is unsupported because OS-Agent is missing, inactive or misconfigured. For troubleshooting information, select Learn more.", + "title": "Unsupported system - OS-Agent issues" + }, + "unsupported_os_version": { + "description": "System is unsupported because the Home Assistant OS version in use is not supported. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Home Assistant OS version" + }, + "unsupported_restart_policy": { + "description": "System is unsupported because a Docker container has a restart policy set which could cause issues on startup. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Container restart policy" + }, + "unsupported_software": { + "description": "System is unsupported because additional software outside the Home Assistant ecosystem has been detected. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Unsupported software" + }, + "unsupported_source_mods": { + "description": "System is unsupported because Supervisor source code has been modified. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Supervisor source modifications" + }, + "unsupported_supervisor_version": { + "description": "System is unsupported because an out-of-date version of Supervisor is in use and auto-update has been disabled. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Supervisor version" + }, + "unsupported_systemd": { + "description": "System is unsupported because Systemd is missing, inactive or misconfigured. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Systemd issues" + }, + "unsupported_systemd_journal": { + "description": "System is unsupported because Systemd Journal and/or the gateway service is missing, inactive or misconfigured. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Systemd Journal issues" + }, + "unsupported_systemd_resolved": { + "description": "System is unsupported because Systemd Resolved is missing, inactive or misconfigured. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Systemd-Resolved issues" + }, + "unsupported_virtualization_image": { + "description": "System is unsupported because the Home Assistant OS image in use is not intended for use in a virtualized environment. For troubleshooting information, select Learn more.", + "title": "Unsupported system - Incorrect OS image for virtualization" + } + }, + "services": { "addon_restart": { - "name": "Restart add-on", "description": "Restarts an add-on.", "fields": { "addon": { - "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]", - "description": "The add-on to restart." + "description": "The add-on to restart.", + "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]" } - } + }, + "name": "Restart add-on" + }, + "addon_start": { + "description": "Starts an add-on.", + "fields": { + "addon": { + "description": "The add-on to start.", + "name": "Add-on" + } + }, + "name": "Start add-on" }, "addon_stdin": { - "name": "Write data to add-on stdin", "description": "Writes data to the add-on's standard input.", "fields": { "addon": { - "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]", - "description": "The add-on to write to." + "description": "The add-on to write to.", + "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]" } - } + }, + "name": "Write data to add-on stdin" }, "addon_stop": { - "name": "Stop add-on", "description": "Stops an add-on.", "fields": { "addon": { - "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]", - "description": "The add-on to stop." + "description": "The add-on to stop.", + "name": "[%key:component::hassio::services::addon_start::fields::addon::name%]" } - } - }, - "host_reboot": { - "name": "Reboot the host system", - "description": "Reboots the host system." - }, - "host_shutdown": { - "name": "Power off the host system", - "description": "Powers off the host system." + }, + "name": "Stop add-on" }, "backup_full": { - "name": "Create a full backup", "description": "Creates a full backup.", "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Optional (default = current date and time)." - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "Password to protect the backup with." - }, "compressed": { - "name": "Compressed", - "description": "Compresses the backup files." - }, - "location": { - "name": "[%key:common::config_flow::data::location%]", - "description": "Name of a backup network storage to host backups." + "description": "Compresses the backup files.", + "name": "Compressed" }, "homeassistant_exclude_database": { - "name": "Home Assistant exclude database", - "description": "Exclude the Home Assistant database file from the backup." + "description": "Exclude the Home Assistant database file from the backup.", + "name": "Home Assistant exclude database" + }, + "location": { + "description": "Name of a backup network storage to host backups.", + "name": "[%key:common::config_flow::data::location%]" + }, + "name": { + "description": "Optional (default = current date and time).", + "name": "[%key:common::config_flow::data::name%]" + }, + "password": { + "description": "Password to protect the backup with.", + "name": "[%key:common::config_flow::data::password%]" } - } + }, + "name": "Create a full backup" }, "backup_partial": { - "name": "Create a partial backup", "description": "Creates a partial backup.", "fields": { - "homeassistant": { - "name": "Home Assistant settings", - "description": "Includes Home Assistant settings in the backup." - }, "addons": { - "name": "Add-ons", - "description": "List of add-ons to include in the backup. Use the name slug of each add-on." - }, - "folders": { - "name": "Folders", - "description": "List of directories to include in the backup." - }, - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "[%key:component::hassio::services::backup_full::fields::name::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::hassio::services::backup_full::fields::password::description%]" + "description": "List of add-ons to include in the backup. Use the name slug of each add-on.", + "name": "Add-ons" }, "compressed": { - "name": "[%key:component::hassio::services::backup_full::fields::compressed::name%]", - "description": "[%key:component::hassio::services::backup_full::fields::compressed::description%]" - }, - "location": { - "name": "[%key:common::config_flow::data::location%]", - "description": "[%key:component::hassio::services::backup_full::fields::location::description%]" - }, - "homeassistant_exclude_database": { - "name": "[%key:component::hassio::services::backup_full::fields::homeassistant_exclude_database::name%]", - "description": "[%key:component::hassio::services::backup_full::fields::homeassistant_exclude_database::description%]" - } - } - }, - "restore_full": { - "name": "Restore from full backup", - "description": "Restores from full backup.", - "fields": { - "slug": { - "name": "Slug", - "description": "Slug of backup to restore from." - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "Optional password." - } - } - }, - "restore_partial": { - "name": "Restore from partial backup", - "description": "Restores from a partial backup.", - "fields": { - "slug": { - "name": "[%key:component::hassio::services::restore_full::fields::slug::name%]", - "description": "[%key:component::hassio::services::restore_full::fields::slug::description%]" - }, - "homeassistant": { - "name": "[%key:component::hassio::services::backup_partial::fields::homeassistant::name%]", - "description": "Restores Home Assistant." + "description": "[%key:component::hassio::services::backup_full::fields::compressed::description%]", + "name": "[%key:component::hassio::services::backup_full::fields::compressed::name%]" }, "folders": { - "name": "[%key:component::hassio::services::backup_partial::fields::folders::name%]", - "description": "List of directories to restore from the backup." + "description": "List of directories to include in the backup.", + "name": "Folders" }, - "addons": { - "name": "[%key:component::hassio::services::backup_partial::fields::addons::name%]", - "description": "List of add-ons to restore from the backup. Use the name slug of each add-on." + "homeassistant": { + "description": "Includes Home Assistant settings in the backup.", + "name": "Home Assistant settings" + }, + "homeassistant_exclude_database": { + "description": "[%key:component::hassio::services::backup_full::fields::homeassistant_exclude_database::description%]", + "name": "[%key:component::hassio::services::backup_full::fields::homeassistant_exclude_database::name%]" + }, + "location": { + "description": "[%key:component::hassio::services::backup_full::fields::location::description%]", + "name": "[%key:common::config_flow::data::location%]" + }, + "name": { + "description": "[%key:component::hassio::services::backup_full::fields::name::description%]", + "name": "[%key:common::config_flow::data::name%]" }, "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::hassio::services::restore_full::fields::password::description%]" + "description": "[%key:component::hassio::services::backup_full::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" } - } + }, + "name": "Create a partial backup" + }, + "host_reboot": { + "description": "Reboots the host system.", + "name": "Reboot the host system" + }, + "host_shutdown": { + "description": "Powers off the host system.", + "name": "Power off the host system" + }, + "restore_full": { + "description": "Restores from full backup.", + "fields": { + "password": { + "description": "Optional password.", + "name": "[%key:common::config_flow::data::password%]" + }, + "slug": { + "description": "Slug of backup to restore from.", + "name": "Slug" + } + }, + "name": "Restore from full backup" + }, + "restore_partial": { + "description": "Restores from a partial backup.", + "fields": { + "addons": { + "description": "List of add-ons to restore from the backup. Use the name slug of each add-on.", + "name": "[%key:component::hassio::services::backup_partial::fields::addons::name%]" + }, + "folders": { + "description": "List of directories to restore from the backup.", + "name": "[%key:component::hassio::services::backup_partial::fields::folders::name%]" + }, + "homeassistant": { + "description": "Restores Home Assistant.", + "name": "[%key:component::hassio::services::backup_partial::fields::homeassistant::name%]" + }, + "password": { + "description": "[%key:component::hassio::services::restore_full::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "slug": { + "description": "[%key:component::hassio::services::restore_full::fields::slug::description%]", + "name": "[%key:component::hassio::services::restore_full::fields::slug::name%]" + } + }, + "name": "Restore from partial backup" + } + }, + "system_health": { + "info": { + "agent_version": "Agent version", + "board": "Board", + "disk_total": "Disk total", + "disk_used": "Disk used", + "docker_version": "Docker version", + "healthy": "Healthy", + "host_os": "Host operating system", + "installed_addons": "Installed add-ons", + "nameservers": "Nameservers", + "supervisor_api": "Supervisor API", + "supervisor_version": "Supervisor version", + "supported": "Supported", + "update_channel": "Update channel", + "version_api": "Version API" } } } diff --git a/homeassistant/components/hdmi_cec/strings.json b/homeassistant/components/hdmi_cec/strings.json index 70848b0514e..c2ace220472 100644 --- a/homeassistant/components/hdmi_cec/strings.json +++ b/homeassistant/components/hdmi_cec/strings.json @@ -1,70 +1,70 @@ { "services": { "power_on": { - "name": "Power on", - "description": "Powers on all devices which support this function." + "description": "Powers on all devices which support this function.", + "name": "Power on" }, "select_device": { - "name": "Select device", "description": "Selects an HDMI device.", "fields": { "device": { - "name": "[%key:common::config_flow::data::device%]", - "description": "Address of device to select. Can be an entity ID, physical address or alias from configuration." + "description": "Address of device to select. Can be an entity ID, physical address or alias from configuration.", + "name": "[%key:common::config_flow::data::device%]" } - } + }, + "name": "Select device" }, "send_command": { - "name": "Send command", "description": "Sends CEC command into HDMI CEC capable adapter.", "fields": { "att": { - "name": "Att", - "description": "Optional parameters." + "description": "Optional parameters.", + "name": "Att" }, "cmd": { - "name": "Command", - "description": "Command itself. Could be decimal number or string with hexadecimal notation: \"0x10\"." + "description": "Command itself. Could be decimal number or string with hexadecimal notation: \"0x10\".", + "name": "Command" }, "dst": { - "name": "Destination", - "description": "Destination for command. Could be decimal number or string with hexadecimal notation: \"0x10\"." + "description": "Destination for command. Could be decimal number or string with hexadecimal notation: \"0x10\".", + "name": "Destination" }, "raw": { - "name": "Raw", - "description": "Raw CEC command in format \"00:00:00:00\" where first two digits are source and destination, second byte is command and optional other bytes are command parameters. If raw command specified, other params are ignored." + "description": "Raw CEC command in format \"00:00:00:00\" where first two digits are source and destination, second byte is command and optional other bytes are command parameters. If raw command specified, other params are ignored.", + "name": "Raw" }, "src": { - "name": "Source", - "description": "Source of command. Could be decimal number or string with hexadecimal notation: \"0x10\"." + "description": "Source of command. Could be decimal number or string with hexadecimal notation: \"0x10\".", + "name": "Source" } - } + }, + "name": "Send command" }, "standby": { - "name": "[%key:common::state::standby%]", - "description": "Places in standby all devices which support this function." + "description": "Places in standby all devices which support this function.", + "name": "[%key:common::state::standby%]" }, "update": { - "name": "Update", - "description": "Updates devices state from network." + "description": "Updates devices state from network.", + "name": "Update" }, "volume": { - "name": "Volume", "description": "Increases or decreases the system volume.", "fields": { "down": { - "name": "Down", - "description": "Decreases the volume x levels." + "description": "Decreases the volume x levels.", + "name": "Down" }, "mute": { - "name": "Mute", - "description": "Mutes the audio system." + "description": "Mutes the audio system.", + "name": "Mute" }, "up": { - "name": "Up", - "description": "Increases the volume x levels." + "description": "Increases the volume x levels.", + "name": "Up" } - } + }, + "name": "Volume" } } } diff --git a/homeassistant/components/heos/icons.json b/homeassistant/components/heos/icons.json index b03f15a4b0f..916aa82f391 100644 --- a/homeassistant/components/heos/icons.json +++ b/homeassistant/components/heos/icons.json @@ -3,21 +3,21 @@ "get_queue": { "service": "mdi:playlist-music" }, - "remove_from_queue": { - "service": "mdi:playlist-remove" - }, - "move_queue_item": { - "service": "mdi:playlist-edit" + "group_volume_down": { + "service": "mdi:volume-low" }, "group_volume_set": { "service": "mdi:volume-medium" }, - "group_volume_down": { - "service": "mdi:volume-low" - }, "group_volume_up": { "service": "mdi:volume-high" }, + "move_queue_item": { + "service": "mdi:playlist-edit" + }, + "remove_from_queue": { + "service": "mdi:playlist-remove" + }, "sign_in": { "service": "mdi:login" }, diff --git a/homeassistant/components/heos/strings.json b/homeassistant/components/heos/strings.json index 76b71f70e28..16cbb5af8ae 100644 --- a/homeassistant/components/heos/strings.json +++ b/homeassistant/components/heos/strings.json @@ -1,159 +1,74 @@ { "config": { - "step": { - "user": { - "title": "Connect to HEOS", - "description": "Please enter the host name or IP address of a HEOS-capable product to access your HEOS System.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Host name or IP address of a HEOS-capable product (preferably one connected via wire to the network)." - } - }, - "confirm_discovery": { - "title": "Discovered HEOS System", - "description": "Do you want to add your HEOS devices to Home Assistant?" - }, - "reconfigure": { - "title": "Reconfigure HEOS", - "description": "Change the host name or IP address of the HEOS-capable product used to access your HEOS System.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "[%key:component::heos::config::step::user::data_description::host%]" - } - }, - "reauth_confirm": { - "title": "Reauthenticate HEOS", - "description": "Please update your HEOS Account credentials. Alternatively, you can clear the credentials if you do not want the integration to access favorites, playlists, and streaming services.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::heos::options::step::init::data_description::username%]", - "password": "[%key:component::heos::options::step::init::data_description::password%]" - } - } - }, - "error": { - "username_missing": "[%key:component::heos::options::error::username_missing%]", - "password_missing": "[%key:component::heos::options::error::password_missing%]", - "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_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "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%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" - } - }, - "options": { - "step": { - "init": { - "title": "HEOS options", - "description": "You can sign in to your HEOS Account to access favorites, streaming services, and other features. Clearing the credentials will sign out of your account.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The username or email address of your HEOS Account.", - "password": "The password to your HEOS Account." - } - } }, "error": { - "username_missing": "Username is missing", - "password_missing": "Password is missing", + "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%]" - } - }, - "services": { - "group_volume_set": { - "name": "Set group volume", - "description": "Sets the group's volume while preserving member volume ratios.", - "fields": { - "volume_level": { - "name": "Level", - "description": "The volume. 0 is inaudible, 1 is the maximum volume." - } - } + "password_missing": "[%key:component::heos::options::error::password_missing%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "username_missing": "[%key:component::heos::options::error::username_missing%]" }, - "get_queue": { - "name": "Get queue", - "description": "Retrieves the queue of the media player." - }, - "remove_from_queue": { - "name": "Remove from queue", - "description": "Removes items from the play queue.", - "fields": { - "queue_ids": { - "name": "Queue IDs", - "description": "The IDs (indexes) of the items in the queue to remove." - } - } - }, - "move_queue_item": { - "name": "Move queue item", - "description": "Moves one or more items within the play queue.", - "fields": { - "queue_ids": { - "name": "Queue IDs", - "description": "The IDs (indexes) of the items in the queue to move." + "step": { + "confirm_discovery": { + "description": "Do you want to add your HEOS devices to Home Assistant?", + "title": "Discovered HEOS System" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, - "destination_position": { - "name": "Destination position", - "description": "The position index in the queue to move the items to." - } - } - }, - "group_volume_down": { - "name": "Turn down group volume", - "description": "Turns down the group volume." - }, - "group_volume_up": { - "name": "Turn up group volume", - "description": "Turns up the group volume." - }, - "sign_in": { - "name": "Sign in", - "description": "Signs in to a HEOS account.", - "fields": { - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "The username or email of the HEOS account." + "data_description": { + "password": "[%key:component::heos::options::step::init::data_description::password%]", + "username": "[%key:component::heos::options::step::init::data_description::username%]" }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "The password of the HEOS account." - } + "description": "Please update your HEOS Account credentials. Alternatively, you can clear the credentials if you do not want the integration to access favorites, playlists, and streaming services.", + "title": "Reauthenticate HEOS" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "[%key:component::heos::config::step::user::data_description::host%]" + }, + "description": "Change the host name or IP address of the HEOS-capable product used to access your HEOS System.", + "title": "Reconfigure HEOS" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Host name or IP address of a HEOS-capable product (preferably one connected via wire to the network)." + }, + "description": "Please enter the host name or IP address of a HEOS-capable product to access your HEOS System.", + "title": "Connect to HEOS" } - }, - "sign_out": { - "name": "Sign out", - "description": "Signs out of the HEOS account." } }, "exceptions": { "action_error": { "message": "Unable to {action}: {error}" }, - "entity_not_grouped": { - "message": "Entity {entity_id} is not joined to a group" - }, "entity_not_found": { "message": "Entity {entity_id} was not found" }, + "entity_not_grouped": { + "message": "Entity {entity_id} is not joined to a group" + }, "integration_not_loaded": { "message": "The HEOS integration is not loaded" }, + "not_heos_media_player": { + "message": "Entity {entity_id} is not a HEOS media player entity" + }, "sign_in_auth_error": { "message": "Failed to sign in: Invalid username and/or password" }, @@ -163,9 +78,6 @@ "sign_out_error": { "message": "Unable to sign out: {error}" }, - "not_heos_media_player": { - "message": "Entity {entity_id} is not a HEOS media player entity" - }, "unable_to_connect": { "message": "Unable to connect to {host}" }, @@ -181,8 +93,96 @@ }, "issues": { "sign_in_out_deprecated": { - "title": "HEOS Actions Deprecated", - "description": "Actions 'heos.sign_in' and 'heos.sign_out' are deprecated and will be removed in the 2025.8.0 release. Enter your HEOS Account credentials in the configuration options and the integration will manage authentication automatically." + "description": "Actions 'heos.sign_in' and 'heos.sign_out' are deprecated and will be removed in the 2025.8.0 release. Enter your HEOS Account credentials in the configuration options and the integration will manage authentication automatically.", + "title": "HEOS Actions Deprecated" + } + }, + "options": { + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "password_missing": "Password is missing", + "unknown": "[%key:common::config_flow::error::unknown%]", + "username_missing": "Username is missing" + }, + "step": { + "init": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password to your HEOS Account.", + "username": "The username or email address of your HEOS Account." + }, + "description": "You can sign in to your HEOS Account to access favorites, streaming services, and other features. Clearing the credentials will sign out of your account.", + "title": "HEOS options" + } + } + }, + "services": { + "get_queue": { + "description": "Retrieves the queue of the media player.", + "name": "Get queue" + }, + "group_volume_down": { + "description": "Turns down the group volume.", + "name": "Turn down group volume" + }, + "group_volume_set": { + "description": "Sets the group's volume while preserving member volume ratios.", + "fields": { + "volume_level": { + "description": "The volume. 0 is inaudible, 1 is the maximum volume.", + "name": "Level" + } + }, + "name": "Set group volume" + }, + "group_volume_up": { + "description": "Turns up the group volume.", + "name": "Turn up group volume" + }, + "move_queue_item": { + "description": "Moves one or more items within the play queue.", + "fields": { + "destination_position": { + "description": "The position index in the queue to move the items to.", + "name": "Destination position" + }, + "queue_ids": { + "description": "The IDs (indexes) of the items in the queue to move.", + "name": "Queue IDs" + } + }, + "name": "Move queue item" + }, + "remove_from_queue": { + "description": "Removes items from the play queue.", + "fields": { + "queue_ids": { + "description": "The IDs (indexes) of the items in the queue to remove.", + "name": "Queue IDs" + } + }, + "name": "Remove from queue" + }, + "sign_in": { + "description": "Signs in to a HEOS account.", + "fields": { + "password": { + "description": "The password of the HEOS account.", + "name": "[%key:common::config_flow::data::password%]" + }, + "username": { + "description": "The username or email of the HEOS account.", + "name": "[%key:common::config_flow::data::username%]" + } + }, + "name": "Sign in" + }, + "sign_out": { + "description": "Signs out of the HEOS account.", + "name": "Sign out" } } } diff --git a/homeassistant/components/here_travel_time/strings.json b/homeassistant/components/here_travel_time/strings.json index ec457bf7099..631ce1cbf77 100644 --- a/homeassistant/components/here_travel_time/strings.json +++ b/homeassistant/components/here_travel_time/strings.json @@ -1,117 +1,117 @@ { "config": { - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "mode": "Travel mode" - } - }, - "origin_menu": { - "title": "Choose origin", - "menu_options": { - "origin_coordinates": "Using a map location", - "origin_entity": "Using an entity" - } - }, - "origin_coordinates": { - "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]", - "data": { - "origin": "Origin as GPS coordinates" - } - }, - "origin_entity_id": { - "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]", - "data": { - "origin_entity_id": "Origin using an entity" - } - }, - "destination_menu": { - "title": "Choose destination", - "menu_options": { - "destination_coordinates": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_coordinates%]", - "destination_entity": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_entity%]" - } - }, - "destination_coordinates": { - "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]", - "data": { - "destination": "Destination as GPS coordinates" - } - }, - "destination_entity_id": { - "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]", - "data": { - "destination_entity_id": "Destination using an entity" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "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_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "options": { "step": { - "init": { + "destination_coordinates": { "data": { - "traffic_mode": "Use traffic and time-aware routing", - "route_mode": "Route mode" + "destination": "Destination as GPS coordinates" }, - "data_description": { - "traffic_mode": "Needed for defining arrival/departure times" - } + "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]" }, - "time_menu": { - "title": "Choose time type", + "destination_entity_id": { + "data": { + "destination_entity_id": "Destination using an entity" + }, + "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]" + }, + "destination_menu": { "menu_options": { - "departure_time": "Configure a departure time", - "arrival_time": "Configure an arrival time", - "no_time": "Do not configure a time" - } + "destination_coordinates": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_coordinates%]", + "destination_entity": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_entity%]" + }, + "title": "Choose destination" }, - "departure_time": { - "title": "Choose departure time", + "origin_coordinates": { "data": { - "departure_time": "Departure time" - } + "origin": "Origin as GPS coordinates" + }, + "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]" }, - "arrival_time": { - "title": "Choose arrival time", + "origin_entity_id": { "data": { - "arrival_time": "Arrival time" + "origin_entity_id": "Origin using an entity" + }, + "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]" + }, + "origin_menu": { + "menu_options": { + "origin_coordinates": "Using a map location", + "origin_entity": "Using an entity" + }, + "title": "Choose origin" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "mode": "Travel mode", + "name": "[%key:common::config_flow::data::name%]" } } } }, "entity": { "sensor": { + "destination": { + "name": "Destination" + }, + "distance": { + "name": "Distance" + }, "duration": { "name": "Duration" }, "duration_in_traffic": { "name": "Duration in traffic" }, - "distance": { - "name": "Distance" - }, "origin": { "name": "Origin" - }, - "destination": { - "name": "Destination" } } }, "issues": { "multiple_here_travel_time_entries": { - "title": "More than one HERE Travel Time integration detected", - "description": "HERE deprecated the previous free tier. The new Base Plan has only 5000 instead of the previous 30000 free requests per month.\n\nSince you have more than one HERE Travel Time integration configured, you will need to disable or remove the additional integrations to avoid exceeding the free request limit.\nYou can ignore this issue if you are okay with the additional cost." + "description": "HERE deprecated the previous free tier. The new Base Plan has only 5000 instead of the previous 30000 free requests per month.\n\nSince you have more than one HERE Travel Time integration configured, you will need to disable or remove the additional integrations to avoid exceeding the free request limit.\nYou can ignore this issue if you are okay with the additional cost.", + "title": "More than one HERE Travel Time integration detected" + } + }, + "options": { + "step": { + "arrival_time": { + "data": { + "arrival_time": "Arrival time" + }, + "title": "Choose arrival time" + }, + "departure_time": { + "data": { + "departure_time": "Departure time" + }, + "title": "Choose departure time" + }, + "init": { + "data": { + "route_mode": "Route mode", + "traffic_mode": "Use traffic and time-aware routing" + }, + "data_description": { + "traffic_mode": "Needed for defining arrival/departure times" + } + }, + "time_menu": { + "menu_options": { + "arrival_time": "Configure an arrival time", + "departure_time": "Configure a departure time", + "no_time": "Do not configure a time" + }, + "title": "Choose time type" + } } } } diff --git a/homeassistant/components/hisense_aehw4a1/strings.json b/homeassistant/components/hisense_aehw4a1/strings.json index 58e6b057c12..f69e25cf356 100644 --- a/homeassistant/components/hisense_aehw4a1/strings.json +++ b/homeassistant/components/hisense_aehw4a1/strings.json @@ -1,13 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up Hisense AEH-W4A1?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/history_stats/strings.json b/homeassistant/components/history_stats/strings.json index 7c4a1cfa677..d08e1ec4329 100644 --- a/homeassistant/components/history_stats/strings.json +++ b/homeassistant/components/history_stats/strings.json @@ -1,5 +1,4 @@ { - "title": "History Stats", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" @@ -8,20 +7,24 @@ "only_two_keys_allowed": "The sensor configuration must provide two out of 'start', 'end', 'duration'" }, "step": { - "user": { - "description": "Create a history stats sensor", + "options": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "Entity", - "state": "State", - "type": "Type" + "duration": "Duration", + "end": "End", + "entity_id": "[%key:component::history_stats::config::step::user::data::entity_id%]", + "start": "Start", + "state": "[%key:component::history_stats::config::step::user::data::state%]", + "type": "[%key:component::history_stats::config::step::user::data::type%]" }, "data_description": { - "name": "Name for the created entity.", - "entity_id": "Entity to get statistics from.", - "state": "The states you want to track from the entity.", - "type": "The type of sensor, one of 'time', 'ratio' or 'count'" - } + "duration": "Duration of the measure.", + "end": "When to stop the measure (timestamp or datetime). Can be a template", + "entity_id": "[%key:component::history_stats::config::step::user::data_description::entity_id%]", + "start": "When to start the measure (timestamp or datetime). Can be a template.", + "state": "[%key:component::history_stats::config::step::user::data_description::state%]", + "type": "[%key:component::history_stats::config::step::user::data_description::type%]" + }, + "description": "Read the documentation for further details on how to configure the history stats sensor using these options." }, "state": { "data": { @@ -33,24 +36,20 @@ "state": "[%key:component::history_stats::config::step::user::data_description::state%]" } }, - "options": { - "description": "Read the documentation for further details on how to configure the history stats sensor using these options.", + "user": { "data": { - "entity_id": "[%key:component::history_stats::config::step::user::data::entity_id%]", - "state": "[%key:component::history_stats::config::step::user::data::state%]", - "type": "[%key:component::history_stats::config::step::user::data::type%]", - "start": "Start", - "end": "End", - "duration": "Duration" + "entity_id": "Entity", + "name": "[%key:common::config_flow::data::name%]", + "state": "State", + "type": "Type" }, "data_description": { - "entity_id": "[%key:component::history_stats::config::step::user::data_description::entity_id%]", - "state": "[%key:component::history_stats::config::step::user::data_description::state%]", - "type": "[%key:component::history_stats::config::step::user::data_description::type%]", - "start": "When to start the measure (timestamp or datetime). Can be a template.", - "end": "When to stop the measure (timestamp or datetime). Can be a template", - "duration": "Duration of the measure." - } + "entity_id": "Entity to get statistics from.", + "name": "Name for the created entity.", + "state": "The states you want to track from the entity.", + "type": "The type of sensor, one of 'time', 'ratio' or 'count'" + }, + "description": "Create a history stats sensor" } } }, @@ -63,39 +62,40 @@ }, "step": { "init": { - "description": "[%key:component::history_stats::config::step::options::description%]", "data": { - "entity_id": "[%key:component::history_stats::config::step::user::data::entity_id%]", - "state": "[%key:component::history_stats::config::step::user::data::state%]", - "type": "[%key:component::history_stats::config::step::user::data::type%]", - "start": "[%key:component::history_stats::config::step::options::data::start%]", + "duration": "[%key:component::history_stats::config::step::options::data::duration%]", "end": "[%key:component::history_stats::config::step::options::data::end%]", - "duration": "[%key:component::history_stats::config::step::options::data::duration%]" + "entity_id": "[%key:component::history_stats::config::step::user::data::entity_id%]", + "start": "[%key:component::history_stats::config::step::options::data::start%]", + "state": "[%key:component::history_stats::config::step::user::data::state%]", + "type": "[%key:component::history_stats::config::step::user::data::type%]" }, "data_description": { - "entity_id": "[%key:component::history_stats::config::step::user::data_description::entity_id%]", - "state": "[%key:component::history_stats::config::step::user::data_description::state%]", - "type": "[%key:component::history_stats::config::step::user::data_description::type%]", - "start": "[%key:component::history_stats::config::step::options::data_description::start%]", + "duration": "[%key:component::history_stats::config::step::options::data_description::duration%]", "end": "[%key:component::history_stats::config::step::options::data_description::end%]", - "duration": "[%key:component::history_stats::config::step::options::data_description::duration%]" - } + "entity_id": "[%key:component::history_stats::config::step::user::data_description::entity_id%]", + "start": "[%key:component::history_stats::config::step::options::data_description::start%]", + "state": "[%key:component::history_stats::config::step::user::data_description::state%]", + "type": "[%key:component::history_stats::config::step::user::data_description::type%]" + }, + "description": "[%key:component::history_stats::config::step::options::description%]" } } }, "selector": { "type": { "options": { - "time": "Time", + "count": "Count", "ratio": "Ratio", - "count": "Count" + "time": "Time" } } }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads history stats sensors from the YAML-configuration." + "description": "Reloads history stats sensors from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "History Stats" } diff --git a/homeassistant/components/hive/icons.json b/homeassistant/components/hive/icons.json index e4c06556906..8b8a7850afb 100644 --- a/homeassistant/components/hive/icons.json +++ b/homeassistant/components/hive/icons.json @@ -18,12 +18,12 @@ } }, "services": { - "boost_heating_on": { - "service": "mdi:radiator" - }, "boost_heating_off": { "service": "mdi:radiator-off" }, + "boost_heating_on": { + "service": "mdi:radiator" + }, "boost_hot_water": { "service": "mdi:water-boiler" } diff --git a/homeassistant/components/hive/strings.json b/homeassistant/components/hive/strings.json index 2aa17f0e005..d1d0f60a496 100644 --- a/homeassistant/components/hive/strings.json +++ b/homeassistant/components/hive/strings.json @@ -1,103 +1,48 @@ { "config": { - "step": { - "user": { - "title": "Hive login", - "description": "Enter your Hive login information.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "scan_interval": "Scan interval (seconds)" - } - }, - "2fa": { - "title": "Hive two-factor authentication", - "description": "Enter your Hive authentication code.\n\nPlease enter code 0000 to request another code.", - "data": { - "2fa": "Two-factor code" - } - }, - "configuration": { - "title": "Hive configuration", - "description": "Enter your Hive configuration.", - "data": { - "device_name": "Device name" - } - }, - "reauth": { - "title": "[%key:component::hive::config::step::user::title%]", - "description": "Re-enter your Hive login information.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown_entry": "Unable to find existing entry." }, "error": { - "invalid_username": "Failed to sign in to Hive. Your email address is not recognized.", - "invalid_password": "Failed to sign in to Hive. Incorrect password, please try again.", "invalid_code": "Failed to sign in to Hive. Your two-factor authentication code was incorrect.", + "invalid_password": "Failed to sign in to Hive. Incorrect password, please try again.", + "invalid_username": "Failed to sign in to Hive. Your email address is not recognized.", "no_internet_available": "An Internet connection is required to connect to Hive.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "unknown_entry": "Unable to find existing entry.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { "step": { - "user": { - "title": "Options for Hive", - "description": "Update the scan interval to poll for data more often.", + "2fa": { "data": { - "scan_interval": "Scan interval (seconds)" - } - } - } - }, - "services": { - "boost_heating_on": { - "name": "Boost heating on", - "description": "Sets the boost mode ON, defining the period of time and the desired target temperature for the boost.", - "fields": { - "time_period": { - "name": "[%key:component::hive::services::boost_hot_water::fields::time_period::name%]", - "description": "[%key:component::hive::services::boost_hot_water::fields::time_period::description%]" + "2fa": "Two-factor code" }, - "temperature": { - "name": "Temperature", - "description": "The target temperature for the boost period." - } - } - }, - "boost_heating_off": { - "name": "Boost heating off", - "description": "Sets the boost mode OFF.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "The entity ID to turn boost off." - } - } - }, - "boost_hot_water": { - "name": "Boost hotwater", - "description": "Sets the boost mode ON or OFF, defining the period of time for the boost.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "The entity ID to boost." + "description": "Enter your Hive authentication code.\n\nPlease enter code 0000 to request another code.", + "title": "Hive two-factor authentication" + }, + "configuration": { + "data": { + "device_name": "Device name" }, - "time_period": { - "name": "Time period", - "description": "The time period for the boost." + "description": "Enter your Hive configuration.", + "title": "Hive configuration" + }, + "reauth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, - "on_off": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Set the boost function on or off." - } + "description": "Re-enter your Hive login information.", + "title": "[%key:component::hive::config::step::user::title%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "scan_interval": "Scan interval (seconds)", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Enter your Hive login information.", + "title": "Hive login" } } }, @@ -112,11 +57,66 @@ }, "hot_water": { "state": { - "on": "[%key:common::state::on%]", "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", "schedule": "[%key:component::hive::entity::sensor::heating::state::schedule%]" } } } + }, + "options": { + "step": { + "user": { + "data": { + "scan_interval": "Scan interval (seconds)" + }, + "description": "Update the scan interval to poll for data more often.", + "title": "Options for Hive" + } + } + }, + "services": { + "boost_heating_off": { + "description": "Sets the boost mode OFF.", + "fields": { + "entity_id": { + "description": "The entity ID to turn boost off.", + "name": "Entity ID" + } + }, + "name": "Boost heating off" + }, + "boost_heating_on": { + "description": "Sets the boost mode ON, defining the period of time and the desired target temperature for the boost.", + "fields": { + "temperature": { + "description": "The target temperature for the boost period.", + "name": "Temperature" + }, + "time_period": { + "description": "[%key:component::hive::services::boost_hot_water::fields::time_period::description%]", + "name": "[%key:component::hive::services::boost_hot_water::fields::time_period::name%]" + } + }, + "name": "Boost heating on" + }, + "boost_hot_water": { + "description": "Sets the boost mode ON or OFF, defining the period of time for the boost.", + "fields": { + "entity_id": { + "description": "The entity ID to boost.", + "name": "Entity ID" + }, + "on_off": { + "description": "Set the boost function on or off.", + "name": "[%key:common::config_flow::data::mode%]" + }, + "time_period": { + "description": "The time period for the boost.", + "name": "Time period" + } + }, + "name": "Boost hotwater" + } } } diff --git a/homeassistant/components/hko/strings.json b/homeassistant/components/hko/strings.json index a537c864528..e56892d7839 100644 --- a/homeassistant/components/hko/strings.json +++ b/homeassistant/components/hko/strings.json @@ -9,10 +9,10 @@ }, "step": { "user": { - "description": "Please select a location to use for weather forecasting.", "data": { "location": "[%key:common::config_flow::data::location%]" - } + }, + "description": "Please select a location to use for weather forecasting." } } } diff --git a/homeassistant/components/hlk_sw16/strings.json b/homeassistant/components/hlk_sw16/strings.json index ba74547e355..0f3182f0f0b 100644 --- a/homeassistant/components/hlk_sw16/strings.json +++ b/homeassistant/components/hlk_sw16/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Hi-Link HLK-SW-16 device." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Hi-Link HLK-SW-16 device." + } + } } } } diff --git a/homeassistant/components/holiday/strings.json b/homeassistant/components/holiday/strings.json index 6e317b8fa7b..b44b25fa03b 100644 --- a/homeassistant/components/holiday/strings.json +++ b/homeassistant/components/holiday/strings.json @@ -1,34 +1,33 @@ { - "title": "Holiday", "config": { "abort": { "already_configured": "Already configured. Only a single configuration for country/province/categories combination is possible.", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "step": { - "user": { - "data": { - "country": "[%key:common::config_flow::data::country%]" - } - }, "options": { "data": { - "province": "Province", - "categories": "Categories" + "categories": "Categories", + "province": "Province" }, "data_description": { - "province": "Optionally choose a province / subdivision of {country}", - "categories": "Optionally choose additional holiday categories, public holidays are already included" + "categories": "Optionally choose additional holiday categories, public holidays are already included", + "province": "Optionally choose a province / subdivision of {country}" } }, "reconfigure": { "data": { - "province": "[%key:component::holiday::config::step::options::data::province%]", - "categories": "[%key:component::holiday::config::step::options::data::categories%]" + "categories": "[%key:component::holiday::config::step::options::data::categories%]", + "province": "[%key:component::holiday::config::step::options::data::province%]" }, "data_description": { - "province": "[%key:component::holiday::config::step::options::data_description::province%]", - "categories": "[%key:component::holiday::config::step::options::data_description::categories%]" + "categories": "[%key:component::holiday::config::step::options::data_description::categories%]", + "province": "[%key:component::holiday::config::step::options::data_description::province%]" + } + }, + "user": { + "data": { + "country": "[%key:common::config_flow::data::country%]" } } } @@ -68,5 +67,6 @@ "workday": "Workday" } } - } + }, + "title": "Holiday" } diff --git a/homeassistant/components/home_connect/icons.json b/homeassistant/components/home_connect/icons.json index 0e8f1c4f988..e13d412f574 100644 --- a/homeassistant/components/home_connect/icons.json +++ b/homeassistant/components/home_connect/icons.json @@ -1,32 +1,15 @@ { - "services": { - "start_program": { - "service": "mdi:play" - }, - "select_program": { - "service": "mdi:form-select" - }, - "pause_program": { - "service": "mdi:pause" - }, - "resume_program": { - "service": "mdi:play-pause" - }, - "set_option_active": { - "service": "mdi:gesture-tap" - }, - "set_option_selected": { - "service": "mdi:gesture-tap" - }, - "set_program_and_options": { - "service": "mdi:form-select" - }, - "change_setting": { - "service": "mdi:cog" - } - }, "entity": { "binary_sensor": { + "dust_box_inserted": { + "default": "mdi:download" + }, + "lifted": { + "default": "mdi:arrow-up-right-bold" + }, + "lost": { + "default": "mdi:map-marker-remove-variant" + }, "remote_control": { "default": "mdi:remote", "state": { @@ -38,15 +21,6 @@ "state": { "off": "mdi:remote-off" } - }, - "dust_box_inserted": { - "default": "mdi:download" - }, - "lifted": { - "default": "mdi:arrow-up-right-bold" - }, - "lost": { - "default": "mdi:map-marker-remove-variant" } }, "button": { @@ -67,28 +41,35 @@ } }, "number": { - "start_in_relative": { + "finish_in_relative": { "default": "mdi:progress-clock" }, - "finish_in_relative": { + "start_in_relative": { "default": "mdi:progress-clock" } }, "sensor": { - "operation_state": { - "default": "mdi:state-machine", + "bean_container_empty": { + "default": "mdi:coffee-maker", "state": { - "inactive": "mdi:stop", - "ready": "mdi:check-circle", - "delayedstart": "mdi:progress-clock", - "run": "mdi:play", - "pause": "mdi:pause", - "actionrequired": "mdi:gesture-tap", - "finished": "mdi:flag-checkered", - "error": "mdi:alert-circle", - "aborting": "mdi:close-circle" + "confirmed": "mdi:coffee-maker-check", + "present": "mdi:coffee-maker-outline" } }, + "camera_state": { + "default": "mdi:camera", + "state": { + "disabled": "mdi:camera-off", + "error": "mdi:alert-circle-outline", + "sleeping": "mdi:sleep" + } + }, + "coffee_and_milk_counter": { + "default": "mdi:coffee" + }, + "coffee_counter": { + "default": "mdi:coffee" + }, "door": { "default": "mdi:door", "state": { @@ -97,58 +78,11 @@ "open": "mdi:door-open" } }, - "program_progress": { - "default": "mdi:progress-clock" - }, - "coffee_counter": { - "default": "mdi:coffee" - }, - "powder_coffee_counter": { - "default": "mdi:coffee" - }, - "hot_water_counter": { - "default": "mdi:cup-water" - }, - "hot_water_cups_counter": { - "default": "mdi:cup" - }, - "hot_milk_counter": { - "default": "mdi:cup" - }, - "frothy_milk_counter": { - "default": "mdi:cup" - }, - "milk_counter": { - "default": "mdi:cup" - }, - "coffee_and_milk_counter": { - "default": "mdi:coffee" - }, - "ristretto_espresso_counter": { - "default": "mdi:coffee" - }, - "camera_state": { - "default": "mdi:camera", + "drip_tray_full": { + "default": "mdi:tray", "state": { - "disabled": "mdi:camera-off", - "sleeping": "mdi:sleep", - "error": "mdi:alert-circle-outline" - } - }, - "last_selected_map": { - "default": "mdi:map", - "state": { - "tempmap": "mdi:map-clock-outline", - "map1": "mdi:numeric-1", - "map2": "mdi:numeric-2", - "map3": "mdi:numeric-3" - } - }, - "refrigerator_door_alarm": { - "default": "mdi:fridge", - "state": { - "confirmed": "mdi:fridge-alert-outline", - "present": "mdi:fridge-alert" + "confirmed": "mdi:tray-full", + "present": "mdi:tray-alert" } }, "freezer_door_alarm": { @@ -165,62 +99,81 @@ "present": "mdi:thermometer-alert" } }, - "bean_container_empty": { - "default": "mdi:coffee-maker", + "frothy_milk_counter": { + "default": "mdi:cup" + }, + "hot_milk_counter": { + "default": "mdi:cup" + }, + "hot_water_counter": { + "default": "mdi:cup-water" + }, + "hot_water_cups_counter": { + "default": "mdi:cup" + }, + "last_selected_map": { + "default": "mdi:map", "state": { - "confirmed": "mdi:coffee-maker-check", - "present": "mdi:coffee-maker-outline" + "map1": "mdi:numeric-1", + "map2": "mdi:numeric-2", + "map3": "mdi:numeric-3", + "tempmap": "mdi:map-clock-outline" } }, + "milk_counter": { + "default": "mdi:cup" + }, + "operation_state": { + "default": "mdi:state-machine", + "state": { + "aborting": "mdi:close-circle", + "actionrequired": "mdi:gesture-tap", + "delayedstart": "mdi:progress-clock", + "error": "mdi:alert-circle", + "finished": "mdi:flag-checkered", + "inactive": "mdi:stop", + "pause": "mdi:pause", + "ready": "mdi:check-circle", + "run": "mdi:play" + } + }, + "powder_coffee_counter": { + "default": "mdi:coffee" + }, + "program_progress": { + "default": "mdi:progress-clock" + }, + "refrigerator_door_alarm": { + "default": "mdi:fridge", + "state": { + "confirmed": "mdi:fridge-alert-outline", + "present": "mdi:fridge-alert" + } + }, + "ristretto_espresso_counter": { + "default": "mdi:coffee" + }, "water_tank_empty": { "default": "mdi:water", "state": { "confirmed": "mdi:water-check", "present": "mdi:water-alert" } - }, - "drip_tray_full": { - "default": "mdi:tray", - "state": { - "confirmed": "mdi:tray-full", - "present": "mdi:tray-alert" - } } }, "switch": { - "power": { - "default": "mdi:power" - }, "child_lock": { "default": "mdi:lock", "state": { - "on": "mdi:lock", - "off": "mdi:lock-off" + "off": "mdi:lock-off", + "on": "mdi:lock" } }, - "cup_warmer": { - "default": "mdi:heat-wave" - }, - "refrigerator_super_mode": { - "default": "mdi:speedometer" - }, - "freezer_super_mode": { - "default": "mdi:speedometer" - }, - "eco_mode": { - "default": "mdi:sprout" - }, "cooking-oven-setting-sabbath_mode": { "default": "mdi:volume-mute" }, - "sabbath_mode": { - "default": "mdi:volume-mute" - }, - "vacation_mode": { - "default": "mdi:beach" - }, - "fresh_mode": { - "default": "mdi:leaf" + "cup_warmer": { + "default": "mdi:heat-wave" }, "dispenser_enabled": { "default": "mdi:snowflake", @@ -228,18 +181,26 @@ "off": "mdi:snowflake-off" } }, - "door-assistant_fridge": { - "default": "mdi:door" - }, "door-assistant_freezer": { "default": "mdi:door" }, - "silence_on_demand": { - "default": "mdi:volume-mute", - "state": { - "on": "mdi:volume-mute", - "off": "mdi:volume-high" - } + "door-assistant_fridge": { + "default": "mdi:door" + }, + "eco_dry": { + "default": "mdi:sprout" + }, + "eco_mode": { + "default": "mdi:sprout" + }, + "fast_pre_heat": { + "default": "mdi:fire" + }, + "freezer_super_mode": { + "default": "mdi:speedometer" + }, + "fresh_mode": { + "default": "mdi:leaf" }, "half_load": { "default": "mdi:fraction-one-half" @@ -247,18 +208,57 @@ "hygiene_plus": { "default": "mdi:silverware-clean" }, - "eco_dry": { - "default": "mdi:sprout" - }, - "fast_pre_heat": { - "default": "mdi:fire" - }, "i_dos_1_active": { "default": "mdi:numeric-1-circle" }, "i_dos_2_active": { "default": "mdi:numeric-2-circle" + }, + "power": { + "default": "mdi:power" + }, + "refrigerator_super_mode": { + "default": "mdi:speedometer" + }, + "sabbath_mode": { + "default": "mdi:volume-mute" + }, + "silence_on_demand": { + "default": "mdi:volume-mute", + "state": { + "off": "mdi:volume-high", + "on": "mdi:volume-mute" + } + }, + "vacation_mode": { + "default": "mdi:beach" } } + }, + "services": { + "change_setting": { + "service": "mdi:cog" + }, + "pause_program": { + "service": "mdi:pause" + }, + "resume_program": { + "service": "mdi:play-pause" + }, + "select_program": { + "service": "mdi:form-select" + }, + "set_option_active": { + "service": "mdi:gesture-tap" + }, + "set_option_selected": { + "service": "mdi:gesture-tap" + }, + "set_program_and_options": { + "service": "mdi:form-select" + }, + "start_program": { + "service": "mdi:play" + } } } diff --git a/homeassistant/components/home_connect/strings.json b/homeassistant/components/home_connect/strings.json index b07f0bf64f4..6d2486ee0d1 100644 --- a/homeassistant/components/home_connect/strings.json +++ b/homeassistant/components/home_connect/strings.json @@ -7,751 +7,62 @@ "present": "Present" }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_account": "Please ensure you reconfigure against the same account." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "oauth_discovery": { + "description": "Home Assistant has found a Home Connect device on your network. Be aware that the setup of Home Connect is more complicated than many other integrations. Press **Submit** to continue setting up Home Connect." + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Home Connect integration needs to re-authenticate your account" - }, - "oauth_discovery": { - "description": "Home Assistant has found a Home Connect device on your network. Be aware that the setup of Home Connect is more complicated than many other integrations. Press **Submit** to continue setting up Home Connect." - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "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_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%]", - "wrong_account": "Please ensure you reconfigure against the same account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" - } - }, - "exceptions": { - "auth_error": { - "message": "Authentication error: {error}. Please, re-authenticate your account" - }, - "appliance_not_found": { - "message": "Appliance for device ID {device_id} not found" - }, - "device_entry_not_found": { - "message": "Device entry for device ID {device_id} not found" - }, - "config_entry_not_found": { - "message": "Config entry for device ID {device_id} not found" - }, - "turn_on_light": { - "message": "Error turning on {entity_id}: {error}" - }, - "turn_off_light": { - "message": "Error turning off {entity_id}: {error}" - }, - "set_light_brightness": { - "message": "Error setting brightness of {entity_id}: {error}" - }, - "select_light_custom_color": { - "message": "Error selecting custom color of {entity_id}: {error}" - }, - "set_light_color": { - "message": "Error setting color of {entity_id}: {error}" - }, - "set_setting_entity": { - "message": "Error assigning the value \"{value}\" to the setting \"{key}\" for {entity_id}: {error}" - }, - "set_setting": { - "message": "Error assigning the value \"{value}\" to the setting \"{key}\": {error}" - }, - "turn_on": { - "message": "Error turning on {entity_id} ({key}): {error}" - }, - "turn_off": { - "message": "Error turning off {entity_id} ({key}): {error}" - }, - "select_program": { - "message": "Error selecting program {program}: {error}" - }, - "start_program": { - "message": "Error starting program {program}: {error}" - }, - "pause_program": { - "message": "Error pausing program: {error}" - }, - "stop_program": { - "message": "Error stopping program: {error}" - }, - "set_options_active_program": { - "message": "Error setting options for the active program: {error}" - }, - "set_options_selected_program": { - "message": "Error setting options for the selected program: {error}" - }, - "execute_command": { - "message": "Error executing command {command}: {error}" - }, - "power_on": { - "message": "Error turning on {appliance_name}: {error}" - }, - "power_off": { - "message": "Error turning off {appliance_name} with value \"{value}\": {error}" - }, - "turn_off_not_supported": { - "message": "{appliance_name} does not support turning off or entering standby mode." - }, - "unable_to_retrieve_turn_off": { - "message": "Unable to turn off {appliance_name} because its support for turning off or entering standby mode could not be determined." - }, - "fetch_api_error": { - "message": "Error obtaining data from the API: {error}" - }, - "required_program_or_one_option_at_least": { - "message": "A program or at least one of the possible options for a program should be specified" - }, - "set_option": { - "message": "Error setting the option for the program: {error}" - } - }, - "issues": { - "deprecated_time_alarm_clock_in_automations_scripts": { - "title": "Deprecated alarm clock entity detected in some automations or scripts", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::home_connect::issues::deprecated_time_alarm_clock_in_automations_scripts::title%]", - "description": "The alarm clock entity `{entity_id}`, which is deprecated because it's being moved to the `number` platform, is used in the following automations or scripts:\n{items}\n\nPlease, fix this issue by updating your automations or scripts to use the new `number` entity." - } - } - } - }, - "deprecated_time_alarm_clock": { - "title": "Deprecated alarm clock entity", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::home_connect::issues::deprecated_time_alarm_clock::title%]", - "description": "The alarm clock entity `{entity_id}` is deprecated because it's being moved to the `number` platform.\n\nPlease use the new `number` entity." - } - } - } - } - }, - "selector": { - "affects_to": { - "options": { - "active_program": "Active program", - "selected_program": "Selected program" - } - }, - "programs": { - "options": { - "consumer_products_cleaning_robot_program_cleaning_clean_all": "Clean all", - "consumer_products_cleaning_robot_program_cleaning_clean_map": "Clean map", - "consumer_products_cleaning_robot_program_basic_go_home": "Go home", - "consumer_products_coffee_maker_program_beverage_ristretto": "Ristretto", - "consumer_products_coffee_maker_program_beverage_espresso": "Espresso", - "consumer_products_coffee_maker_program_beverage_espresso_doppio": "Espresso doppio", - "consumer_products_coffee_maker_program_beverage_coffee": "Coffee", - "consumer_products_coffee_maker_program_beverage_x_l_coffee": "XL coffee", - "consumer_products_coffee_maker_program_beverage_caffe_grande": "Caffe grande", - "consumer_products_coffee_maker_program_beverage_espresso_macchiato": "Espresso macchiato", - "consumer_products_coffee_maker_program_beverage_cappuccino": "Cappuccino", - "consumer_products_coffee_maker_program_beverage_latte_macchiato": "Latte macchiato", - "consumer_products_coffee_maker_program_beverage_caffe_latte": "Caffe latte", - "consumer_products_coffee_maker_program_beverage_milk_froth": "Milk froth", - "consumer_products_coffee_maker_program_beverage_warm_milk": "Warm milk", - "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "Kleiner Brauner", - "consumer_products_coffee_maker_program_coffee_world_grosser_brauner": "Grosser Brauner", - "consumer_products_coffee_maker_program_coffee_world_verlaengerter": "Verlaengerter", - "consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun": "Verlaengerter braun", - "consumer_products_coffee_maker_program_coffee_world_wiener_melange": "Wiener Melange", - "consumer_products_coffee_maker_program_coffee_world_flat_white": "Flat white", - "consumer_products_coffee_maker_program_coffee_world_cortado": "Cortado", - "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "Cafe cortado", - "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "Cafe con leche", - "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "Cafe au lait", - "consumer_products_coffee_maker_program_coffee_world_doppio": "Doppio", - "consumer_products_coffee_maker_program_coffee_world_kaapi": "Kaapi", - "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "Koffie verkeerd", - "consumer_products_coffee_maker_program_coffee_world_galao": "Galao", - "consumer_products_coffee_maker_program_coffee_world_garoto": "Garoto", - "consumer_products_coffee_maker_program_coffee_world_americano": "Americano", - "consumer_products_coffee_maker_program_coffee_world_red_eye": "Red eye", - "consumer_products_coffee_maker_program_coffee_world_black_eye": "Black eye", - "consumer_products_coffee_maker_program_coffee_world_dead_eye": "Dead eye", - "consumer_products_coffee_maker_program_beverage_hot_water": "Hot water", - "dishcare_dishwasher_program_pre_rinse": "Pre-rinse", - "dishcare_dishwasher_program_auto_1": "Auto 1", - "dishcare_dishwasher_program_auto_2": "Auto 2", - "dishcare_dishwasher_program_auto_3": "Auto 3", - "dishcare_dishwasher_program_eco_50": "Eco 50ºC", - "dishcare_dishwasher_program_quick_45": "Quick 45ºC", - "dishcare_dishwasher_program_intensiv_70": "Intensive 70ºC", - "dishcare_dishwasher_program_normal_65": "Normal 65ºC", - "dishcare_dishwasher_program_glas_40": "Glass 40ºC", - "dishcare_dishwasher_program_glass_care": "Glass care", - "dishcare_dishwasher_program_night_wash": "Night wash", - "dishcare_dishwasher_program_quick_65": "Quick 65ºC", - "dishcare_dishwasher_program_normal_45": "Normal 45ºC", - "dishcare_dishwasher_program_intensiv_45": "Intensive 45ºC", - "dishcare_dishwasher_program_auto_half_load": "Auto half load", - "dishcare_dishwasher_program_intensiv_power": "Intensive power", - "dishcare_dishwasher_program_magic_daily": "Magic daily", - "dishcare_dishwasher_program_super_60": "Super 60ºC", - "dishcare_dishwasher_program_kurz_60": "Speed 60ºC", - "dishcare_dishwasher_program_express_sparkle_65": "Express sparkle 65ºC", - "dishcare_dishwasher_program_machine_care": "Machine care", - "dishcare_dishwasher_program_steam_fresh": "Steam fresh", - "dishcare_dishwasher_program_maximum_cleaning": "Maximum cleaning", - "dishcare_dishwasher_program_mixed_load": "Mixed load", - "laundry_care_dryer_program_cotton": "Cotton", - "laundry_care_dryer_program_synthetic": "Synthetic", - "laundry_care_dryer_program_mix": "Mix", - "laundry_care_dryer_program_blankets": "Blankets", - "laundry_care_dryer_program_business_shirts": "Business shirts", - "laundry_care_dryer_program_down_feathers": "Down feathers", - "laundry_care_dryer_program_hygiene": "Hygiene", - "laundry_care_dryer_program_jeans": "Jeans", - "laundry_care_dryer_program_outdoor": "Outdoor", - "laundry_care_dryer_program_synthetic_refresh": "Synthetic refresh", - "laundry_care_dryer_program_towels": "Towels", - "laundry_care_dryer_program_delicates": "Delicates", - "laundry_care_dryer_program_super_40": "Super 40ºC", - "laundry_care_dryer_program_shirts_15": "Shirts 15ºC", - "laundry_care_dryer_program_pillow": "Pillow", - "laundry_care_dryer_program_anti_shrink": "Anti shrink", - "laundry_care_dryer_program_my_time_my_drying_time": "My drying time", - "laundry_care_dryer_program_time_cold": "Cold (variable time)", - "laundry_care_dryer_program_time_warm": "Warm (variable time)", - "laundry_care_dryer_program_in_basket": "In basket", - "laundry_care_dryer_program_time_cold_fix_time_cold_20": "Cold (20 min)", - "laundry_care_dryer_program_time_cold_fix_time_cold_30": "Cold (30 min)", - "laundry_care_dryer_program_time_cold_fix_time_cold_60": "Cold (60 min)", - "laundry_care_dryer_program_time_warm_fix_time_warm_30": "Warm (30 min)", - "laundry_care_dryer_program_time_warm_fix_time_warm_40": "Warm (40 min)", - "laundry_care_dryer_program_time_warm_fix_time_warm_60": "Warm (60 min)", - "laundry_care_dryer_program_dessous": "Dessous", - "cooking_common_program_hood_automatic": "Automatic", - "cooking_common_program_hood_venting": "Venting", - "cooking_common_program_hood_delayed_shut_off": "Delayed shut off", - "cooking_oven_program_heating_mode_pre_heating": "Pre-heating", - "cooking_oven_program_heating_mode_hot_air": "Hot air", - "cooking_oven_program_heating_mode_hot_air_eco": "Hot air eco", - "cooking_oven_program_heating_mode_hot_air_grilling": "Hot air grilling", - "cooking_oven_program_heating_mode_top_bottom_heating": "Top bottom heating", - "cooking_oven_program_heating_mode_top_bottom_heating_eco": "Top bottom heating eco", - "cooking_oven_program_heating_mode_bottom_heating": "Bottom heating", - "cooking_oven_program_heating_mode_pizza_setting": "Pizza setting", - "cooking_oven_program_heating_mode_slow_cook": "Slow cook", - "cooking_oven_program_heating_mode_intensive_heat": "Intensive heat", - "cooking_oven_program_heating_mode_keep_warm": "Keep warm", - "cooking_oven_program_heating_mode_preheat_ovenware": "Preheat ovenware", - "cooking_oven_program_heating_mode_frozen_heatup_special": "Special heat-up for frozen products", - "cooking_oven_program_heating_mode_desiccation": "Desiccation", - "cooking_oven_program_heating_mode_defrost": "Defrost", - "cooking_oven_program_heating_mode_proof": "Proof", - "cooking_oven_program_heating_mode_hot_air_30_steam": "Hot air + 30 RH", - "cooking_oven_program_heating_mode_hot_air_60_steam": "Hot air + 60 RH", - "cooking_oven_program_heating_mode_hot_air_80_steam": "Hot air + 80 RH", - "cooking_oven_program_heating_mode_hot_air_100_steam": "Hot air + 100 RH", - "cooking_oven_program_heating_mode_sabbath_programme": "Sabbath programme", - "cooking_oven_program_microwave_90_watt": "90 Watt", - "cooking_oven_program_microwave_180_watt": "180 Watt", - "cooking_oven_program_microwave_360_watt": "360 Watt", - "cooking_oven_program_microwave_600_watt": "600 Watt", - "cooking_oven_program_microwave_900_watt": "900 Watt", - "cooking_oven_program_microwave_1000_watt": "1000 Watt", - "cooking_oven_program_microwave_max": "Max", - "cooking_oven_program_heating_mode_warming_drawer": "Warming drawer", - "laundry_care_washer_program_cotton": "Cotton", - "laundry_care_washer_program_cotton_cotton_eco": "Cotton eco", - "laundry_care_washer_program_cotton_eco_4060": "Cotton eco 40/60ºC", - "laundry_care_washer_program_cotton_colour": "Cotton color", - "laundry_care_washer_program_easy_care": "Easy care", - "laundry_care_washer_program_mix": "Mix", - "laundry_care_washer_program_mix_night_wash": "Mix night wash", - "laundry_care_washer_program_delicates_silk": "Delicates silk", - "laundry_care_washer_program_wool": "Wool", - "laundry_care_washer_program_sensitive": "Sensitive", - "laundry_care_washer_program_auto_30": "Auto 30ºC", - "laundry_care_washer_program_auto_40": "Auto 40ºC", - "laundry_care_washer_program_auto_60": "Auto 60ºC", - "laundry_care_washer_program_chiffon": "Chiffon", - "laundry_care_washer_program_curtains": "Curtains", - "laundry_care_washer_program_dark_wash": "Dark wash", - "laundry_care_washer_program_dessous": "Dessous", - "laundry_care_washer_program_monsoon": "Monsoon", - "laundry_care_washer_program_outdoor": "Outdoor", - "laundry_care_washer_program_plush_toy": "Plush toy", - "laundry_care_washer_program_shirts_blouses": "Shirts/blouses", - "laundry_care_washer_program_sport_fitness": "Sport/fitness", - "laundry_care_washer_program_towels": "Towels", - "laundry_care_washer_program_water_proof": "Water proof", - "laundry_care_washer_program_power_speed_59": "Power speed <59 min", - "laundry_care_washer_program_super_153045_super_15": "Super 15 min", - "laundry_care_washer_program_super_153045_super_1530": "Super 15/30 min", - "laundry_care_washer_program_down_duvet_duvet": "Down duvet", - "laundry_care_washer_program_rinse_rinse_spin_drain": "Rinse spin drain", - "laundry_care_washer_program_drum_clean": "Drum clean", - "laundry_care_washer_dryer_program_cotton": "Cotton", - "laundry_care_washer_dryer_program_cotton_eco_4060": "Cotton eco 40/60ºC", - "laundry_care_washer_dryer_program_mix": "Mix", - "laundry_care_washer_dryer_program_easy_care": "Easy care", - "laundry_care_washer_dryer_program_wash_and_dry_60": "Wash and dry (60 min)", - "laundry_care_washer_dryer_program_wash_and_dry_90": "Wash and dry (90 min)" - } - }, - "available_maps": { - "options": { - "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "Temporary map", - "consumer_products_cleaning_robot_enum_type_available_maps_map1": "Map 1", - "consumer_products_cleaning_robot_enum_type_available_maps_map2": "Map 2", - "consumer_products_cleaning_robot_enum_type_available_maps_map3": "Map 3" - } - }, - "cleaning_mode": { - "options": { - "consumer_products_cleaning_robot_enum_type_cleaning_modes_silent": "Silent", - "consumer_products_cleaning_robot_enum_type_cleaning_modes_standard": "Standard", - "consumer_products_cleaning_robot_enum_type_cleaning_modes_power": "Power", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode": "Intelligent mode", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only": "Vacuum only", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only": "Mop only", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop": "Vacuum and mop", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum": "Mop after vacuum" - } - }, - "suction_power": { - "options": { - "consumer_products_cleaning_robot_enum_type_suction_power_silent": "Silent", - "consumer_products_cleaning_robot_enum_type_suction_power_standard": "Standard", - "consumer_products_cleaning_robot_enum_type_suction_power_max": "Max" - } - }, - "bean_amount": { - "options": { - "consumer_products_coffee_maker_enum_type_bean_amount_very_mild": "Very mild", - "consumer_products_coffee_maker_enum_type_bean_amount_mild": "Mild", - "consumer_products_coffee_maker_enum_type_bean_amount_mild_plus": "Mild +", - "consumer_products_coffee_maker_enum_type_bean_amount_normal": "Normal", - "consumer_products_coffee_maker_enum_type_bean_amount_normal_plus": "Normal +", - "consumer_products_coffee_maker_enum_type_bean_amount_strong": "Strong", - "consumer_products_coffee_maker_enum_type_bean_amount_strong_plus": "Strong +", - "consumer_products_coffee_maker_enum_type_bean_amount_very_strong": "Very strong", - "consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus": "Very strong +", - "consumer_products_coffee_maker_enum_type_bean_amount_extra_strong": "Extra strong", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot": "Double shot", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus": "Double shot +", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus": "Double shot ++", - "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot": "Triple shot", - "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot_plus": "Triple shot +", - "consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground": "Coffee ground" - } - }, - "coffee_temperature": { - "options": { - "consumer_products_coffee_maker_enum_type_coffee_temperature_88_c": "88ºC", - "consumer_products_coffee_maker_enum_type_coffee_temperature_90_c": "90ºC", - "consumer_products_coffee_maker_enum_type_coffee_temperature_92_c": "92ºC", - "consumer_products_coffee_maker_enum_type_coffee_temperature_94_c": "94ºC", - "consumer_products_coffee_maker_enum_type_coffee_temperature_95_c": "95ºC", - "consumer_products_coffee_maker_enum_type_coffee_temperature_96_c": "96ºC" - } - }, - "bean_container": { - "options": { - "consumer_products_coffee_maker_enum_type_bean_container_selection_right": "Right", - "consumer_products_coffee_maker_enum_type_bean_container_selection_left": "Left" - } - }, - "flow_rate": { - "options": { - "consumer_products_coffee_maker_enum_type_flow_rate_normal": "Normal", - "consumer_products_coffee_maker_enum_type_flow_rate_intense": "Intense", - "consumer_products_coffee_maker_enum_type_flow_rate_intense_plus": "Intense +" - } - }, - "coffee_milk_ratio": { - "options": { - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_10_percent": "10%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_20_percent": "20%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_25_percent": "25%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_30_percent": "30%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_40_percent": "40%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_50_percent": "50%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_55_percent": "55%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_60_percent": "60%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_65_percent": "65%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_67_percent": "67%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_70_percent": "70%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_75_percent": "75%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_80_percent": "80%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_85_percent": "85%", - "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_90_percent": "90%" - } - }, - "hot_water_temperature": { - "options": { - "consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea": "White tea", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea": "Green tea", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea": "Black tea", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_50_c": "50ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_55_c": "55ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_60_c": "60ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_65_c": "65ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_70_c": "70ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_75_c": "75ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_80_c": "80ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_85_c": "85ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_90_c": "90ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_95_c": "95ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_97_c": "97ºC", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f": "122ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f": "131ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f": "140ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f": "149ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f": "158ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f": "167ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f": "176ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f": "185ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f": "194ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f": "203ºF", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_max": "Max" - } - }, - "drying_target": { - "options": { - "laundry_care_dryer_enum_type_drying_target_iron_dry": "Iron dry", - "laundry_care_dryer_enum_type_drying_target_gentle_dry": "Gentle dry", - "laundry_care_dryer_enum_type_drying_target_cupboard_dry": "Cupboard dry", - "laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus": "Cupboard dry +", - "laundry_care_dryer_enum_type_drying_target_extra_dry": "Extra dry" - } - }, - "venting_level": { - "options": { - "cooking_hood_enum_type_stage_fan_off": "Fan off", - "cooking_hood_enum_type_stage_fan_stage_01": "Fan stage 1", - "cooking_hood_enum_type_stage_fan_stage_02": "Fan stage 2", - "cooking_hood_enum_type_stage_fan_stage_03": "Fan stage 3", - "cooking_hood_enum_type_stage_fan_stage_04": "Fan stage 4", - "cooking_hood_enum_type_stage_fan_stage_05": "Fan stage 5" - } - }, - "intensive_level": { - "options": { - "cooking_hood_enum_type_intensive_stage_intensive_stage_off": "Intensive stage off", - "cooking_hood_enum_type_intensive_stage_intensive_stage1": "Intensive stage 1", - "cooking_hood_enum_type_intensive_stage_intensive_stage2": "Intensive stage 2" - } - }, - "warming_level": { - "options": { - "cooking_oven_enum_type_warming_level_low": "[%key:common::state::low%]", - "cooking_oven_enum_type_warming_level_medium": "[%key:common::state::medium%]", - "cooking_oven_enum_type_warming_level_high": "[%key:common::state::high%]" - } - }, - "washer_temperature": { - "options": { - "laundry_care_washer_enum_type_temperature_cold": "Cold", - "laundry_care_washer_enum_type_temperature_g_c_20": "20ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_30": "30ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_40": "40ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_50": "50ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_60": "60ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_70": "70ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_80": "80ºC clothes", - "laundry_care_washer_enum_type_temperature_g_c_90": "90ºC clothes", - "laundry_care_washer_enum_type_temperature_ul_cold": "Cold", - "laundry_care_washer_enum_type_temperature_ul_warm": "Warm", - "laundry_care_washer_enum_type_temperature_ul_hot": "Hot", - "laundry_care_washer_enum_type_temperature_ul_extra_hot": "Extra hot" - } - }, - "spin_speed": { - "options": { - "laundry_care_washer_enum_type_spin_speed_off": "[%key:common::state::off%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_400": "400 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_600": "600 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_700": "700 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_800": "800 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_900": "900 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1000": "1000 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1200": "1200 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1400": "1400 rpm", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1600": "1600 rpm", - "laundry_care_washer_enum_type_spin_speed_ul_off": "[%key:common::state::off%]", - "laundry_care_washer_enum_type_spin_speed_ul_low": "[%key:common::state::low%]", - "laundry_care_washer_enum_type_spin_speed_ul_medium": "[%key:common::state::medium%]", - "laundry_care_washer_enum_type_spin_speed_ul_high": "[%key:common::state::high%]" - } - }, - "vario_perfect": { - "options": { - "laundry_care_common_enum_type_vario_perfect_off": "[%key:common::state::off%]", - "laundry_care_common_enum_type_vario_perfect_eco_perfect": "Eco perfect", - "laundry_care_common_enum_type_vario_perfect_speed_perfect": "Speed perfect" - } - } - }, - "services": { - "set_program_and_options": { - "name": "Set program and options", - "description": "Starts or selects a program with options or sets the options for the active or the selected program.", - "fields": { - "device_id": { - "name": "Device ID", - "description": "ID of the device." - }, - "affects_to": { - "name": "Affects to", - "description": "Selects if the program affected by the action should be the active or the selected program." - }, - "program": { - "name": "Program", - "description": "Program to select" - }, - "consumer_products_cleaning_robot_option_reference_map_id": { - "name": "Reference map ID", - "description": "Defines which reference map is to be used." - }, - "consumer_products_cleaning_robot_option_cleaning_mode": { - "name": "Cleaning mode", - "description": "Defines the favored cleaning mode." - }, - "consumer_products_cleaning_robot_option_suction_power": { - "name": "Suction power", - "description": "Defines the suction power." - }, - "consumer_products_coffee_maker_option_bean_amount": { - "name": "Bean amount", - "description": "Describes the amount of coffee beans used in a coffee machine program." - }, - "consumer_products_coffee_maker_option_fill_quantity": { - "name": "Fill quantity", - "description": "Describes the amount of water (in ml) used in a coffee machine program." - }, - "consumer_products_coffee_maker_option_coffee_temperature": { - "name": "Coffee Temperature", - "description": "Describes the coffee temperature used in a coffee machine program." - }, - "consumer_products_coffee_maker_option_bean_container": { - "name": "Bean container", - "description": "Defines the preferred bean container." - }, - "consumer_products_coffee_maker_option_flow_rate": { - "name": "Flow rate", - "description": "Defines the water-coffee contact time. The duration extends to coffee intensity." - }, - "consumer_products_coffee_maker_option_multiple_beverages": { - "name": "Multiple beverages", - "description": "Defines if double dispensing is enabled." - }, - "consumer_products_coffee_maker_option_coffee_milk_ratio": { - "name": "Coffee milk ratio", - "description": "Defines the amount of milk." - }, - "consumer_products_coffee_maker_option_hot_water_temperature": { - "name": "Hot water temperature", - "description": "Defines the temperature suitable for the type of tea." - }, - "b_s_h_common_option_start_in_relative": { - "name": "Start in relative", - "description": "Defines in how many time the program should start." - }, - "dishcare_dishwasher_option_intensiv_zone": { - "name": "Intensive zone", - "description": "Defines if the cleaning is done with higher spray pressure on the lower basket for very dirty pots and pans." - }, - "dishcare_dishwasher_option_brilliance_dry": { - "name": "Brilliance dry", - "description": "Defines if the program sequence is optimized with a special drying cycle to ensure more shine on glasses and plastic items." - }, - "dishcare_dishwasher_option_vario_speed_plus": { - "name": "Vario speed +", - "description": "Defines if the program run time is reduced by up to 66% with the usual optimum cleaning and drying." - }, - "dishcare_dishwasher_option_silence_on_demand": { - "name": "Silence on demand", - "description": "Defines if the extra silent mode is activated for a selected period of time." - }, - "dishcare_dishwasher_option_half_load": { - "name": "Half load", - "description": "Defines if economical cleaning is enabled for smaller loads. This reduces energy and water consumption and also saves time. The utensils can be placed in the upper and lower baskets." - }, - "dishcare_dishwasher_option_extra_dry": { - "name": "Extra dry", - "description": "Defines if improved drying for glasses and plasticware is enabled." - }, - "dishcare_dishwasher_option_hygiene_plus": { - "name": "Hygiene +", - "description": "Defines if the cleaning is done with increased temperature. This ensures maximum hygienic cleanliness for regular use." - }, - "dishcare_dishwasher_option_eco_dry": { - "name": "Eco dry", - "description": "Defines if the door is opened automatically for extra energy efficient and effective drying." - }, - "dishcare_dishwasher_option_zeolite_dry": { - "name": "Zeolite dry", - "description": "Defines if the program sequence is optimized with special drying cycle ensures improved drying for glasses, plates and plasticware." - }, - "laundry_care_dryer_option_drying_target": { - "name": "Drying target", - "description": "Describes the drying target for a dryer program." - }, - "cooking_hood_option_venting_level": { - "name": "Venting level", - "description": "Defines the required fan setting." - }, - "cooking_hood_option_intensive_level": { - "name": "Intensive level", - "description": "Defines the intensive setting." - }, - "cooking_oven_option_setpoint_temperature": { - "name": "Setpoint temperature", - "description": "Defines the target cavity temperature, which will be held by the oven." - }, - "b_s_h_common_option_duration": { - "name": "Duration", - "description": "Defines the run-time of the program. Afterwards, the appliance is stopped." - }, - "cooking_oven_option_fast_pre_heat": { - "name": "Fast pre-heat", - "description": "Defines if the cooking compartment is heated up quickly. Please note that the setpoint temperature has to be equal to or higher than 100 °C or 212 °F. Otherwise, the fast pre-heat option is not activated." - }, - "cooking_oven_option_warming_level": { - "name": "Warming level", - "description": "Defines the level of the warming drawer." - }, - "laundry_care_washer_option_temperature": { - "name": "Temperature", - "description": "Defines the temperature of the washing program." - }, - "laundry_care_washer_option_spin_speed": { - "name": "Spin speed", - "description": "Defines the spin speed of a washer program." - }, - "b_s_h_common_option_finish_in_relative": { - "name": "Finish in relative", - "description": "Defines when the program should end in seconds." - }, - "laundry_care_washer_option_i_dos1_active": { - "name": "i-Dos 1 Active", - "description": "Defines if the detergent feed is activated / deactivated. (i-Dos content 1)" - }, - "laundry_care_washer_option_i_dos2_active": { - "name": "i-Dos 2 Active", - "description": "Defines if the detergent feed is activated / deactivated. (i-Dos content 2)" - }, - "laundry_care_washer_option_vario_perfect": { - "name": "Vario perfect", - "description": "Defines if a cycle saves energy (Eco Perfect) or time (Speed Perfect)." - } - }, - "sections": { - "cleaning_robot_options": { - "name": "Cleaning robot options", - "description": "Options for cleaning robots." - }, - "coffee_maker_options": { - "name": "Coffee maker options", - "description": "Options for coffee makers." - }, - "dish_washer_options": { - "name": "Dishwasher options", - "description": "Options for dishwashers." - }, - "dryer_options": { - "name": "Dryer options", - "description": "Options for dryers (and washer dryers)." - }, - "hood_options": { - "name": "Hood options", - "description": "Options for hoods." - }, - "oven_options": { - "name": "Oven options", - "description": "Options for ovens." - }, - "warming_drawer_options": { - "name": "Warming drawer options", - "description": "Options for warming drawers." - }, - "washer_options": { - "name": "Washer options", - "description": "Options for washers (and washer dryers)." - } - } - }, - "change_setting": { - "name": "Change setting", - "description": "Changes a setting.", - "fields": { - "device_id": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::device_id::name%]", - "description": "[%key:component::home_connect::services::set_program_and_options::fields::device_id::description%]" - }, - "key": { "name": "Key", "description": "Key of the setting." }, - "value": { "name": "Value", "description": "Value of the setting." } + "description": "The Home Connect integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } } }, "entity": { "binary_sensor": { - "remote_control": { - "name": "Remote control" - }, - "remote_start": { - "name": "Remote start" - }, - "local_control": { - "name": "Local control" - }, "battery_charging_state": { "name": "Battery charging state" }, - "charging_connection": { - "name": "Charging connection" - }, - "dust_box_inserted": { - "name": "Dust box", - "state": { - "on": "Inserted", - "off": "Not inserted" - } - }, - "lifted": { - "name": "Lifted" - }, - "lost": { - "name": "Lost" - }, "bottle_cooler_door": { "name": "Bottle cooler door" }, - "common_chiller_door": { - "name": "Common chiller door" + "charging_connection": { + "name": "Charging connection" }, "chiller_door": { "name": "Chiller door" }, - "left_chiller_door": { - "name": "Left chiller door" + "common_chiller_door": { + "name": "Common chiller door" }, - "right_chiller_door": { - "name": "Right chiller door" + "dust_box_inserted": { + "name": "Dust box", + "state": { + "off": "Not inserted", + "on": "Inserted" + } }, "flex_compartment_door": { "name": "Flex compartment door" @@ -759,9 +70,30 @@ "freezer_door": { "name": "Freezer door" }, + "left_chiller_door": { + "name": "Left chiller door" + }, + "lifted": { + "name": "Lifted" + }, + "local_control": { + "name": "Local control" + }, + "lost": { + "name": "Lost" + }, "refrigerator_door": { "name": "Refrigerator door" }, + "remote_control": { + "name": "Remote control" + }, + "remote_start": { + "name": "Remote start" + }, + "right_chiller_door": { + "name": "Right chiller door" + }, "wine_compartment_door": { "name": "Wine compartment door" } @@ -784,12 +116,12 @@ } }, "light": { - "cooking_lighting": { - "name": "Functional light" - }, "ambient_light": { "name": "Ambient light" }, + "cooking_lighting": { + "name": "Functional light" + }, "external_light": { "name": "External light" }, @@ -801,395 +133,216 @@ "alarm_clock": { "name": "Alarm clock" }, - "refrigerator_setpoint_temperature": { - "name": "Refrigerator temperature" - }, - "freezer_setpoint_temperature": { - "name": "Freezer temperature" - }, "bottle_cooler_setpoint_temperature": { "name": "Bottle cooler temperature" }, "chiller_left_setpoint_temperature": { "name": "Chiller left temperature" }, - "chiller_setpoint_temperature": { - "name": "Chiller temperature" - }, "chiller_right_setpoint_temperature": { "name": "Chiller right temperature" }, - "wine_compartment_setpoint_temperature": { - "name": "Wine compartment temperature" - }, - "wine_compartment_2_setpoint_temperature": { - "name": "Wine compartment 2 temperature" - }, - "wine_compartment_3_setpoint_temperature": { - "name": "Wine compartment 3 temperature" + "chiller_setpoint_temperature": { + "name": "Chiller temperature" }, "color_temperature_percent": { "name": "Functional light color temperature percent" }, + "duration": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_duration::name%]" + }, + "fill_quantity": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_fill_quantity::name%]" + }, + "finish_in_relative": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_finish_in_relative::name%]" + }, + "freezer_setpoint_temperature": { + "name": "Freezer temperature" + }, + "refrigerator_setpoint_temperature": { + "name": "Refrigerator temperature" + }, + "setpoint_temperature": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_oven_option_setpoint_temperature::name%]" + }, + "start_in_relative": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_start_in_relative::name%]" + }, "washer_i_dos_1_base_level": { "name": "i-Dos 1 base level" }, "washer_i_dos_2_base_level": { "name": "i-Dos 2 base level" }, - "duration": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_duration::name%]" + "wine_compartment_2_setpoint_temperature": { + "name": "Wine compartment 2 temperature" }, - "start_in_relative": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_start_in_relative::name%]" + "wine_compartment_3_setpoint_temperature": { + "name": "Wine compartment 3 temperature" }, - "finish_in_relative": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::b_s_h_common_option_finish_in_relative::name%]" - }, - "fill_quantity": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_fill_quantity::name%]" - }, - "setpoint_temperature": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_oven_option_setpoint_temperature::name%]" + "wine_compartment_setpoint_temperature": { + "name": "Wine compartment temperature" } }, "select": { - "selected_program": { - "name": "Selected program", - "state": { - "consumer_products_cleaning_robot_program_cleaning_clean_all": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_all%]", - "consumer_products_cleaning_robot_program_cleaning_clean_map": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_map%]", - "consumer_products_cleaning_robot_program_basic_go_home": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_basic_go_home%]", - "consumer_products_coffee_maker_program_beverage_ristretto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_ristretto%]", - "consumer_products_coffee_maker_program_beverage_espresso": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso%]", - "consumer_products_coffee_maker_program_beverage_espresso_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_doppio%]", - "consumer_products_coffee_maker_program_beverage_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_coffee%]", - "consumer_products_coffee_maker_program_beverage_x_l_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_x_l_coffee%]", - "consumer_products_coffee_maker_program_beverage_caffe_grande": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_grande%]", - "consumer_products_coffee_maker_program_beverage_espresso_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_macchiato%]", - "consumer_products_coffee_maker_program_beverage_cappuccino": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_cappuccino%]", - "consumer_products_coffee_maker_program_beverage_latte_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_latte_macchiato%]", - "consumer_products_coffee_maker_program_beverage_caffe_latte": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_latte%]", - "consumer_products_coffee_maker_program_beverage_milk_froth": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_milk_froth%]", - "consumer_products_coffee_maker_program_beverage_warm_milk": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_warm_milk%]", - "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kleiner_brauner%]", - "consumer_products_coffee_maker_program_coffee_world_grosser_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_grosser_brauner%]", - "consumer_products_coffee_maker_program_coffee_world_verlaengerter": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter%]", - "consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun%]", - "consumer_products_coffee_maker_program_coffee_world_wiener_melange": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_wiener_melange%]", - "consumer_products_coffee_maker_program_coffee_world_flat_white": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_flat_white%]", - "consumer_products_coffee_maker_program_coffee_world_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cortado%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_cortado%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_con_leche%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_au_lait%]", - "consumer_products_coffee_maker_program_coffee_world_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_doppio%]", - "consumer_products_coffee_maker_program_coffee_world_kaapi": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kaapi%]", - "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd%]", - "consumer_products_coffee_maker_program_coffee_world_galao": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_galao%]", - "consumer_products_coffee_maker_program_coffee_world_garoto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_garoto%]", - "consumer_products_coffee_maker_program_coffee_world_americano": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_americano%]", - "consumer_products_coffee_maker_program_coffee_world_red_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_red_eye%]", - "consumer_products_coffee_maker_program_coffee_world_black_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_black_eye%]", - "consumer_products_coffee_maker_program_coffee_world_dead_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_dead_eye%]", - "consumer_products_coffee_maker_program_beverage_hot_water": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_hot_water%]", - "dishcare_dishwasher_program_pre_rinse": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_pre_rinse%]", - "dishcare_dishwasher_program_auto_1": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_1%]", - "dishcare_dishwasher_program_auto_2": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_2%]", - "dishcare_dishwasher_program_auto_3": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_3%]", - "dishcare_dishwasher_program_eco_50": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_eco_50%]", - "dishcare_dishwasher_program_quick_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_45%]", - "dishcare_dishwasher_program_intensiv_70": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_70%]", - "dishcare_dishwasher_program_normal_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_65%]", - "dishcare_dishwasher_program_glas_40": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glas_40%]", - "dishcare_dishwasher_program_glass_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glass_care%]", - "dishcare_dishwasher_program_night_wash": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_night_wash%]", - "dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]", - "dishcare_dishwasher_program_normal_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_45%]", - "dishcare_dishwasher_program_intensiv_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_45%]", - "dishcare_dishwasher_program_auto_half_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_half_load%]", - "dishcare_dishwasher_program_intensiv_power": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_power%]", - "dishcare_dishwasher_program_magic_daily": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_magic_daily%]", - "dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]", - "dishcare_dishwasher_program_kurz_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_kurz_60%]", - "dishcare_dishwasher_program_express_sparkle_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_express_sparkle_65%]", - "dishcare_dishwasher_program_machine_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_machine_care%]", - "dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]", - "dishcare_dishwasher_program_maximum_cleaning": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_maximum_cleaning%]", - "dishcare_dishwasher_program_mixed_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_mixed_load%]", - "laundry_care_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_cotton%]", - "laundry_care_dryer_program_synthetic": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic%]", - "laundry_care_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_mix%]", - "laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]", - "laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]", - "laundry_care_dryer_program_down_feathers": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_down_feathers%]", - "laundry_care_dryer_program_hygiene": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_hygiene%]", - "laundry_care_dryer_program_jeans": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_jeans%]", - "laundry_care_dryer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_outdoor%]", - "laundry_care_dryer_program_synthetic_refresh": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic_refresh%]", - "laundry_care_dryer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_towels%]", - "laundry_care_dryer_program_delicates": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_delicates%]", - "laundry_care_dryer_program_super_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_super_40%]", - "laundry_care_dryer_program_shirts_15": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_shirts_15%]", - "laundry_care_dryer_program_pillow": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_pillow%]", - "laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]", - "laundry_care_dryer_program_my_time_my_drying_time": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_my_time_my_drying_time%]", - "laundry_care_dryer_program_time_cold": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold%]", - "laundry_care_dryer_program_time_warm": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm%]", - "laundry_care_dryer_program_in_basket": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_in_basket%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_20": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_20%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_30%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_60%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_30%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_40%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_60%]", - "laundry_care_dryer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_dessous%]", - "cooking_common_program_hood_automatic": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_automatic%]", - "cooking_common_program_hood_venting": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_venting%]", - "cooking_common_program_hood_delayed_shut_off": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_delayed_shut_off%]", - "cooking_oven_program_heating_mode_pre_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pre_heating%]", - "cooking_oven_program_heating_mode_hot_air": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air%]", - "cooking_oven_program_heating_mode_hot_air_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_eco%]", - "cooking_oven_program_heating_mode_hot_air_grilling": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_grilling%]", - "cooking_oven_program_heating_mode_top_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating%]", - "cooking_oven_program_heating_mode_top_bottom_heating_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating_eco%]", - "cooking_oven_program_heating_mode_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_bottom_heating%]", - "cooking_oven_program_heating_mode_pizza_setting": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pizza_setting%]", - "cooking_oven_program_heating_mode_slow_cook": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_slow_cook%]", - "cooking_oven_program_heating_mode_intensive_heat": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_intensive_heat%]", - "cooking_oven_program_heating_mode_keep_warm": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_keep_warm%]", - "cooking_oven_program_heating_mode_preheat_ovenware": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_preheat_ovenware%]", - "cooking_oven_program_heating_mode_frozen_heatup_special": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_frozen_heatup_special%]", - "cooking_oven_program_heating_mode_desiccation": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_desiccation%]", - "cooking_oven_program_heating_mode_defrost": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_defrost%]", - "cooking_oven_program_heating_mode_proof": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_proof%]", - "cooking_oven_program_heating_mode_hot_air_30_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_30_steam%]", - "cooking_oven_program_heating_mode_hot_air_60_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_60_steam%]", - "cooking_oven_program_heating_mode_hot_air_80_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_80_steam%]", - "cooking_oven_program_heating_mode_hot_air_100_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_100_steam%]", - "cooking_oven_program_heating_mode_sabbath_programme": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_sabbath_programme%]", - "cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]", - "cooking_oven_program_microwave_180_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_180_watt%]", - "cooking_oven_program_microwave_360_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_360_watt%]", - "cooking_oven_program_microwave_600_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_600_watt%]", - "cooking_oven_program_microwave_900_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_900_watt%]", - "cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]", - "cooking_oven_program_microwave_max": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_max%]", - "cooking_oven_program_heating_mode_warming_drawer": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_warming_drawer%]", - "laundry_care_washer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton%]", - "laundry_care_washer_program_cotton_cotton_eco": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_cotton_eco%]", - "laundry_care_washer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_eco_4060%]", - "laundry_care_washer_program_cotton_colour": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_colour%]", - "laundry_care_washer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_easy_care%]", - "laundry_care_washer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix%]", - "laundry_care_washer_program_mix_night_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix_night_wash%]", - "laundry_care_washer_program_delicates_silk": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_delicates_silk%]", - "laundry_care_washer_program_wool": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_wool%]", - "laundry_care_washer_program_sensitive": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sensitive%]", - "laundry_care_washer_program_auto_30": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_30%]", - "laundry_care_washer_program_auto_40": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_40%]", - "laundry_care_washer_program_auto_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_60%]", - "laundry_care_washer_program_chiffon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_chiffon%]", - "laundry_care_washer_program_curtains": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_curtains%]", - "laundry_care_washer_program_dark_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dark_wash%]", - "laundry_care_washer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dessous%]", - "laundry_care_washer_program_monsoon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_monsoon%]", - "laundry_care_washer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_outdoor%]", - "laundry_care_washer_program_plush_toy": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_plush_toy%]", - "laundry_care_washer_program_shirts_blouses": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_shirts_blouses%]", - "laundry_care_washer_program_sport_fitness": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sport_fitness%]", - "laundry_care_washer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_towels%]", - "laundry_care_washer_program_water_proof": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_water_proof%]", - "laundry_care_washer_program_power_speed_59": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_power_speed_59%]", - "laundry_care_washer_program_super_153045_super_15": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_15%]", - "laundry_care_washer_program_super_153045_super_1530": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_1530%]", - "laundry_care_washer_program_down_duvet_duvet": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_down_duvet_duvet%]", - "laundry_care_washer_program_rinse_rinse_spin_drain": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_rinse_rinse_spin_drain%]", - "laundry_care_washer_program_drum_clean": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_drum_clean%]", - "laundry_care_washer_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton%]", - "laundry_care_washer_dryer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton_eco_4060%]", - "laundry_care_washer_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_mix%]", - "laundry_care_washer_dryer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_easy_care%]", - "laundry_care_washer_dryer_program_wash_and_dry_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_60%]", - "laundry_care_washer_dryer_program_wash_and_dry_90": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_90%]" - } - }, "active_program": { "name": "Active program", "state": { + "consumer_products_cleaning_robot_program_basic_go_home": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_basic_go_home%]", "consumer_products_cleaning_robot_program_cleaning_clean_all": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_all%]", "consumer_products_cleaning_robot_program_cleaning_clean_map": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_map%]", - "consumer_products_cleaning_robot_program_basic_go_home": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_basic_go_home%]", - "consumer_products_coffee_maker_program_beverage_ristretto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_ristretto%]", + "consumer_products_coffee_maker_program_beverage_caffe_grande": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_grande%]", + "consumer_products_coffee_maker_program_beverage_caffe_latte": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_latte%]", + "consumer_products_coffee_maker_program_beverage_cappuccino": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_cappuccino%]", + "consumer_products_coffee_maker_program_beverage_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_coffee%]", "consumer_products_coffee_maker_program_beverage_espresso": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso%]", "consumer_products_coffee_maker_program_beverage_espresso_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_doppio%]", - "consumer_products_coffee_maker_program_beverage_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_coffee%]", - "consumer_products_coffee_maker_program_beverage_x_l_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_x_l_coffee%]", - "consumer_products_coffee_maker_program_beverage_caffe_grande": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_grande%]", "consumer_products_coffee_maker_program_beverage_espresso_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_macchiato%]", - "consumer_products_coffee_maker_program_beverage_cappuccino": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_cappuccino%]", + "consumer_products_coffee_maker_program_beverage_hot_water": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_hot_water%]", "consumer_products_coffee_maker_program_beverage_latte_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_latte_macchiato%]", - "consumer_products_coffee_maker_program_beverage_caffe_latte": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_latte%]", "consumer_products_coffee_maker_program_beverage_milk_froth": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_milk_froth%]", + "consumer_products_coffee_maker_program_beverage_ristretto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_ristretto%]", "consumer_products_coffee_maker_program_beverage_warm_milk": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_warm_milk%]", - "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kleiner_brauner%]", + "consumer_products_coffee_maker_program_beverage_x_l_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_x_l_coffee%]", + "consumer_products_coffee_maker_program_coffee_world_americano": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_americano%]", + "consumer_products_coffee_maker_program_coffee_world_black_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_black_eye%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_au_lait%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_con_leche%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_cortado%]", + "consumer_products_coffee_maker_program_coffee_world_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cortado%]", + "consumer_products_coffee_maker_program_coffee_world_dead_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_dead_eye%]", + "consumer_products_coffee_maker_program_coffee_world_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_doppio%]", + "consumer_products_coffee_maker_program_coffee_world_flat_white": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_flat_white%]", + "consumer_products_coffee_maker_program_coffee_world_galao": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_galao%]", + "consumer_products_coffee_maker_program_coffee_world_garoto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_garoto%]", "consumer_products_coffee_maker_program_coffee_world_grosser_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_grosser_brauner%]", + "consumer_products_coffee_maker_program_coffee_world_kaapi": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kaapi%]", + "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kleiner_brauner%]", + "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd%]", + "consumer_products_coffee_maker_program_coffee_world_red_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_red_eye%]", "consumer_products_coffee_maker_program_coffee_world_verlaengerter": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter%]", "consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun%]", "consumer_products_coffee_maker_program_coffee_world_wiener_melange": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_wiener_melange%]", - "consumer_products_coffee_maker_program_coffee_world_flat_white": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_flat_white%]", - "consumer_products_coffee_maker_program_coffee_world_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cortado%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_cortado%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_con_leche%]", - "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_au_lait%]", - "consumer_products_coffee_maker_program_coffee_world_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_doppio%]", - "consumer_products_coffee_maker_program_coffee_world_kaapi": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kaapi%]", - "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd%]", - "consumer_products_coffee_maker_program_coffee_world_galao": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_galao%]", - "consumer_products_coffee_maker_program_coffee_world_garoto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_garoto%]", - "consumer_products_coffee_maker_program_coffee_world_americano": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_americano%]", - "consumer_products_coffee_maker_program_coffee_world_red_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_red_eye%]", - "consumer_products_coffee_maker_program_coffee_world_black_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_black_eye%]", - "consumer_products_coffee_maker_program_coffee_world_dead_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_dead_eye%]", - "consumer_products_coffee_maker_program_beverage_hot_water": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_hot_water%]", - "dishcare_dishwasher_program_pre_rinse": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_pre_rinse%]", - "dishcare_dishwasher_program_auto_1": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_1%]", - "dishcare_dishwasher_program_auto_2": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_2%]", - "dishcare_dishwasher_program_auto_3": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_3%]", - "dishcare_dishwasher_program_eco_50": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_eco_50%]", - "dishcare_dishwasher_program_quick_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_45%]", - "dishcare_dishwasher_program_intensiv_70": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_70%]", - "dishcare_dishwasher_program_normal_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_65%]", - "dishcare_dishwasher_program_glas_40": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glas_40%]", - "dishcare_dishwasher_program_glass_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glass_care%]", - "dishcare_dishwasher_program_night_wash": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_night_wash%]", - "dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]", - "dishcare_dishwasher_program_normal_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_45%]", - "dishcare_dishwasher_program_intensiv_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_45%]", - "dishcare_dishwasher_program_auto_half_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_half_load%]", - "dishcare_dishwasher_program_intensiv_power": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_power%]", - "dishcare_dishwasher_program_magic_daily": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_magic_daily%]", - "dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]", - "dishcare_dishwasher_program_kurz_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_kurz_60%]", - "dishcare_dishwasher_program_express_sparkle_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_express_sparkle_65%]", - "dishcare_dishwasher_program_machine_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_machine_care%]", - "dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]", - "dishcare_dishwasher_program_maximum_cleaning": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_maximum_cleaning%]", - "dishcare_dishwasher_program_mixed_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_mixed_load%]", - "laundry_care_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_cotton%]", - "laundry_care_dryer_program_synthetic": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic%]", - "laundry_care_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_mix%]", - "laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]", - "laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]", - "laundry_care_dryer_program_down_feathers": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_down_feathers%]", - "laundry_care_dryer_program_hygiene": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_hygiene%]", - "laundry_care_dryer_program_jeans": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_jeans%]", - "laundry_care_dryer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_outdoor%]", - "laundry_care_dryer_program_synthetic_refresh": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic_refresh%]", - "laundry_care_dryer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_towels%]", - "laundry_care_dryer_program_delicates": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_delicates%]", - "laundry_care_dryer_program_super_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_super_40%]", - "laundry_care_dryer_program_shirts_15": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_shirts_15%]", - "laundry_care_dryer_program_pillow": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_pillow%]", - "laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]", - "laundry_care_dryer_program_my_time_my_drying_time": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_my_time_my_drying_time%]", - "laundry_care_dryer_program_time_cold": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold%]", - "laundry_care_dryer_program_time_warm": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm%]", - "laundry_care_dryer_program_in_basket": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_in_basket%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_20": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_20%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_30%]", - "laundry_care_dryer_program_time_cold_fix_time_cold_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_60%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_30%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_40%]", - "laundry_care_dryer_program_time_warm_fix_time_warm_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_60%]", - "laundry_care_dryer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_dessous%]", "cooking_common_program_hood_automatic": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_automatic%]", - "cooking_common_program_hood_venting": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_venting%]", "cooking_common_program_hood_delayed_shut_off": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_delayed_shut_off%]", - "cooking_oven_program_heating_mode_pre_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pre_heating%]", - "cooking_oven_program_heating_mode_hot_air": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air%]", - "cooking_oven_program_heating_mode_hot_air_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_eco%]", - "cooking_oven_program_heating_mode_hot_air_grilling": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_grilling%]", - "cooking_oven_program_heating_mode_top_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating%]", - "cooking_oven_program_heating_mode_top_bottom_heating_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating_eco%]", + "cooking_common_program_hood_venting": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_venting%]", "cooking_oven_program_heating_mode_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_bottom_heating%]", - "cooking_oven_program_heating_mode_pizza_setting": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pizza_setting%]", - "cooking_oven_program_heating_mode_slow_cook": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_slow_cook%]", - "cooking_oven_program_heating_mode_intensive_heat": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_intensive_heat%]", - "cooking_oven_program_heating_mode_keep_warm": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_keep_warm%]", - "cooking_oven_program_heating_mode_preheat_ovenware": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_preheat_ovenware%]", - "cooking_oven_program_heating_mode_frozen_heatup_special": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_frozen_heatup_special%]", - "cooking_oven_program_heating_mode_desiccation": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_desiccation%]", "cooking_oven_program_heating_mode_defrost": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_defrost%]", - "cooking_oven_program_heating_mode_proof": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_proof%]", + "cooking_oven_program_heating_mode_desiccation": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_desiccation%]", + "cooking_oven_program_heating_mode_frozen_heatup_special": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_frozen_heatup_special%]", + "cooking_oven_program_heating_mode_hot_air": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air%]", + "cooking_oven_program_heating_mode_hot_air_100_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_100_steam%]", "cooking_oven_program_heating_mode_hot_air_30_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_30_steam%]", "cooking_oven_program_heating_mode_hot_air_60_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_60_steam%]", "cooking_oven_program_heating_mode_hot_air_80_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_80_steam%]", - "cooking_oven_program_heating_mode_hot_air_100_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_100_steam%]", + "cooking_oven_program_heating_mode_hot_air_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_eco%]", + "cooking_oven_program_heating_mode_hot_air_grilling": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_grilling%]", + "cooking_oven_program_heating_mode_intensive_heat": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_intensive_heat%]", + "cooking_oven_program_heating_mode_keep_warm": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_keep_warm%]", + "cooking_oven_program_heating_mode_pizza_setting": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pizza_setting%]", + "cooking_oven_program_heating_mode_pre_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pre_heating%]", + "cooking_oven_program_heating_mode_preheat_ovenware": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_preheat_ovenware%]", + "cooking_oven_program_heating_mode_proof": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_proof%]", "cooking_oven_program_heating_mode_sabbath_programme": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_sabbath_programme%]", - "cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]", + "cooking_oven_program_heating_mode_slow_cook": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_slow_cook%]", + "cooking_oven_program_heating_mode_top_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating%]", + "cooking_oven_program_heating_mode_top_bottom_heating_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating_eco%]", + "cooking_oven_program_heating_mode_warming_drawer": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_warming_drawer%]", + "cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]", "cooking_oven_program_microwave_180_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_180_watt%]", "cooking_oven_program_microwave_360_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_360_watt%]", "cooking_oven_program_microwave_600_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_600_watt%]", "cooking_oven_program_microwave_900_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_900_watt%]", - "cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]", + "cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]", "cooking_oven_program_microwave_max": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_max%]", - "cooking_oven_program_heating_mode_warming_drawer": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_warming_drawer%]", - "laundry_care_washer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton%]", - "laundry_care_washer_program_cotton_cotton_eco": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_cotton_eco%]", - "laundry_care_washer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_eco_4060%]", - "laundry_care_washer_program_cotton_colour": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_colour%]", - "laundry_care_washer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_easy_care%]", - "laundry_care_washer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix%]", - "laundry_care_washer_program_mix_night_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix_night_wash%]", - "laundry_care_washer_program_delicates_silk": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_delicates_silk%]", - "laundry_care_washer_program_wool": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_wool%]", - "laundry_care_washer_program_sensitive": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sensitive%]", + "dishcare_dishwasher_program_auto_1": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_1%]", + "dishcare_dishwasher_program_auto_2": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_2%]", + "dishcare_dishwasher_program_auto_3": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_3%]", + "dishcare_dishwasher_program_auto_half_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_half_load%]", + "dishcare_dishwasher_program_eco_50": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_eco_50%]", + "dishcare_dishwasher_program_express_sparkle_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_express_sparkle_65%]", + "dishcare_dishwasher_program_glas_40": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glas_40%]", + "dishcare_dishwasher_program_glass_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glass_care%]", + "dishcare_dishwasher_program_intensiv_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_45%]", + "dishcare_dishwasher_program_intensiv_70": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_70%]", + "dishcare_dishwasher_program_intensiv_power": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_power%]", + "dishcare_dishwasher_program_kurz_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_kurz_60%]", + "dishcare_dishwasher_program_machine_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_machine_care%]", + "dishcare_dishwasher_program_magic_daily": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_magic_daily%]", + "dishcare_dishwasher_program_maximum_cleaning": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_maximum_cleaning%]", + "dishcare_dishwasher_program_mixed_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_mixed_load%]", + "dishcare_dishwasher_program_night_wash": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_night_wash%]", + "dishcare_dishwasher_program_normal_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_45%]", + "dishcare_dishwasher_program_normal_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_65%]", + "dishcare_dishwasher_program_pre_rinse": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_pre_rinse%]", + "dishcare_dishwasher_program_quick_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_45%]", + "dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]", + "dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]", + "dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]", + "laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]", + "laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]", + "laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]", + "laundry_care_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_cotton%]", + "laundry_care_dryer_program_delicates": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_delicates%]", + "laundry_care_dryer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_dessous%]", + "laundry_care_dryer_program_down_feathers": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_down_feathers%]", + "laundry_care_dryer_program_hygiene": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_hygiene%]", + "laundry_care_dryer_program_in_basket": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_in_basket%]", + "laundry_care_dryer_program_jeans": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_jeans%]", + "laundry_care_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_mix%]", + "laundry_care_dryer_program_my_time_my_drying_time": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_my_time_my_drying_time%]", + "laundry_care_dryer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_outdoor%]", + "laundry_care_dryer_program_pillow": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_pillow%]", + "laundry_care_dryer_program_shirts_15": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_shirts_15%]", + "laundry_care_dryer_program_super_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_super_40%]", + "laundry_care_dryer_program_synthetic": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic%]", + "laundry_care_dryer_program_synthetic_refresh": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic_refresh%]", + "laundry_care_dryer_program_time_cold": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_20": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_20%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_30%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_60%]", + "laundry_care_dryer_program_time_warm": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_30%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_40%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_60%]", + "laundry_care_dryer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_towels%]", + "laundry_care_washer_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton%]", + "laundry_care_washer_dryer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton_eco_4060%]", + "laundry_care_washer_dryer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_easy_care%]", + "laundry_care_washer_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_mix%]", + "laundry_care_washer_dryer_program_wash_and_dry_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_60%]", + "laundry_care_washer_dryer_program_wash_and_dry_90": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_90%]", "laundry_care_washer_program_auto_30": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_30%]", "laundry_care_washer_program_auto_40": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_40%]", "laundry_care_washer_program_auto_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_60%]", "laundry_care_washer_program_chiffon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_chiffon%]", + "laundry_care_washer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton%]", + "laundry_care_washer_program_cotton_colour": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_colour%]", + "laundry_care_washer_program_cotton_cotton_eco": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_cotton_eco%]", + "laundry_care_washer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_eco_4060%]", "laundry_care_washer_program_curtains": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_curtains%]", "laundry_care_washer_program_dark_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dark_wash%]", + "laundry_care_washer_program_delicates_silk": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_delicates_silk%]", "laundry_care_washer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dessous%]", + "laundry_care_washer_program_down_duvet_duvet": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_down_duvet_duvet%]", + "laundry_care_washer_program_drum_clean": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_drum_clean%]", + "laundry_care_washer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_easy_care%]", + "laundry_care_washer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix%]", + "laundry_care_washer_program_mix_night_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix_night_wash%]", "laundry_care_washer_program_monsoon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_monsoon%]", "laundry_care_washer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_outdoor%]", "laundry_care_washer_program_plush_toy": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_plush_toy%]", + "laundry_care_washer_program_power_speed_59": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_power_speed_59%]", + "laundry_care_washer_program_rinse_rinse_spin_drain": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_rinse_rinse_spin_drain%]", + "laundry_care_washer_program_sensitive": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sensitive%]", "laundry_care_washer_program_shirts_blouses": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_shirts_blouses%]", "laundry_care_washer_program_sport_fitness": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sport_fitness%]", - "laundry_care_washer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_towels%]", - "laundry_care_washer_program_water_proof": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_water_proof%]", - "laundry_care_washer_program_power_speed_59": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_power_speed_59%]", "laundry_care_washer_program_super_153045_super_15": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_15%]", "laundry_care_washer_program_super_153045_super_1530": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_1530%]", - "laundry_care_washer_program_down_duvet_duvet": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_down_duvet_duvet%]", - "laundry_care_washer_program_rinse_rinse_spin_drain": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_rinse_rinse_spin_drain%]", - "laundry_care_washer_program_drum_clean": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_drum_clean%]", - "laundry_care_washer_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton%]", - "laundry_care_washer_dryer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton_eco_4060%]", - "laundry_care_washer_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_mix%]", - "laundry_care_washer_dryer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_easy_care%]", - "laundry_care_washer_dryer_program_wash_and_dry_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_60%]", - "laundry_care_washer_dryer_program_wash_and_dry_90": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_90%]" - } - }, - "current_map": { - "name": "Current map", - "state": { - "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_temp_map%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map1": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map1%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map2": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map2%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map3": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map3%]" - } - }, - "functional_light_color_temperature": { - "name": "Functional light color temperature", - "state": { - "cooking_hood_enum_type_color_temperature_custom": "Custom", - "cooking_hood_enum_type_color_temperature_warm": "Warm", - "cooking_hood_enum_type_color_temperature_warm_to_neutral": "Warm to neutral", - "cooking_hood_enum_type_color_temperature_neutral": "Neutral", - "cooking_hood_enum_type_color_temperature_neutral_to_cold": "Neutral to cold", - "cooking_hood_enum_type_color_temperature_cold": "Cold" + "laundry_care_washer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_towels%]", + "laundry_care_washer_program_water_proof": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_water_proof%]", + "laundry_care_washer_program_wool": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_wool%]" } }, "ambient_light_color": { @@ -1198,81 +351,45 @@ "b_s_h_common_enum_type_ambient_light_color_custom_color": "Custom" } }, - "reference_map_id": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_reference_map_id::name%]", - "state": { - "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_temp_map%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map1": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map1%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map2": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map2%]", - "consumer_products_cleaning_robot_enum_type_available_maps_map3": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map3%]" - } - }, - "cleaning_mode": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_cleaning_mode::name%]", - "state": { - "consumer_products_cleaning_robot_enum_type_cleaning_modes_silent": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_silent%]", - "consumer_products_cleaning_robot_enum_type_cleaning_modes_standard": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_standard%]", - "consumer_products_cleaning_robot_enum_type_cleaning_modes_power": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_power%]", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode%]", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only%]", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only%]", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop%]", - "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum%]" - } - }, - "suction_power": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_suction_power::name%]", - "state": { - "consumer_products_cleaning_robot_enum_type_suction_power_silent": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_silent%]", - "consumer_products_cleaning_robot_enum_type_suction_power_standard": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_standard%]", - "consumer_products_cleaning_robot_enum_type_suction_power_max": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_max%]" - } - }, "bean_amount": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_bean_amount::name%]", "state": { - "consumer_products_coffee_maker_enum_type_bean_amount_very_mild": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_mild%]", + "consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground%]", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot%]", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus%]", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus%]", + "consumer_products_coffee_maker_enum_type_bean_amount_extra_strong": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_extra_strong%]", "consumer_products_coffee_maker_enum_type_bean_amount_mild": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_mild%]", "consumer_products_coffee_maker_enum_type_bean_amount_mild_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_mild_plus%]", "consumer_products_coffee_maker_enum_type_bean_amount_normal": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_normal%]", "consumer_products_coffee_maker_enum_type_bean_amount_normal_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_normal_plus%]", "consumer_products_coffee_maker_enum_type_bean_amount_strong": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_strong%]", "consumer_products_coffee_maker_enum_type_bean_amount_strong_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_strong_plus%]", - "consumer_products_coffee_maker_enum_type_bean_amount_very_strong": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_strong%]", - "consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus%]", - "consumer_products_coffee_maker_enum_type_bean_amount_extra_strong": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_extra_strong%]", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot%]", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus%]", - "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus%]", "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_triple_shot%]", "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_triple_shot_plus%]", - "consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground%]" - } - }, - "coffee_temperature": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_coffee_temperature::name%]", - "state": { - "consumer_products_coffee_maker_enum_type_coffee_temperature_88_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_88_c%]", - "consumer_products_coffee_maker_enum_type_coffee_temperature_90_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_90_c%]", - "consumer_products_coffee_maker_enum_type_coffee_temperature_92_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_92_c%]", - "consumer_products_coffee_maker_enum_type_coffee_temperature_94_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_94_c%]", - "consumer_products_coffee_maker_enum_type_coffee_temperature_95_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_95_c%]", - "consumer_products_coffee_maker_enum_type_coffee_temperature_96_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_96_c%]" + "consumer_products_coffee_maker_enum_type_bean_amount_very_mild": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_mild%]", + "consumer_products_coffee_maker_enum_type_bean_amount_very_strong": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_strong%]", + "consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus": "[%key:component::home_connect::selector::bean_amount::options::consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus%]" } }, "bean_container": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_bean_container::name%]", "state": { - "consumer_products_coffee_maker_enum_type_bean_container_selection_right": "[%key:component::home_connect::selector::bean_container::options::consumer_products_coffee_maker_enum_type_bean_container_selection_right%]", - "consumer_products_coffee_maker_enum_type_bean_container_selection_left": "[%key:component::home_connect::selector::bean_container::options::consumer_products_coffee_maker_enum_type_bean_container_selection_left%]" + "consumer_products_coffee_maker_enum_type_bean_container_selection_left": "[%key:component::home_connect::selector::bean_container::options::consumer_products_coffee_maker_enum_type_bean_container_selection_left%]", + "consumer_products_coffee_maker_enum_type_bean_container_selection_right": "[%key:component::home_connect::selector::bean_container::options::consumer_products_coffee_maker_enum_type_bean_container_selection_right%]" } }, - "flow_rate": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_flow_rate::name%]", + "cleaning_mode": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_cleaning_mode::name%]", "state": { - "consumer_products_coffee_maker_enum_type_flow_rate_normal": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_normal%]", - "consumer_products_coffee_maker_enum_type_flow_rate_intense": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_intense%]", - "consumer_products_coffee_maker_enum_type_flow_rate_intense_plus": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_intense_plus%]" + "consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode%]", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum%]", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only%]", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop%]", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only%]", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_power": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_power%]", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_silent": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_silent%]", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_standard": "[%key:component::home_connect::selector::cleaning_mode::options::consumer_products_cleaning_robot_enum_type_cleaning_modes_standard%]" } }, "coffee_milk_ratio": { @@ -1295,12 +412,68 @@ "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_90_percent": "[%key:component::home_connect::selector::coffee_milk_ratio::options::consumer_products_coffee_maker_enum_type_coffee_milk_ratio_90_percent%]" } }, + "coffee_temperature": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_coffee_temperature::name%]", + "state": { + "consumer_products_coffee_maker_enum_type_coffee_temperature_88_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_88_c%]", + "consumer_products_coffee_maker_enum_type_coffee_temperature_90_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_90_c%]", + "consumer_products_coffee_maker_enum_type_coffee_temperature_92_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_92_c%]", + "consumer_products_coffee_maker_enum_type_coffee_temperature_94_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_94_c%]", + "consumer_products_coffee_maker_enum_type_coffee_temperature_95_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_95_c%]", + "consumer_products_coffee_maker_enum_type_coffee_temperature_96_c": "[%key:component::home_connect::selector::coffee_temperature::options::consumer_products_coffee_maker_enum_type_coffee_temperature_96_c%]" + } + }, + "current_map": { + "name": "Current map", + "state": { + "consumer_products_cleaning_robot_enum_type_available_maps_map1": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map1%]", + "consumer_products_cleaning_robot_enum_type_available_maps_map2": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map2%]", + "consumer_products_cleaning_robot_enum_type_available_maps_map3": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map3%]", + "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_temp_map%]" + } + }, + "drying_target": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_dryer_option_drying_target::name%]", + "state": { + "laundry_care_dryer_enum_type_drying_target_cupboard_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_cupboard_dry%]", + "laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus%]", + "laundry_care_dryer_enum_type_drying_target_extra_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_extra_dry%]", + "laundry_care_dryer_enum_type_drying_target_gentle_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_gentle_dry%]", + "laundry_care_dryer_enum_type_drying_target_iron_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_iron_dry%]" + } + }, + "flow_rate": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_flow_rate::name%]", + "state": { + "consumer_products_coffee_maker_enum_type_flow_rate_intense": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_intense%]", + "consumer_products_coffee_maker_enum_type_flow_rate_intense_plus": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_intense_plus%]", + "consumer_products_coffee_maker_enum_type_flow_rate_normal": "[%key:component::home_connect::selector::flow_rate::options::consumer_products_coffee_maker_enum_type_flow_rate_normal%]" + } + }, + "functional_light_color_temperature": { + "name": "Functional light color temperature", + "state": { + "cooking_hood_enum_type_color_temperature_cold": "Cold", + "cooking_hood_enum_type_color_temperature_custom": "Custom", + "cooking_hood_enum_type_color_temperature_neutral": "Neutral", + "cooking_hood_enum_type_color_temperature_neutral_to_cold": "Neutral to cold", + "cooking_hood_enum_type_color_temperature_warm": "Warm", + "cooking_hood_enum_type_color_temperature_warm_to_neutral": "Warm to neutral" + } + }, "hot_water_temperature": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_hot_water_temperature::name%]", "state": { - "consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f%]", "consumer_products_coffee_maker_enum_type_hot_water_temperature_50_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_50_c%]", "consumer_products_coffee_maker_enum_type_hot_water_temperature_55_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_55_c%]", "consumer_products_coffee_maker_enum_type_hot_water_temperature_60_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_60_c%]", @@ -1312,27 +485,221 @@ "consumer_products_coffee_maker_enum_type_hot_water_temperature_90_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_90_c%]", "consumer_products_coffee_maker_enum_type_hot_water_temperature_95_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_95_c%]", "consumer_products_coffee_maker_enum_type_hot_water_temperature_97_c": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_97_c%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f%]", - "consumer_products_coffee_maker_enum_type_hot_water_temperature_max": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_max%]" + "consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_max": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_max%]", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea": "[%key:component::home_connect::selector::hot_water_temperature::options::consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea%]" } }, - "drying_target": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_dryer_option_drying_target::name%]", + "intensive_level": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_hood_option_intensive_level::name%]", "state": { - "laundry_care_dryer_enum_type_drying_target_iron_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_iron_dry%]", - "laundry_care_dryer_enum_type_drying_target_gentle_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_gentle_dry%]", - "laundry_care_dryer_enum_type_drying_target_cupboard_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_cupboard_dry%]", - "laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus%]", - "laundry_care_dryer_enum_type_drying_target_extra_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_extra_dry%]" + "cooking_hood_enum_type_intensive_stage_intensive_stage1": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage1%]", + "cooking_hood_enum_type_intensive_stage_intensive_stage2": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage2%]", + "cooking_hood_enum_type_intensive_stage_intensive_stage_off": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage_off%]" + } + }, + "reference_map_id": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_reference_map_id::name%]", + "state": { + "consumer_products_cleaning_robot_enum_type_available_maps_map1": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map1%]", + "consumer_products_cleaning_robot_enum_type_available_maps_map2": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map2%]", + "consumer_products_cleaning_robot_enum_type_available_maps_map3": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_map3%]", + "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "[%key:component::home_connect::selector::available_maps::options::consumer_products_cleaning_robot_enum_type_available_maps_temp_map%]" + } + }, + "selected_program": { + "name": "Selected program", + "state": { + "consumer_products_cleaning_robot_program_basic_go_home": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_basic_go_home%]", + "consumer_products_cleaning_robot_program_cleaning_clean_all": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_all%]", + "consumer_products_cleaning_robot_program_cleaning_clean_map": "[%key:component::home_connect::selector::programs::options::consumer_products_cleaning_robot_program_cleaning_clean_map%]", + "consumer_products_coffee_maker_program_beverage_caffe_grande": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_grande%]", + "consumer_products_coffee_maker_program_beverage_caffe_latte": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_caffe_latte%]", + "consumer_products_coffee_maker_program_beverage_cappuccino": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_cappuccino%]", + "consumer_products_coffee_maker_program_beverage_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_coffee%]", + "consumer_products_coffee_maker_program_beverage_espresso": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso%]", + "consumer_products_coffee_maker_program_beverage_espresso_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_doppio%]", + "consumer_products_coffee_maker_program_beverage_espresso_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_espresso_macchiato%]", + "consumer_products_coffee_maker_program_beverage_hot_water": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_hot_water%]", + "consumer_products_coffee_maker_program_beverage_latte_macchiato": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_latte_macchiato%]", + "consumer_products_coffee_maker_program_beverage_milk_froth": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_milk_froth%]", + "consumer_products_coffee_maker_program_beverage_ristretto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_ristretto%]", + "consumer_products_coffee_maker_program_beverage_warm_milk": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_warm_milk%]", + "consumer_products_coffee_maker_program_beverage_x_l_coffee": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_beverage_x_l_coffee%]", + "consumer_products_coffee_maker_program_coffee_world_americano": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_americano%]", + "consumer_products_coffee_maker_program_coffee_world_black_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_black_eye%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_au_lait%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_con_leche%]", + "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cafe_cortado%]", + "consumer_products_coffee_maker_program_coffee_world_cortado": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_cortado%]", + "consumer_products_coffee_maker_program_coffee_world_dead_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_dead_eye%]", + "consumer_products_coffee_maker_program_coffee_world_doppio": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_doppio%]", + "consumer_products_coffee_maker_program_coffee_world_flat_white": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_flat_white%]", + "consumer_products_coffee_maker_program_coffee_world_galao": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_galao%]", + "consumer_products_coffee_maker_program_coffee_world_garoto": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_garoto%]", + "consumer_products_coffee_maker_program_coffee_world_grosser_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_grosser_brauner%]", + "consumer_products_coffee_maker_program_coffee_world_kaapi": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kaapi%]", + "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_kleiner_brauner%]", + "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd%]", + "consumer_products_coffee_maker_program_coffee_world_red_eye": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_red_eye%]", + "consumer_products_coffee_maker_program_coffee_world_verlaengerter": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter%]", + "consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun%]", + "consumer_products_coffee_maker_program_coffee_world_wiener_melange": "[%key:component::home_connect::selector::programs::options::consumer_products_coffee_maker_program_coffee_world_wiener_melange%]", + "cooking_common_program_hood_automatic": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_automatic%]", + "cooking_common_program_hood_delayed_shut_off": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_delayed_shut_off%]", + "cooking_common_program_hood_venting": "[%key:component::home_connect::selector::programs::options::cooking_common_program_hood_venting%]", + "cooking_oven_program_heating_mode_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_bottom_heating%]", + "cooking_oven_program_heating_mode_defrost": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_defrost%]", + "cooking_oven_program_heating_mode_desiccation": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_desiccation%]", + "cooking_oven_program_heating_mode_frozen_heatup_special": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_frozen_heatup_special%]", + "cooking_oven_program_heating_mode_hot_air": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air%]", + "cooking_oven_program_heating_mode_hot_air_100_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_100_steam%]", + "cooking_oven_program_heating_mode_hot_air_30_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_30_steam%]", + "cooking_oven_program_heating_mode_hot_air_60_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_60_steam%]", + "cooking_oven_program_heating_mode_hot_air_80_steam": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_80_steam%]", + "cooking_oven_program_heating_mode_hot_air_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_eco%]", + "cooking_oven_program_heating_mode_hot_air_grilling": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_hot_air_grilling%]", + "cooking_oven_program_heating_mode_intensive_heat": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_intensive_heat%]", + "cooking_oven_program_heating_mode_keep_warm": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_keep_warm%]", + "cooking_oven_program_heating_mode_pizza_setting": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pizza_setting%]", + "cooking_oven_program_heating_mode_pre_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_pre_heating%]", + "cooking_oven_program_heating_mode_preheat_ovenware": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_preheat_ovenware%]", + "cooking_oven_program_heating_mode_proof": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_proof%]", + "cooking_oven_program_heating_mode_sabbath_programme": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_sabbath_programme%]", + "cooking_oven_program_heating_mode_slow_cook": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_slow_cook%]", + "cooking_oven_program_heating_mode_top_bottom_heating": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating%]", + "cooking_oven_program_heating_mode_top_bottom_heating_eco": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_top_bottom_heating_eco%]", + "cooking_oven_program_heating_mode_warming_drawer": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_heating_mode_warming_drawer%]", + "cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]", + "cooking_oven_program_microwave_180_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_180_watt%]", + "cooking_oven_program_microwave_360_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_360_watt%]", + "cooking_oven_program_microwave_600_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_600_watt%]", + "cooking_oven_program_microwave_900_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_900_watt%]", + "cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]", + "cooking_oven_program_microwave_max": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_max%]", + "dishcare_dishwasher_program_auto_1": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_1%]", + "dishcare_dishwasher_program_auto_2": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_2%]", + "dishcare_dishwasher_program_auto_3": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_3%]", + "dishcare_dishwasher_program_auto_half_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_auto_half_load%]", + "dishcare_dishwasher_program_eco_50": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_eco_50%]", + "dishcare_dishwasher_program_express_sparkle_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_express_sparkle_65%]", + "dishcare_dishwasher_program_glas_40": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glas_40%]", + "dishcare_dishwasher_program_glass_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_glass_care%]", + "dishcare_dishwasher_program_intensiv_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_45%]", + "dishcare_dishwasher_program_intensiv_70": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_70%]", + "dishcare_dishwasher_program_intensiv_power": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_intensiv_power%]", + "dishcare_dishwasher_program_kurz_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_kurz_60%]", + "dishcare_dishwasher_program_machine_care": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_machine_care%]", + "dishcare_dishwasher_program_magic_daily": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_magic_daily%]", + "dishcare_dishwasher_program_maximum_cleaning": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_maximum_cleaning%]", + "dishcare_dishwasher_program_mixed_load": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_mixed_load%]", + "dishcare_dishwasher_program_night_wash": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_night_wash%]", + "dishcare_dishwasher_program_normal_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_45%]", + "dishcare_dishwasher_program_normal_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_normal_65%]", + "dishcare_dishwasher_program_pre_rinse": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_pre_rinse%]", + "dishcare_dishwasher_program_quick_45": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_45%]", + "dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]", + "dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]", + "dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]", + "laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]", + "laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]", + "laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]", + "laundry_care_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_cotton%]", + "laundry_care_dryer_program_delicates": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_delicates%]", + "laundry_care_dryer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_dessous%]", + "laundry_care_dryer_program_down_feathers": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_down_feathers%]", + "laundry_care_dryer_program_hygiene": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_hygiene%]", + "laundry_care_dryer_program_in_basket": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_in_basket%]", + "laundry_care_dryer_program_jeans": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_jeans%]", + "laundry_care_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_mix%]", + "laundry_care_dryer_program_my_time_my_drying_time": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_my_time_my_drying_time%]", + "laundry_care_dryer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_outdoor%]", + "laundry_care_dryer_program_pillow": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_pillow%]", + "laundry_care_dryer_program_shirts_15": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_shirts_15%]", + "laundry_care_dryer_program_super_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_super_40%]", + "laundry_care_dryer_program_synthetic": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic%]", + "laundry_care_dryer_program_synthetic_refresh": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_synthetic_refresh%]", + "laundry_care_dryer_program_time_cold": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_20": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_20%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_30%]", + "laundry_care_dryer_program_time_cold_fix_time_cold_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_cold_fix_time_cold_60%]", + "laundry_care_dryer_program_time_warm": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_30": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_30%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_40": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_40%]", + "laundry_care_dryer_program_time_warm_fix_time_warm_60": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_time_warm_fix_time_warm_60%]", + "laundry_care_dryer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_towels%]", + "laundry_care_washer_dryer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton%]", + "laundry_care_washer_dryer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_cotton_eco_4060%]", + "laundry_care_washer_dryer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_easy_care%]", + "laundry_care_washer_dryer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_mix%]", + "laundry_care_washer_dryer_program_wash_and_dry_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_60%]", + "laundry_care_washer_dryer_program_wash_and_dry_90": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_dryer_program_wash_and_dry_90%]", + "laundry_care_washer_program_auto_30": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_30%]", + "laundry_care_washer_program_auto_40": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_40%]", + "laundry_care_washer_program_auto_60": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_auto_60%]", + "laundry_care_washer_program_chiffon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_chiffon%]", + "laundry_care_washer_program_cotton": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton%]", + "laundry_care_washer_program_cotton_colour": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_colour%]", + "laundry_care_washer_program_cotton_cotton_eco": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_cotton_eco%]", + "laundry_care_washer_program_cotton_eco_4060": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_cotton_eco_4060%]", + "laundry_care_washer_program_curtains": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_curtains%]", + "laundry_care_washer_program_dark_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dark_wash%]", + "laundry_care_washer_program_delicates_silk": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_delicates_silk%]", + "laundry_care_washer_program_dessous": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_dessous%]", + "laundry_care_washer_program_down_duvet_duvet": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_down_duvet_duvet%]", + "laundry_care_washer_program_drum_clean": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_drum_clean%]", + "laundry_care_washer_program_easy_care": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_easy_care%]", + "laundry_care_washer_program_mix": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix%]", + "laundry_care_washer_program_mix_night_wash": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_mix_night_wash%]", + "laundry_care_washer_program_monsoon": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_monsoon%]", + "laundry_care_washer_program_outdoor": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_outdoor%]", + "laundry_care_washer_program_plush_toy": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_plush_toy%]", + "laundry_care_washer_program_power_speed_59": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_power_speed_59%]", + "laundry_care_washer_program_rinse_rinse_spin_drain": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_rinse_rinse_spin_drain%]", + "laundry_care_washer_program_sensitive": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sensitive%]", + "laundry_care_washer_program_shirts_blouses": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_shirts_blouses%]", + "laundry_care_washer_program_sport_fitness": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_sport_fitness%]", + "laundry_care_washer_program_super_153045_super_15": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_15%]", + "laundry_care_washer_program_super_153045_super_1530": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_super_153045_super_1530%]", + "laundry_care_washer_program_towels": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_towels%]", + "laundry_care_washer_program_water_proof": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_water_proof%]", + "laundry_care_washer_program_wool": "[%key:component::home_connect::selector::programs::options::laundry_care_washer_program_wool%]" + } + }, + "spin_speed": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_spin_speed::name%]", + "state": { + "laundry_care_washer_enum_type_spin_speed_off": "[%key:common::state::off%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1000": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1000%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1200": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1200%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1400": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1400%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1600": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1600%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_400": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_400%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_600": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_600%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_700": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_700%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_800": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_800%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_900": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_900%]", + "laundry_care_washer_enum_type_spin_speed_ul_high": "[%key:common::state::high%]", + "laundry_care_washer_enum_type_spin_speed_ul_low": "[%key:common::state::low%]", + "laundry_care_washer_enum_type_spin_speed_ul_medium": "[%key:common::state::medium%]", + "laundry_care_washer_enum_type_spin_speed_ul_off": "[%key:common::state::off%]" + } + }, + "suction_power": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_cleaning_robot_option_suction_power::name%]", + "state": { + "consumer_products_cleaning_robot_enum_type_suction_power_max": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_max%]", + "consumer_products_cleaning_robot_enum_type_suction_power_silent": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_silent%]", + "consumer_products_cleaning_robot_enum_type_suction_power_standard": "[%key:component::home_connect::selector::suction_power::options::consumer_products_cleaning_robot_enum_type_suction_power_standard%]" + } + }, + "vario_perfect": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_vario_perfect::name%]", + "state": { + "laundry_care_common_enum_type_vario_perfect_eco_perfect": "[%key:component::home_connect::selector::vario_perfect::options::laundry_care_common_enum_type_vario_perfect_eco_perfect%]", + "laundry_care_common_enum_type_vario_perfect_off": "[%key:common::state::off%]", + "laundry_care_common_enum_type_vario_perfect_speed_perfect": "[%key:component::home_connect::selector::vario_perfect::options::laundry_care_common_enum_type_vario_perfect_speed_perfect%]" } }, "venting_level": { @@ -1346,20 +713,12 @@ "cooking_hood_enum_type_stage_fan_stage_05": "[%key:component::home_connect::selector::venting_level::options::cooking_hood_enum_type_stage_fan_stage_05%]" } }, - "intensive_level": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_hood_option_intensive_level::name%]", - "state": { - "cooking_hood_enum_type_intensive_stage_intensive_stage_off": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage_off%]", - "cooking_hood_enum_type_intensive_stage_intensive_stage1": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage1%]", - "cooking_hood_enum_type_intensive_stage_intensive_stage2": "[%key:component::home_connect::selector::intensive_level::options::cooking_hood_enum_type_intensive_stage_intensive_stage2%]" - } - }, "warming_level": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_oven_option_warming_level::name%]", "state": { + "cooking_oven_enum_type_warming_level_high": "[%key:common::state::high%]", "cooking_oven_enum_type_warming_level_low": "[%key:common::state::low%]", - "cooking_oven_enum_type_warming_level_medium": "[%key:common::state::medium%]", - "cooking_oven_enum_type_warming_level_high": "[%key:common::state::high%]" + "cooking_oven_enum_type_warming_level_medium": "[%key:common::state::medium%]" } }, "washer_temperature": { @@ -1375,58 +734,183 @@ "laundry_care_washer_enum_type_temperature_g_c_80": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_g_c_80%]", "laundry_care_washer_enum_type_temperature_g_c_90": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_g_c_90%]", "laundry_care_washer_enum_type_temperature_ul_cold": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_cold%]", - "laundry_care_washer_enum_type_temperature_ul_warm": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_warm%]", + "laundry_care_washer_enum_type_temperature_ul_extra_hot": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_extra_hot%]", "laundry_care_washer_enum_type_temperature_ul_hot": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_hot%]", - "laundry_care_washer_enum_type_temperature_ul_extra_hot": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_extra_hot%]" - } - }, - "spin_speed": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_spin_speed::name%]", - "state": { - "laundry_care_washer_enum_type_spin_speed_off": "[%key:common::state::off%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_400": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_400%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_600": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_600%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_700": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_700%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_800": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_800%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_900": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_900%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1000": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1000%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1200": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1200%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1400": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1400%]", - "laundry_care_washer_enum_type_spin_speed_r_p_m_1600": "[%key:component::home_connect::selector::spin_speed::options::laundry_care_washer_enum_type_spin_speed_r_p_m_1600%]", - "laundry_care_washer_enum_type_spin_speed_ul_off": "[%key:common::state::off%]", - "laundry_care_washer_enum_type_spin_speed_ul_low": "[%key:common::state::low%]", - "laundry_care_washer_enum_type_spin_speed_ul_medium": "[%key:common::state::medium%]", - "laundry_care_washer_enum_type_spin_speed_ul_high": "[%key:common::state::high%]" - } - }, - "vario_perfect": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_vario_perfect::name%]", - "state": { - "laundry_care_common_enum_type_vario_perfect_off": "[%key:common::state::off%]", - "laundry_care_common_enum_type_vario_perfect_eco_perfect": "[%key:component::home_connect::selector::vario_perfect::options::laundry_care_common_enum_type_vario_perfect_eco_perfect%]", - "laundry_care_common_enum_type_vario_perfect_speed_perfect": "[%key:component::home_connect::selector::vario_perfect::options::laundry_care_common_enum_type_vario_perfect_speed_perfect%]" + "laundry_care_washer_enum_type_temperature_ul_warm": "[%key:component::home_connect::selector::washer_temperature::options::laundry_care_washer_enum_type_temperature_ul_warm%]" } } }, "sensor": { - "program_progress": { - "name": "Program progress" - }, - "program_finish_time": { - "name": "Program finish time" - }, - "operation_state": { - "name": "Operation state", + "alarm_clock_elapsed": { + "name": "Alarm clock elapsed", "state": { - "inactive": "Inactive", - "ready": "Ready", - "delayedstart": "Delayed start", - "run": "Running", - "pause": "[%key:common::state::paused%]", - "actionrequired": "Action required", - "finished": "Finished", + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "bean_container_empty": { + "name": "Bean container empty", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "calc_n_clean_in10cups": { + "name": "Calc'N'Clean in 10 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "calc_n_clean_in15cups": { + "name": "Calc'N'Clean in 15 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "calc_n_clean_in20cups": { + "name": "Calc'N'Clean in 20 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "calc_n_clean_in5cups": { + "name": "Calc'N'Clean in 5 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "camera_state": { + "name": "Camera state", + "state": { + "disabled": "[%key:common::state::disabled%]", "error": "[%key:common::state::error%]", - "aborting": "Aborting" + "ready": "Ready", + "sleeping": "Sleeping", + "streamingcloud": "Streaming cloud", + "streaminglocal": "Streaming local", + "streaminglocal_and_cloud": "Streaming local and cloud" + } + }, + "coffee_and_milk_counter": { + "name": "Coffee and milk cups", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" + }, + "coffee_counter": { + "name": "Coffees", + "unit_of_measurement": "coffees" + }, + "descaling_in_10_cups": { + "name": "Descaling in 10 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "descaling_in_15_cups": { + "name": "Descaling in 15 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "descaling_in_20_cups": { + "name": "Descaling in 20 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "descaling_in_5_cups": { + "name": "Descaling in 5 cups", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_calc_n_clean_blockage": { + "name": "Device Calc'N'Clean blockage", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_calc_n_clean_overdue": { + "name": "Device Calc'N'Clean overdue", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_cleaning_overdue": { + "name": "Device cleaning overdue", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_descaling_blockage": { + "name": "Device descaling blockage", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_descaling_overdue": { + "name": "Device descaling overdue", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_should_be_calc_n_cleaned": { + "name": "Device should be Calc'N'Cleaned", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_should_be_cleaned": { + "name": "Device should be cleaned", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "device_should_be_descaled": { + "name": "Device should be descaled", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "docking_station_not_found": { + "name": "Docking station not found", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" } }, "door": { @@ -1437,13 +921,69 @@ "open": "[%key:common::state::open%]" } }, - "coffee_counter": { - "name": "Coffees", - "unit_of_measurement": "coffees" + "drip_tray_full": { + "name": "Drip tray full", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } }, - "powder_coffee_counter": { - "name": "Powder coffees", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::coffee_counter::unit_of_measurement%]" + "drying_process_finished": { + "name": "Drying process finished", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "empty_dust_box_and_clean_filter": { + "name": "Empty dust box and clean filter", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "freezer_door_alarm": { + "name": "Freezer door alarm", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "freezer_temperature_alarm": { + "name": "Freezer temperature alarm", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "frothy_milk_counter": { + "name": "Frothy milk cups", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" + }, + "grease_filter_max_saturation_nearly_reached": { + "name": "Grease filter max saturation nearly reached", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "grease_filter_max_saturation_reached": { + "name": "Grease filter max saturation reached", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "hot_milk_counter": { + "name": "Hot milk cups", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" }, "hot_water_counter": { "name": "Hot water" @@ -1452,358 +992,150 @@ "name": "Hot water cups", "unit_of_measurement": "cups" }, - "hot_milk_counter": { - "name": "Hot milk cups", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" - }, - "frothy_milk_counter": { - "name": "Frothy milk cups", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" - }, - "milk_counter": { - "name": "Milk cups", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" - }, - "coffee_and_milk_counter": { - "name": "Coffee and milk cups", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" - }, - "ristretto_espresso_counter": { - "name": "Ristretto espresso cups", - "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" - }, - "camera_state": { - "name": "Camera state", + "keep_milk_tank_cool": { + "name": "Keep milk tank cool", "state": { - "disabled": "[%key:common::state::disabled%]", - "sleeping": "Sleeping", - "ready": "Ready", - "streaminglocal": "Streaming local", - "streamingcloud": "Streaming cloud", - "streaminglocal_and_cloud": "Streaming local and cloud", - "error": "[%key:common::state::error%]" + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" } }, "last_selected_map": { "name": "Last selected map", "state": { - "tempmap": "Temporary map", "map1": "Map 1", "map2": "Map 2", - "map3": "Map 3" + "map3": "Map 3", + "tempmap": "Temporary map" + } + }, + "milk_counter": { + "name": "Milk cups", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" + }, + "operation_state": { + "name": "Operation state", + "state": { + "aborting": "Aborting", + "actionrequired": "Action required", + "delayedstart": "Delayed start", + "error": "[%key:common::state::error%]", + "finished": "Finished", + "inactive": "Inactive", + "pause": "[%key:common::state::paused%]", + "ready": "Ready", + "run": "Running" } }, "oven_current_cavity_temperature": { "name": "Current oven cavity temperature" }, - "program_aborted": { - "name": "Program aborted", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "program_finished": { - "name": "Program finished", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "alarm_clock_elapsed": { - "name": "Alarm clock elapsed", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "preheat_finished": { - "name": "Pre-heat finished", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "regular_preheat_finished": { - "name": "Regular pre-heat finished", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "drying_process_finished": { - "name": "Drying process finished", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "salt_nearly_empty": { - "name": "Salt nearly empty", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "rinse_aid_nearly_empty": { - "name": "Rinse aid nearly empty", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "bean_container_empty": { - "name": "Bean container empty", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "water_tank_empty": { - "name": "Water tank empty", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "drip_tray_full": { - "name": "Drip tray full", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "keep_milk_tank_cool": { - "name": "Keep milk tank cool", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "descaling_in_20_cups": { - "name": "Descaling in 20 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "descaling_in_15_cups": { - "name": "Descaling in 15 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "descaling_in_10_cups": { - "name": "Descaling in 10 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "descaling_in_5_cups": { - "name": "Descaling in 5 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_should_be_descaled": { - "name": "Device should be descaled", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_descaling_overdue": { - "name": "Device descaling overdue", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_descaling_blockage": { - "name": "Device descaling blockage", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_should_be_cleaned": { - "name": "Device should be cleaned", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_cleaning_overdue": { - "name": "Device cleaning overdue", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "calc_n_clean_in20cups": { - "name": "Calc'N'Clean in 20 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "calc_n_clean_in15cups": { - "name": "Calc'N'Clean in 15 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "calc_n_clean_in10cups": { - "name": "Calc'N'Clean in 10 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "calc_n_clean_in5cups": { - "name": "Calc'N'Clean in 5 cups", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_should_be_calc_n_cleaned": { - "name": "Device should be Calc'N'Cleaned", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_calc_n_clean_overdue": { - "name": "Device Calc'N'Clean overdue", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "device_calc_n_clean_blockage": { - "name": "Device Calc'N'Clean blockage", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "freezer_door_alarm": { - "name": "Freezer door alarm", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "refrigerator_door_alarm": { - "name": "Refrigerator door alarm", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "freezer_temperature_alarm": { - "name": "Freezer temperature alarm", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "empty_dust_box_and_clean_filter": { - "name": "Empty dust box and clean filter", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "robot_is_stuck": { - "name": "Robot is stuck", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, - "docking_station_not_found": { - "name": "Docking station not found", - "state": { - "off": "[%key:common::state::off%]", - "confirmed": "[%key:component::home_connect::common::confirmed%]", - "present": "[%key:component::home_connect::common::present%]" - } - }, "poor_i_dos_1_fill_level": { "name": "Poor i-Dos 1 fill level", "state": { - "off": "[%key:common::state::off%]", "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", "present": "[%key:component::home_connect::common::present%]" } }, "poor_i_dos_2_fill_level": { "name": "Poor i-Dos 2 fill level", "state": { - "off": "[%key:common::state::off%]", "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", "present": "[%key:component::home_connect::common::present%]" } }, - "grease_filter_max_saturation_nearly_reached": { - "name": "Grease filter max saturation nearly reached", + "powder_coffee_counter": { + "name": "Powder coffees", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::coffee_counter::unit_of_measurement%]" + }, + "preheat_finished": { + "name": "Pre-heat finished", "state": { - "off": "[%key:common::state::off%]", "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", "present": "[%key:component::home_connect::common::present%]" } }, - "grease_filter_max_saturation_reached": { - "name": "Grease filter max saturation reached", + "program_aborted": { + "name": "Program aborted", "state": { - "off": "[%key:common::state::off%]", "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "program_finish_time": { + "name": "Program finish time" + }, + "program_finished": { + "name": "Program finished", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "program_progress": { + "name": "Program progress" + }, + "refrigerator_door_alarm": { + "name": "Refrigerator door alarm", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "regular_preheat_finished": { + "name": "Regular pre-heat finished", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "rinse_aid_nearly_empty": { + "name": "Rinse aid nearly empty", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "ristretto_espresso_counter": { + "name": "Ristretto espresso cups", + "unit_of_measurement": "[%key:component::home_connect::entity::sensor::hot_water_cups_counter::unit_of_measurement%]" + }, + "robot_is_stuck": { + "name": "Robot is stuck", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "salt_nearly_empty": { + "name": "Salt nearly empty", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", + "present": "[%key:component::home_connect::common::present%]" + } + }, + "water_tank_empty": { + "name": "Water tank empty", + "state": { + "confirmed": "[%key:component::home_connect::common::confirmed%]", + "off": "[%key:common::state::off%]", "present": "[%key:component::home_connect::common::present%]" } } }, "switch": { - "power": { - "name": "Power" + "brilliance_dry": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_brilliance_dry::name%]" }, "child_lock": { "name": "Child lock" @@ -1811,24 +1143,6 @@ "cup_warmer": { "name": "Cup warmer" }, - "refrigerator_super_mode": { - "name": "Refrigerator super mode" - }, - "freezer_super_mode": { - "name": "Freezer super mode" - }, - "eco_mode": { - "name": "Eco mode" - }, - "sabbath_mode": { - "name": "Sabbath mode" - }, - "vacation_mode": { - "name": "Vacation mode" - }, - "fresh_mode": { - "name": "Fresh mode" - }, "dispenser_enabled": { "name": "Dispenser", "state": { @@ -1836,50 +1150,736 @@ "on": "[%key:common::state::enabled%]" } }, - "door_assistant_fridge": { - "name": "Fridge door assistant" - }, "door_assistant_freezer": { "name": "Freezer door assistant" }, - "multiple_beverages": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_multiple_beverages::name%]" - }, - "intensiv_zone": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_intensiv_zone::name%]" - }, - "brilliance_dry": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_brilliance_dry::name%]" - }, - "vario_speed_plus": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_vario_speed_plus::name%]" - }, - "silence_on_demand": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_silence_on_demand::name%]" - }, - "half_load": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_half_load::name%]" - }, - "extra_dry": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_extra_dry::name%]" - }, - "hygiene_plus": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_hygiene_plus::name%]" + "door_assistant_fridge": { + "name": "Fridge door assistant" }, "eco_dry": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_eco_dry::name%]" }, - "zeolite_dry": { - "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_zeolite_dry::name%]" + "eco_mode": { + "name": "Eco mode" + }, + "extra_dry": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_extra_dry::name%]" }, "fast_pre_heat": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::cooking_oven_option_fast_pre_heat::name%]" }, + "freezer_super_mode": { + "name": "Freezer super mode" + }, + "fresh_mode": { + "name": "Fresh mode" + }, + "half_load": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_half_load::name%]" + }, + "hygiene_plus": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_hygiene_plus::name%]" + }, "i_dos1_active": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_i_dos1_active::name%]" }, "i_dos2_active": { "name": "[%key:component::home_connect::services::set_program_and_options::fields::laundry_care_washer_option_i_dos2_active::name%]" + }, + "intensiv_zone": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_intensiv_zone::name%]" + }, + "multiple_beverages": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_multiple_beverages::name%]" + }, + "power": { + "name": "Power" + }, + "refrigerator_super_mode": { + "name": "Refrigerator super mode" + }, + "sabbath_mode": { + "name": "Sabbath mode" + }, + "silence_on_demand": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_silence_on_demand::name%]" + }, + "vacation_mode": { + "name": "Vacation mode" + }, + "vario_speed_plus": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_vario_speed_plus::name%]" + }, + "zeolite_dry": { + "name": "[%key:component::home_connect::services::set_program_and_options::fields::dishcare_dishwasher_option_zeolite_dry::name%]" + } + } + }, + "exceptions": { + "appliance_not_found": { + "message": "Appliance for device ID {device_id} not found" + }, + "auth_error": { + "message": "Authentication error: {error}. Please, re-authenticate your account" + }, + "config_entry_not_found": { + "message": "Config entry for device ID {device_id} not found" + }, + "device_entry_not_found": { + "message": "Device entry for device ID {device_id} not found" + }, + "execute_command": { + "message": "Error executing command {command}: {error}" + }, + "fetch_api_error": { + "message": "Error obtaining data from the API: {error}" + }, + "pause_program": { + "message": "Error pausing program: {error}" + }, + "power_off": { + "message": "Error turning off {appliance_name} with value \"{value}\": {error}" + }, + "power_on": { + "message": "Error turning on {appliance_name}: {error}" + }, + "required_program_or_one_option_at_least": { + "message": "A program or at least one of the possible options for a program should be specified" + }, + "select_light_custom_color": { + "message": "Error selecting custom color of {entity_id}: {error}" + }, + "select_program": { + "message": "Error selecting program {program}: {error}" + }, + "set_light_brightness": { + "message": "Error setting brightness of {entity_id}: {error}" + }, + "set_light_color": { + "message": "Error setting color of {entity_id}: {error}" + }, + "set_option": { + "message": "Error setting the option for the program: {error}" + }, + "set_options_active_program": { + "message": "Error setting options for the active program: {error}" + }, + "set_options_selected_program": { + "message": "Error setting options for the selected program: {error}" + }, + "set_setting": { + "message": "Error assigning the value \"{value}\" to the setting \"{key}\": {error}" + }, + "set_setting_entity": { + "message": "Error assigning the value \"{value}\" to the setting \"{key}\" for {entity_id}: {error}" + }, + "start_program": { + "message": "Error starting program {program}: {error}" + }, + "stop_program": { + "message": "Error stopping program: {error}" + }, + "turn_off": { + "message": "Error turning off {entity_id} ({key}): {error}" + }, + "turn_off_light": { + "message": "Error turning off {entity_id}: {error}" + }, + "turn_off_not_supported": { + "message": "{appliance_name} does not support turning off or entering standby mode." + }, + "turn_on": { + "message": "Error turning on {entity_id} ({key}): {error}" + }, + "turn_on_light": { + "message": "Error turning on {entity_id}: {error}" + }, + "unable_to_retrieve_turn_off": { + "message": "Unable to turn off {appliance_name} because its support for turning off or entering standby mode could not be determined." + } + }, + "issues": { + "deprecated_time_alarm_clock": { + "fix_flow": { + "step": { + "confirm": { + "description": "The alarm clock entity `{entity_id}` is deprecated because it's being moved to the `number` platform.\n\nPlease use the new `number` entity.", + "title": "[%key:component::home_connect::issues::deprecated_time_alarm_clock::title%]" + } + } + }, + "title": "Deprecated alarm clock entity" + }, + "deprecated_time_alarm_clock_in_automations_scripts": { + "fix_flow": { + "step": { + "confirm": { + "description": "The alarm clock entity `{entity_id}`, which is deprecated because it's being moved to the `number` platform, is used in the following automations or scripts:\n{items}\n\nPlease, fix this issue by updating your automations or scripts to use the new `number` entity.", + "title": "[%key:component::home_connect::issues::deprecated_time_alarm_clock_in_automations_scripts::title%]" + } + } + }, + "title": "Deprecated alarm clock entity detected in some automations or scripts" + } + }, + "selector": { + "affects_to": { + "options": { + "active_program": "Active program", + "selected_program": "Selected program" + } + }, + "available_maps": { + "options": { + "consumer_products_cleaning_robot_enum_type_available_maps_map1": "Map 1", + "consumer_products_cleaning_robot_enum_type_available_maps_map2": "Map 2", + "consumer_products_cleaning_robot_enum_type_available_maps_map3": "Map 3", + "consumer_products_cleaning_robot_enum_type_available_maps_temp_map": "Temporary map" + } + }, + "bean_amount": { + "options": { + "consumer_products_coffee_maker_enum_type_bean_amount_coffee_ground": "Coffee ground", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot": "Double shot", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus": "Double shot +", + "consumer_products_coffee_maker_enum_type_bean_amount_double_shot_plus_plus": "Double shot ++", + "consumer_products_coffee_maker_enum_type_bean_amount_extra_strong": "Extra strong", + "consumer_products_coffee_maker_enum_type_bean_amount_mild": "Mild", + "consumer_products_coffee_maker_enum_type_bean_amount_mild_plus": "Mild +", + "consumer_products_coffee_maker_enum_type_bean_amount_normal": "Normal", + "consumer_products_coffee_maker_enum_type_bean_amount_normal_plus": "Normal +", + "consumer_products_coffee_maker_enum_type_bean_amount_strong": "Strong", + "consumer_products_coffee_maker_enum_type_bean_amount_strong_plus": "Strong +", + "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot": "Triple shot", + "consumer_products_coffee_maker_enum_type_bean_amount_triple_shot_plus": "Triple shot +", + "consumer_products_coffee_maker_enum_type_bean_amount_very_mild": "Very mild", + "consumer_products_coffee_maker_enum_type_bean_amount_very_strong": "Very strong", + "consumer_products_coffee_maker_enum_type_bean_amount_very_strong_plus": "Very strong +" + } + }, + "bean_container": { + "options": { + "consumer_products_coffee_maker_enum_type_bean_container_selection_left": "Left", + "consumer_products_coffee_maker_enum_type_bean_container_selection_right": "Right" + } + }, + "cleaning_mode": { + "options": { + "consumer_products_cleaning_robot_enum_type_cleaning_mode_intelligent_mode": "Intelligent mode", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_after_vacuum": "Mop after vacuum", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_mop_only": "Mop only", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_and_mop": "Vacuum and mop", + "consumer_products_cleaning_robot_enum_type_cleaning_mode_vacuum_only": "Vacuum only", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_power": "Power", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_silent": "Silent", + "consumer_products_cleaning_robot_enum_type_cleaning_modes_standard": "Standard" + } + }, + "coffee_milk_ratio": { + "options": { + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_10_percent": "10%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_20_percent": "20%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_25_percent": "25%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_30_percent": "30%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_40_percent": "40%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_50_percent": "50%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_55_percent": "55%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_60_percent": "60%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_65_percent": "65%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_67_percent": "67%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_70_percent": "70%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_75_percent": "75%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_80_percent": "80%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_85_percent": "85%", + "consumer_products_coffee_maker_enum_type_coffee_milk_ratio_90_percent": "90%" + } + }, + "coffee_temperature": { + "options": { + "consumer_products_coffee_maker_enum_type_coffee_temperature_88_c": "88ºC", + "consumer_products_coffee_maker_enum_type_coffee_temperature_90_c": "90ºC", + "consumer_products_coffee_maker_enum_type_coffee_temperature_92_c": "92ºC", + "consumer_products_coffee_maker_enum_type_coffee_temperature_94_c": "94ºC", + "consumer_products_coffee_maker_enum_type_coffee_temperature_95_c": "95ºC", + "consumer_products_coffee_maker_enum_type_coffee_temperature_96_c": "96ºC" + } + }, + "drying_target": { + "options": { + "laundry_care_dryer_enum_type_drying_target_cupboard_dry": "Cupboard dry", + "laundry_care_dryer_enum_type_drying_target_cupboard_dry_plus": "Cupboard dry +", + "laundry_care_dryer_enum_type_drying_target_extra_dry": "Extra dry", + "laundry_care_dryer_enum_type_drying_target_gentle_dry": "Gentle dry", + "laundry_care_dryer_enum_type_drying_target_iron_dry": "Iron dry" + } + }, + "flow_rate": { + "options": { + "consumer_products_coffee_maker_enum_type_flow_rate_intense": "Intense", + "consumer_products_coffee_maker_enum_type_flow_rate_intense_plus": "Intense +", + "consumer_products_coffee_maker_enum_type_flow_rate_normal": "Normal" + } + }, + "hot_water_temperature": { + "options": { + "consumer_products_coffee_maker_enum_type_hot_water_temperature_122_f": "122ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_131_f": "131ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_140_f": "140ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_149_f": "149ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_158_f": "158ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_167_f": "167ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_176_f": "176ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_185_f": "185ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_194_f": "194ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_203_f": "203ºF", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_50_c": "50ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_55_c": "55ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_60_c": "60ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_65_c": "65ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_70_c": "70ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_75_c": "75ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_80_c": "80ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_85_c": "85ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_90_c": "90ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_95_c": "95ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_97_c": "97ºC", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_black_tea": "Black tea", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_green_tea": "Green tea", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_max": "Max", + "consumer_products_coffee_maker_enum_type_hot_water_temperature_white_tea": "White tea" + } + }, + "intensive_level": { + "options": { + "cooking_hood_enum_type_intensive_stage_intensive_stage1": "Intensive stage 1", + "cooking_hood_enum_type_intensive_stage_intensive_stage2": "Intensive stage 2", + "cooking_hood_enum_type_intensive_stage_intensive_stage_off": "Intensive stage off" + } + }, + "programs": { + "options": { + "consumer_products_cleaning_robot_program_basic_go_home": "Go home", + "consumer_products_cleaning_robot_program_cleaning_clean_all": "Clean all", + "consumer_products_cleaning_robot_program_cleaning_clean_map": "Clean map", + "consumer_products_coffee_maker_program_beverage_caffe_grande": "Caffe grande", + "consumer_products_coffee_maker_program_beverage_caffe_latte": "Caffe latte", + "consumer_products_coffee_maker_program_beverage_cappuccino": "Cappuccino", + "consumer_products_coffee_maker_program_beverage_coffee": "Coffee", + "consumer_products_coffee_maker_program_beverage_espresso": "Espresso", + "consumer_products_coffee_maker_program_beverage_espresso_doppio": "Espresso doppio", + "consumer_products_coffee_maker_program_beverage_espresso_macchiato": "Espresso macchiato", + "consumer_products_coffee_maker_program_beverage_hot_water": "Hot water", + "consumer_products_coffee_maker_program_beverage_latte_macchiato": "Latte macchiato", + "consumer_products_coffee_maker_program_beverage_milk_froth": "Milk froth", + "consumer_products_coffee_maker_program_beverage_ristretto": "Ristretto", + "consumer_products_coffee_maker_program_beverage_warm_milk": "Warm milk", + "consumer_products_coffee_maker_program_beverage_x_l_coffee": "XL coffee", + "consumer_products_coffee_maker_program_coffee_world_americano": "Americano", + "consumer_products_coffee_maker_program_coffee_world_black_eye": "Black eye", + "consumer_products_coffee_maker_program_coffee_world_cafe_au_lait": "Cafe au lait", + "consumer_products_coffee_maker_program_coffee_world_cafe_con_leche": "Cafe con leche", + "consumer_products_coffee_maker_program_coffee_world_cafe_cortado": "Cafe cortado", + "consumer_products_coffee_maker_program_coffee_world_cortado": "Cortado", + "consumer_products_coffee_maker_program_coffee_world_dead_eye": "Dead eye", + "consumer_products_coffee_maker_program_coffee_world_doppio": "Doppio", + "consumer_products_coffee_maker_program_coffee_world_flat_white": "Flat white", + "consumer_products_coffee_maker_program_coffee_world_galao": "Galao", + "consumer_products_coffee_maker_program_coffee_world_garoto": "Garoto", + "consumer_products_coffee_maker_program_coffee_world_grosser_brauner": "Grosser Brauner", + "consumer_products_coffee_maker_program_coffee_world_kaapi": "Kaapi", + "consumer_products_coffee_maker_program_coffee_world_kleiner_brauner": "Kleiner Brauner", + "consumer_products_coffee_maker_program_coffee_world_koffie_verkeerd": "Koffie verkeerd", + "consumer_products_coffee_maker_program_coffee_world_red_eye": "Red eye", + "consumer_products_coffee_maker_program_coffee_world_verlaengerter": "Verlaengerter", + "consumer_products_coffee_maker_program_coffee_world_verlaengerter_braun": "Verlaengerter braun", + "consumer_products_coffee_maker_program_coffee_world_wiener_melange": "Wiener Melange", + "cooking_common_program_hood_automatic": "Automatic", + "cooking_common_program_hood_delayed_shut_off": "Delayed shut off", + "cooking_common_program_hood_venting": "Venting", + "cooking_oven_program_heating_mode_bottom_heating": "Bottom heating", + "cooking_oven_program_heating_mode_defrost": "Defrost", + "cooking_oven_program_heating_mode_desiccation": "Desiccation", + "cooking_oven_program_heating_mode_frozen_heatup_special": "Special heat-up for frozen products", + "cooking_oven_program_heating_mode_hot_air": "Hot air", + "cooking_oven_program_heating_mode_hot_air_100_steam": "Hot air + 100 RH", + "cooking_oven_program_heating_mode_hot_air_30_steam": "Hot air + 30 RH", + "cooking_oven_program_heating_mode_hot_air_60_steam": "Hot air + 60 RH", + "cooking_oven_program_heating_mode_hot_air_80_steam": "Hot air + 80 RH", + "cooking_oven_program_heating_mode_hot_air_eco": "Hot air eco", + "cooking_oven_program_heating_mode_hot_air_grilling": "Hot air grilling", + "cooking_oven_program_heating_mode_intensive_heat": "Intensive heat", + "cooking_oven_program_heating_mode_keep_warm": "Keep warm", + "cooking_oven_program_heating_mode_pizza_setting": "Pizza setting", + "cooking_oven_program_heating_mode_pre_heating": "Pre-heating", + "cooking_oven_program_heating_mode_preheat_ovenware": "Preheat ovenware", + "cooking_oven_program_heating_mode_proof": "Proof", + "cooking_oven_program_heating_mode_sabbath_programme": "Sabbath programme", + "cooking_oven_program_heating_mode_slow_cook": "Slow cook", + "cooking_oven_program_heating_mode_top_bottom_heating": "Top bottom heating", + "cooking_oven_program_heating_mode_top_bottom_heating_eco": "Top bottom heating eco", + "cooking_oven_program_heating_mode_warming_drawer": "Warming drawer", + "cooking_oven_program_microwave_1000_watt": "1000 Watt", + "cooking_oven_program_microwave_180_watt": "180 Watt", + "cooking_oven_program_microwave_360_watt": "360 Watt", + "cooking_oven_program_microwave_600_watt": "600 Watt", + "cooking_oven_program_microwave_900_watt": "900 Watt", + "cooking_oven_program_microwave_90_watt": "90 Watt", + "cooking_oven_program_microwave_max": "Max", + "dishcare_dishwasher_program_auto_1": "Auto 1", + "dishcare_dishwasher_program_auto_2": "Auto 2", + "dishcare_dishwasher_program_auto_3": "Auto 3", + "dishcare_dishwasher_program_auto_half_load": "Auto half load", + "dishcare_dishwasher_program_eco_50": "Eco 50ºC", + "dishcare_dishwasher_program_express_sparkle_65": "Express sparkle 65ºC", + "dishcare_dishwasher_program_glas_40": "Glass 40ºC", + "dishcare_dishwasher_program_glass_care": "Glass care", + "dishcare_dishwasher_program_intensiv_45": "Intensive 45ºC", + "dishcare_dishwasher_program_intensiv_70": "Intensive 70ºC", + "dishcare_dishwasher_program_intensiv_power": "Intensive power", + "dishcare_dishwasher_program_kurz_60": "Speed 60ºC", + "dishcare_dishwasher_program_machine_care": "Machine care", + "dishcare_dishwasher_program_magic_daily": "Magic daily", + "dishcare_dishwasher_program_maximum_cleaning": "Maximum cleaning", + "dishcare_dishwasher_program_mixed_load": "Mixed load", + "dishcare_dishwasher_program_night_wash": "Night wash", + "dishcare_dishwasher_program_normal_45": "Normal 45ºC", + "dishcare_dishwasher_program_normal_65": "Normal 65ºC", + "dishcare_dishwasher_program_pre_rinse": "Pre-rinse", + "dishcare_dishwasher_program_quick_45": "Quick 45ºC", + "dishcare_dishwasher_program_quick_65": "Quick 65ºC", + "dishcare_dishwasher_program_steam_fresh": "Steam fresh", + "dishcare_dishwasher_program_super_60": "Super 60ºC", + "laundry_care_dryer_program_anti_shrink": "Anti shrink", + "laundry_care_dryer_program_blankets": "Blankets", + "laundry_care_dryer_program_business_shirts": "Business shirts", + "laundry_care_dryer_program_cotton": "Cotton", + "laundry_care_dryer_program_delicates": "Delicates", + "laundry_care_dryer_program_dessous": "Dessous", + "laundry_care_dryer_program_down_feathers": "Down feathers", + "laundry_care_dryer_program_hygiene": "Hygiene", + "laundry_care_dryer_program_in_basket": "In basket", + "laundry_care_dryer_program_jeans": "Jeans", + "laundry_care_dryer_program_mix": "Mix", + "laundry_care_dryer_program_my_time_my_drying_time": "My drying time", + "laundry_care_dryer_program_outdoor": "Outdoor", + "laundry_care_dryer_program_pillow": "Pillow", + "laundry_care_dryer_program_shirts_15": "Shirts 15ºC", + "laundry_care_dryer_program_super_40": "Super 40ºC", + "laundry_care_dryer_program_synthetic": "Synthetic", + "laundry_care_dryer_program_synthetic_refresh": "Synthetic refresh", + "laundry_care_dryer_program_time_cold": "Cold (variable time)", + "laundry_care_dryer_program_time_cold_fix_time_cold_20": "Cold (20 min)", + "laundry_care_dryer_program_time_cold_fix_time_cold_30": "Cold (30 min)", + "laundry_care_dryer_program_time_cold_fix_time_cold_60": "Cold (60 min)", + "laundry_care_dryer_program_time_warm": "Warm (variable time)", + "laundry_care_dryer_program_time_warm_fix_time_warm_30": "Warm (30 min)", + "laundry_care_dryer_program_time_warm_fix_time_warm_40": "Warm (40 min)", + "laundry_care_dryer_program_time_warm_fix_time_warm_60": "Warm (60 min)", + "laundry_care_dryer_program_towels": "Towels", + "laundry_care_washer_dryer_program_cotton": "Cotton", + "laundry_care_washer_dryer_program_cotton_eco_4060": "Cotton eco 40/60ºC", + "laundry_care_washer_dryer_program_easy_care": "Easy care", + "laundry_care_washer_dryer_program_mix": "Mix", + "laundry_care_washer_dryer_program_wash_and_dry_60": "Wash and dry (60 min)", + "laundry_care_washer_dryer_program_wash_and_dry_90": "Wash and dry (90 min)", + "laundry_care_washer_program_auto_30": "Auto 30ºC", + "laundry_care_washer_program_auto_40": "Auto 40ºC", + "laundry_care_washer_program_auto_60": "Auto 60ºC", + "laundry_care_washer_program_chiffon": "Chiffon", + "laundry_care_washer_program_cotton": "Cotton", + "laundry_care_washer_program_cotton_colour": "Cotton color", + "laundry_care_washer_program_cotton_cotton_eco": "Cotton eco", + "laundry_care_washer_program_cotton_eco_4060": "Cotton eco 40/60ºC", + "laundry_care_washer_program_curtains": "Curtains", + "laundry_care_washer_program_dark_wash": "Dark wash", + "laundry_care_washer_program_delicates_silk": "Delicates silk", + "laundry_care_washer_program_dessous": "Dessous", + "laundry_care_washer_program_down_duvet_duvet": "Down duvet", + "laundry_care_washer_program_drum_clean": "Drum clean", + "laundry_care_washer_program_easy_care": "Easy care", + "laundry_care_washer_program_mix": "Mix", + "laundry_care_washer_program_mix_night_wash": "Mix night wash", + "laundry_care_washer_program_monsoon": "Monsoon", + "laundry_care_washer_program_outdoor": "Outdoor", + "laundry_care_washer_program_plush_toy": "Plush toy", + "laundry_care_washer_program_power_speed_59": "Power speed <59 min", + "laundry_care_washer_program_rinse_rinse_spin_drain": "Rinse spin drain", + "laundry_care_washer_program_sensitive": "Sensitive", + "laundry_care_washer_program_shirts_blouses": "Shirts/blouses", + "laundry_care_washer_program_sport_fitness": "Sport/fitness", + "laundry_care_washer_program_super_153045_super_15": "Super 15 min", + "laundry_care_washer_program_super_153045_super_1530": "Super 15/30 min", + "laundry_care_washer_program_towels": "Towels", + "laundry_care_washer_program_water_proof": "Water proof", + "laundry_care_washer_program_wool": "Wool" + } + }, + "spin_speed": { + "options": { + "laundry_care_washer_enum_type_spin_speed_off": "[%key:common::state::off%]", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1000": "1000 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1200": "1200 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1400": "1400 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_1600": "1600 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_400": "400 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_600": "600 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_700": "700 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_800": "800 rpm", + "laundry_care_washer_enum_type_spin_speed_r_p_m_900": "900 rpm", + "laundry_care_washer_enum_type_spin_speed_ul_high": "[%key:common::state::high%]", + "laundry_care_washer_enum_type_spin_speed_ul_low": "[%key:common::state::low%]", + "laundry_care_washer_enum_type_spin_speed_ul_medium": "[%key:common::state::medium%]", + "laundry_care_washer_enum_type_spin_speed_ul_off": "[%key:common::state::off%]" + } + }, + "suction_power": { + "options": { + "consumer_products_cleaning_robot_enum_type_suction_power_max": "Max", + "consumer_products_cleaning_robot_enum_type_suction_power_silent": "Silent", + "consumer_products_cleaning_robot_enum_type_suction_power_standard": "Standard" + } + }, + "vario_perfect": { + "options": { + "laundry_care_common_enum_type_vario_perfect_eco_perfect": "Eco perfect", + "laundry_care_common_enum_type_vario_perfect_off": "[%key:common::state::off%]", + "laundry_care_common_enum_type_vario_perfect_speed_perfect": "Speed perfect" + } + }, + "venting_level": { + "options": { + "cooking_hood_enum_type_stage_fan_off": "Fan off", + "cooking_hood_enum_type_stage_fan_stage_01": "Fan stage 1", + "cooking_hood_enum_type_stage_fan_stage_02": "Fan stage 2", + "cooking_hood_enum_type_stage_fan_stage_03": "Fan stage 3", + "cooking_hood_enum_type_stage_fan_stage_04": "Fan stage 4", + "cooking_hood_enum_type_stage_fan_stage_05": "Fan stage 5" + } + }, + "warming_level": { + "options": { + "cooking_oven_enum_type_warming_level_high": "[%key:common::state::high%]", + "cooking_oven_enum_type_warming_level_low": "[%key:common::state::low%]", + "cooking_oven_enum_type_warming_level_medium": "[%key:common::state::medium%]" + } + }, + "washer_temperature": { + "options": { + "laundry_care_washer_enum_type_temperature_cold": "Cold", + "laundry_care_washer_enum_type_temperature_g_c_20": "20ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_30": "30ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_40": "40ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_50": "50ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_60": "60ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_70": "70ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_80": "80ºC clothes", + "laundry_care_washer_enum_type_temperature_g_c_90": "90ºC clothes", + "laundry_care_washer_enum_type_temperature_ul_cold": "Cold", + "laundry_care_washer_enum_type_temperature_ul_extra_hot": "Extra hot", + "laundry_care_washer_enum_type_temperature_ul_hot": "Hot", + "laundry_care_washer_enum_type_temperature_ul_warm": "Warm" + } + } + }, + "services": { + "change_setting": { + "description": "Changes a setting.", + "fields": { + "device_id": { + "description": "[%key:component::home_connect::services::set_program_and_options::fields::device_id::description%]", + "name": "[%key:component::home_connect::services::set_program_and_options::fields::device_id::name%]" + }, + "key": { "description": "Key of the setting.", "name": "Key" }, + "value": { "description": "Value of the setting.", "name": "Value" } + }, + "name": "Change setting" + }, + "set_program_and_options": { + "description": "Starts or selects a program with options or sets the options for the active or the selected program.", + "fields": { + "affects_to": { + "description": "Selects if the program affected by the action should be the active or the selected program.", + "name": "Affects to" + }, + "b_s_h_common_option_duration": { + "description": "Defines the run-time of the program. Afterwards, the appliance is stopped.", + "name": "Duration" + }, + "b_s_h_common_option_finish_in_relative": { + "description": "Defines when the program should end in seconds.", + "name": "Finish in relative" + }, + "b_s_h_common_option_start_in_relative": { + "description": "Defines in how many time the program should start.", + "name": "Start in relative" + }, + "consumer_products_cleaning_robot_option_cleaning_mode": { + "description": "Defines the favored cleaning mode.", + "name": "Cleaning mode" + }, + "consumer_products_cleaning_robot_option_reference_map_id": { + "description": "Defines which reference map is to be used.", + "name": "Reference map ID" + }, + "consumer_products_cleaning_robot_option_suction_power": { + "description": "Defines the suction power.", + "name": "Suction power" + }, + "consumer_products_coffee_maker_option_bean_amount": { + "description": "Describes the amount of coffee beans used in a coffee machine program.", + "name": "Bean amount" + }, + "consumer_products_coffee_maker_option_bean_container": { + "description": "Defines the preferred bean container.", + "name": "Bean container" + }, + "consumer_products_coffee_maker_option_coffee_milk_ratio": { + "description": "Defines the amount of milk.", + "name": "Coffee milk ratio" + }, + "consumer_products_coffee_maker_option_coffee_temperature": { + "description": "Describes the coffee temperature used in a coffee machine program.", + "name": "Coffee Temperature" + }, + "consumer_products_coffee_maker_option_fill_quantity": { + "description": "Describes the amount of water (in ml) used in a coffee machine program.", + "name": "Fill quantity" + }, + "consumer_products_coffee_maker_option_flow_rate": { + "description": "Defines the water-coffee contact time. The duration extends to coffee intensity.", + "name": "Flow rate" + }, + "consumer_products_coffee_maker_option_hot_water_temperature": { + "description": "Defines the temperature suitable for the type of tea.", + "name": "Hot water temperature" + }, + "consumer_products_coffee_maker_option_multiple_beverages": { + "description": "Defines if double dispensing is enabled.", + "name": "Multiple beverages" + }, + "cooking_hood_option_intensive_level": { + "description": "Defines the intensive setting.", + "name": "Intensive level" + }, + "cooking_hood_option_venting_level": { + "description": "Defines the required fan setting.", + "name": "Venting level" + }, + "cooking_oven_option_fast_pre_heat": { + "description": "Defines if the cooking compartment is heated up quickly. Please note that the setpoint temperature has to be equal to or higher than 100 °C or 212 °F. Otherwise, the fast pre-heat option is not activated.", + "name": "Fast pre-heat" + }, + "cooking_oven_option_setpoint_temperature": { + "description": "Defines the target cavity temperature, which will be held by the oven.", + "name": "Setpoint temperature" + }, + "cooking_oven_option_warming_level": { + "description": "Defines the level of the warming drawer.", + "name": "Warming level" + }, + "device_id": { + "description": "ID of the device.", + "name": "Device ID" + }, + "dishcare_dishwasher_option_brilliance_dry": { + "description": "Defines if the program sequence is optimized with a special drying cycle to ensure more shine on glasses and plastic items.", + "name": "Brilliance dry" + }, + "dishcare_dishwasher_option_eco_dry": { + "description": "Defines if the door is opened automatically for extra energy efficient and effective drying.", + "name": "Eco dry" + }, + "dishcare_dishwasher_option_extra_dry": { + "description": "Defines if improved drying for glasses and plasticware is enabled.", + "name": "Extra dry" + }, + "dishcare_dishwasher_option_half_load": { + "description": "Defines if economical cleaning is enabled for smaller loads. This reduces energy and water consumption and also saves time. The utensils can be placed in the upper and lower baskets.", + "name": "Half load" + }, + "dishcare_dishwasher_option_hygiene_plus": { + "description": "Defines if the cleaning is done with increased temperature. This ensures maximum hygienic cleanliness for regular use.", + "name": "Hygiene +" + }, + "dishcare_dishwasher_option_intensiv_zone": { + "description": "Defines if the cleaning is done with higher spray pressure on the lower basket for very dirty pots and pans.", + "name": "Intensive zone" + }, + "dishcare_dishwasher_option_silence_on_demand": { + "description": "Defines if the extra silent mode is activated for a selected period of time.", + "name": "Silence on demand" + }, + "dishcare_dishwasher_option_vario_speed_plus": { + "description": "Defines if the program run time is reduced by up to 66% with the usual optimum cleaning and drying.", + "name": "Vario speed +" + }, + "dishcare_dishwasher_option_zeolite_dry": { + "description": "Defines if the program sequence is optimized with special drying cycle ensures improved drying for glasses, plates and plasticware.", + "name": "Zeolite dry" + }, + "laundry_care_dryer_option_drying_target": { + "description": "Describes the drying target for a dryer program.", + "name": "Drying target" + }, + "laundry_care_washer_option_i_dos1_active": { + "description": "Defines if the detergent feed is activated / deactivated. (i-Dos content 1)", + "name": "i-Dos 1 Active" + }, + "laundry_care_washer_option_i_dos2_active": { + "description": "Defines if the detergent feed is activated / deactivated. (i-Dos content 2)", + "name": "i-Dos 2 Active" + }, + "laundry_care_washer_option_spin_speed": { + "description": "Defines the spin speed of a washer program.", + "name": "Spin speed" + }, + "laundry_care_washer_option_temperature": { + "description": "Defines the temperature of the washing program.", + "name": "Temperature" + }, + "laundry_care_washer_option_vario_perfect": { + "description": "Defines if a cycle saves energy (Eco Perfect) or time (Speed Perfect).", + "name": "Vario perfect" + }, + "program": { + "description": "Program to select", + "name": "Program" + } + }, + "name": "Set program and options", + "sections": { + "cleaning_robot_options": { + "description": "Options for cleaning robots.", + "name": "Cleaning robot options" + }, + "coffee_maker_options": { + "description": "Options for coffee makers.", + "name": "Coffee maker options" + }, + "dish_washer_options": { + "description": "Options for dishwashers.", + "name": "Dishwasher options" + }, + "dryer_options": { + "description": "Options for dryers (and washer dryers).", + "name": "Dryer options" + }, + "hood_options": { + "description": "Options for hoods.", + "name": "Hood options" + }, + "oven_options": { + "description": "Options for ovens.", + "name": "Oven options" + }, + "warming_drawer_options": { + "description": "Options for warming drawers.", + "name": "Warming drawer options" + }, + "washer_options": { + "description": "Options for washers (and washer dryers).", + "name": "Washer options" + } } } } diff --git a/homeassistant/components/homeassistant/icons.json b/homeassistant/components/homeassistant/icons.json index f08fa8d969b..c2815a782e9 100644 --- a/homeassistant/components/homeassistant/icons.json +++ b/homeassistant/components/homeassistant/icons.json @@ -3,12 +3,24 @@ "check_config": { "service": "mdi:receipt-text-check" }, + "reload_all": { + "service": "mdi:reload" + }, + "reload_config_entry": { + "service": "mdi:reload" + }, "reload_core_config": { "service": "mdi:receipt-text-send" }, + "reload_custom_templates": { + "service": "mdi:palette-swatch" + }, "restart": { "service": "mdi:restart" }, + "save_persistent_states": { + "service": "mdi:content-save" + }, "set_location": { "service": "mdi:map-marker" }, @@ -18,26 +30,14 @@ "toggle": { "service": "mdi:toggle-switch" }, - "turn_on": { - "service": "mdi:power-on" - }, "turn_off": { "service": "mdi:power-off" }, + "turn_on": { + "service": "mdi:power-on" + }, "update_entity": { "service": "mdi:update" - }, - "reload_custom_templates": { - "service": "mdi:palette-swatch" - }, - "reload_config_entry": { - "service": "mdi:reload" - }, - "save_persistent_states": { - "service": "mdi:content-save" - }, - "reload_all": { - "service": "mdi:reload" } } } diff --git a/homeassistant/components/homeassistant/strings.json b/homeassistant/components/homeassistant/strings.json index 77c29e7c495..3c80eae6ba6 100644 --- a/homeassistant/components/homeassistant/strings.json +++ b/homeassistant/components/homeassistant/strings.json @@ -5,119 +5,258 @@ }, "step": {} }, + "exceptions": { + "component_import_err": { + "message": "Unable to import {domain}: {error}" + }, + "config_platform_import_err": { + "message": "Error importing config platform {domain}: {error}" + }, + "config_schema_unknown_err": { + "message": "Unknown error calling {domain} CONFIG_SCHEMA - {error}." + }, + "config_validation_err": { + "message": "Invalid config for integration {domain} at {config_file}, line {line}: {error}." + }, + "config_validator_unknown_err": { + "message": "Unknown error calling {domain} config validator - {error}." + }, + "max_length_exceeded": { + "message": "Value {value} for property {property_name} has a maximum length of {max_length} characters." + }, + "multiple_integration_config_errors": { + "message": "Failed to process config for integration {domain} due to multiple ({errors}) errors. Check the logs for more information." + }, + "platform_component_load_err": { + "message": "Platform error: {domain} - {error}." + }, + "platform_component_load_exc": { + "message": "[%key:component::homeassistant::exceptions::platform_component_load_err::message%]" + }, + "platform_config_validation_err": { + "message": "Invalid config for {domain} from integration {p_name} at file {config_file}, line {line}: {error}. Check the logs for more information." + }, + "platform_schema_validator_err": { + "message": "Unknown error when validating config for {domain} from integration {p_name} - {error}." + }, + "service_does_not_support_response": { + "message": "An action which does not return responses can't be called with {return_response}." + }, + "service_lacks_response_request": { + "message": "The action requires responses and must be called with {return_response}." + }, + "service_not_found": { + "message": "Action {domain}.{service} not found." + }, + "service_not_supported": { + "message": "Entity {entity_id} does not support action {domain}.{service}." + }, + "service_reponse_invalid": { + "message": "Failed to process the returned action response data, expected a dictionary, but got {response_data_type}." + }, + "service_should_be_blocking": { + "message": "A non-blocking action call with argument {non_blocking_argument} can't be used together with argument {return_response}." + } + }, "issues": { - "country_not_configured": { - "title": "The country has not been configured", - "description": "No country has been configured, please update the configuration by clicking on the \"learn more\" button below." - }, - "imperial_unit_system": { - "title": "The imperial unit system is deprecated", - "description": "The imperial unit system is deprecated and your system is currently using US customary. Please update your configuration to use the US customary unit system and reload the Core configuration to fix this issue." - }, - "deprecated_yaml": { - "title": "The {integration_title} YAML configuration is being removed", - "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue." - }, - "deprecated_system_packages_config_flow_integration": { - "title": "The {integration_title} integration is being removed", - "description": "The {integration_title} integration is being removed as it depends on system packages that can only be installed on systems running a deprecated architecture. To resolve this, remove all \"{integration_title}\" config entries." - }, - "deprecated_system_packages_yaml_integration": { - "title": "The {integration_title} integration is being removed", - "description": "The {integration_title} integration is being removed as it depends on system packages that can only be installed on systems running a deprecated architecture. To resolve this, remove the {domain} entry from your configuration.yaml file and restart Home Assistant." - }, - "historic_currency": { - "title": "The configured currency is no longer in use", - "description": "The currency {currency} is no longer in use, please reconfigure the currency configuration." - }, - "legacy_templates_false": { - "title": "legacy_templates config key is being removed", - "description": "Nothing will change with your templates.\n\nRemove the `legacy_templates` key from the `homeassistant` configuration in your configuration.yaml file and restart Home Assistant to fix this issue." - }, - "legacy_templates_true": { - "title": "The support for legacy templates is being removed", - "description": "Please do the following steps:\n- Adopt your configuration to support template rendering to native python types.\n- Remove the `legacy_templates` key from the `homeassistant` configuration in your configuration.yaml file.\n- Restart Home Assistant to fix this issue." - }, - "python_version": { - "title": "Support for Python {current_python_version} is being removed", - "description": "Support for running Home Assistant in the currently used Python version {current_python_version} is deprecated and will be removed in Home Assistant {breaks_in_ha_version}. Please upgrade Python to {required_python_version} to prevent your Home Assistant instance from breaking." - }, "config_entry_only": { - "title": "The {domain} integration does not support YAML configuration", - "description": "The {domain} integration does not support configuration via YAML file. You may not notice any obvious issues with the integration, but any configuration settings defined in YAML are not actually applied.\n\nTo resolve this:\n\n1. If you've not already done so, [set up the integration]({add_integration}).\n\n2. Remove `{domain}:` from your YAML configuration file.\n\n3. Restart Home Assistant." - }, - "platform_only": { - "title": "The {domain} integration does not support YAML configuration under its own key", - "description": "The {domain} integration does not support configuration under its own key, it must be configured under its supported platforms.\n\nTo resolve this:\n\n1. Remove `{domain}:` from your YAML configuration file.\n\n2. Restart Home Assistant." - }, - "no_platform_setup": { - "title": "Unused YAML configuration for the {platform} integration", - "description": "It's not possible to configure {platform} {domain} by adding `{platform_key}` to the {domain} configuration. Please check the documentation for more information on how to set up this integration.\n\nTo resolve this:\n1. Remove `{platform_key}` occurrences from the `{domain}:` configuration in your YAML configuration file.\n2. Restart Home Assistant.\n\nExample that should be removed:\n{yaml_example}" - }, - "storage_corruption": { - "title": "Storage corruption detected for {storage_key}", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::homeassistant::issues::storage_corruption::title%]", - "description": "The `{storage_key}` storage could not be parsed and has been renamed to `{corrupt_path}` to allow Home Assistant to continue.\n\nA default `{storage_key}` may have been created automatically.\n\nIf you made manual edits to the storage file, fix any syntax errors in `{corrupt_path}`, restore the file to the original path `{original_path}`, and restart Home Assistant. Otherwise, restore the system from a backup.\n\nSelect **Submit** below to confirm you have repaired the file or restored from a backup.\n\nThe exact error was: {error}" - } - } - } + "description": "The {domain} integration does not support configuration via YAML file. You may not notice any obvious issues with the integration, but any configuration settings defined in YAML are not actually applied.\n\nTo resolve this:\n\n1. If you've not already done so, [set up the integration]({add_integration}).\n\n2. Remove `{domain}:` from your YAML configuration file.\n\n3. Restart Home Assistant.", + "title": "The {domain} integration does not support YAML configuration" }, "config_entry_reauth": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Reauthentication is needed" + "description": "Reauthentication is needed", + "title": "[%key:common::config_flow::title::reauth%]" }, "config_entry_unique_id_collision": { - "title": "Multiple {domain} config entries with same unique ID", - "description": "There are multiple {domain} config entries with the same unique ID.\nThe config entries are named {titles}.\n\nTo fix this error, [configure the integration]({configure_url}) and remove all except one of the duplicates.\n\nNote: Another group of duplicates may be revealed after removing these duplicates." + "description": "There are multiple {domain} config entries with the same unique ID.\nThe config entries are named {titles}.\n\nTo fix this error, [configure the integration]({configure_url}) and remove all except one of the duplicates.\n\nNote: Another group of duplicates may be revealed after removing these duplicates.", + "title": "Multiple {domain} config entries with same unique ID" }, "config_entry_unique_id_collision_many": { - "title": "[%key:component::homeassistant::issues::config_entry_unique_id_collision::title%]", - "description": "There are multiple ({number_of_entries}) {domain} config entries with the same unique ID.\nThe first {title_limit} config entries are named {titles}.\n\nTo fix this error, [configure the integration]({configure_url}) and remove all except one of the duplicates.\n\nNote: Another group of duplicates may be revealed after removing these duplicates." + "description": "There are multiple ({number_of_entries}) {domain} config entries with the same unique ID.\nThe first {title_limit} config entries are named {titles}.\n\nTo fix this error, [configure the integration]({configure_url}) and remove all except one of the duplicates.\n\nNote: Another group of duplicates may be revealed after removing these duplicates.", + "title": "[%key:component::homeassistant::issues::config_entry_unique_id_collision::title%]" + }, + "country_not_configured": { + "description": "No country has been configured, please update the configuration by clicking on the \"learn more\" button below.", + "title": "The country has not been configured" + }, + "deprecated_architecture": { + "description": "This system uses 32-bit hardware (`{arch}`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. As your hardware is no longer capable of running newer versions of Home Assistant, you will need to migrate to new hardware.", + "title": "Deprecation notice: 32-bit architecture" + }, + "deprecated_container": { + "description": "This system is running on a 32-bit operating system (`{arch}`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. Check if your system is capable of running a 64-bit operating system. If not, you will need to migrate to new hardware.", + "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]" + }, + "deprecated_method": { + "description": "This system is using the {installation_type} installation type, which has been deprecated and will become unsupported following the release of Home Assistant 2025.12. While you can continue using your current setup after that point, we strongly recommend migrating to a supported installation method.", + "title": "Deprecation notice: Installation method" + }, + "deprecated_method_architecture": { + "description": "This system is using the {installation_type} installation type, and 32-bit hardware (`{arch}`), both of which have been deprecated and will no longer be supported after the release of Home Assistant 2025.12.", + "title": "Deprecation notice" + }, + "deprecated_os_aarch64": { + "description": "This system is running on a 32-bit operating system (`armv7`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. To continue using Home Assistant on this hardware, you will need to install a 64-bit operating system. Please refer to our [installation guide]({installation_guide}).", + "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]" + }, + "deprecated_os_armv7": { + "description": "This system is running on a 32-bit operating system (`armv7`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. As your hardware is no longer capable of running newer versions of Home Assistant, you will need to migrate to new hardware.", + "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]" + }, + "deprecated_system_packages_config_flow_integration": { + "description": "The {integration_title} integration is being removed as it depends on system packages that can only be installed on systems running a deprecated architecture. To resolve this, remove all \"{integration_title}\" config entries.", + "title": "The {integration_title} integration is being removed" + }, + "deprecated_system_packages_yaml_integration": { + "description": "The {integration_title} integration is being removed as it depends on system packages that can only be installed on systems running a deprecated architecture. To resolve this, remove the {domain} entry from your configuration.yaml file and restart Home Assistant.", + "title": "The {integration_title} integration is being removed" + }, + "deprecated_yaml": { + "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "The {integration_title} YAML configuration is being removed" + }, + "historic_currency": { + "description": "The currency {currency} is no longer in use, please reconfigure the currency configuration.", + "title": "The configured currency is no longer in use" + }, + "imperial_unit_system": { + "description": "The imperial unit system is deprecated and your system is currently using US customary. Please update your configuration to use the US customary unit system and reload the Core configuration to fix this issue.", + "title": "The imperial unit system is deprecated" }, "integration_not_found": { - "title": "Integration {domain} not found", "fix_flow": { "abort": { "issue_ignored": "Non-existent integration {domain} ignored." }, "step": { "init": { - "title": "[%key:component::homeassistant::issues::integration_not_found::title%]", "description": "The integration `{domain}` could not be found. This happens when a (custom) integration was removed from Home Assistant, but there are still configurations for this `integration`. Please use the buttons below to either remove the previous configurations for `{domain}` or ignore this.", "menu_options": { "confirm": "Remove previous configurations", "ignore": "Ignore" - } + }, + "title": "[%key:component::homeassistant::issues::integration_not_found::title%]" } } - } + }, + "title": "Integration {domain} not found" }, - "deprecated_method": { - "title": "Deprecation notice: Installation method", - "description": "This system is using the {installation_type} installation type, which has been deprecated and will become unsupported following the release of Home Assistant 2025.12. While you can continue using your current setup after that point, we strongly recommend migrating to a supported installation method." + "legacy_templates_false": { + "description": "Nothing will change with your templates.\n\nRemove the `legacy_templates` key from the `homeassistant` configuration in your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "legacy_templates config key is being removed" }, - "deprecated_method_architecture": { - "title": "Deprecation notice", - "description": "This system is using the {installation_type} installation type, and 32-bit hardware (`{arch}`), both of which have been deprecated and will no longer be supported after the release of Home Assistant 2025.12." + "legacy_templates_true": { + "description": "Please do the following steps:\n- Adopt your configuration to support template rendering to native python types.\n- Remove the `legacy_templates` key from the `homeassistant` configuration in your configuration.yaml file.\n- Restart Home Assistant to fix this issue.", + "title": "The support for legacy templates is being removed" }, - "deprecated_architecture": { - "title": "Deprecation notice: 32-bit architecture", - "description": "This system uses 32-bit hardware (`{arch}`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. As your hardware is no longer capable of running newer versions of Home Assistant, you will need to migrate to new hardware." + "no_platform_setup": { + "description": "It's not possible to configure {platform} {domain} by adding `{platform_key}` to the {domain} configuration. Please check the documentation for more information on how to set up this integration.\n\nTo resolve this:\n1. Remove `{platform_key}` occurrences from the `{domain}:` configuration in your YAML configuration file.\n2. Restart Home Assistant.\n\nExample that should be removed:\n{yaml_example}", + "title": "Unused YAML configuration for the {platform} integration" }, - "deprecated_container": { - "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]", - "description": "This system is running on a 32-bit operating system (`{arch}`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. Check if your system is capable of running a 64-bit operating system. If not, you will need to migrate to new hardware." + "platform_only": { + "description": "The {domain} integration does not support configuration under its own key, it must be configured under its supported platforms.\n\nTo resolve this:\n\n1. Remove `{domain}:` from your YAML configuration file.\n\n2. Restart Home Assistant.", + "title": "The {domain} integration does not support YAML configuration under its own key" }, - "deprecated_os_aarch64": { - "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]", - "description": "This system is running on a 32-bit operating system (`armv7`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. To continue using Home Assistant on this hardware, you will need to install a 64-bit operating system. Please refer to our [installation guide]({installation_guide})." + "python_version": { + "description": "Support for running Home Assistant in the currently used Python version {current_python_version} is deprecated and will be removed in Home Assistant {breaks_in_ha_version}. Please upgrade Python to {required_python_version} to prevent your Home Assistant instance from breaking.", + "title": "Support for Python {current_python_version} is being removed" }, - "deprecated_os_armv7": { - "title": "[%key:component::homeassistant::issues::deprecated_architecture::title%]", - "description": "This system is running on a 32-bit operating system (`armv7`), which has been deprecated and will no longer receive updates after the release of Home Assistant 2025.12. As your hardware is no longer capable of running newer versions of Home Assistant, you will need to migrate to new hardware." + "storage_corruption": { + "fix_flow": { + "step": { + "confirm": { + "description": "The `{storage_key}` storage could not be parsed and has been renamed to `{corrupt_path}` to allow Home Assistant to continue.\n\nA default `{storage_key}` may have been created automatically.\n\nIf you made manual edits to the storage file, fix any syntax errors in `{corrupt_path}`, restore the file to the original path `{original_path}`, and restart Home Assistant. Otherwise, restore the system from a backup.\n\nSelect **Submit** below to confirm you have repaired the file or restored from a backup.\n\nThe exact error was: {error}", + "title": "[%key:component::homeassistant::issues::storage_corruption::title%]" + } + } + }, + "title": "Storage corruption detected for {storage_key}" + } + }, + "services": { + "check_config": { + "description": "Checks the Home Assistant YAML-configuration files for errors. Errors will be shown in the Home Assistant logs.", + "name": "Check configuration" + }, + "reload_all": { + "description": "Reloads all YAML configuration that can be reloaded without restarting Home Assistant.", + "name": "Reload all" + }, + "reload_config_entry": { + "description": "Reloads the specified config entry.", + "fields": { + "entry_id": { + "description": "The configuration entry ID of the entry to be reloaded.", + "name": "Config entry ID" + } + }, + "name": "Reload config entry" + }, + "reload_core_config": { + "description": "Reloads the Core configuration from the YAML-configuration.", + "name": "Reload Core configuration" + }, + "reload_custom_templates": { + "description": "Reloads Jinja2 templates found in the `custom_templates` folder in your config. New values will be applied on the next render of the template.", + "name": "Reload custom Jinja2 templates" + }, + "restart": { + "description": "Restarts Home Assistant.", + "fields": { + "safe_mode": { + "description": "Disable custom integrations and custom cards.", + "name": "Safe mode" + } + }, + "name": "[%key:common::action::restart%]" + }, + "save_persistent_states": { + "description": "Saves the persistent states immediately. Maintains the normal periodic saving interval.", + "name": "Save persistent states" + }, + "set_location": { + "description": "Updates the Home Assistant location.", + "fields": { + "elevation": { + "description": "Elevation of your location above sea level.", + "name": "[%key:common::config_flow::data::elevation%]" + }, + "latitude": { + "description": "Latitude of your location.", + "name": "[%key:common::config_flow::data::latitude%]" + }, + "longitude": { + "description": "Longitude of your location.", + "name": "[%key:common::config_flow::data::longitude%]" + } + }, + "name": "Set location" + }, + "stop": { + "description": "Stops Home Assistant.", + "name": "[%key:common::action::stop%]" + }, + "toggle": { + "description": "Generic action to toggle devices on/off under any domain.", + "name": "Generic toggle" + }, + "turn_off": { + "description": "Generic action to turn devices off under any domain.", + "name": "Generic turn off" + }, + "turn_on": { + "description": "Generic action to turn devices on under any domain.", + "name": "Generic turn on" + }, + "update_entity": { + "description": "Forces one or more entities to update their data.", + "fields": { + "entity_id": { + "description": "List of entities to force update.", + "name": "Entities to update" + } + }, + "name": "Update entity" } }, "system_health": { @@ -137,144 +276,5 @@ "version": "Version", "virtualenv": "Virtual environment" } - }, - "services": { - "check_config": { - "name": "Check configuration", - "description": "Checks the Home Assistant YAML-configuration files for errors. Errors will be shown in the Home Assistant logs." - }, - "reload_core_config": { - "name": "Reload Core configuration", - "description": "Reloads the Core configuration from the YAML-configuration." - }, - "restart": { - "name": "[%key:common::action::restart%]", - "description": "Restarts Home Assistant.", - "fields": { - "safe_mode": { - "name": "Safe mode", - "description": "Disable custom integrations and custom cards." - } - } - }, - "set_location": { - "name": "Set location", - "description": "Updates the Home Assistant location.", - "fields": { - "latitude": { - "name": "[%key:common::config_flow::data::latitude%]", - "description": "Latitude of your location." - }, - "longitude": { - "name": "[%key:common::config_flow::data::longitude%]", - "description": "Longitude of your location." - }, - "elevation": { - "name": "[%key:common::config_flow::data::elevation%]", - "description": "Elevation of your location above sea level." - } - } - }, - "stop": { - "name": "[%key:common::action::stop%]", - "description": "Stops Home Assistant." - }, - "toggle": { - "name": "Generic toggle", - "description": "Generic action to toggle devices on/off under any domain." - }, - "turn_on": { - "name": "Generic turn on", - "description": "Generic action to turn devices on under any domain." - }, - "turn_off": { - "name": "Generic turn off", - "description": "Generic action to turn devices off under any domain." - }, - "update_entity": { - "name": "Update entity", - "description": "Forces one or more entities to update their data.", - "fields": { - "entity_id": { - "name": "Entities to update", - "description": "List of entities to force update." - } - } - }, - "reload_custom_templates": { - "name": "Reload custom Jinja2 templates", - "description": "Reloads Jinja2 templates found in the `custom_templates` folder in your config. New values will be applied on the next render of the template." - }, - "reload_config_entry": { - "name": "Reload config entry", - "description": "Reloads the specified config entry.", - "fields": { - "entry_id": { - "name": "Config entry ID", - "description": "The configuration entry ID of the entry to be reloaded." - } - } - }, - "save_persistent_states": { - "name": "Save persistent states", - "description": "Saves the persistent states immediately. Maintains the normal periodic saving interval." - }, - "reload_all": { - "name": "Reload all", - "description": "Reloads all YAML configuration that can be reloaded without restarting Home Assistant." - } - }, - "exceptions": { - "component_import_err": { - "message": "Unable to import {domain}: {error}" - }, - "config_platform_import_err": { - "message": "Error importing config platform {domain}: {error}" - }, - "config_validation_err": { - "message": "Invalid config for integration {domain} at {config_file}, line {line}: {error}." - }, - "config_validator_unknown_err": { - "message": "Unknown error calling {domain} config validator - {error}." - }, - "config_schema_unknown_err": { - "message": "Unknown error calling {domain} CONFIG_SCHEMA - {error}." - }, - "multiple_integration_config_errors": { - "message": "Failed to process config for integration {domain} due to multiple ({errors}) errors. Check the logs for more information." - }, - "max_length_exceeded": { - "message": "Value {value} for property {property_name} has a maximum length of {max_length} characters." - }, - "platform_component_load_err": { - "message": "Platform error: {domain} - {error}." - }, - "platform_component_load_exc": { - "message": "[%key:component::homeassistant::exceptions::platform_component_load_err::message%]" - }, - "platform_config_validation_err": { - "message": "Invalid config for {domain} from integration {p_name} at file {config_file}, line {line}: {error}. Check the logs for more information." - }, - "platform_schema_validator_err": { - "message": "Unknown error when validating config for {domain} from integration {p_name} - {error}." - }, - "service_not_found": { - "message": "Action {domain}.{service} not found." - }, - "service_not_supported": { - "message": "Entity {entity_id} does not support action {domain}.{service}." - }, - "service_does_not_support_response": { - "message": "An action which does not return responses can't be called with {return_response}." - }, - "service_lacks_response_request": { - "message": "The action requires responses and must be called with {return_response}." - }, - "service_reponse_invalid": { - "message": "Failed to process the returned action response data, expected a dictionary, but got {response_data_type}." - }, - "service_should_be_blocking": { - "message": "A non-blocking action call with argument {non_blocking_argument} can't be used together with argument {return_response}." - } } } diff --git a/homeassistant/components/homeassistant_alerts/strings.json b/homeassistant/components/homeassistant_alerts/strings.json index 7a9634d6268..fbd939458cf 100644 --- a/homeassistant/components/homeassistant_alerts/strings.json +++ b/homeassistant/components/homeassistant_alerts/strings.json @@ -1,8 +1,8 @@ { "issues": { "alert": { - "title": "{title}", - "description": "{description}" + "description": "{description}", + "title": "{title}" } } } diff --git a/homeassistant/components/homeassistant_connect_zbt2/manifest.json b/homeassistant/components/homeassistant_connect_zbt2/manifest.json index b7446dcb796..e6da8492ecc 100644 --- a/homeassistant/components/homeassistant_connect_zbt2/manifest.json +++ b/homeassistant/components/homeassistant_connect_zbt2/manifest.json @@ -9,16 +9,16 @@ "quality_scale": "bronze", "usb": [ { - "vid": "303A", - "pid": "4001", "description": "*zbt-2*", - "known_devices": ["ZBT-2"] + "known_devices": ["ZBT-2"], + "pid": "4001", + "vid": "303A" }, { - "vid": "303A", - "pid": "831A", "description": "*zbt-2*", - "known_devices": ["ZBT-2"] + "known_devices": ["ZBT-2"], + "pid": "831A", + "vid": "303A" } ] } diff --git a/homeassistant/components/homeassistant_connect_zbt2/strings.json b/homeassistant/components/homeassistant_connect_zbt2/strings.json index 1fc7d4d70fb..f0bcd0d3cc7 100644 --- a/homeassistant/components/homeassistant_connect_zbt2/strings.json +++ b/homeassistant/components/homeassistant_connect_zbt2/strings.json @@ -1,13 +1,128 @@ { - "options": { + "config": { + "abort": { + "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", + "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", + "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", + "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]", + "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", + "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", + "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", + "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", + "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", + "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", + "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]" + }, + "flow_title": "{model}", + "progress": { + "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", + "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", + "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", + "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", + "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" + }, "step": { - "addon_not_installed": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", - "data": { - "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" - } + "confirm_otbr": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]" }, + "confirm_zigbee": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]" + }, + "install_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" + }, + "install_thread_firmware": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" + }, + "install_zigbee_firmware": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" + }, + "otbr_failed": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]" + }, + "pick_firmware": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", + "menu_option_descriptions": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]" + }, + "menu_options": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]" + }, + "start_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" + }, + "zigbee_installation_type": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", + "menu_option_descriptions": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]" + }, + "menu_options": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]" + }, + "zigbee_integration": { + "menu_option_descriptions": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]" + }, + "menu_options": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]" + } + } + }, + "exceptions": { + "device_disconnected": { + "message": "The device is not plugged in" + } + }, + "options": { + "abort": { + "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", + "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", + "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", + "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]", + "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", + "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", + "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", + "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", + "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", + "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", + "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]" + }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "progress": { + "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", + "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", + "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", + "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", + "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" + }, + "step": { "addon_installed_other_device": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_installed_other_device::title%]" }, @@ -17,16 +132,34 @@ "uninstall_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" } }, + "addon_not_installed": { + "data": { + "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" + }, + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]" + }, "change_channel": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]", "data": { "channel": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::data::channel%]" }, - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" + }, + "confirm_otbr": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]" + }, + "confirm_zigbee": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]" }, "install_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::install_addon::title%]" }, + "install_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" + }, "install_thread_firmware": { "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" }, @@ -34,12 +167,32 @@ "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" }, "notify_channel_change": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]" }, "notify_unknown_multipan_user": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]" + }, + "otbr_failed": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]" + }, + "pick_firmware": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", + "menu_option_descriptions": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]" + }, + "menu_options": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]" }, "reconfigure_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" @@ -47,192 +200,39 @@ "start_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::start_addon::title%]" }, + "start_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" + }, "uninstall_addon": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", "data": { "disable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::data::disable_multi_pan%]" - } - }, - "pick_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", - "menu_options": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]" }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]" - } - }, - "confirm_zigbee": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]" - }, - "install_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" - }, - "start_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" - }, - "otbr_failed": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]" - }, - "confirm_otbr": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" }, "zigbee_installation_type": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]", "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", - "menu_options": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]" - }, "menu_option_descriptions": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]" - } + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]" + }, + "menu_options": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]" }, "zigbee_integration": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]", - "menu_options": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]" - }, "menu_option_descriptions": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]" - } + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]" + }, + "menu_options": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]" } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", - "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", - "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", - "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", - "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", - "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", - "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", - "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", - "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", - "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]", - "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", - "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", - "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", - "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]" - }, - "progress": { - "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", - "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", - "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", - "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", - "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" - } - }, - "config": { - "flow_title": "{model}", - "step": { - "install_thread_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" - }, - "install_zigbee_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" - }, - "pick_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", - "menu_options": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]" - }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]" - } - }, - "confirm_zigbee": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]" - }, - "install_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" - }, - "start_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" - }, - "otbr_failed": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]" - }, - "confirm_otbr": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]" - }, - "zigbee_installation_type": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", - "menu_options": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]" - }, - "menu_option_descriptions": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]" - } - }, - "zigbee_integration": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]", - "menu_options": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]" - }, - "menu_option_descriptions": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]" - } - } - }, - "abort": { - "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", - "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", - "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", - "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", - "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", - "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", - "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", - "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", - "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", - "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]", - "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", - "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", - "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", - "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]" - }, - "progress": { - "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", - "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", - "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", - "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", - "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" - } - }, - "exceptions": { - "device_disconnected": { - "message": "The device is not plugged in" } } } diff --git a/homeassistant/components/homeassistant_green/strings.json b/homeassistant/components/homeassistant_green/strings.json index 13507439e4b..f78aaa53da3 100644 --- a/homeassistant/components/homeassistant_green/strings.json +++ b/homeassistant/components/homeassistant_green/strings.json @@ -1,27 +1,27 @@ { "options": { - "step": { - "hardware_settings": { - "title": "Configure hardware settings", - "data": { - "activity_led": "Green: activity LED", - "power_led": "White: power LED", - "system_health_led": "Yellow: system health LED" - } - }, - "reboot_menu": { - "title": "Reboot required", - "description": "The settings have changed, but the new settings will not take effect until the system is rebooted", - "menu_options": { - "reboot_later": "Reboot manually later", - "reboot_now": "Reboot now" - } - } - }, "abort": { "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", "read_hw_settings_error": "Failed to read hardware settings", "write_hw_settings_error": "Failed to write hardware settings" + }, + "step": { + "hardware_settings": { + "data": { + "activity_led": "Green: activity LED", + "power_led": "White: power LED", + "system_health_led": "Yellow: system health LED" + }, + "title": "Configure hardware settings" + }, + "reboot_menu": { + "description": "The settings have changed, but the new settings will not take effect until the system is rebooted", + "menu_options": { + "reboot_later": "Reboot manually later", + "reboot_now": "Reboot now" + }, + "title": "Reboot required" + } } } } diff --git a/homeassistant/components/homeassistant_hardware/strings.json b/homeassistant/components/homeassistant_hardware/strings.json index 561bbfabf7b..85b99e42946 100644 --- a/homeassistant/components/homeassistant_hardware/strings.json +++ b/homeassistant/components/homeassistant_hardware/strings.json @@ -1,26 +1,28 @@ { "firmware_picker": { "options": { + "abort": { + "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.", + "fw_install_failed": "{firmware_name} firmware failed to install, check Home Assistant logs for more information.", + "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please manually set up OpenThread Border Router to communicate with it.", + "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.", + "otbr_still_using_stick": "This {model} is in use by the OpenThread Border Router add-on. If you use the Thread network, make sure you have alternative border routers. Uninstall the add-on and try again.", + "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device. If you are running Home Assistant OS in a virtual machine or in Docker, please make sure that permissions are set correctly for the device.", + "zha_still_using_stick": "This {model} is in use by the Zigbee Home Automation integration. Please migrate your Zigbee network to another adapter or delete the integration and try again." + }, + "progress": { + "install_firmware": "Installing {firmware_name} firmware.\n\nDo not make any changes to your hardware or software until this finishes.", + "install_otbr_addon": "Installing add-on", + "start_otbr_addon": "Starting add-on" + }, "step": { - "pick_firmware": { - "title": "Pick your protocol", - "description": "You can use your {model} for a Zigbee or Thread network. Please check what type of devices you want to add to Home Assistant. You can always change this later.", - "menu_options": { - "pick_firmware_zigbee": "Use as Zigbee adapter", - "pick_firmware_thread": "Use as Thread adapter", - "pick_firmware_zigbee_migrate": "Migrate Zigbee to a new adapter", - "pick_firmware_thread_migrate": "Migrate Thread to a new adapter" - }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "Most common protocol.", - "pick_firmware_thread": "Often used for Matter over Thread devices.", - "pick_firmware_zigbee_migrate": "This will move your Zigbee network to the new adapter.", - "pick_firmware_thread_migrate": "This will migrate your Thread Border Router to the new adapter." - } + "confirm_otbr": { + "description": "Your {model} is now an OpenThread Border Router and will show up in the Thread integration.", + "title": "OpenThread Border Router setup complete" }, "confirm_zigbee": { - "title": "Zigbee setup complete", - "description": "Your {model} is now a Zigbee coordinator and will be shown as discovered by the Zigbee Home Automation integration." + "description": "Your {model} is now a Zigbee coordinator and will be shown as discovered by the Zigbee Home Automation integration.", + "title": "Zigbee setup complete" }, "install_otbr_addon": { "title": "Configuring Thread" @@ -31,67 +33,74 @@ "install_zigbee_firmware": { "title": "Updating adapter" }, + "otbr_failed": { + "description": "The OpenThread Border Router add-on installation was unsuccessful. Ensure no other software is trying to communicate with the {model}, you have access to the Internet and can install other add-ons, and try again. Check the Supervisor logs if the problem persists.", + "title": "Failed to set up OpenThread Border Router" + }, + "pick_firmware": { + "description": "You can use your {model} for a Zigbee or Thread network. Please check what type of devices you want to add to Home Assistant. You can always change this later.", + "menu_option_descriptions": { + "pick_firmware_thread": "Often used for Matter over Thread devices.", + "pick_firmware_thread_migrate": "This will migrate your Thread Border Router to the new adapter.", + "pick_firmware_zigbee": "Most common protocol.", + "pick_firmware_zigbee_migrate": "This will move your Zigbee network to the new adapter." + }, + "menu_options": { + "pick_firmware_thread": "Use as Thread adapter", + "pick_firmware_thread_migrate": "Migrate Thread to a new adapter", + "pick_firmware_zigbee": "Use as Zigbee adapter", + "pick_firmware_zigbee_migrate": "Migrate Zigbee to a new adapter" + }, + "title": "Pick your protocol" + }, "start_otbr_addon": { "title": "Configuring Thread" }, - "otbr_failed": { - "title": "Failed to set up OpenThread Border Router", - "description": "The OpenThread Border Router add-on installation was unsuccessful. Ensure no other software is trying to communicate with the {model}, you have access to the Internet and can install other add-ons, and try again. Check the Supervisor logs if the problem persists." - }, - "confirm_otbr": { - "title": "OpenThread Border Router setup complete", - "description": "Your {model} is now an OpenThread Border Router and will show up in the Thread integration." - }, "zigbee_installation_type": { - "title": "Set up Zigbee", "description": "Choose the installation type for the Zigbee adapter.", - "menu_options": { - "zigbee_intent_recommended": "Recommended installation", - "zigbee_intent_custom": "Custom" - }, "menu_option_descriptions": { - "zigbee_intent_recommended": "Automatically install and configure Zigbee.", - "zigbee_intent_custom": "Manually install and configure Zigbee, for example with Zigbee2MQTT." - } + "zigbee_intent_custom": "Manually install and configure Zigbee, for example with Zigbee2MQTT.", + "zigbee_intent_recommended": "Automatically install and configure Zigbee." + }, + "menu_options": { + "zigbee_intent_custom": "Custom", + "zigbee_intent_recommended": "Recommended installation" + }, + "title": "Set up Zigbee" }, "zigbee_integration": { - "title": "Select Zigbee method", - "menu_options": { - "zigbee_integration_zha": "Zigbee Home Automation", - "zigbee_integration_other": "Other" - }, "menu_option_descriptions": { - "zigbee_integration_zha": "Lets Home Assistant control a Zigbee network.", - "zigbee_integration_other": "For example if you want to use the adapter with Zigbee2MQTT." - } + "zigbee_integration_other": "For example if you want to use the adapter with Zigbee2MQTT.", + "zigbee_integration_zha": "Lets Home Assistant control a Zigbee network." + }, + "menu_options": { + "zigbee_integration_other": "Other", + "zigbee_integration_zha": "Zigbee Home Automation" + }, + "title": "Select Zigbee method" } - }, - "abort": { - "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please manually set up OpenThread Border Router to communicate with it.", - "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.", - "zha_still_using_stick": "This {model} is in use by the Zigbee Home Automation integration. Please migrate your Zigbee network to another adapter or delete the integration and try again.", - "otbr_still_using_stick": "This {model} is in use by the OpenThread Border Router add-on. If you use the Thread network, make sure you have alternative border routers. Uninstall the add-on and try again.", - "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device. If you are running Home Assistant OS in a virtual machine or in Docker, please make sure that permissions are set correctly for the device.", - "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.", - "fw_install_failed": "{firmware_name} firmware failed to install, check Home Assistant logs for more information." - }, - "progress": { - "install_firmware": "Installing {firmware_name} firmware.\n\nDo not make any changes to your hardware or software until this finishes.", - "install_otbr_addon": "Installing add-on", - "start_otbr_addon": "Starting add-on" } } }, "silabs_multiprotocol_hardware": { "options": { + "abort": { + "addon_already_running": "Failed to start the {addon_name} add-on because it is already running.", + "addon_info_failed": "Failed to get {addon_name} add-on info.", + "addon_install_failed": "Failed to install the {addon_name} add-on.", + "addon_set_config_failed": "Failed to set {addon_name} configuration.", + "addon_start_failed": "Failed to start the {addon_name} add-on.", + "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.", + "zha_migration_failed": "The ZHA migration did not succeed." + }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "progress": { + "install_addon": "Please wait while the {addon_name} add-on installation finishes. This can take several minutes.", + "start_addon": "Please wait while the {addon_name} add-on start completes. This may take some seconds." + }, "step": { - "addon_not_installed": { - "title": "Enable multiprotocol support on the IEEE 802.15.4 radio", - "description": "When multiprotocol support is enabled, the {hardware_name}'s IEEE 802.15.4 radio can be used for both Zigbee and Thread (used by Matter) at the same time. If the radio is already used by the ZHA Zigbee integration, ZHA will be reconfigured to use the multiprotocol firmware.\n\nNote: This is an experimental feature.", - "data": { - "enable_multi_pan": "Enable multiprotocol support" - } - }, "addon_installed_other_device": { "title": "Multiprotocol support is already enabled for another device" }, @@ -101,23 +110,30 @@ "uninstall_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" } }, + "addon_not_installed": { + "data": { + "enable_multi_pan": "Enable multiprotocol support" + }, + "description": "When multiprotocol support is enabled, the {hardware_name}'s IEEE 802.15.4 radio can be used for both Zigbee and Thread (used by Matter) at the same time. If the radio is already used by the ZHA Zigbee integration, ZHA will be reconfigured to use the multiprotocol firmware.\n\nNote: This is an experimental feature.", + "title": "Enable multiprotocol support on the IEEE 802.15.4 radio" + }, "change_channel": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]", "data": { "channel": "Channel" }, - "description": "Start a channel change for your Zigbee and Thread networks.\n\nNote: this is an advanced operation and can leave your Thread and Zigbee networks inoperable if the new channel is congested. Depending on existing network conditions, many of your devices may not migrate to the new channel and will require re-joining before they start working again. Use with caution.\n\nOnce you have selected **Submit**, the channel change starts quietly in the background and will finish after a few minutes." + "description": "Start a channel change for your Zigbee and Thread networks.\n\nNote: this is an advanced operation and can leave your Thread and Zigbee networks inoperable if the new channel is congested. Depending on existing network conditions, many of your devices may not migrate to the new channel and will require re-joining before they start working again. Use with caution.\n\nOnce you have selected **Submit**, the channel change starts quietly in the background and will finish after a few minutes.", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" }, "install_addon": { "title": "The Silicon Labs Multiprotocol add-on installation has started" }, "notify_channel_change": { - "title": "Channel change initiated", - "description": "A Zigbee and Thread channel change has been initiated and will finish in {delay_minutes} minutes." + "description": "A Zigbee and Thread channel change has been initiated and will finish in {delay_minutes} minutes.", + "title": "Channel change initiated" }, "notify_unknown_multipan_user": { - "title": "Manual configuration may be needed", - "description": "Home Assistant can automatically change the channels for OTBR and ZHA. If you have configured another integration to use the radio, for example Zigbee2MQTT, you will have to reconfigure the channel in that integration after completing this guide." + "description": "Home Assistant can automatically change the channels for OTBR and ZHA. If you have configured another integration to use the radio, for example Zigbee2MQTT, you will have to reconfigure the channel in that integration after completing this guide.", + "title": "Manual configuration may be needed" }, "reconfigure_addon": { "title": "Reconfigure IEEE 802.15.4 radio multiprotocol support" @@ -126,28 +142,12 @@ "title": "The Silicon Labs Multiprotocol add-on is starting." }, "uninstall_addon": { - "title": "Remove IEEE 802.15.4 radio multiprotocol support", - "description": "Disabling multiprotocol support will revert your {hardware_name}'s radio back to Zigbee-only firmware and will disable Thread support provided by the {hardware_name}. Your Thread devices will continue working only if you have another Thread border router nearby.\n\nIt will take a few minutes to install the Zigbee firmware and restoring a backup.", "data": { "disable_multi_pan": "Disable multiprotocol support" - } + }, + "description": "Disabling multiprotocol support will revert your {hardware_name}'s radio back to Zigbee-only firmware and will disable Thread support provided by the {hardware_name}. Your Thread devices will continue working only if you have another Thread border router nearby.\n\nIt will take a few minutes to install the Zigbee firmware and restoring a backup.", + "title": "Remove IEEE 802.15.4 radio multiprotocol support" } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "addon_info_failed": "Failed to get {addon_name} add-on info.", - "addon_install_failed": "Failed to install the {addon_name} add-on.", - "addon_already_running": "Failed to start the {addon_name} add-on because it is already running.", - "addon_set_config_failed": "Failed to set {addon_name} configuration.", - "addon_start_failed": "Failed to start the {addon_name} add-on.", - "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.", - "zha_migration_failed": "The ZHA migration did not succeed." - }, - "progress": { - "install_addon": "Please wait while the {addon_name} add-on installation finishes. This can take several minutes.", - "start_addon": "Please wait while the {addon_name} add-on start completes. This may take some seconds." } } } diff --git a/homeassistant/components/homeassistant_sky_connect/manifest.json b/homeassistant/components/homeassistant_sky_connect/manifest.json index 27280c6aac3..c09bbeab4c8 100644 --- a/homeassistant/components/homeassistant_sky_connect/manifest.json +++ b/homeassistant/components/homeassistant_sky_connect/manifest.json @@ -8,16 +8,16 @@ "integration_type": "hardware", "usb": [ { - "vid": "10C4", - "pid": "EA60", "description": "*skyconnect v1.0*", - "known_devices": ["SkyConnect v1.0"] + "known_devices": ["SkyConnect v1.0"], + "pid": "EA60", + "vid": "10C4" }, { - "vid": "10C4", - "pid": "EA60", "description": "*home assistant connect zbt-1*", - "known_devices": ["Home Assistant Connect ZBT-1"] + "known_devices": ["Home Assistant Connect ZBT-1"], + "pid": "EA60", + "vid": "10C4" } ] } diff --git a/homeassistant/components/homeassistant_sky_connect/strings.json b/homeassistant/components/homeassistant_sky_connect/strings.json index c2f02897b45..f0bcd0d3cc7 100644 --- a/homeassistant/components/homeassistant_sky_connect/strings.json +++ b/homeassistant/components/homeassistant_sky_connect/strings.json @@ -1,13 +1,128 @@ { - "options": { + "config": { + "abort": { + "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", + "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", + "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", + "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]", + "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", + "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", + "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", + "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", + "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", + "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", + "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]" + }, + "flow_title": "{model}", + "progress": { + "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", + "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", + "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", + "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", + "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" + }, "step": { - "addon_not_installed": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", - "data": { - "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" - } + "confirm_otbr": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]" }, + "confirm_zigbee": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]" + }, + "install_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" + }, + "install_thread_firmware": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" + }, + "install_zigbee_firmware": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" + }, + "otbr_failed": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]" + }, + "pick_firmware": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", + "menu_option_descriptions": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]" + }, + "menu_options": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]" + }, + "start_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" + }, + "zigbee_installation_type": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", + "menu_option_descriptions": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]" + }, + "menu_options": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]" + }, + "zigbee_integration": { + "menu_option_descriptions": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]" + }, + "menu_options": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]" + } + } + }, + "exceptions": { + "device_disconnected": { + "message": "The device is not plugged in" + } + }, + "options": { + "abort": { + "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", + "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", + "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", + "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]", + "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", + "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", + "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", + "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", + "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", + "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", + "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]" + }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "progress": { + "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", + "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", + "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", + "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", + "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" + }, + "step": { "addon_installed_other_device": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_installed_other_device::title%]" }, @@ -17,16 +132,34 @@ "uninstall_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" } }, + "addon_not_installed": { + "data": { + "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" + }, + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]" + }, "change_channel": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]", "data": { "channel": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::data::channel%]" }, - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" + }, + "confirm_otbr": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]" + }, + "confirm_zigbee": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]" }, "install_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::install_addon::title%]" }, + "install_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" + }, "install_thread_firmware": { "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" }, @@ -34,12 +167,32 @@ "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" }, "notify_channel_change": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]" }, "notify_unknown_multipan_user": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]" + }, + "otbr_failed": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]" + }, + "pick_firmware": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", + "menu_option_descriptions": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]" + }, + "menu_options": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]" }, "reconfigure_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" @@ -47,192 +200,39 @@ "start_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::start_addon::title%]" }, + "start_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" + }, "uninstall_addon": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", "data": { "disable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::data::disable_multi_pan%]" - } - }, - "pick_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", - "menu_options": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]" }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]" - } - }, - "confirm_zigbee": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]" - }, - "install_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" - }, - "start_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" - }, - "otbr_failed": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]" - }, - "confirm_otbr": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" }, "zigbee_installation_type": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]", "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", - "menu_options": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]" - }, "menu_option_descriptions": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]" - } + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]" + }, + "menu_options": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]" }, "zigbee_integration": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]", - "menu_options": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]" - }, "menu_option_descriptions": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]" - } + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]" + }, + "menu_options": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]" } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", - "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", - "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", - "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", - "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", - "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", - "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", - "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", - "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", - "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]", - "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", - "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", - "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", - "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]" - }, - "progress": { - "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", - "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", - "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", - "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", - "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" - } - }, - "config": { - "flow_title": "{model}", - "step": { - "pick_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", - "menu_options": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]" - }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]" - } - }, - "confirm_zigbee": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]" - }, - "install_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" - }, - "install_thread_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" - }, - "install_zigbee_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" - }, - "start_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" - }, - "otbr_failed": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]" - }, - "confirm_otbr": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]" - }, - "zigbee_installation_type": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", - "menu_options": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]" - }, - "menu_option_descriptions": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]" - } - }, - "zigbee_integration": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]", - "menu_options": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]" - }, - "menu_option_descriptions": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]" - } - } - }, - "abort": { - "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", - "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", - "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", - "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", - "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", - "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", - "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", - "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", - "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", - "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]", - "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", - "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]", - "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", - "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]" - }, - "progress": { - "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", - "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", - "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", - "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", - "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" - } - }, - "exceptions": { - "device_disconnected": { - "message": "The device is not plugged in" } } } diff --git a/homeassistant/components/homeassistant_yellow/strings.json b/homeassistant/components/homeassistant_yellow/strings.json index f25e2b6d2bd..8be5b8ad134 100644 --- a/homeassistant/components/homeassistant_yellow/strings.json +++ b/homeassistant/components/homeassistant_yellow/strings.json @@ -1,13 +1,41 @@ { + "entity": { + "update": { + "radio_firmware": { + "name": "Radio firmware" + } + } + }, "options": { + "abort": { + "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", + "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", + "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", + "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]", + "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", + "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", + "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", + "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", + "read_hw_settings_error": "Failed to read hardware settings", + "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device.", + "write_hw_settings_error": "Failed to write hardware settings", + "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", + "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]" + }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "progress": { + "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", + "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", + "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", + "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", + "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" + }, "step": { - "addon_not_installed": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", - "data": { - "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" - } - }, "addon_installed_other_device": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_installed_other_device::title%]" }, @@ -17,52 +45,90 @@ "uninstall_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" } }, + "addon_not_installed": { + "data": { + "enable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::data::enable_multi_pan%]" + }, + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::addon_not_installed::title%]" + }, "change_channel": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]", "data": { "channel": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::data::channel%]" }, - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::change_channel::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" + }, + "confirm_otbr": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]" + }, + "confirm_zigbee": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]" }, "hardware_settings": { - "title": "Configure hardware settings", "data": { - "heartbeat_led": "Yellow: system health LED", "disk_led": "Green: activity LED", + "heartbeat_led": "Yellow: system health LED", "power_led": "Red: power LED" - } + }, + "title": "Configure hardware settings" }, "install_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::install_addon::title%]" }, + "install_otbr_addon": { + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" + }, "install_thread_firmware": { "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_thread_firmware::title%]" }, "install_zigbee_firmware": { "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_zigbee_firmware::title%]" }, - "notify_channel_change": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]" - }, "main_menu": { "menu_options": { - "hardware_settings": "[%key:component::homeassistant_yellow::options::step::hardware_settings::title%]", "firmware_settings": "Switch between Zigbee or Thread firmware.", + "hardware_settings": "[%key:component::homeassistant_yellow::options::step::hardware_settings::title%]", "multipan_settings": "Configure IEEE 802.15.4 radio multiprotocol support" } }, + "notify_channel_change": { + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_channel_change::title%]" + }, "notify_unknown_multipan_user": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]" + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::notify_unknown_multipan_user::title%]" + }, + "otbr_failed": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]", + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]" + }, + "pick_firmware": { + "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", + "menu_option_descriptions": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]" + }, + "menu_options": { + "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", + "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]", + "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", + "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]" }, "reboot_menu": { - "title": "Reboot required", "description": "The settings have changed, but the new settings will not take effect until the system is rebooted", "menu_options": { "reboot_later": "Reboot manually later", "reboot_now": "Reboot now" - } + }, + "title": "Reboot required" }, "reconfigure_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::reconfigure_addon::title%]" @@ -70,104 +136,38 @@ "start_addon": { "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::start_addon::title%]" }, - "uninstall_addon": { - "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]", - "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", - "data": { - "disable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::data::disable_multi_pan%]" - } - }, - "pick_firmware": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::description%]", - "menu_options": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_options::pick_firmware_thread_migrate%]" - }, - "menu_option_descriptions": { - "pick_firmware_zigbee": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee%]", - "pick_firmware_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread%]", - "pick_firmware_zigbee_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_zigbee_migrate%]", - "pick_firmware_thread_migrate": "[%key:component::homeassistant_hardware::firmware_picker::options::step::pick_firmware::menu_option_descriptions::pick_firmware_thread_migrate%]" - } - }, - "confirm_zigbee": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_zigbee::description%]" - }, - "install_otbr_addon": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::install_otbr_addon::title%]" - }, "start_otbr_addon": { "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::start_otbr_addon::title%]" }, - "otbr_failed": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::otbr_failed::description%]" - }, - "confirm_otbr": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::title%]", - "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::confirm_otbr::description%]" + "uninstall_addon": { + "data": { + "disable_multi_pan": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::data::disable_multi_pan%]" + }, + "description": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::description%]", + "title": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::step::uninstall_addon::title%]" }, "zigbee_installation_type": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]", "description": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::description%]", - "menu_options": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]" - }, "menu_option_descriptions": { - "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]", - "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]" - } + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_option_descriptions::zigbee_intent_recommended%]" + }, + "menu_options": { + "zigbee_intent_custom": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_custom%]", + "zigbee_intent_recommended": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::menu_options::zigbee_intent_recommended%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_installation_type::title%]" }, "zigbee_integration": { - "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]", - "menu_options": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]" - }, "menu_option_descriptions": { - "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]", - "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]" - } - } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "addon_info_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_info_failed%]", - "addon_install_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_install_failed%]", - "addon_already_running": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_already_running%]", - "addon_set_config_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_set_config_failed%]", - "addon_start_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::addon_start_failed%]", - "not_hassio": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::not_hassio%]", - "read_hw_settings_error": "Failed to read hardware settings", - "write_hw_settings_error": "Failed to write hardware settings", - "zha_migration_failed": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::abort::zha_migration_failed%]", - "not_hassio_thread": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::not_hassio_thread%]", - "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]", - "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]", - "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]", - "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device.", - "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]", - "fw_install_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_install_failed%]" - }, - "progress": { - "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]", - "install_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_firmware%]", - "install_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::install_otbr_addon%]", - "start_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::start_addon%]", - "start_otbr_addon": "[%key:component::homeassistant_hardware::firmware_picker::options::progress::start_otbr_addon%]" - } - }, - "entity": { - "update": { - "radio_firmware": { - "name": "Radio firmware" + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_option_descriptions::zigbee_integration_zha%]" + }, + "menu_options": { + "zigbee_integration_other": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_other%]", + "zigbee_integration_zha": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::menu_options::zigbee_integration_zha%]" + }, + "title": "[%key:component::homeassistant_hardware::firmware_picker::options::step::zigbee_integration::title%]" } } } diff --git a/homeassistant/components/homee/icons.json b/homeassistant/components/homee/icons.json index 062b530ac7e..83b5d5c56fc 100644 --- a/homeassistant/components/homee/icons.json +++ b/homeassistant/components/homee/icons.json @@ -16,8 +16,8 @@ "state_attributes": { "preset_mode": { "state": { - "manual": "mdi:hand-back-left", "auto": "mdi:auto-mode", + "manual": "mdi:hand-back-left", "summer": "mdi:sun-thermometer-outline" } } @@ -39,11 +39,11 @@ } }, "switch": { - "watchdog": { - "default": "mdi:dog" - }, "manual_operation": { "default": "mdi:hand-back-left" + }, + "watchdog": { + "default": "mdi:dog" } } } diff --git a/homeassistant/components/homee/manifest.json b/homeassistant/components/homee/manifest.json index 4304239cf1c..d18344d711b 100644 --- a/homeassistant/components/homee/manifest.json +++ b/homeassistant/components/homee/manifest.json @@ -11,8 +11,8 @@ "requirements": ["pyHomee==1.3.8"], "zeroconf": [ { - "type": "_ssh._tcp.local.", - "name": "homee-*" + "name": "homee-*", + "type": "_ssh._tcp.local." } ] } diff --git a/homeassistant/components/homee/strings.json b/homeassistant/components/homee/strings.json index 26fa335d147..535c5b9628a 100644 --- a/homeassistant/components/homee/strings.json +++ b/homeassistant/components/homee/strings.json @@ -1,6 +1,5 @@ { "config": { - "flow_title": "homee {name} ({host})", "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", @@ -12,9 +11,30 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, + "flow_title": "homee {name} ({host})", "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::homee::config::step::user::data_description::password%]", + "username": "[%key:component::homee::config::step::user::data_description::username%]" + }, + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "[%key:component::homee::config::step::user::data_description::host%]" + }, + "description": "Reconfigure the IP address of your homee.", + "title": "Reconfigure homee {name}" + }, "user": { - "title": "Configure homee", "data": { "host": "[%key:common::config_flow::data::host%]", "password": "[%key:common::config_flow::data::password%]", @@ -22,41 +42,21 @@ }, "data_description": { "host": "The IP address of your homee.", - "username": "The username for your homee.", - "password": "The password for your homee." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "The password for your homee.", + "username": "The username for your homee." }, - "data_description": { - "username": "[%key:component::homee::config::step::user::data_description::username%]", - "password": "[%key:component::homee::config::step::user::data_description::password%]" - } - }, - "reconfigure": { - "title": "Reconfigure homee {name}", - "description": "Reconfigure the IP address of your homee.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "[%key:component::homee::config::step::user::data_description::host%]" - } + "title": "Configure homee" }, "zeroconf_confirm": { - "title": "Configure discovered homee {host}", "data": { - "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": { - "username": "[%key:component::homee::config::step::user::data_description::username%]", - "password": "[%key:component::homee::config::step::user::data_description::password%]" - } + "password": "[%key:component::homee::config::step::user::data_description::password%]", + "username": "[%key:component::homee::config::step::user::data_description::username%]" + }, + "title": "Configure discovered homee {host}" } } }, @@ -188,9 +188,9 @@ "state_attributes": { "event_type": { "state": { - "upper": "Upper button", "lower": "Lower button", - "released": "Released" + "released": "Released", + "upper": "Upper button" } } } @@ -200,9 +200,9 @@ "state_attributes": { "event_type": { "state": { - "upper": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::upper%]", "lower": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::lower%]", - "released": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::released%]" + "released": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::released%]", + "upper": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::upper%]" } } } @@ -212,16 +212,16 @@ "state_attributes": { "event_type": { "state": { - "release": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::released%]", - "up": "Up", - "down": "Down", - "stop": "Stop", - "up_long": "Up (long press)", - "down_long": "Down (long press)", - "stop_long": "Stop (long press)", - "c_button": "C button", + "a_button": "A button", "b_button": "B button", - "a_button": "A button" + "c_button": "C button", + "down": "Down", + "down_long": "Down (long press)", + "release": "[%key:component::homee::entity::event::button_state::state_attributes::event_type::state::released%]", + "stop": "Stop", + "stop_long": "Stop (long press)", + "up": "Up", + "up_long": "Up (long press)" } } } @@ -232,8 +232,8 @@ "state_attributes": { "preset_mode": { "state": { - "manual": "[%key:common::state::manual%]", "auto": "[%key:common::state::auto%]", + "manual": "[%key:common::state::manual%]", "summer": "Summer" } } @@ -317,16 +317,16 @@ "display_temperature_selection": { "name": "Displayed temperature", "state": { - "target": "Target", - "current": "Measured" + "current": "Measured", + "target": "Target" } }, "repeater_mode": { "name": "Repeater mode", "state": { - "off": "[%key:common::state::off%]", "level1": "Level 1", - "level2": "Level 2" + "level2": "Level 2", + "off": "[%key:common::state::off%]" } } }, @@ -383,19 +383,19 @@ "name": "Node state", "state": { "available": "Available", + "blocked": "Blocked", + "cosi_connected": "Cosi connected", + "delete_in_progress": "Delete in progress", + "firmware_update_in_progress": "Firmware update in progress", + "host_unavailable": "Host unavailable", + "initializing": "Initializing", + "password_required": "Password required", + "remote_node_deleted": "Remote node deleted", "unavailable": "Unavailable", "update_in_progress": "Update in progress", - "waiting_for_attributes": "Waiting for attributes", - "initializing": "Initializing", "user_interaction_required": "User interaction required", - "password_required": "Password required", - "host_unavailable": "Host unavailable", - "delete_in_progress": "Delete in progress", - "cosi_connected": "Cosi connected", - "blocked": "Blocked", - "waiting_for_wakeup": "Waiting for wakeup", - "remote_node_deleted": "Remote node deleted", - "firmware_update_in_progress": "Firmware update in progress" + "waiting_for_attributes": "Waiting for attributes", + "waiting_for_wakeup": "Waiting for wakeup" } }, "operating_hours": { @@ -419,12 +419,12 @@ "power_instance": { "name": "Power {instance}" }, - "rainfall_hour": { - "name": "Rainfall last hour" - }, "rainfall_day": { "name": "Rainfall today" }, + "rainfall_hour": { + "name": "Rainfall last hour" + }, "total_current": { "name": "Total current" }, @@ -440,11 +440,11 @@ "up_down": { "name": "State", "state": { - "open": "[%key:common::state::open%]", "closed": "[%key:common::state::closed%]", - "partial": "Partially open", + "closing": "[%key:common::state::closing%]", + "open": "[%key:common::state::open%]", "opening": "[%key:common::state::opening%]", - "closing": "[%key:common::state::closing%]" + "partial": "Partially open" } }, "uv": { @@ -498,8 +498,8 @@ }, "issues": { "deprecated_entity": { - "title": "The Homee {name} entity is deprecated", - "description": "The Homee entity `{entity}` is deprecated and will be removed in release 2025.12.\nThe valve is available directly in the respective climate entity.\nPlease update your automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue." + "description": "The Homee entity `{entity}` is deprecated and will be removed in release 2025.12.\nThe valve is available directly in the respective climate entity.\nPlease update your automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue.", + "title": "The Homee {name} entity is deprecated" } } } diff --git a/homeassistant/components/homekit/strings.json b/homeassistant/components/homekit/strings.json index 1ec897660a1..17835c1003b 100644 --- a/homeassistant/components/homekit/strings.json +++ b/homeassistant/components/homekit/strings.json @@ -1,31 +1,44 @@ { + "config": { + "abort": { + "port_name_in_use": "An accessory or bridge with the same name or port is already configured." + }, + "step": { + "pairing": { + "description": "To complete pairing follow the instructions in \u201cNotifications\u201d under \u201cHomeKit Pairing\u201d.", + "title": "Pair HomeKit" + }, + "user": { + "data": { + "include_domains": "Domains to include" + }, + "description": "Choose the domains to be included. All supported entities in the domain will be included except for categorized entities. A separate HomeKit instance in accessory mode will be created for each tv/receiver media player, activity based remote, lock, and camera.", + "title": "Select domains to be included" + } + } + }, "options": { "step": { - "yaml": { - "title": "Adjust HomeKit options", - "description": "This entry is controlled via YAML" - }, - "init": { - "data": { - "mode": "HomeKit mode", - "include_exclude_mode": "Inclusion mode", - "domains": "[%key:component::homekit::config::step::user::data::include_domains%]" - }, - "description": "HomeKit can be configured expose a bridge or a single accessory. In accessory mode, only a single entity can be used. Accessory mode is required for media players with the TV or RECEIVER device class to function properly. Entities in the \u201cDomains to include\u201d will be included to HomeKit. You will be able to select which entities to include or exclude from this list on the next screen.", - "title": "Select mode and domains." - }, "accessory": { "data": { "entities": "Entity" }, "title": "Select the entity for the accessory" }, - "include": { + "advanced": { "data": { - "entities": "Entities" + "devices": "Devices (Triggers)" }, - "description": "Select entities from each domain in \u201c{domains}\u201d. The include will cover the entire domain if you do not select any entities for a given domain.", - "title": "Select the entities to be included" + "description": "Programmable switches are created for each selected device. When a device trigger fires, HomeKit can be configured to run an automation or scene.", + "title": "Advanced configuration" + }, + "cameras": { + "data": { + "camera_audio": "Cameras that support audio", + "camera_copy": "Cameras that support native H.264 streams" + }, + "description": "Check all cameras that support native H.264 streams. If the camera does not output a H.264 stream, the system will transcode the video to H.264 for HomeKit. Transcoding requires a performant CPU and is unlikely to work on single-board computers.", + "title": "Camera configuration" }, "exclude": { "data": { @@ -34,65 +47,52 @@ "description": "All \u201c{domains}\u201d entities will be included except for the excluded entities and categorized entities.", "title": "Select the entities to be excluded" }, - "cameras": { + "include": { "data": { - "camera_copy": "Cameras that support native H.264 streams", - "camera_audio": "Cameras that support audio" + "entities": "Entities" }, - "description": "Check all cameras that support native H.264 streams. If the camera does not output a H.264 stream, the system will transcode the video to H.264 for HomeKit. Transcoding requires a performant CPU and is unlikely to work on single-board computers.", - "title": "Camera configuration" + "description": "Select entities from each domain in \u201c{domains}\u201d. The include will cover the entire domain if you do not select any entities for a given domain.", + "title": "Select the entities to be included" }, - "advanced": { + "init": { "data": { - "devices": "Devices (Triggers)" + "domains": "[%key:component::homekit::config::step::user::data::include_domains%]", + "include_exclude_mode": "Inclusion mode", + "mode": "HomeKit mode" }, - "description": "Programmable switches are created for each selected device. When a device trigger fires, HomeKit can be configured to run an automation or scene.", - "title": "Advanced configuration" - } - } - }, - "config": { - "step": { - "user": { - "data": { - "include_domains": "Domains to include" - }, - "description": "Choose the domains to be included. All supported entities in the domain will be included except for categorized entities. A separate HomeKit instance in accessory mode will be created for each tv/receiver media player, activity based remote, lock, and camera.", - "title": "Select domains to be included" + "description": "HomeKit can be configured expose a bridge or a single accessory. In accessory mode, only a single entity can be used. Accessory mode is required for media players with the TV or RECEIVER device class to function properly. Entities in the \u201cDomains to include\u201d will be included to HomeKit. You will be able to select which entities to include or exclude from this list on the next screen.", + "title": "Select mode and domains." }, - "pairing": { - "title": "Pair HomeKit", - "description": "To complete pairing follow the instructions in \u201cNotifications\u201d under \u201cHomeKit Pairing\u201d." + "yaml": { + "description": "This entry is controlled via YAML", + "title": "Adjust HomeKit options" } - }, - "abort": { - "port_name_in_use": "An accessory or bridge with the same name or port is already configured." } }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads HomeKit and re-processes the YAML-configuration." + "description": "Reloads HomeKit and re-processes the YAML-configuration.", + "name": "[%key:common::action::reload%]" }, "reset_accessory": { - "name": "Reset accessory", "description": "Resets a HomeKit accessory.", "fields": { "entity_id": { - "name": "Entity", - "description": "Entity to reset." + "description": "Entity to reset.", + "name": "Entity" } - } + }, + "name": "Reset accessory" }, "unpair": { - "name": "Unpair an accessory or bridge", "description": "Forcefully removes all pairings from an accessory to allow re-pairing. Use this action if the accessory is no longer responsive and you want to avoid deleting and re-adding the entry. Room locations and accessory preferences will be lost.", "fields": { "device_id": { - "name": "Device", - "description": "Device to unpair." + "description": "Device to unpair.", + "name": "Device" } - } + }, + "name": "Unpair an accessory or bridge" } } } diff --git a/homeassistant/components/homekit_controller/icons.json b/homeassistant/components/homekit_controller/icons.json index aeee8dd670a..5d4ae129066 100644 --- a/homeassistant/components/homekit_controller/icons.json +++ b/homeassistant/components/homekit_controller/icons.json @@ -6,20 +6,20 @@ } }, "number": { - "spray_quantity": { - "default": "mdi:water" + "duration": { + "default": "mdi:timer" }, "elevation": { "default": "mdi:elevation-rise" }, - "volume": { - "default": "mdi:volume-high" - }, - "duration": { - "default": "mdi:timer" - }, "sensitivity": { "default": "mdi:knob" + }, + "spray_quantity": { + "default": "mdi:water" + }, + "volume": { + "default": "mdi:volume-high" } }, "select": { @@ -33,15 +33,15 @@ } }, "switch": { - "pairing_mode": { - "default": "mdi:lock-open" - }, "lock_physical_controls": { "default": "mdi:lock-open" }, "mute": { "default": "mdi:volume-mute" }, + "pairing_mode": { + "default": "mdi:lock-open" + }, "sleep_mode": { "default": "mdi:power-sleep" }, diff --git a/homeassistant/components/homekit_controller/manifest.json b/homeassistant/components/homekit_controller/manifest.json index 09cd880a492..3cb2203cc56 100644 --- a/homeassistant/components/homekit_controller/manifest.json +++ b/homeassistant/components/homekit_controller/manifest.json @@ -4,8 +4,8 @@ "after_dependencies": ["thread"], "bluetooth": [ { - "manufacturer_id": 76, - "manufacturer_data_start": [6] + "manufacturer_data_start": [6], + "manufacturer_id": 76 } ], "codeowners": ["@Jc2k", "@bdraco"], diff --git a/homeassistant/components/homekit_controller/strings.json b/homeassistant/components/homekit_controller/strings.json index 15785a3947a..c8a22c59a51 100644 --- a/homeassistant/components/homekit_controller/strings.json +++ b/homeassistant/components/homekit_controller/strings.json @@ -1,64 +1,58 @@ { - "title": "HomeKit Device", "config": { - "flow_title": "{name} ({category})", - "step": { - "user": { - "title": "Device selection", - "description": "HomeKit Device communicates over the local area network using a secure encrypted connection without a separate HomeKit Controller or iCloud. Select the device you want to pair with:", - "data": { - "device": "[%key:common::config_flow::data::device%]" - } - }, - "pair": { - "title": "Pair with a device via HomeKit Accessory Protocol", - "description": "HomeKit Device communicates with {name} ({category}) over the local area network using a secure encrypted connection without a separate HomeKit Controller or iCloud. Enter your eight-digit HomeKit pairing code (in the format XXX-XX-XXX) to use this accessory. This code is usually found on the device itself or in the packaging, often close to a HomeKit bar code, next to the image of a small house.", - "data": { - "pairing_code": "Pairing code", - "allow_insecure_setup_codes": "Allow pairing with insecure setup codes." - } - }, - "protocol_error": { - "title": "Error communicating with the accessory", - "description": "The device may not be in pairing mode and may require a physical or virtual button press. Ensure the device is in pairing mode or try restarting the device, then continue to resume pairing." - }, - "busy_error": { - "title": "The device is already pairing with another controller", - "description": "Abort pairing on all controllers, or try restarting the device, then continue to resume pairing." - }, - "max_tries_error": { - "title": "Maximum authentication attempts exceeded", - "description": "The device has received more than 100 unsuccessful authentication attempts. Try restarting the device, then continue to resume pairing." - } - }, - "error": { - "insecure_setup_code": "The requested setup code is insecure because of its trivial nature. This accessory fails to meet basic security requirements.", - "unable_to_pair": "Unable to pair, please try again.", - "unknown_error": "Device reported an unknown error. Pairing failed.", - "authentication_error": "Incorrect HomeKit code. Please check it and try again.", - "max_peers_error": "Device refused to add pairing as it has no free pairing storage.", - "pairing_failed": "An unhandled error occurred while attempting to pair with this device. This may be a temporary failure or your device may not be supported currently: {error}" - }, "abort": { - "no_devices": "No unpaired devices could be found", + "accessory_not_found_error": "Cannot add pairing as device can no longer be found.", + "already_configured": "Accessory is already configured with this controller.", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_paired": "This accessory is already paired to another device. Please reset the accessory and try again.", "ignored_model": "HomeKit support for this model is blocked as a more feature complete native integration is available.", - "already_configured": "Accessory is already configured with this controller.", "invalid_config_entry": "This device is showing as ready to pair but there is already a conflicting configuration entry for it in Home Assistant that must first be removed.", - "accessory_not_found_error": "Cannot add pairing as device can no longer be found.", "invalid_properties": "Invalid properties announced by device.", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" + "no_devices": "No unpaired devices could be found" + }, + "error": { + "authentication_error": "Incorrect HomeKit code. Please check it and try again.", + "insecure_setup_code": "The requested setup code is insecure because of its trivial nature. This accessory fails to meet basic security requirements.", + "max_peers_error": "Device refused to add pairing as it has no free pairing storage.", + "pairing_failed": "An unhandled error occurred while attempting to pair with this device. This may be a temporary failure or your device may not be supported currently: {error}", + "unable_to_pair": "Unable to pair, please try again.", + "unknown_error": "Device reported an unknown error. Pairing failed." + }, + "flow_title": "{name} ({category})", + "step": { + "busy_error": { + "description": "Abort pairing on all controllers, or try restarting the device, then continue to resume pairing.", + "title": "The device is already pairing with another controller" + }, + "max_tries_error": { + "description": "The device has received more than 100 unsuccessful authentication attempts. Try restarting the device, then continue to resume pairing.", + "title": "Maximum authentication attempts exceeded" + }, + "pair": { + "data": { + "allow_insecure_setup_codes": "Allow pairing with insecure setup codes.", + "pairing_code": "Pairing code" + }, + "description": "HomeKit Device communicates with {name} ({category}) over the local area network using a secure encrypted connection without a separate HomeKit Controller or iCloud. Enter your eight-digit HomeKit pairing code (in the format XXX-XX-XXX) to use this accessory. This code is usually found on the device itself or in the packaging, often close to a HomeKit bar code, next to the image of a small house.", + "title": "Pair with a device via HomeKit Accessory Protocol" + }, + "protocol_error": { + "description": "The device may not be in pairing mode and may require a physical or virtual button press. Ensure the device is in pairing mode or try restarting the device, then continue to resume pairing.", + "title": "Error communicating with the accessory" + }, + "user": { + "data": { + "device": "[%key:common::config_flow::data::device%]" + }, + "description": "HomeKit Device communicates over the local area network using a secure encrypted connection without a separate HomeKit Controller or iCloud. Select the device you want to pair with:", + "title": "Device selection" + } } }, "device_automation": { - "trigger_type": { - "single_press": "\"{subtype}\" pressed", - "double_press": "\"{subtype}\" pressed twice", - "long_press": "\"{subtype}\" pressed and held" - }, "trigger_subtype": { - "doorbell": "Doorbell", "button1": "Button 1", + "button10": "Button 10", "button2": "Button 2", "button3": "Button 3", "button4": "Button 4", @@ -67,22 +61,16 @@ "button7": "Button 7", "button8": "Button 8", "button9": "Button 9", - "button10": "Button 10" + "doorbell": "Doorbell" + }, + "trigger_type": { + "double_press": "\"{subtype}\" pressed twice", + "long_press": "\"{subtype}\" pressed and held", + "single_press": "\"{subtype}\" pressed" } }, "entity": { "event": { - "doorbell": { - "state_attributes": { - "event_type": { - "state": { - "double_press": "Double press", - "long_press": "Long press", - "single_press": "Single press" - } - } - } - }, "button": { "state_attributes": { "event_type": { @@ -93,9 +81,26 @@ } } } + }, + "doorbell": { + "state_attributes": { + "event_type": { + "state": { + "double_press": "Double press", + "long_press": "Long press", + "single_press": "Single press" + } + } + } } }, "select": { + "air_purifier_state_target": { + "state": { + "automatic": "Automatic", + "manual": "[%key:common::state::manual%]" + } + }, "ecobee_mode": { "state": { "away": "[%key:common::state::not_home%]", @@ -108,15 +113,16 @@ "celsius": "Celsius", "fahrenheit": "Fahrenheit" } - }, - "air_purifier_state_target": { - "state": { - "automatic": "Automatic", - "manual": "[%key:common::state::manual%]" - } } }, "sensor": { + "air_purifier_state_current": { + "state": { + "idle": "[%key:common::state::idle%]", + "inactive": "Inactive", + "purifying": "Purifying" + } + }, "thread_node_capabilities": { "state": { "border_router_capable": "Border Router Capable", @@ -137,14 +143,8 @@ "leader": "Leader", "router": "Router" } - }, - "air_purifier_state_current": { - "state": { - "inactive": "Inactive", - "idle": "[%key:common::state::idle%]", - "purifying": "Purifying" - } } } - } + }, + "title": "HomeKit Device" } diff --git a/homeassistant/components/homematic/icons.json b/homeassistant/components/homematic/icons.json index 9e58bbe3a90..aa5c00983e0 100644 --- a/homeassistant/components/homematic/icons.json +++ b/homeassistant/components/homematic/icons.json @@ -1,22 +1,22 @@ { "services": { - "virtualkey": { - "service": "mdi:keyboard" - }, - "set_variable_value": { - "service": "mdi:console" - }, - "set_device_value": { - "service": "mdi:television" + "put_paramset": { + "service": "mdi:cog" }, "reconnect": { "service": "mdi:wifi-refresh" }, + "set_device_value": { + "service": "mdi:television" + }, "set_install_mode": { "service": "mdi:cog" }, - "put_paramset": { - "service": "mdi:cog" + "set_variable_value": { + "service": "mdi:console" + }, + "virtualkey": { + "service": "mdi:keyboard" } } } diff --git a/homeassistant/components/homematic/strings.json b/homeassistant/components/homematic/strings.json index 3ce4c1f544d..43bff458ce2 100644 --- a/homeassistant/components/homematic/strings.json +++ b/homeassistant/components/homematic/strings.json @@ -1,126 +1,126 @@ { "services": { - "virtualkey": { - "name": "Virtual key", - "description": "Simulates a keypress (or other valid action) on CCU/Homegear with virtual or device keys.", + "put_paramset": { + "description": "Manually changes a device’s paramset. Equivalent to putParamset-method from XML-RPC.", "fields": { "address": { - "name": "Address", - "description": "Address of Homematic device or BidCoS-RF for virtual remote." - }, - "channel": { - "name": "Channel", - "description": "Channel for calling a keypress." - }, - "param": { - "name": "Param", - "description": "Event to send i.e. PRESS_LONG, PRESS_SHORT." + "description": "Address of Homematic device.", + "name": "Address" }, "interface": { - "name": "Interface", - "description": "Set an interface value." + "description": "The interface's name from the config.", + "name": "Interface" + }, + "paramset": { + "description": "A paramset dictionary.", + "name": "Paramset" + }, + "paramset_key": { + "description": "The paramset_key argument to putParamset.", + "name": "Paramset key" + }, + "rx_mode": { + "description": "The receive mode used.", + "name": "RX mode" } - } + }, + "name": "Put paramset" }, - "set_variable_value": { - "name": "Set variable value", - "description": "Sets the value of a system variable.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of Homematic central to set value." - }, - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the variable to set." - }, - "value": { - "name": "Value", - "description": "New value." - } - } + "reconnect": { + "description": "Reconnects to all Homematic hubs.", + "name": "Reconnect" }, "set_device_value": { - "name": "Set device value", "description": "Controls a device manually. Equivalent to setValue-method from XML-RPC.", "fields": { "address": { - "name": "Address", - "description": "[%key:component::homematic::services::virtualkey::fields::address::description%]" + "description": "[%key:component::homematic::services::virtualkey::fields::address::description%]", + "name": "Address" }, "channel": { - "name": "Channel", - "description": "[%key:component::homematic::services::virtualkey::fields::channel::description%]" + "description": "[%key:component::homematic::services::virtualkey::fields::channel::description%]", + "name": "Channel" + }, + "interface": { + "description": "[%key:component::homematic::services::virtualkey::fields::interface::description%]", + "name": "Interface" }, "param": { - "name": "[%key:component::homematic::services::virtualkey::fields::param::name%]", - "description": "[%key:component::homematic::services::virtualkey::fields::param::description%]" - }, - "interface": { - "name": "Interface", - "description": "[%key:component::homematic::services::virtualkey::fields::interface::description%]" + "description": "[%key:component::homematic::services::virtualkey::fields::param::description%]", + "name": "[%key:component::homematic::services::virtualkey::fields::param::name%]" }, "value": { - "name": "Value", - "description": "[%key:component::homematic::services::set_variable_value::fields::value::description%]" + "description": "[%key:component::homematic::services::set_variable_value::fields::value::description%]", + "name": "Value" }, "value_type": { - "name": "Value type", - "description": "Type for new value." + "description": "Type for new value.", + "name": "Value type" } - } - }, - "reconnect": { - "name": "Reconnect", - "description": "Reconnects to all Homematic hubs." + }, + "name": "Set device value" }, "set_install_mode": { - "name": "Set install mode", "description": "Sets a RPC XML interface into installation mode.", "fields": { + "address": { + "description": "Address of Homematic device or BidCoS-RF to learn.", + "name": "Address" + }, "interface": { - "name": "Interface", - "description": "The interface to set into install mode." + "description": "The interface to set into install mode.", + "name": "Interface" }, "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "1= Normal mode / 2= Remove existing old links." + "description": "1= Normal mode / 2= Remove existing old links.", + "name": "[%key:common::config_flow::data::mode%]" }, "time": { - "name": "Time", - "description": "Time to run in install mode." - }, - "address": { - "name": "Address", - "description": "Address of Homematic device or BidCoS-RF to learn." + "description": "Time to run in install mode.", + "name": "Time" } - } + }, + "name": "Set install mode" }, - "put_paramset": { - "name": "Put paramset", - "description": "Manually changes a device’s paramset. Equivalent to putParamset-method from XML-RPC.", + "set_variable_value": { + "description": "Sets the value of a system variable.", "fields": { - "interface": { - "name": "Interface", - "description": "The interface's name from the config." + "entity_id": { + "description": "Name(s) of Homematic central to set value.", + "name": "Entity" }, - "address": { - "name": "Address", - "description": "Address of Homematic device." + "name": { + "description": "Name of the variable to set.", + "name": "[%key:common::config_flow::data::name%]" }, - "paramset_key": { - "name": "Paramset key", - "description": "The paramset_key argument to putParamset." - }, - "paramset": { - "name": "Paramset", - "description": "A paramset dictionary." - }, - "rx_mode": { - "name": "RX mode", - "description": "The receive mode used." + "value": { + "description": "New value.", + "name": "Value" } - } + }, + "name": "Set variable value" + }, + "virtualkey": { + "description": "Simulates a keypress (or other valid action) on CCU/Homegear with virtual or device keys.", + "fields": { + "address": { + "description": "Address of Homematic device or BidCoS-RF for virtual remote.", + "name": "Address" + }, + "channel": { + "description": "Channel for calling a keypress.", + "name": "Channel" + }, + "interface": { + "description": "Set an interface value.", + "name": "Interface" + }, + "param": { + "description": "Event to send i.e. PRESS_LONG, PRESS_SHORT.", + "name": "Param" + } + }, + "name": "Virtual key" } } } diff --git a/homeassistant/components/homematicip_cloud/icons.json b/homeassistant/components/homematicip_cloud/icons.json index 561ae79abc2..8d3995c29fb 100644 --- a/homeassistant/components/homematicip_cloud/icons.json +++ b/homeassistant/components/homematicip_cloud/icons.json @@ -26,15 +26,15 @@ "deactivate_vacation": { "service": "mdi:compass-off" }, - "set_active_climate_profile": { - "service": "mdi:home-thermometer" - }, "dump_hap_config": { "service": "mdi:database-export" }, "reset_energy_counter": { "service": "mdi:reload" }, + "set_active_climate_profile": { + "service": "mdi:home-thermometer" + }, "set_home_cooling_mode": { "service": "mdi:snowflake" } diff --git a/homeassistant/components/homematicip_cloud/strings.json b/homeassistant/components/homematicip_cloud/strings.json index bc170d5f0c3..4121f8aef77 100644 --- a/homeassistant/components/homematicip_cloud/strings.json +++ b/homeassistant/components/homematicip_cloud/strings.json @@ -1,30 +1,30 @@ { "config": { - "step": { - "init": { - "title": "Pick Homematic IP access point", - "description": "If you are about to register a **Homematic IP HCU1**, please press the button on top of the device before you continue.\n\nThe registration process must be completed within 5 minutes.", - "data": { - "hapid": "Access point ID (SGTIN)", - "pin": "[%key:common::config_flow::data::pin%]", - "name": "Name (optional, used as name prefix for all devices)" - } - }, - "link": { - "title": "Link access point", - "description": "Press the blue button on the access point and the **Submit** button to register Homematic IP with Home Assistant.\n\n![Location of button on bridge](/static/images/config_flows/config_homematicip_cloud.png)" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "connection_aborted": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { - "register_failed": "Failed to register, please try again.", "invalid_sgtin_or_pin": "Invalid SGTIN or PIN code, please try again.", "press_the_button": "Please press the blue button.", + "register_failed": "Failed to register, please try again.", "timeout_button": "Blue button press timeout, please try again." }, - "abort": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "connection_aborted": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "init": { + "data": { + "hapid": "Access point ID (SGTIN)", + "name": "Name (optional, used as name prefix for all devices)", + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "If you are about to register a **Homematic IP HCU1**, please press the button on top of the device before you continue.\n\nThe registration process must be completed within 5 minutes.", + "title": "Pick Homematic IP access point" + }, + "link": { + "description": "Press the blue button on the access point and the **Submit** button to register Homematic IP with Home Assistant.\n\n![Location of button on bridge](/static/images/config_flows/config_homematicip_cloud.png)", + "title": "Link access point" + } } }, "entity": { @@ -45,126 +45,126 @@ }, "services": { "activate_eco_mode_with_duration": { - "name": "Activate eco mode with duration", "description": "Activates the eco mode for a specified duration.", "fields": { - "duration": { - "name": "Duration", - "description": "The duration of eco mode in minutes." - }, "accesspoint_id": { - "name": "Access point ID", - "description": "The ID of the Homematic IP access point." + "description": "The ID of the Homematic IP access point.", + "name": "Access point ID" + }, + "duration": { + "description": "The duration of eco mode in minutes.", + "name": "Duration" } - } + }, + "name": "Activate eco mode with duration" }, "activate_eco_mode_with_period": { - "name": "Activate eco more with period", "description": "Activates the eco mode until a given time.", "fields": { - "endtime": { - "name": "Endtime", - "description": "The time when the eco mode should automatically be disabled." - }, "accesspoint_id": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", - "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]" + }, + "endtime": { + "description": "The time when the eco mode should automatically be disabled.", + "name": "Endtime" } - } + }, + "name": "Activate eco more with period" }, "activate_vacation": { - "name": "Activate vacation", "description": "Activates the vacation mode until a given time.", "fields": { + "accesspoint_id": { + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]" + }, "endtime": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_period::fields::endtime::name%]", - "description": "The time when the vacation mode should automatically be disabled." + "description": "The time when the vacation mode should automatically be disabled.", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_period::fields::endtime::name%]" }, "temperature": { - "name": "Temperature", - "description": "The set temperature during the vacation mode." - }, - "accesspoint_id": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", - "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" + "description": "The set temperature during the vacation mode.", + "name": "Temperature" } - } + }, + "name": "Activate vacation" }, "deactivate_eco_mode": { - "name": "Deactivate eco mode", "description": "Deactivates the eco mode immediately.", "fields": { "accesspoint_id": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", - "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]" } - } + }, + "name": "Deactivate eco mode" }, "deactivate_vacation": { - "name": "Deactivate vacation", "description": "Deactivates the vacation mode immediately.", "fields": { "accesspoint_id": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", - "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]" } - } - }, - "set_active_climate_profile": { - "name": "Set active climate profile", - "description": "Sets the active climate profile index.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "The ID of the climate entity. Use 'all' keyword to switch the profile for all entities." - }, - "climate_profile_index": { - "name": "Climate profile index", - "description": "The index of the climate profile." - } - } + }, + "name": "Deactivate vacation" }, "dump_hap_config": { - "name": "Dump HAP config", "description": "Dumps the configuration of the Homematic IP access point(s).", "fields": { - "config_output_path": { - "name": "Config output path", - "description": "Path where to store the config. Default is 'Your Home Assistant config directory'." + "anonymize": { + "description": "Should the configuration be anonymized?", + "name": "Anonymize" }, "config_output_file_prefix": { - "name": "Config output file prefix", - "description": "Name of the config file. The SGTIN of the HAP will always be appended." + "description": "Name of the config file. The SGTIN of the HAP will always be appended.", + "name": "Config output file prefix" }, - "anonymize": { - "name": "Anonymize", - "description": "Should the configuration be anonymized?" + "config_output_path": { + "description": "Path where to store the config. Default is 'Your Home Assistant config directory'.", + "name": "Config output path" } - } + }, + "name": "Dump HAP config" }, "reset_energy_counter": { - "name": "Reset energy counter", "description": "Resets the energy counter of a measuring entity.", "fields": { "entity_id": { - "name": "Entity", - "description": "The ID of the measuring entity. Use 'all' keyword to reset all energy counters." + "description": "The ID of the measuring entity. Use 'all' keyword to reset all energy counters.", + "name": "Entity" } - } + }, + "name": "Reset energy counter" + }, + "set_active_climate_profile": { + "description": "Sets the active climate profile index.", + "fields": { + "climate_profile_index": { + "description": "The index of the climate profile.", + "name": "Climate profile index" + }, + "entity_id": { + "description": "The ID of the climate entity. Use 'all' keyword to switch the profile for all entities.", + "name": "Entity" + } + }, + "name": "Set active climate profile" }, "set_home_cooling_mode": { - "name": "Set home cooling mode", "description": "Sets the heating/cooling mode for the entire home", "fields": { "accesspoint_id": { - "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", - "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]" }, "cooling": { - "name": "Cooling", - "description": "Enable for cooling mode, disable for heating mode" + "description": "Enable for cooling mode, disable for heating mode", + "name": "Cooling" } - } + }, + "name": "Set home cooling mode" } } } diff --git a/homeassistant/components/homewizard/strings.json b/homeassistant/components/homewizard/strings.json index 84c070fd151..714e99a7f65 100644 --- a/homeassistant/components/homewizard/strings.json +++ b/homeassistant/components/homewizard/strings.json @@ -1,56 +1,56 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "device_not_supported": "This device is not supported", + "invalid_discovery_parameters": "Invalid discovery parameters", + "reauth_enable_api_successful": "Enabling API was successful", + "reauth_successful": "Authorization successful", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unknown_error": "[%key:common::config_flow::error::unknown%]", + "unsupported_api_version": "Detected unsupported API version", + "wrong_device": "The configured device is not the same found on this IP address." + }, + "error": { + "api_not_enabled": "The local API is disabled. Go to the HomeWizard Energy app and enable the API in the device settings.", + "authorization_failed": "Failed to authorize, make sure to press the button of the device within 30 seconds", + "network_error": "Device unreachable, make sure that you have entered the correct IP address and that the device is available in your network" + }, "step": { - "user": { - "title": "Configure device", - "description": "Enter the IP address of your HomeWizard Energy device to integrate with Home Assistant.", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]" - }, - "data_description": { - "ip_address": "The IP address of your HomeWizard Energy device." - } + "authorize": { + "description": "Press the button on the HomeWizard Energy device for two seconds, then select the button below.", + "title": "Authorize" }, "discovery_confirm": { - "title": "Confirm", - "description": "Do you want to set up {product_type} ({serial}) at {ip_address}?" + "description": "Do you want to set up {product_type} ({serial}) at {ip_address}?", + "title": "Confirm" + }, + "reauth_confirm_update_token": { + "description": "[%key:component::homewizard::config::step::authorize::description%]", + "title": "Re-authenticate" }, "reauth_enable_api": { "description": "The local API is disabled. Go to the HomeWizard Energy app and enable the API in the device settings." }, - "reauth_confirm_update_token": { - "title": "Re-authenticate", - "description": "[%key:component::homewizard::config::step::authorize::description%]" - }, - "authorize": { - "title": "Authorize", - "description": "Press the button on the HomeWizard Energy device for two seconds, then select the button below." - }, "reconfigure": { - "description": "Update configuration for {title}.", "data": { "ip_address": "[%key:common::config_flow::data::ip%]" }, "data_description": { "ip_address": "[%key:component::homewizard::config::step::user::data_description::ip_address%]" - } + }, + "description": "Update configuration for {title}." + }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]" + }, + "data_description": { + "ip_address": "The IP address of your HomeWizard Energy device." + }, + "description": "Enter the IP address of your HomeWizard Energy device to integrate with Home Assistant.", + "title": "Configure device" } - }, - "error": { - "api_not_enabled": "The local API is disabled. Go to the HomeWizard Energy app and enable the API in the device settings.", - "network_error": "Device unreachable, make sure that you have entered the correct IP address and that the device is available in your network", - "authorization_failed": "Failed to authorize, make sure to press the button of the device within 30 seconds" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_discovery_parameters": "Invalid discovery parameters", - "device_not_supported": "This device is not supported", - "unknown_error": "[%key:common::config_flow::error::unknown%]", - "unsupported_api_version": "Detected unsupported API version", - "reauth_enable_api_successful": "Enabling API was successful", - "reauth_successful": "Authorization successful", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "wrong_device": "The configured device is not the same found on this IP address." } }, "entity": { @@ -59,33 +59,64 @@ "name": "Status light brightness" } }, + "select": { + "battery_group_mode": { + "name": "Battery group mode", + "state": { + "standby": "Standby", + "to_full": "Manual charge mode", + "zero": "Zero mode" + } + } + }, "sensor": { - "dsmr_version": { - "name": "DSMR version" + "active_apparent_power_phase_va": { + "name": "Apparent power phase {phase}" }, - "meter_model": { - "name": "Smart meter model" + "active_current_phase_a": { + "name": "Current phase {phase}" }, - "unique_meter_id": { - "name": "Smart meter identifier" + "active_liter_lpm": { + "name": "Water usage" }, - "wifi_ssid": { - "name": "Wi-Fi SSID" + "active_power_average_w": { + "name": "Average demand" + }, + "active_power_factor_phase": { + "name": "Power factor phase {phase}" + }, + "active_power_phase_w": { + "name": "Power phase {phase}" + }, + "active_reactive_power_phase_var": { + "name": "Reactive power phase {phase}" }, "active_tariff": { "name": "Tariff" }, - "wifi_strength": { - "name": "Wi-Fi strength" + "active_voltage_phase_v": { + "name": "Voltage phase {phase}" }, - "wifi_rssi": { - "name": "Wi-Fi RSSI" + "any_power_fail_count": { + "name": "Power failures detected" }, - "total_energy_import_kwh": { - "name": "Energy import" + "cycles": { + "name": "Battery cycles" }, - "total_energy_import_tariff_kwh": { - "name": "Energy import tariff {tariff}" + "dsmr_version": { + "name": "DSMR version" + }, + "long_power_fail_count": { + "name": "Long power failures detected" + }, + "meter_model": { + "name": "Smart meter model" + }, + "monthly_power_peak_w": { + "name": "Peak demand current month" + }, + "state_of_charge_pct": { + "name": "State of charge" }, "total_energy_export_kwh": { "name": "Energy export" @@ -93,23 +124,20 @@ "total_energy_export_tariff_kwh": { "name": "Energy export tariff {tariff}" }, - "active_power_phase_w": { - "name": "Power phase {phase}" + "total_energy_import_kwh": { + "name": "Energy import" }, - "active_voltage_phase_v": { - "name": "Voltage phase {phase}" + "total_energy_import_tariff_kwh": { + "name": "Energy import tariff {tariff}" }, - "active_current_phase_a": { - "name": "Current phase {phase}" + "total_liter_m3": { + "name": "Total water usage" }, - "active_apparent_power_phase_va": { - "name": "Apparent power phase {phase}" + "unique_meter_id": { + "name": "Smart meter identifier" }, - "active_reactive_power_phase_var": { - "name": "Reactive power phase {phase}" - }, - "active_power_factor_phase": { - "name": "Power factor phase {phase}" + "uptime": { + "name": "Uptime" }, "voltage_sag_phase_count": { "name": "Voltage sags detected phase {phase}" @@ -117,50 +145,22 @@ "voltage_swell_phase_count": { "name": "Voltage swells detected phase {phase}" }, - "any_power_fail_count": { - "name": "Power failures detected" + "wifi_rssi": { + "name": "Wi-Fi RSSI" }, - "long_power_fail_count": { - "name": "Long power failures detected" + "wifi_ssid": { + "name": "Wi-Fi SSID" }, - "active_power_average_w": { - "name": "Average demand" - }, - "monthly_power_peak_w": { - "name": "Peak demand current month" - }, - "active_liter_lpm": { - "name": "Water usage" - }, - "total_liter_m3": { - "name": "Total water usage" - }, - "cycles": { - "name": "Battery cycles" - }, - "state_of_charge_pct": { - "name": "State of charge" - }, - "uptime": { - "name": "Uptime" + "wifi_strength": { + "name": "Wi-Fi strength" } }, "switch": { - "switch_lock": { - "name": "Switch lock" - }, "cloud_connection": { "name": "Cloud connection" - } - }, - "select": { - "battery_group_mode": { - "name": "Battery group mode", - "state": { - "zero": "Zero mode", - "to_full": "Manual charge mode", - "standby": "Standby" - } + }, + "switch_lock": { + "name": "Switch lock" } } }, @@ -177,22 +177,22 @@ }, "issues": { "migrate_to_v2_api": { - "title": "Update the authentication method for {title}", "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::homewizard::issues::migrate_to_v2_api::title%]", - "description": "Your {title} now supports a more secure and feature-rich communication method. To take advantage of this, you need to reconfigure the integration.\n\nSelect **Submit** to start the reconfiguration." - }, - "authorize": { - "title": "[%key:component::homewizard::config::step::authorize::title%]", - "description": "[%key:component::homewizard::config::step::authorize::description%]" - } - }, "error": { "authorization_failed": "[%key:component::homewizard::config::error::authorization_failed%]" + }, + "step": { + "authorize": { + "description": "[%key:component::homewizard::config::step::authorize::description%]", + "title": "[%key:component::homewizard::config::step::authorize::title%]" + }, + "confirm": { + "description": "Your {title} now supports a more secure and feature-rich communication method. To take advantage of this, you need to reconfigure the integration.\n\nSelect **Submit** to start the reconfiguration.", + "title": "[%key:component::homewizard::issues::migrate_to_v2_api::title%]" + } } - } + }, + "title": "Update the authentication method for {title}" } } } diff --git a/homeassistant/components/homeworks/strings.json b/homeassistant/components/homeworks/strings.json index 3ec4945957b..73a11631643 100644 --- a/homeassistant/components/homeworks/strings.json +++ b/homeassistant/components/homeworks/strings.json @@ -13,24 +13,24 @@ "unknown_error": "[%key:common::config_flow::error::unknown%]" }, "step": { - "import_finish": { - "description": "The existing YAML configuration has successfully been imported.\n\nYou can now remove the `homeworks` configuration from your configuration.yaml file." - }, "import_controller_name": { - "description": "Lutron Homeworks is no longer configured through configuration.yaml.\n\nPlease fill in the form to import the existing configuration to the UI.", "data": { "name": "[%key:component::homeworks::config::step::user::data::name%]" }, "data_description": { "name": "[%key:component::homeworks::config::step::user::data_description::name%]" - } + }, + "description": "Lutron Homeworks is no longer configured through configuration.yaml.\n\nPlease fill in the form to import the existing configuration to the UI." + }, + "import_finish": { + "description": "The existing YAML configuration has successfully been imported.\n\nYou can now remove the `homeworks` configuration from your configuration.yaml file." }, "reconfigure": { "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%]", - "password": "[%key:common::config_flow::data::password%]" + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "password": "Optional password, leave blank if your system does not need credentials or only needs a single credential", @@ -42,9 +42,9 @@ "data": { "host": "[%key:common::config_flow::data::host%]", "name": "Controller name", + "password": "[%key:common::config_flow::data::password%]", "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "name": "A unique name identifying the Lutron Homeworks controller", @@ -67,34 +67,24 @@ "invalid_addr": "Invalid address" }, "step": { - "init": { - "menu_options": { - "add_keypad": "Add keypad", - "add_light": "Add light", - "remove_keypad": "Remove keypad", - "remove_light": "Remove light", - "select_edit_keypad": "Configure keypad", - "select_edit_light": "Configure light" - } - }, "add_button": { "data": { + "led": "LED", "name": "[%key:common::config_flow::data::name%]", "number": "Number", - "led": "LED", "release_delay": "Release delay" }, "data_description": { - "number": "Button number in the range 1 to 24", "led": "Enable if the button has a scene select indicator", + "number": "Button number in the range 1 to 24", "release_delay": "Time between press and release, set to 0 to only press" }, "title": "[%key:component::homeworks::options::step::init::menu_options::add_keypad%]" }, "add_keypad": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "addr": "Address" + "addr": "Address", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "addr": "Keypad address, must be formatted as `[##:##:##:##]`" @@ -103,8 +93,8 @@ }, "add_light": { "data": { - "name": "[%key:common::config_flow::data::name%]", "addr": "[%key:component::homeworks::options::step::add_keypad::data::addr%]", + "name": "[%key:common::config_flow::data::name%]", "rate": "Fade rate" }, "data_description": { @@ -141,6 +131,16 @@ "description": "Select a light to configure", "title": "[%key:component::homeworks::options::step::init::menu_options::select_edit_light%]" }, + "init": { + "menu_options": { + "add_keypad": "Add keypad", + "add_light": "Add light", + "remove_keypad": "Remove keypad", + "remove_light": "Remove light", + "select_edit_keypad": "Configure keypad", + "select_edit_light": "Configure light" + } + }, "remove_button": { "description": "Select buttons to remove", "title": "[%key:component::homeworks::options::step::edit_keypad::menu_options::remove_button%]" @@ -166,18 +166,18 @@ }, "services": { "send_command": { - "name": "Send command", "description": "Sends a custom command to a controller", "fields": { "command": { - "name": "Command", - "description": "The command to send to the controller. This can either be a single command or a list of commands." + "description": "The command to send to the controller. This can either be a single command or a list of commands.", + "name": "Command" }, "controller_id": { - "name": "Controller ID", - "description": "The controller to which to send the command." + "description": "The controller to which to send the command.", + "name": "Controller ID" } - } + }, + "name": "Send command" } } } diff --git a/homeassistant/components/honeywell/strings.json b/homeassistant/components/honeywell/strings.json index d19e33d709e..2c8e4397b8d 100644 --- a/homeassistant/components/honeywell/strings.json +++ b/homeassistant/components/honeywell/strings.json @@ -1,61 +1,37 @@ { "config": { - "step": { - "user": { - "description": "Please enter the credentials used to log in to mytotalconnectcomfort.com.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Honeywell integration needs to re-authenticate your account", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "options": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { - "init": { - "description": "Additional Honeywell config options. Temperatures are set in Fahrenheit.", + "reauth_confirm": { "data": { - "away_cool_temperature": "Away cool temperature", - "away_heat_temperature": "Away heat temperature" - } + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The Honeywell integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter the credentials used to log in to mytotalconnectcomfort.com." } } }, "entity": { - "sensor": { - "outdoor_temperature": { - "name": "Outdoor temperature" - }, - "outdoor_humidity": { - "name": "Outdoor humidity" - } - }, - "switch": { - "emergency_heat": { - "name": "Emergency heat" - } - }, "climate": { "honeywell": { "state_attributes": { "preset_mode": { "state": { - "hold": "Hold", "away": "[%key:common::state::not_home%]", + "hold": "Hold", "none": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::none%]" } } @@ -63,32 +39,33 @@ } }, "humidifier": { - "humidifier": { - "name": "[%key:component::humidifier::title%]" - }, "dehumidifier": { "name": "[%key:component::humidifier::entity_component::dehumidifier::name%]" + }, + "humidifier": { + "name": "[%key:component::humidifier::title%]" + } + }, + "sensor": { + "outdoor_humidity": { + "name": "Outdoor humidity" + }, + "outdoor_temperature": { + "name": "Outdoor temperature" + } + }, + "switch": { + "emergency_heat": { + "name": "Emergency heat" } } }, "exceptions": { - "temp_failed": { - "message": "Honeywell set temperature failed" - }, - "sys_mode_failed": { - "message": "Honeywell could not set system mode" - }, - "fan_mode_failed": { - "message": "Honeywell could not set fan mode" - }, "away_mode_failed": { "message": "Honeywell set away mode failed" }, - "temp_failed_value": { - "message": "Honeywell set temperature failed: invalid temperature {temperature}" - }, - "temp_failed_range": { - "message": "Honeywell set temperature failed: temperature out of range. Mode: {mode}, Heat temperature: {heat}, Cool temperature: {cool}" + "fan_mode_failed": { + "message": "Honeywell could not set fan mode" }, "set_hold_failed": { "message": "Honeywell could not set permanent hold" @@ -104,6 +81,29 @@ }, "switch_failed_on": { "message": "Honeywell could not set system mode to emergency heat mode." + }, + "sys_mode_failed": { + "message": "Honeywell could not set system mode" + }, + "temp_failed": { + "message": "Honeywell set temperature failed" + }, + "temp_failed_range": { + "message": "Honeywell set temperature failed: temperature out of range. Mode: {mode}, Heat temperature: {heat}, Cool temperature: {cool}" + }, + "temp_failed_value": { + "message": "Honeywell set temperature failed: invalid temperature {temperature}" + } + }, + "options": { + "step": { + "init": { + "data": { + "away_cool_temperature": "Away cool temperature", + "away_heat_temperature": "Away heat temperature" + }, + "description": "Additional Honeywell config options. Temperatures are set in Fahrenheit." + } } } } diff --git a/homeassistant/components/html5/strings.json b/homeassistant/components/html5/strings.json index ee844f320bc..283f9277eea 100644 --- a/homeassistant/components/html5/strings.json +++ b/homeassistant/components/html5/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "invalid_config": "Invalid configuration" + }, + "error": { + "invalid_prv_key": "Invalid private key", + "unknown": "Unknown error" + }, "step": { "user": { "data": { @@ -11,35 +18,28 @@ "vapid_prv_key": "If not specified, one will be automatically generated." } } - }, - "error": { - "unknown": "Unknown error", - "invalid_prv_key": "Invalid private key" - }, - "abort": { - "invalid_config": "Invalid configuration" } }, "issues": { "deprecated_yaml_import_issue": { - "title": "HTML5 YAML configuration import failed", - "description": "Configuring HTML5 push notification using YAML has been deprecated. An automatic import of your existing configuration was attempted, but it failed.\n\nPlease remove the HTML5 push notification YAML configuration from your configuration.yaml file and reconfigure HTML5 push notification again manually." + "description": "Configuring HTML5 push notification using YAML has been deprecated. An automatic import of your existing configuration was attempted, but it failed.\n\nPlease remove the HTML5 push notification YAML configuration from your configuration.yaml file and reconfigure HTML5 push notification again manually.", + "title": "HTML5 YAML configuration import failed" } }, "services": { "dismiss": { - "name": "Dismiss", "description": "Dismisses an HTML5 notification.", "fields": { - "target": { - "name": "Target", - "description": "An array of targets." - }, "data": { - "name": "Data", - "description": "Extended information of notification. Supports tag." + "description": "Extended information of notification. Supports tag.", + "name": "Data" + }, + "target": { + "description": "An array of targets.", + "name": "Target" } - } + }, + "name": "Dismiss" } } } diff --git a/homeassistant/components/http/strings.json b/homeassistant/components/http/strings.json index 5dbd8faec20..43e1c6816a1 100644 --- a/homeassistant/components/http/strings.json +++ b/homeassistant/components/http/strings.json @@ -1,8 +1,8 @@ { "issues": { "ssl_configured_without_configured_urls": { - "title": "SSL is configured without an external URL or internal URL", - "description": "Home Assistant detected that SSL has been set up on your instance, however, no custom external internet URL has been set.\n\nThis may result in unexpected behavior. Text-to-speech may fail, and integrations may not be able to connect back to your instance correctly.\n\nTo address this issue, go to Settings > System > Network; under the \"Home Assistant URL\" section, configure your new \"Internet\" and \"Local network\" addresses that match your new SSL configuration." + "description": "Home Assistant detected that SSL has been set up on your instance, however, no custom external internet URL has been set.\n\nThis may result in unexpected behavior. Text-to-speech may fail, and integrations may not be able to connect back to your instance correctly.\n\nTo address this issue, go to Settings > System > Network; under the \"Home Assistant URL\" section, configure your new \"Internet\" and \"Local network\" addresses that match your new SSL configuration.", + "title": "SSL is configured without an external URL or internal URL" } } } diff --git a/homeassistant/components/huawei_lte/icons.json b/homeassistant/components/huawei_lte/icons.json index 862daa47cde..483931ffd6b 100644 --- a/homeassistant/components/huawei_lte/icons.json +++ b/homeassistant/components/huawei_lte/icons.json @@ -1,13 +1,7 @@ { "entity": { "binary_sensor": { - "mobile_connection": { - "default": "mdi:signal-off", - "state": { - "on": "mdi:signal" - } - }, - "wifi_status": { + "5ghz_wifi_status": { "default": "mdi:wifi-off", "state": { "on": "mdi:wifi" @@ -19,10 +13,10 @@ "on": "mdi:wifi" } }, - "5ghz_wifi_status": { - "default": "mdi:wifi-off", + "mobile_connection": { + "default": "mdi:signal-off", "state": { - "on": "mdi:wifi" + "on": "mdi:signal" } }, "sms_storage_full": { @@ -30,6 +24,12 @@ "state": { "on": "mdi:email-alert" } + }, + "wifi_status": { + "default": "mdi:wifi-off", + "state": { + "on": "mdi:wifi" + } } }, "select": { @@ -38,15 +38,6 @@ } }, "sensor": { - "uptime": { - "default": "mdi:timer-outline" - }, - "wan_ip_address": { - "default": "mdi:ip" - }, - "wan_ipv6_address": { - "default": "mdi:ip" - }, "cell_id": { "default": "mdi:antenna" }, @@ -56,6 +47,30 @@ "cqi1": { "default": "mdi:speedometer" }, + "current_connection_download": { + "default": "mdi:download" + }, + "current_connection_duration": { + "default": "mdi:timer-outline" + }, + "current_connection_upload": { + "default": "mdi:upload" + }, + "current_day_transfer": { + "default": "mdi:arrow-up-down-bold" + }, + "current_download_rate": { + "default": "mdi:download" + }, + "current_month_download": { + "default": "mdi:download" + }, + "current_month_upload": { + "default": "mdi:upload" + }, + "current_upload_rate": { + "default": "mdi:upload" + }, "enodeb_id": { "default": "mdi:antenna" }, @@ -74,53 +89,62 @@ "pci": { "default": "mdi:antenna" }, - "rac": { - "default": "mdi:map-marker" - }, - "tac": { - "default": "mdi:map-marker" - }, - "sms_unread": { - "default": "mdi:email-arrow-left" - }, - "current_day_transfer": { - "default": "mdi:arrow-up-down-bold" - }, - "current_month_download": { - "default": "mdi:download" - }, - "current_month_upload": { - "default": "mdi:upload" - }, - "wifi_clients_connected": { - "default": "mdi:wifi" - }, "primary_dns_server": { "default": "mdi:ip" }, "primary_ipv6_dns_server": { "default": "mdi:ip" }, + "rac": { + "default": "mdi:map-marker" + }, "secondary_dns_server": { "default": "mdi:ip" }, "secondary_ipv6_dns_server": { "default": "mdi:ip" }, - "current_connection_duration": { - "default": "mdi:timer-outline" + "sms_capacity_device": { + "default": "mdi:email" }, - "current_connection_download": { - "default": "mdi:download" + "sms_capacity_sim": { + "default": "mdi:email" }, - "current_download_rate": { - "default": "mdi:download" + "sms_deleted_device": { + "default": "mdi:email-minus" }, - "current_connection_upload": { - "default": "mdi:upload" + "sms_drafts_device": { + "default": "mdi:email-arrow-right-outline" }, - "current_upload_rate": { - "default": "mdi:upload" + "sms_drafts_sim": { + "default": "mdi:email-arrow-right-outline" + }, + "sms_inbox_device": { + "default": "mdi:email" + }, + "sms_inbox_sim": { + "default": "mdi:email" + }, + "sms_messages_sim": { + "default": "mdi:email-arrow-left" + }, + "sms_outbox_device": { + "default": "mdi:email-arrow-right" + }, + "sms_outbox_sim": { + "default": "mdi:email-arrow-right" + }, + "sms_unread": { + "default": "mdi:email-arrow-left" + }, + "sms_unread_device": { + "default": "mdi:email-arrow-left" + }, + "sms_unread_sim": { + "default": "mdi:email-arrow-left" + }, + "tac": { + "default": "mdi:map-marker" }, "total_connected_duration": { "default": "mdi:timer-outline" @@ -131,41 +155,17 @@ "total_upload": { "default": "mdi:upload" }, - "sms_deleted_device": { - "default": "mdi:email-minus" + "uptime": { + "default": "mdi:timer-outline" }, - "sms_drafts_device": { - "default": "mdi:email-arrow-right-outline" + "wan_ip_address": { + "default": "mdi:ip" }, - "sms_inbox_device": { - "default": "mdi:email" + "wan_ipv6_address": { + "default": "mdi:ip" }, - "sms_capacity_device": { - "default": "mdi:email" - }, - "sms_outbox_device": { - "default": "mdi:email-arrow-right" - }, - "sms_unread_device": { - "default": "mdi:email-arrow-left" - }, - "sms_drafts_sim": { - "default": "mdi:email-arrow-right-outline" - }, - "sms_inbox_sim": { - "default": "mdi:email" - }, - "sms_capacity_sim": { - "default": "mdi:email" - }, - "sms_outbox_sim": { - "default": "mdi:email-arrow-right" - }, - "sms_unread_sim": { - "default": "mdi:email-arrow-left" - }, - "sms_messages_sim": { - "default": "mdi:email-arrow-left" + "wifi_clients_connected": { + "default": "mdi:wifi" } }, "switch": { diff --git a/homeassistant/components/huawei_lte/strings.json b/homeassistant/components/huawei_lte/strings.json index f9b968ed701..9aeac54e064 100644 --- a/homeassistant/components/huawei_lte/strings.json +++ b/homeassistant/components/huawei_lte/strings.json @@ -21,8 +21,6 @@ "flow_title": "{name}", "step": { "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Enter device access credentials.", "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" @@ -30,7 +28,9 @@ "data_description": { "password": "[%key:component::huawei_lte::config::step::user::data_description::password%]", "username": "[%key:component::huawei_lte::config::step::user::data_description::username%]" - } + }, + "description": "Enter device access credentials.", + "title": "[%key:common::config_flow::title::reauth%]" }, "user": { "data": { @@ -50,52 +50,39 @@ } } }, - "options": { - "step": { - "init": { - "data": { - "name": "Notification service name (change requires restart)", - "recipient": "SMS notification recipients", - "track_wired_clients": "Track wired network clients", - "unauthenticated_mode": "Unauthenticated mode (change requires reload)" - }, - "data_description": { - "name": "Used to distinguish between notification services in case there are multiple Huawei LTE devices configured. Changes to this option value take effect after Home Assistant restart.", - "recipient": "Comma-separated list of default recipient SMS phone numbers for the notification service, used in case the notification sender does not specify any.", - "track_wired_clients": "Whether the device tracker entities track also clients attached to the router's wired Ethernet network, in addition to wireless clients.", - "unauthenticated_mode": "Whether to run in unauthenticated mode. Unauthenticated mode provides a limited set of features, but may help in case there are problems accessing the router's web interface from a browser while the integration is active. Changes to this option value take effect after integration reload." - } - } - } - }, "entity": { "binary_sensor": { - "mobile_connection": { - "name": "Mobile connection" - }, - "wifi_status": { - "name": "Wi-Fi status" + "5ghz_wifi_status": { + "name": "5GHz Wi-Fi status" }, "24ghz_wifi_status": { "name": "2.4GHz Wi-Fi status" }, - "5ghz_wifi_status": { - "name": "5GHz Wi-Fi status" + "mobile_connection": { + "name": "Mobile connection" }, "sms_storage_full": { "name": "SMS storage full" + }, + "wifi_status": { + "name": "Wi-Fi status" + } + }, + "select": { + "preferred_network_mode": { + "name": "Preferred network mode", + "state": { + "00": "4G/3G/2G auto", + "01": "2G only", + "02": "3G only", + "03": "4G only", + "0201": "3G/2G auto", + "0301": "4G/2G auto", + "0302": "4G/3G auto" + } } }, "sensor": { - "uptime": { - "name": "Uptime" - }, - "wan_ip_address": { - "name": "WAN IP address" - }, - "wan_ipv6_address": { - "name": "WAN IPv6 address" - }, "arfcn": { "name": "ARFCN" }, @@ -105,6 +92,9 @@ "base_station_identity_code": { "name": "Base station identity code" }, + "battery": { + "name": "Battery" + }, "cell_id": { "name": "Cell ID" }, @@ -114,8 +104,29 @@ "cqi1": { "name": "CQI 1" }, - "downlink_mcs": { - "name": "Downlink MCS" + "current_connection_download": { + "name": "Current connection download" + }, + "current_connection_duration": { + "name": "Current connection duration" + }, + "current_connection_upload": { + "name": "Current connection upload" + }, + "current_day_transfer": { + "name": "Current day transfer" + }, + "current_download_rate": { + "name": "Current download rate" + }, + "current_month_download": { + "name": "Current month download" + }, + "current_month_upload": { + "name": "Current month upload" + }, + "current_upload_rate": { + "name": "Current upload rate" }, "downlink_bandwidth": { "name": "Downlink bandwidth" @@ -123,6 +134,9 @@ "downlink_frequency": { "name": "Downlink frequency" }, + "downlink_mcs": { + "name": "Downlink MCS" + }, "earfcn": { "name": "EARFCN" }, @@ -189,12 +203,43 @@ "nrulmcs": { "name": "5G uplink MCS" }, + "operator_code": { + "name": "Operator code" + }, + "operator_name": { + "name": "Operator name" + }, + "operator_search_mode": { + "name": "Operator search mode", + "state": { + "0": "[%key:common::state::auto%]", + "1": "[%key:common::state::manual%]" + } + }, "pci": { "name": "PCI" }, "plmn": { "name": "PLMN" }, + "preferred_network_mode": { + "name": "Preferred network mode", + "state": { + "00": "4G/3G/2G auto", + "01": "2G only", + "02": "3G only", + "03": "4G only", + "0201": "3G/2G auto", + "0301": "4G/2G auto", + "0302": "4G/3G auto" + } + }, + "primary_dns_server": { + "name": "Primary DNS server" + }, + "primary_ipv6_dns_server": { + "name": "Primary IPv6 DNS server" + }, "rac": { "name": "RAC" }, @@ -219,77 +264,59 @@ "sc": { "name": "Scrambling code" }, - "sinr": { - "name": "SINR" - }, - "tac": { - "name": "TAC" - }, - "tdd": { - "name": "TDD" - }, - "transmission_mode": { - "name": "Transmission mode" - }, - "transmit_power": { - "name": "Transmit power" - }, - "uplink_mcs": { - "name": "Uplink MCS" - }, - "uplink_bandwidth": { - "name": "Uplink bandwidth" - }, - "uplink_frequency": { - "name": "Uplink frequency" - }, - "wdlfreq": { - "name": "WCDMA downlink frequency" - }, - "sms_unread": { - "name": "SMS unread" - }, - "current_day_transfer": { - "name": "Current day transfer" - }, - "current_month_download": { - "name": "Current month download" - }, - "current_month_upload": { - "name": "Current month upload" - }, - "battery": { - "name": "Battery" - }, - "wifi_clients_connected": { - "name": "Wi-Fi clients connected" - }, - "primary_dns_server": { - "name": "Primary DNS server" - }, - "primary_ipv6_dns_server": { - "name": "Primary IPv6 DNS server" - }, "secondary_dns_server": { "name": "Secondary DNS server" }, "secondary_ipv6_dns_server": { "name": "Secondary IPv6 DNS server" }, - "current_connection_duration": { - "name": "Current connection duration" + "sinr": { + "name": "SINR" }, - "current_connection_download": { - "name": "Current connection download" + "sms_capacity_device": { + "name": "SMS capacity (device)" }, - "current_download_rate": { - "name": "Current download rate" + "sms_capacity_sim": { + "name": "SMS capacity (SIM)" }, - "current_connection_upload": { - "name": "Current connection upload" + "sms_deleted_device": { + "name": "SMS deleted (device)" }, - "current_upload_rate": { - "name": "Current upload rate" + "sms_drafts_device": { + "name": "SMS drafts (device)" + }, + "sms_drafts_sim": { + "name": "SMS drafts (SIM)" + }, + "sms_inbox_device": { + "name": "SMS inbox (device)" + }, + "sms_inbox_sim": { + "name": "SMS inbox (SIM)" + }, + "sms_messages_sim": { + "name": "SMS messages (SIM)" + }, + "sms_outbox_device": { + "name": "SMS outbox (device)" + }, + "sms_outbox_sim": { + "name": "SMS outbox (SIM)" + }, + "sms_unread": { + "name": "SMS unread" + }, + "sms_unread_device": { + "name": "SMS unread (device)" + }, + "sms_unread_sim": { + "name": "SMS unread (SIM)" + }, + "tac": { + "name": "TAC" + }, + "tdd": { + "name": "TDD" }, "total_connected_duration": { "name": "Total connected duration" @@ -300,80 +327,35 @@ "total_upload": { "name": "Total upload" }, - "operator_name": { - "name": "Operator name" + "transmission_mode": { + "name": "Transmission mode" }, - "operator_code": { - "name": "Operator code" + "transmit_power": { + "name": "Transmit power" }, - "operator_search_mode": { - "name": "Operator search mode", - "state": { - "0": "[%key:common::state::auto%]", - "1": "[%key:common::state::manual%]" - } + "uplink_bandwidth": { + "name": "Uplink bandwidth" }, - "preferred_network_mode": { - "name": "Preferred network mode", - "state": { - "00": "4G/3G/2G auto", - "0302": "4G/3G auto", - "0301": "4G/2G auto", - "03": "4G only", - "0201": "3G/2G auto", - "02": "3G only", - "01": "2G only" - } + "uplink_frequency": { + "name": "Uplink frequency" }, - "sms_deleted_device": { - "name": "SMS deleted (device)" + "uplink_mcs": { + "name": "Uplink MCS" }, - "sms_drafts_device": { - "name": "SMS drafts (device)" + "uptime": { + "name": "Uptime" }, - "sms_inbox_device": { - "name": "SMS inbox (device)" + "wan_ip_address": { + "name": "WAN IP address" }, - "sms_capacity_device": { - "name": "SMS capacity (device)" + "wan_ipv6_address": { + "name": "WAN IPv6 address" }, - "sms_outbox_device": { - "name": "SMS outbox (device)" + "wdlfreq": { + "name": "WCDMA downlink frequency" }, - "sms_unread_device": { - "name": "SMS unread (device)" - }, - "sms_drafts_sim": { - "name": "SMS drafts (SIM)" - }, - "sms_inbox_sim": { - "name": "SMS inbox (SIM)" - }, - "sms_capacity_sim": { - "name": "SMS capacity (SIM)" - }, - "sms_outbox_sim": { - "name": "SMS outbox (SIM)" - }, - "sms_unread_sim": { - "name": "SMS unread (SIM)" - }, - "sms_messages_sim": { - "name": "SMS messages (SIM)" - } - }, - "select": { - "preferred_network_mode": { - "name": "Preferred network mode", - "state": { - "00": "4G/3G/2G auto", - "0302": "4G/3G auto", - "0301": "4G/2G auto", - "03": "4G only", - "0201": "3G/2G auto", - "02": "3G only", - "01": "2G only" - } + "wifi_clients_connected": { + "name": "Wi-Fi clients connected" } }, "switch": { @@ -385,26 +367,44 @@ } } }, - "services": { - "resume_integration": { - "name": "Resume integration", - "description": "Resumes suspended integration.", - "fields": { - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "URL of router to resume integration for; optional when only one is configured." - } - } - }, - "suspend_integration": { - "name": "Suspend integration", - "description": "Suspends integration. Suspending logs the integration out from the router, and stops accessing it. Useful e.g. if accessing the router web interface from another source such as a web browser is temporarily required. Invoke the 'Resume integration' action to resume.", - "fields": { - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "URL of router to suspend integration for; optional when only one is configured." + "options": { + "step": { + "init": { + "data": { + "name": "Notification service name (change requires restart)", + "recipient": "SMS notification recipients", + "track_wired_clients": "Track wired network clients", + "unauthenticated_mode": "Unauthenticated mode (change requires reload)" + }, + "data_description": { + "name": "Used to distinguish between notification services in case there are multiple Huawei LTE devices configured. Changes to this option value take effect after Home Assistant restart.", + "recipient": "Comma-separated list of default recipient SMS phone numbers for the notification service, used in case the notification sender does not specify any.", + "track_wired_clients": "Whether the device tracker entities track also clients attached to the router's wired Ethernet network, in addition to wireless clients.", + "unauthenticated_mode": "Whether to run in unauthenticated mode. Unauthenticated mode provides a limited set of features, but may help in case there are problems accessing the router's web interface from a browser while the integration is active. Changes to this option value take effect after integration reload." } } } + }, + "services": { + "resume_integration": { + "description": "Resumes suspended integration.", + "fields": { + "url": { + "description": "URL of router to resume integration for; optional when only one is configured.", + "name": "[%key:common::config_flow::data::url%]" + } + }, + "name": "Resume integration" + }, + "suspend_integration": { + "description": "Suspends integration. Suspending logs the integration out from the router, and stops accessing it. Useful e.g. if accessing the router web interface from another source such as a web browser is temporarily required. Invoke the 'Resume integration' action to resume.", + "fields": { + "url": { + "description": "URL of router to suspend integration for; optional when only one is configured.", + "name": "[%key:common::config_flow::data::url%]" + } + }, + "name": "Suspend integration" + } } } diff --git a/homeassistant/components/hue/icons.json b/homeassistant/components/hue/icons.json index 646c420f1fe..33a129a1aa4 100644 --- a/homeassistant/components/hue/icons.json +++ b/homeassistant/components/hue/icons.json @@ -6,17 +6,17 @@ "effect": { "state": { "candle": "mdi:candle", - "sparkle": "mdi:shimmer", + "cosmos": "mdi:star-shooting", + "enchant": "mdi:magic-staff", + "fire": "mdi:fire", "glisten": "mdi:creation", + "opal": "mdi:diamond-stone", + "prism": "mdi:triangle-outline", + "sparkle": "mdi:shimmer", + "sunbeam": "mdi:spotlight-beam", "sunrise": "mdi:weather-sunset-up", "sunset": "mdi:weather-sunset", - "fire": "mdi:fire", - "prism": "mdi:triangle-outline", - "opal": "mdi:diamond-stone", - "underwater": "mdi:waves", - "cosmos": "mdi:star-shooting", - "sunbeam": "mdi:spotlight-beam", - "enchant": "mdi:magic-staff" + "underwater": "mdi:waves" } } } @@ -24,10 +24,10 @@ } }, "services": { - "hue_activate_scene": { + "activate_scene": { "service": "mdi:palette" }, - "activate_scene": { + "hue_activate_scene": { "service": "mdi:palette" } } diff --git a/homeassistant/components/hue/strings.json b/homeassistant/components/hue/strings.json index 80817583ad6..cd6bcbe60e9 100644 --- a/homeassistant/components/hue/strings.json +++ b/homeassistant/components/hue/strings.json @@ -1,76 +1,76 @@ { "config": { + "abort": { + "all_configured": "All Philips Hue bridges are already configured", + "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%]", + "discover_timeout": "Unable to discover Hue bridges", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "no_bridges": "No Philips Hue bridges discovered", + "not_hue_bridge": "Not a Hue bridge", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "linking": "[%key:common::config_flow::error::unknown%]", + "register_failed": "Failed to register, please try again" + }, "step": { "init": { - "title": "Pick Hue bridge", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your Hue bridge." - } + }, + "title": "Pick Hue bridge" + }, + "link": { + "description": "Press the button on the bridge to register Philips Hue with Home Assistant.", + "title": "Link Hub" }, "manual": { - "title": "Manually configure a Hue bridge", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "[%key:component::hue::config::step::init::data_description::host%]" - } - }, - "link": { - "title": "Link Hub", - "description": "Press the button on the bridge to register Philips Hue with Home Assistant." + }, + "title": "Manually configure a Hue bridge" } - }, - "error": { - "register_failed": "Failed to register, please try again", - "linking": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "discover_timeout": "Unable to discover Hue bridges", - "no_bridges": "No Philips Hue bridges discovered", - "all_configured": "All Philips Hue bridges are already configured", - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "not_hue_bridge": "Not a Hue bridge", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]" } }, "device_automation": { "trigger_subtype": { - "button_1": "First button", - "button_2": "Second button", - "button_3": "Third button", - "button_4": "Fourth button", - "double_buttons_1_3": "First and third button", - "double_buttons_2_4": "Second and fourth button", - "dim_down": "Dim down", - "dim_up": "Dim up", - "turn_off": "[%key:common::action::turn_off%]", - "turn_on": "[%key:common::action::turn_on%]", "1": "[%key:component::hue::device_automation::trigger_subtype::button_1%]", "2": "[%key:component::hue::device_automation::trigger_subtype::button_2%]", "3": "[%key:component::hue::device_automation::trigger_subtype::button_3%]", "4": "[%key:component::hue::device_automation::trigger_subtype::button_4%]", + "button_1": "First button", + "button_2": "Second button", + "button_3": "Third button", + "button_4": "Fourth button", "clock_wise": "Rotation clockwise", - "counter_clock_wise": "Rotation counterclockwise" + "counter_clock_wise": "Rotation counterclockwise", + "dim_down": "Dim down", + "dim_up": "Dim up", + "double_buttons_1_3": "First and third button", + "double_buttons_2_4": "Second and fourth button", + "turn_off": "[%key:common::action::turn_off%]", + "turn_on": "[%key:common::action::turn_on%]" }, "trigger_type": { + "double_short_release": "[%key:component::hue::device_automation::trigger_type::remote_double_button_short_press%]", + "initial_press": "\"{subtype}\" pressed initially", + "long_press": "\"{subtype}\" long pressed", + "long_release": "[%key:component::hue::device_automation::trigger_type::remote_button_long_release%]", "remote_button_long_release": "\"{subtype}\" released after long press", "remote_button_short_press": "\"{subtype}\" pressed", "remote_button_short_release": "\"{subtype}\" released", "remote_double_button_long_press": "Both \"{subtype}\" released after long press", "remote_double_button_short_press": "Both \"{subtype}\" released", - "initial_press": "\"{subtype}\" pressed initially", "repeat": "\"{subtype}\" held down", "short_release": "\"{subtype}\" released after short press", - "long_press": "\"{subtype}\" long pressed", - "long_release": "[%key:component::hue::device_automation::trigger_type::remote_button_long_release%]", - "double_short_release": "[%key:component::hue::device_automation::trigger_type::remote_double_button_short_press%]", "start": "[%key:component::hue::device_automation::trigger_type::initial_press%]" } }, @@ -81,12 +81,12 @@ "state_attributes": { "event_type": { "state": { + "double_short_release": "Double press", "initial_press": "Initial press", - "repeat": "Repeat", - "short_release": "Short press", "long_press": "Long press", "long_release": "Long release", - "double_short_release": "Double press" + "repeat": "Repeat", + "short_release": "Short press" } } } @@ -109,17 +109,17 @@ "effect": { "state": { "candle": "Candle", - "sparkle": "Sparkle", + "cosmos": "Cosmos", + "enchant": "Enchant", + "fire": "Fire", "glisten": "Glisten", + "opal": "Opal", + "prism": "Prism", + "sparkle": "Sparkle", + "sunbeam": "Sunbeam", "sunrise": "Sunrise", "sunset": "Sunset", - "fire": "Fire", - "prism": "Prism", - "opal": "Opal", - "underwater": "Underwater", - "cosmos": "Cosmos", - "sunbeam": "Sunbeam", - "enchant": "Enchant" + "underwater": "Underwater" } } } @@ -130,21 +130,27 @@ "name": "Zigbee connectivity", "state": { "connected": "[%key:common::state::connected%]", - "disconnected": "[%key:common::state::disconnected%]", "connectivity_issue": "Connectivity issue", + "disconnected": "[%key:common::state::disconnected%]", "unidirectional_incoming": "Unidirectional incoming" } } }, "switch": { - "motion_sensor_enabled": { - "name": "Motion sensor enabled" - }, "light_sensor_enabled": { "name": "Light sensor enabled" + }, + "motion_sensor_enabled": { + "name": "Motion sensor enabled" } } }, + "issues": { + "deprecated_effect_none": { + "description": "A light was turned on with the deprecated effect `None`. This has been replaced with `off`. Please update any automations, scenes, or scripts that use this effect.", + "title": "Light turned on with deprecated effect" + } + }, "options": { "step": { "init": { @@ -158,51 +164,45 @@ } }, "services": { - "hue_activate_scene": { - "name": "Activate scene", - "description": "Activates a Hue scene stored in the Hue hub.", - "fields": { - "group_name": { - "name": "Group", - "description": "Name of Hue group/room from the Hue app." - }, - "scene_name": { - "name": "Scene", - "description": "Name of Hue scene from the Hue app." - }, - "dynamic": { - "name": "Dynamic", - "description": "Enable dynamic mode of the scene (V2 bridges and supported scenes only)." - } - } - }, "activate_scene": { - "name": "Activate Hue scene", "description": "Activates a Hue scene with more control over the options.", "fields": { - "transition": { - "name": "Transition", - "description": "Transition duration it takes to bring devices to the state defined in the scene." + "brightness": { + "description": "Set brightness for the scene.", + "name": "Brightness" }, "dynamic": { - "name": "[%key:component::hue::services::hue_activate_scene::fields::dynamic::name%]", - "description": "Enable dynamic mode of the scene." + "description": "Enable dynamic mode of the scene.", + "name": "[%key:component::hue::services::hue_activate_scene::fields::dynamic::name%]" }, "speed": { - "name": "Speed", - "description": "Speed of dynamic palette for this scene." + "description": "Speed of dynamic palette for this scene.", + "name": "Speed" }, - "brightness": { - "name": "Brightness", - "description": "Set brightness for the scene." + "transition": { + "description": "Transition duration it takes to bring devices to the state defined in the scene.", + "name": "Transition" } - } - } - }, - "issues": { - "deprecated_effect_none": { - "title": "Light turned on with deprecated effect", - "description": "A light was turned on with the deprecated effect `None`. This has been replaced with `off`. Please update any automations, scenes, or scripts that use this effect." + }, + "name": "Activate Hue scene" + }, + "hue_activate_scene": { + "description": "Activates a Hue scene stored in the Hue hub.", + "fields": { + "dynamic": { + "description": "Enable dynamic mode of the scene (V2 bridges and supported scenes only).", + "name": "Dynamic" + }, + "group_name": { + "description": "Name of Hue group/room from the Hue app.", + "name": "Group" + }, + "scene_name": { + "description": "Name of Hue scene from the Hue app.", + "name": "Scene" + } + }, + "name": "Activate scene" } } } diff --git a/homeassistant/components/huisbaasje/icons.json b/homeassistant/components/huisbaasje/icons.json index 403e757bf2b..b9ab62ffaca 100644 --- a/homeassistant/components/huisbaasje/icons.json +++ b/homeassistant/components/huisbaasje/icons.json @@ -4,15 +4,15 @@ "current_gas": { "default": "mdi:meter-gas" }, + "gas_month": { + "default": "mdi:meter-gas" + }, "gas_today": { "default": "mdi:meter-gas" }, "gas_week": { "default": "mdi:meter-gas" }, - "gas_month": { - "default": "mdi:meter-gas" - }, "gas_year": { "default": "mdi:meter-gas" } diff --git a/homeassistant/components/huisbaasje/strings.json b/homeassistant/components/huisbaasje/strings.json index 3958e6a8903..ab2a9063608 100644 --- a/homeassistant/components/huisbaasje/strings.json +++ b/homeassistant/components/huisbaasje/strings.json @@ -1,65 +1,68 @@ { "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": { "user": { "data": { - "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%]" } } - }, - "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%]" } }, "entity": { "sensor": { + "current_gas": { + "name": "Current gas" + }, "current_power": { "name": "Current power" }, - "current_power_peak": { - "name": "Current power in peak" - }, "current_power_off_peak": { "name": "Current power in off-peak" }, - "current_power_out_peak": { - "name": "Current power out peak" - }, "current_power_out_off_peak": { "name": "Current power out off-peak" }, - "energy_consumption_peak_today": { - "name": "Energy consumption peak today" + "current_power_out_peak": { + "name": "Current power out peak" + }, + "current_power_peak": { + "name": "Current power in peak" }, "energy_consumption_off_peak_today": { "name": "Energy consumption off-peak today" }, - "energy_production_peak_today": { - "name": "Energy production peak today" + "energy_consumption_peak_today": { + "name": "Energy consumption peak today" + }, + "energy_month": { + "name": "Energy this month" }, "energy_production_off_peak_today": { "name": "Energy production off-peak today" }, + "energy_production_peak_today": { + "name": "Energy production peak today" + }, "energy_today": { "name": "Energy today" }, "energy_week": { "name": "Energy this week" }, - "energy_month": { - "name": "Energy this month" - }, "energy_year": { "name": "Energy this year" }, - "current_gas": { - "name": "Current gas" + "gas_month": { + "name": "Gas this month" }, "gas_today": { "name": "Gas today" @@ -67,9 +70,6 @@ "gas_week": { "name": "Gas this week" }, - "gas_month": { - "name": "Gas this month" - }, "gas_year": { "name": "Gas this year" } diff --git a/homeassistant/components/humidifier/strings.json b/homeassistant/components/humidifier/strings.json index 6c0c691c705..1e986f44434 100644 --- a/homeassistant/components/humidifier/strings.json +++ b/homeassistant/components/humidifier/strings.json @@ -1,30 +1,29 @@ { - "title": "Humidifier", "device_automation": { - "trigger_type": { - "target_humidity_changed": "{entity_name} target humidity changed", - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" - }, - "condition_type": { - "is_mode": "{entity_name} is set to a specific mode", - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" - }, "action_type": { "set_humidity": "Set humidity for {entity_name}", "set_mode": "Change mode on {entity_name}", "toggle": "[%key:common::device_automation::action_type::toggle%]", - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", - "turn_off": "[%key:common::device_automation::action_type::turn_off%]" + "turn_off": "[%key:common::device_automation::action_type::turn_off%]", + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" + }, + "condition_type": { + "is_mode": "{entity_name} is set to a specific mode", + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]" }, "extra_fields": { "above": "[%key:common::device_automation::extra_fields::above%]", "below": "[%key:common::device_automation::extra_fields::below%]", "for": "[%key:common::device_automation::extra_fields::for%]", - "mode": "Mode", - "humidity": "Humidity" + "humidity": "Humidity", + "mode": "Mode" + }, + "trigger_type": { + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", + "target_humidity_changed": "{entity_name} target humidity changed", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { @@ -38,8 +37,8 @@ "action": { "name": "Action", "state": { - "humidifying": "Humidifying", "drying": "Drying", + "humidifying": "Humidifying", "idle": "[%key:common::state::idle%]", "off": "[%key:common::state::off%]" } @@ -62,14 +61,14 @@ "mode": { "name": "Mode", "state": { - "normal": "[%key:common::state::normal%]", - "home": "[%key:common::state::home%]", - "away": "[%key:common::state::not_home%]", "auto": "[%key:common::state::auto%]", + "away": "[%key:common::state::not_home%]", "baby": "Baby", "boost": "Boost", "comfort": "Comfort", "eco": "Eco", + "home": "[%key:common::state::home%]", + "normal": "[%key:common::state::normal%]", "sleep": "Sleep" } } @@ -82,43 +81,44 @@ "name": "[%key:component::humidifier::title%]" } }, - "services": { - "set_mode": { - "name": "Set mode", - "description": "Sets the humidifier operation mode.", - "fields": { - "mode": { - "name": "Mode", - "description": "Operation mode. For example, \"normal\", \"eco\", or \"away\". For a list of possible values, refer to the integration documentation." - } - } - }, - "set_humidity": { - "name": "Set humidity", - "description": "Sets the target humidity.", - "fields": { - "humidity": { - "name": "Humidity", - "description": "Target humidity." - } - } - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns the humidifier on." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns the humidifier off." - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles the humidifier on/off." - } - }, "exceptions": { "humidity_out_of_range": { "message": "Provided humidity {humidity} is not valid. Accepted range is {min_humidity} to {max_humidity}." } - } + }, + "services": { + "set_humidity": { + "description": "Sets the target humidity.", + "fields": { + "humidity": { + "description": "Target humidity.", + "name": "Humidity" + } + }, + "name": "Set humidity" + }, + "set_mode": { + "description": "Sets the humidifier operation mode.", + "fields": { + "mode": { + "description": "Operation mode. For example, \"normal\", \"eco\", or \"away\". For a list of possible values, refer to the integration documentation.", + "name": "Mode" + } + }, + "name": "Set mode" + }, + "toggle": { + "description": "Toggles the humidifier on/off.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Turns the humidifier off.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Turns the humidifier on.", + "name": "[%key:common::action::turn_on%]" + } + }, + "title": "Humidifier" } diff --git a/homeassistant/components/hunterdouglas_powerview/strings.json b/homeassistant/components/hunterdouglas_powerview/strings.json index 231270d6eef..a56b179cdcf 100644 --- a/homeassistant/components/hunterdouglas_powerview/strings.json +++ b/homeassistant/components/hunterdouglas_powerview/strings.json @@ -1,29 +1,29 @@ { "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%]", + "unsupported_device": "Only the primary PowerView Hub can be added" + }, + "flow_title": "{name} ({host})", "step": { + "link": { + "description": "Do you want to set up {name} ({host})?", + "title": "[%key:component::hunterdouglas_powerview::config::step::user::title%]" + }, "user": { - "title": "Connect to the PowerView Hub", "data": { - "host": "[%key:common::config_flow::data::ip%]", - "api_version": "Hub generation" + "api_version": "Hub generation", + "host": "[%key:common::config_flow::data::ip%]" }, "data_description": { "api_version": "API version is detectable, but you can override and force a specific version" - } - }, - "link": { - "title": "[%key:component::hunterdouglas_powerview::config::step::user::title%]", - "description": "Do you want to set up {name} ({host})?" + }, + "title": "Connect to the PowerView Hub" } - }, - "flow_title": "{name} ({host})", - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unsupported_device": "Only the primary PowerView Hub can be added", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -39,9 +39,6 @@ "bottom": { "name": "Bottom" }, - "top": { - "name": "Top" - }, "combined": { "name": "Combined" }, @@ -50,6 +47,9 @@ }, "rear": { "name": "Rear" + }, + "top": { + "name": "Top" } }, "select": { diff --git a/homeassistant/components/husqvarna_automower_ble/manifest.json b/homeassistant/components/husqvarna_automower_ble/manifest.json index 75d53ab1d8a..ce89717cd0c 100644 --- a/homeassistant/components/husqvarna_automower_ble/manifest.json +++ b/homeassistant/components/husqvarna_automower_ble/manifest.json @@ -3,8 +3,8 @@ "name": "Husqvarna Automower BLE", "bluetooth": [ { - "service_uuid": "98bd0001-0b0e-421a-84e5-ddbf75dc6de4", - "connectable": true + "connectable": true, + "service_uuid": "98bd0001-0b0e-421a-84e5-ddbf75dc6de4" } ], "codeowners": ["@alistair23"], diff --git a/homeassistant/components/husqvarna_automower_ble/strings.json b/homeassistant/components/husqvarna_automower_ble/strings.json index 64ae632330c..ef366540db9 100644 --- a/homeassistant/components/husqvarna_automower_ble/strings.json +++ b/homeassistant/components/husqvarna_automower_ble/strings.json @@ -1,7 +1,38 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "Ensure the mower is in pairing mode and try again. It can take a few attempts.", + "not_allowed": "Unable to read data from the mower, this usually means it is not paired", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "Unable to pair with device, ensure the PIN is correct and the mower is in pairing mode", + "invalid_pin": "The PIN must be a number" + }, "flow_title": "{name} ({address})", "step": { + "bluetooth_confirm": { + "data": { + "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data::pin%]" + }, + "data_description": { + "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data_description::pin%]" + }, + "description": "Do you want to set up {name}?\nMake sure the mower is in pairing mode." + }, + "reauth_confirm": { + "data": { + "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data::pin%]" + }, + "data_description": { + "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data_description::pin%]" + }, + "description": "Please confirm the PIN for {name}." + }, "user": { "data": { "address": "Device BLE address", @@ -10,38 +41,7 @@ "data_description": { "pin": "The PIN used to secure the mower" } - }, - "bluetooth_confirm": { - "description": "Do you want to set up {name}?\nMake sure the mower is in pairing mode.", - "data": { - "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data::pin%]" - }, - "data_description": { - "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data_description::pin%]" - } - }, - "reauth_confirm": { - "description": "Please confirm the PIN for {name}.", - "data": { - "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data::pin%]" - }, - "data_description": { - "pin": "[%key:component::husqvarna_automower_ble::config::step::user::data_description::pin%]" - } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "Ensure the mower is in pairing mode and try again. It can take a few attempts.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "not_allowed": "Unable to read data from the mower, this usually means it is not paired", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "Unable to pair with device, ensure the PIN is correct and the mower is in pairing mode", - "invalid_pin": "The PIN must be a number" } }, "exceptions": { diff --git a/homeassistant/components/huum/strings.json b/homeassistant/components/huum/strings.json index 13c2e5c85f6..41e1bb019a1 100644 --- a/homeassistant/components/huum/strings.json +++ b/homeassistant/components/huum/strings.json @@ -1,22 +1,22 @@ { "config": { - "step": { - "user": { - "title": "Connect to the Huum", - "description": "Log in with the same username and password that is used in the Huum mobile app.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Log in with the same username and password that is used in the Huum mobile app.", + "title": "Connect to the Huum" + } } }, "entity": { diff --git a/homeassistant/components/hvv_departures/strings.json b/homeassistant/components/hvv_departures/strings.json index f69dcd22047..39e91146175 100644 --- a/homeassistant/components/hvv_departures/strings.json +++ b/homeassistant/components/hvv_departures/strings.json @@ -1,50 +1,33 @@ { "config": { - "step": { - "user": { - "title": "Connect to the HVV API", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "station": { - "title": "Enter Station/Address", - "data": { - "station": "Station/Address" - } - }, - "station_select": { - "title": "Select Station/Address", - "data": { - "station": "[%key:component::hvv_departures::config::step::station::data::station%]" - } - } + "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%]", "no_results": "No results. Try with a different station/address" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, "step": { - "init": { - "title": "Options", - "description": "Change options for this departure sensor", + "station": { "data": { - "filter": "Select lines", - "offset": "Offset (minutes)", - "real_time": "Use real time data" - } + "station": "Station/Address" + }, + "title": "Enter Station/Address" + }, + "station_select": { + "data": { + "station": "[%key:component::hvv_departures::config::step::station::data::station%]" + }, + "title": "Select Station/Address" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Connect to the HVV API" } } }, @@ -54,5 +37,22 @@ "name": "Departures" } } + }, + "options": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "step": { + "init": { + "data": { + "filter": "Select lines", + "offset": "Offset (minutes)", + "real_time": "Use real time data" + }, + "description": "Change options for this departure sensor", + "title": "Options" + } + } } } diff --git a/homeassistant/components/hydrawise/icons.json b/homeassistant/components/hydrawise/icons.json index 5baf76454b7..ac1c4114924 100644 --- a/homeassistant/components/hydrawise/icons.json +++ b/homeassistant/components/hydrawise/icons.json @@ -1,12 +1,21 @@ { "entity": { + "binary_sensor": { + "rain_sensor": { + "default": "mdi:weather-sunny", + "state": { + "off": "mdi:weather-sunny", + "on": "mdi:weather-pouring" + } + } + }, "sensor": { - "daily_active_water_use": { - "default": "mdi:water" - }, "daily_active_water_time": { "default": "mdi:timelapse" }, + "daily_active_water_use": { + "default": "mdi:water" + }, "daily_inactive_water_use": { "default": "mdi:water" }, @@ -19,26 +28,17 @@ "watering_time": { "default": "mdi:timer-outline" } - }, - "binary_sensor": { - "rain_sensor": { - "default": "mdi:weather-sunny", - "state": { - "off": "mdi:weather-sunny", - "on": "mdi:weather-pouring" - } - } } }, "services": { + "resume": { + "service": "mdi:play" + }, "start_watering": { "service": "mdi:sprinkler-variant" }, "suspend": { "service": "mdi:pause-circle-outline" - }, - "resume": { - "service": "mdi:play" } } } diff --git a/homeassistant/components/hydrawise/strings.json b/homeassistant/components/hydrawise/strings.json index 29b6d741a5e..c5226551bfd 100644 --- a/homeassistant/components/hydrawise/strings.json +++ b/homeassistant/components/hydrawise/strings.json @@ -1,54 +1,51 @@ { "config": { - "step": { - "user": { - "title": "Hydrawise login", - "description": "Please provide the username and password for your Hydrawise cloud account:", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "You can generate an API key in the 'Account Details' section of the Hydrawise app" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Hydrawise integration needs to re-authenticate your account", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::hydrawise::config::step::user::data_description::api_key%]" - } - } - }, - "error": { - "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%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "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%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "api_key": "[%key:component::hydrawise::config::step::user::data_description::api_key%]" + }, + "description": "The Hydrawise integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "api_key": "You can generate an API key in the 'Account Details' section of the Hydrawise app" + }, + "description": "Please provide the username and password for your Hydrawise cloud account:", + "title": "Hydrawise login" + } } }, "entity": { "binary_sensor": { - "watering": { - "name": "Watering" - }, "rain_sensor": { "name": "Rain sensor" + }, + "watering": { + "name": "Watering" } }, "sensor": { - "daily_total_water_use": { - "name": "Daily total water use" - }, "daily_active_water_time": { "name": "Daily active watering time" }, @@ -58,6 +55,9 @@ "daily_inactive_water_use": { "name": "Daily inactive water use" }, + "daily_total_water_use": { + "name": "Daily total water use" + }, "next_cycle": { "name": "Next cycle" }, @@ -75,29 +75,29 @@ } }, "services": { + "resume": { + "description": "Resumes an irrigation zone's automatic watering schedule.", + "name": "Resume automatic watering" + }, "start_watering": { - "name": "Start watering", "description": "Starts a watering cycle in the selected irrigation zone.", "fields": { "duration": { - "name": "Duration", - "description": "Length of time to run the watering cycle. If not specified (or zero), the default watering duration set in the Hydrawise mobile or web app for the irrigation zone will be used." + "description": "Length of time to run the watering cycle. If not specified (or zero), the default watering duration set in the Hydrawise mobile or web app for the irrigation zone will be used.", + "name": "Duration" } - } + }, + "name": "Start watering" }, "suspend": { - "name": "Suspend automatic watering", "description": "Suspends an irrigation zone's automatic watering schedule until the given date and time.", "fields": { "until": { - "name": "Until", - "description": "Date and time to resume the automated watering schedule." + "description": "Date and time to resume the automated watering schedule.", + "name": "Until" } - } - }, - "resume": { - "name": "Resume automatic watering", - "description": "Resumes an irrigation zone's automatic watering schedule." + }, + "name": "Suspend automatic watering" } } } diff --git a/homeassistant/components/hyperion/strings.json b/homeassistant/components/hyperion/strings.json index c53754c712a..c0ef2a70464 100644 --- a/homeassistant/components/hyperion/strings.json +++ b/homeassistant/components/hyperion/strings.json @@ -1,21 +1,30 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "auth_new_token_not_granted_error": "Newly created token was not approved on Hyperion UI", + "auth_new_token_not_work_error": "Failed to authenticate using newly created token", + "auth_required_error": "Failed to determine if authorization is required", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_id": "The Hyperion Ambilight instance did not report its ID", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]" + }, "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 your Hyperion server." - } - }, "auth": { - "description": "Configure authorization to your Hyperion Ambilight server", "data": { "create_token": "Automatically create new token", "token": "Or provide pre-existing token" - } + }, + "description": "Configure authorization to your Hyperion Ambilight server" + }, + "confirm": { + "description": "Do you want to add this Hyperion Ambilight to Home Assistant?\n\n**Host:** {host}\n**Port:** {port}\n**ID**: {id}", + "title": "Confirm addition of Hyperion Ambilight service" }, "create_token": { "description": "Choose **Submit** below to request a new authentication token. You will be redirected to the Hyperion UI to approve the request. Please verify the shown ID is \"{auth_id}\"", @@ -24,73 +33,64 @@ "create_token_external": { "title": "Accept new token in Hyperion UI" }, - "confirm": { - "description": "Do you want to add this Hyperion Ambilight to Home Assistant?\n\n**Host:** {host}\n**Port:** {port}\n**ID**: {id}", - "title": "Confirm addition of Hyperion Ambilight service" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]" - }, - "abort": { - "auth_required_error": "Failed to determine if authorization is required", - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "auth_new_token_not_granted_error": "Newly created token was not approved on Hyperion UI", - "auth_new_token_not_work_error": "Failed to authenticate using newly created token", - "no_id": "The Hyperion Ambilight instance did not report its ID", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { + "user": { "data": { - "priority": "Hyperion priority to use for colors and effects", - "effect_show_list": "Hyperion effects to show" + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "The hostname or IP address of your Hyperion server." } } - }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { - "switch": { - "all": { - "name": "Component all" - }, - "smoothing": { - "name": "Component smoothing" - }, - "blackbar_detection": { - "name": "Component blackbar detection" - }, - "forwarder": { - "name": "Component forwarder" - }, - "boblight_server": { - "name": "Component boblight server" - }, - "platform_capture": { - "name": "Component platform capture" - }, - "led_device": { - "name": "Component LED device" - }, - "usb_capture": { - "name": "Component USB capture" - }, - "audio_capture": { - "name": "Component Audio capture" - } - }, "sensor": { "visible_priority": { "name": "Visible priority" } + }, + "switch": { + "all": { + "name": "Component all" + }, + "audio_capture": { + "name": "Component Audio capture" + }, + "blackbar_detection": { + "name": "Component blackbar detection" + }, + "boblight_server": { + "name": "Component boblight server" + }, + "forwarder": { + "name": "Component forwarder" + }, + "led_device": { + "name": "Component LED device" + }, + "platform_capture": { + "name": "Component platform capture" + }, + "smoothing": { + "name": "Component smoothing" + }, + "usb_capture": { + "name": "Component USB capture" + } + } + }, + "options": { + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "init": { + "data": { + "effect_show_list": "Hyperion effects to show", + "priority": "Hyperion priority to use for colors and effects" + } + } } } } diff --git a/homeassistant/components/ialarm/strings.json b/homeassistant/components/ialarm/strings.json index cb2c75d74a9..42d9386e2c0 100644 --- a/homeassistant/components/ialarm/strings.json +++ b/homeassistant/components/ialarm/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -10,13 +17,6 @@ "host": "The hostname or IP address of Antifurto365 iAlarm system." } } - }, - "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%]" } } } diff --git a/homeassistant/components/iammeter/strings.json b/homeassistant/components/iammeter/strings.json index 6d0c3797dfc..c11dab75f9e 100644 --- a/homeassistant/components/iammeter/strings.json +++ b/homeassistant/components/iammeter/strings.json @@ -1,15 +1,6 @@ { "entity": { "sensor": { - "voltage_a": { - "name": "Voltage A" - }, - "voltage_b": { - "name": "Voltage B" - }, - "voltage_c": { - "name": "Voltage C" - }, "current_a": { "name": "Current A" }, @@ -19,24 +10,6 @@ "current_c": { "name": "Current C" }, - "power_a": { - "name": "Power A" - }, - "power_b": { - "name": "Power B" - }, - "power_c": { - "name": "Power C" - }, - "import_energy_a": { - "name": "ImportEnergy A" - }, - "import_energy_b": { - "name": "ImportEnergy B" - }, - "import_energy_c": { - "name": "ImportEnergy C" - }, "export_grid_a": { "name": "ExportGrid A" }, @@ -55,6 +28,15 @@ "frequency_c": { "name": "Frequency C" }, + "import_energy_a": { + "name": "ImportEnergy A" + }, + "import_energy_b": { + "name": "ImportEnergy B" + }, + "import_energy_c": { + "name": "ImportEnergy C" + }, "pf_a": { "name": "PF A" }, @@ -63,6 +45,24 @@ }, "pf_c": { "name": "PF C" + }, + "power_a": { + "name": "Power A" + }, + "power_b": { + "name": "Power B" + }, + "power_c": { + "name": "Power C" + }, + "voltage_a": { + "name": "Voltage A" + }, + "voltage_b": { + "name": "Voltage B" + }, + "voltage_c": { + "name": "Voltage C" } } } diff --git a/homeassistant/components/iaqualink/strings.json b/homeassistant/components/iaqualink/strings.json index 032e1a592d9..5b00a9424de 100644 --- a/homeassistant/components/iaqualink/strings.json +++ b/homeassistant/components/iaqualink/strings.json @@ -1,18 +1,18 @@ { "config": { - "step": { - "user": { - "title": "Connect to iAqualink", - "description": "Please enter the username and password for your iAqualink account.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter the username and password for your iAqualink account.", + "title": "Connect to iAqualink" + } } } } diff --git a/homeassistant/components/ibeacon/manifest.json b/homeassistant/components/ibeacon/manifest.json index bdbdaea49d2..54ccd670c71 100644 --- a/homeassistant/components/ibeacon/manifest.json +++ b/homeassistant/components/ibeacon/manifest.json @@ -3,8 +3,8 @@ "name": "iBeacon Tracker", "bluetooth": [ { - "manufacturer_id": 76, - "manufacturer_data_start": [2, 21] + "manufacturer_data_start": [2, 21], + "manufacturer_id": 76 } ], "codeowners": [], diff --git a/homeassistant/components/ibeacon/strings.json b/homeassistant/components/ibeacon/strings.json index 9307f848644..42a943d7036 100644 --- a/homeassistant/components/ibeacon/strings.json +++ b/homeassistant/components/ibeacon/strings.json @@ -1,39 +1,39 @@ { "config": { + "abort": { + "bluetooth_not_available": "At least one Bluetooth adapter or remote must be configured to use iBeacon Tracker." + }, "step": { "user": { "description": "Do you want to set up iBeacon Tracker?" } - }, - "abort": { - "bluetooth_not_available": "At least one Bluetooth adapter or remote must be configured to use iBeacon Tracker." - } - }, - "options": { - "step": { - "init": { - "description": "iBeacons with an empty device name are ignored by default, unless their UUID is explicitly allowed in the list below.", - "data": { - "new_uuid": "Enter a new allowed UUID", - "allow_nameless_uuids": "Currently allowed UUIDs. Uncheck to remove" - } - } - }, - "error": { - "invalid_uuid_format": "UUIDs should contain 32 hex characters grouped as XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" } }, "entity": { "sensor": { - "power": { - "name": "Power" - }, "estimated_distance": { "name": "Estimated distance" }, + "power": { + "name": "Power" + }, "vendor": { "name": "Vendor" } } + }, + "options": { + "error": { + "invalid_uuid_format": "UUIDs should contain 32 hex characters grouped as XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" + }, + "step": { + "init": { + "data": { + "allow_nameless_uuids": "Currently allowed UUIDs. Uncheck to remove", + "new_uuid": "Enter a new allowed UUID" + }, + "description": "iBeacons with an empty device name are ignored by default, unless their UUID is explicitly allowed in the list below." + } + } } } diff --git a/homeassistant/components/icloud/icons.json b/homeassistant/components/icloud/icons.json index 16280a063e3..7061bb3c757 100644 --- a/homeassistant/components/icloud/icons.json +++ b/homeassistant/components/icloud/icons.json @@ -1,16 +1,16 @@ { "services": { - "update": { - "service": "mdi:update" - }, - "play_sound": { - "service": "mdi:speaker-wireless" - }, "display_message": { "service": "mdi:message-alert" }, "lost_device": { "service": "mdi:devices" + }, + "play_sound": { + "service": "mdi:speaker-wireless" + }, + "update": { + "service": "mdi:update" } } } diff --git a/homeassistant/components/icloud/strings.json b/homeassistant/components/icloud/strings.json index ae0cb662d17..c4cbb2d7331 100644 --- a/homeassistant/components/icloud/strings.json +++ b/homeassistant/components/icloud/strings.json @@ -1,117 +1,117 @@ { "config": { - "step": { - "user": { - "title": "iCloud credentials", - "description": "Enter your credentials", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "Main password (MFA)", - "with_family": "With family" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Your previously entered password for {username} is no longer working. Update your password to keep using this integration.", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:component::icloud::config::step::user::data::password%]" - } - }, - "trusted_device": { - "title": "iCloud trusted device", - "description": "Select your trusted device", - "data": { - "trusted_device": "Trusted device" - } - }, - "verification_code": { - "title": "Apple Account code", - "description": "Please enter the verification code you just received from Apple", - "data": { - "verification_code": "Verification code" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "no_device": "None of your devices have \"Find My\" activated", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "send_verification_code": "Failed to send verification code", "validate_verification_code": "Failed to verify your verification code, try again" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "no_device": "None of your devices have \"Find My\" activated", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:component::icloud::config::step::user::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "description": "Your previously entered password for {username} is no longer working. Update your password to keep using this integration.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "trusted_device": { + "data": { + "trusted_device": "Trusted device" + }, + "description": "Select your trusted device", + "title": "iCloud trusted device" + }, + "user": { + "data": { + "password": "Main password (MFA)", + "username": "[%key:common::config_flow::data::email%]", + "with_family": "With family" + }, + "description": "Enter your credentials", + "title": "iCloud credentials" + }, + "verification_code": { + "data": { + "verification_code": "Verification code" + }, + "description": "Please enter the verification code you just received from Apple", + "title": "Apple Account code" + } } }, "services": { - "update": { - "name": "Update", - "description": "Asks for a state update of all devices linked to an Apple Account.", - "fields": { - "account": { - "name": "Account", - "description": "Your Apple Account username (email)." - } - } - }, - "play_sound": { - "name": "Play sound", - "description": "Plays the Lost device sound on an Apple device.", - "fields": { - "account": { - "name": "Account", - "description": "[%key:component::icloud::services::update::fields::account::description%]" - }, - "device_name": { - "name": "Device name", - "description": "The name of the Apple device to play the sound." - } - } - }, "display_message": { - "name": "Display message", "description": "Displays a message on an Apple device.", "fields": { "account": { - "name": "Account", - "description": "[%key:component::icloud::services::update::fields::account::description%]" + "description": "[%key:component::icloud::services::update::fields::account::description%]", + "name": "Account" }, "device_name": { - "name": "Device name", - "description": "The name of the Apple device to display the message." + "description": "The name of the Apple device to display the message.", + "name": "Device name" }, "message": { - "name": "Message", - "description": "The content of your message." + "description": "The content of your message.", + "name": "Message" }, "sound": { - "name": "Sound", - "description": "To make a sound when displaying the message." + "description": "To make a sound when displaying the message.", + "name": "Sound" } - } + }, + "name": "Display message" }, "lost_device": { - "name": "Lost device", "description": "Puts an Apple device in lost state.", "fields": { "account": { - "name": "Account", - "description": "[%key:component::icloud::services::update::fields::account::description%]" + "description": "[%key:component::icloud::services::update::fields::account::description%]", + "name": "Account" }, "device_name": { - "name": "Device name", - "description": "The name of the Apple device to set lost." - }, - "number": { - "name": "Number", - "description": "The phone number to call in lost mode (must contain country code)." + "description": "The name of the Apple device to set lost.", + "name": "Device name" }, "message": { - "name": "Message", - "description": "The message to display in lost mode." + "description": "The message to display in lost mode.", + "name": "Message" + }, + "number": { + "description": "The phone number to call in lost mode (must contain country code).", + "name": "Number" } - } + }, + "name": "Lost device" + }, + "play_sound": { + "description": "Plays the Lost device sound on an Apple device.", + "fields": { + "account": { + "description": "[%key:component::icloud::services::update::fields::account::description%]", + "name": "Account" + }, + "device_name": { + "description": "The name of the Apple device to play the sound.", + "name": "Device name" + } + }, + "name": "Play sound" + }, + "update": { + "description": "Asks for a state update of all devices linked to an Apple Account.", + "fields": { + "account": { + "description": "Your Apple Account username (email).", + "name": "Account" + } + }, + "name": "Update" } } } diff --git a/homeassistant/components/idasen_desk/strings.json b/homeassistant/components/idasen_desk/strings.json index ff0cb5b8ae6..ec88476d0c3 100644 --- a/homeassistant/components/idasen_desk/strings.json +++ b/homeassistant/components/idasen_desk/strings.json @@ -1,5 +1,16 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "No unconfigured devices found. Make sure that the desk is in Bluetooth pairing mode. Enter pairing mode by pressing the small button with the Bluetooth logo on the controller for about 3 seconds, until it starts blinking.", + "not_supported": "Device not supported" + }, + "error": { + "auth_failed": "Unable to authenticate with the desk. This is usually solved by using an ESPHome Bluetooth Proxy. Please check the integration documentation for alternative workarounds.", + "cannot_connect": "Cannot connect. Make sure that the desk is in Bluetooth pairing mode. If not already, you can also use an ESPHome Bluetooth Proxy, as it provides a better connection.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { "user": { @@ -10,17 +21,6 @@ "address": "The Bluetooth device for the desk." } } - }, - "error": { - "auth_failed": "Unable to authenticate with the desk. This is usually solved by using an ESPHome Bluetooth Proxy. Please check the integration documentation for alternative workarounds.", - "cannot_connect": "Cannot connect. Make sure that the desk is in Bluetooth pairing mode. If not already, you can also use an ESPHome Bluetooth Proxy, as it provides a better connection.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "not_supported": "Device not supported", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "No unconfigured devices found. Make sure that the desk is in Bluetooth pairing mode. Enter pairing mode by pressing the small button with the Bluetooth logo on the controller for about 3 seconds, until it starts blinking." } }, "entity": { diff --git a/homeassistant/components/ifttt/strings.json b/homeassistant/components/ifttt/strings.json index df5a2bc9d93..817e6a7872e 100644 --- a/homeassistant/components/ifttt/strings.json +++ b/homeassistant/components/ifttt/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the IFTTT webhook applet", - "description": "Are you sure you want to set up IFTTT?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,44 +7,50 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to use the \"Make a web request\" action from the [IFTTT webhook applet]({applet_url}).\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n- Content Type: application/json\n\nSee [the documentation]({docs_url}) on how to configure automations to handle incoming data." + }, + "step": { + "user": { + "description": "Are you sure you want to set up IFTTT?", + "title": "Set up the IFTTT webhook applet" + } } }, "services": { "push_alarm_state": { - "name": "Push alarm state", "description": "Updates the alarm state to the specified value.", "fields": { "entity_id": { - "name": "Entity ID", - "description": "Name of the alarm control panel which state has to be updated." + "description": "Name of the alarm control panel which state has to be updated.", + "name": "Entity ID" }, "state": { - "name": "State", - "description": "The state to which the alarm control panel has to be set." + "description": "The state to which the alarm control panel has to be set.", + "name": "State" } - } + }, + "name": "Push alarm state" }, "trigger": { - "name": "Trigger", "description": "Triggers the configured IFTTT webhook.", "fields": { "event": { - "name": "Event", - "description": "The name of the event to send." + "description": "The name of the event to send.", + "name": "Event" }, "value1": { - "name": "Value 1", - "description": "Generic field to send data via the event." + "description": "Generic field to send data via the event.", + "name": "Value 1" }, "value2": { - "name": "Value 2", - "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]" + "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]", + "name": "Value 2" }, "value3": { - "name": "Value 3", - "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]" + "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]", + "name": "Value 3" } - } + }, + "name": "Trigger" } } } diff --git a/homeassistant/components/igloohome/strings.json b/homeassistant/components/igloohome/strings.json index 9a72ad14548..bd08d8150b8 100644 --- a/homeassistant/components/igloohome/strings.json +++ b/homeassistant/components/igloohome/strings.json @@ -1,8 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "description": "Copy & paste your [API access credentials]({api_access_url}) to give Home Assistant access to your account.", "data": { "client_id": "Client ID", "client_secret": "Client secret" @@ -10,16 +17,9 @@ "data_description": { "client_id": "Client ID provided by your iglooaccess account.", "client_secret": "Client Secret provided by your iglooaccess account." - } + }, + "description": "Copy & paste your [API access credentials]({api_access_url}) to give Home Assistant access to your 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%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" } } } diff --git a/homeassistant/components/ihc/icons.json b/homeassistant/components/ihc/icons.json index 3842d1a48a6..470fddac4ea 100644 --- a/homeassistant/components/ihc/icons.json +++ b/homeassistant/components/ihc/icons.json @@ -1,16 +1,16 @@ { "services": { + "pulse": { + "service": "mdi:pulse" + }, "set_runtime_value_bool": { "service": "mdi:toggle-switch" }, - "set_runtime_value_int": { - "service": "mdi:numeric" - }, "set_runtime_value_float": { "service": "mdi:numeric" }, - "pulse": { - "service": "mdi:pulse" + "set_runtime_value_int": { + "service": "mdi:numeric" } } } diff --git a/homeassistant/components/ihc/strings.json b/homeassistant/components/ihc/strings.json index 04daef83c9d..71b2c72bbb3 100644 --- a/homeassistant/components/ihc/strings.json +++ b/homeassistant/components/ihc/strings.json @@ -1,72 +1,72 @@ { "services": { - "set_runtime_value_bool": { - "name": "Set runtime value boolean", - "description": "Sets a boolean runtime value on the IHC controller.", - "fields": { - "controller_id": { - "name": "Controller ID", - "description": "If you have multiple controllers, this is the index of your controller, starting with 0." - }, - "ihc_id": { - "name": "IHC ID", - "description": "The integer IHC resource ID." - }, - "value": { - "name": "Value", - "description": "The boolean value to set." - } - } - }, - "set_runtime_value_int": { - "name": "Set runtime value integer", - "description": "Sets an integer runtime value on the IHC controller.", - "fields": { - "controller_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" - }, - "ihc_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" - }, - "value": { - "name": "Value", - "description": "The integer value to set." - } - } - }, - "set_runtime_value_float": { - "name": "Set runtime value float", - "description": "Sets a float runtime value on the IHC controller.", - "fields": { - "controller_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" - }, - "ihc_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" - }, - "value": { - "name": "Value", - "description": "The float value to set." - } - } - }, "pulse": { - "name": "Pulse", "description": "Pulses an input on the IHC controller.", "fields": { "controller_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]" }, "ihc_id": { - "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", - "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]" } - } + }, + "name": "Pulse" + }, + "set_runtime_value_bool": { + "description": "Sets a boolean runtime value on the IHC controller.", + "fields": { + "controller_id": { + "description": "If you have multiple controllers, this is the index of your controller, starting with 0.", + "name": "Controller ID" + }, + "ihc_id": { + "description": "The integer IHC resource ID.", + "name": "IHC ID" + }, + "value": { + "description": "The boolean value to set.", + "name": "Value" + } + }, + "name": "Set runtime value boolean" + }, + "set_runtime_value_float": { + "description": "Sets a float runtime value on the IHC controller.", + "fields": { + "controller_id": { + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]" + }, + "ihc_id": { + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]" + }, + "value": { + "description": "The float value to set.", + "name": "Value" + } + }, + "name": "Set runtime value float" + }, + "set_runtime_value_int": { + "description": "Sets an integer runtime value on the IHC controller.", + "fields": { + "controller_id": { + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]" + }, + "ihc_id": { + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]", + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]" + }, + "value": { + "description": "The integer value to set.", + "name": "Value" + } + }, + "name": "Set runtime value integer" } } } diff --git a/homeassistant/components/image/strings.json b/homeassistant/components/image/strings.json index 011102f5b9e..b90665f0e94 100644 --- a/homeassistant/components/image/strings.json +++ b/homeassistant/components/image/strings.json @@ -1,5 +1,4 @@ { - "title": "Image", "entity_component": { "_": { "name": "[%key:component::image::title%]" @@ -7,14 +6,15 @@ }, "services": { "snapshot": { - "name": "Take snapshot", "description": "Takes a snapshot from an image.", "fields": { "filename": { - "name": "Filename", - "description": "Template of a filename. Variable available is `entity_id`." + "description": "Template of a filename. Variable available is `entity_id`.", + "name": "Filename" } - } + }, + "name": "Take snapshot" } - } + }, + "title": "Image" } diff --git a/homeassistant/components/image_processing/strings.json b/homeassistant/components/image_processing/strings.json index 2e630cfb4de..c942059bb59 100644 --- a/homeassistant/components/image_processing/strings.json +++ b/homeassistant/components/image_processing/strings.json @@ -1,5 +1,4 @@ { - "title": "Image processing", "entity_component": { "_": { "name": "[%key:component::image_processing::title%]", @@ -15,8 +14,9 @@ }, "services": { "scan": { - "name": "Scan", - "description": "Processes an image immediately." + "description": "Processes an image immediately.", + "name": "Scan" } - } + }, + "title": "Image processing" } diff --git a/homeassistant/components/imap/icons.json b/homeassistant/components/imap/icons.json index 5c134b8ef81..b480b1686f6 100644 --- a/homeassistant/components/imap/icons.json +++ b/homeassistant/components/imap/icons.json @@ -10,12 +10,6 @@ } }, "services": { - "seen": { - "service": "mdi:email-open-outline" - }, - "move": { - "service": "mdi:email-arrow-right-outline" - }, "delete": { "service": "mdi:trash-can-outline" }, @@ -24,6 +18,12 @@ }, "fetch_part": { "service": "mdi:email-sync-outline" + }, + "move": { + "service": "mdi:email-arrow-right-outline" + }, + "seen": { + "service": "mdi:email-open-outline" } } } diff --git a/homeassistant/components/imap/strings.json b/homeassistant/components/imap/strings.json index 417afcf1756..dcacf8d85ae 100644 --- a/homeassistant/components/imap/strings.json +++ b/homeassistant/components/imap/strings.json @@ -1,42 +1,8 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "server": "Server", - "port": "[%key:common::config_flow::data::port%]", - "charset": "Character set", - "folder": "Folder", - "search": "IMAP search", - "event_message_data": "Message data to be included in the `imap_content` event data:", - "ssl_cipher_list": "SSL cipher list (Advanced)", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "username": "The IMAP username.", - "password": "The IMAP password", - "server": "The IMAP server.", - "port": "The IMAP port supporting SSL, usually this is 993.", - "charset": "The character set used. Common values are `utf-8` or `US-ASCII`.", - "folder": "In generally the folder is set to `INBOX`, but e.g. in case of a sub folder, named `Test`, this should be `INBOX.Test`.", - "search": "The IMAP search command which is `UnSeen UnDeleted` by default.", - "event_message_data": "Note that the event size is limited, and not all message text might be sent with the event if the message is too large.", - "ssl_cipher_list": "If the IMAP service only supports legacy encryption, try to change this.", - "verify_ssl": "Recommended, to ensure the server certificate is valid. Turn off, if the server certificate is not trusted (e.g. self signed)." - } - }, - "reauth_confirm": { - "description": "The password for {username} is invalid.", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "Correct the IMAP password." - } - } + "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%]", @@ -46,9 +12,43 @@ "invalid_search": "The selected search is invalid", "ssl_error": "An SSL error occurred. Change SSL cipher list and try again." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "Correct the IMAP password." + }, + "description": "The password for {username} is invalid.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "charset": "Character set", + "event_message_data": "Message data to be included in the `imap_content` event data:", + "folder": "Folder", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "search": "IMAP search", + "server": "Server", + "ssl_cipher_list": "SSL cipher list (Advanced)", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "charset": "The character set used. Common values are `utf-8` or `US-ASCII`.", + "event_message_data": "Note that the event size is limited, and not all message text might be sent with the event if the message is too large.", + "folder": "In generally the folder is set to `INBOX`, but e.g. in case of a sub folder, named `Test`, this should be `INBOX.Test`.", + "password": "The IMAP password", + "port": "The IMAP port supporting SSL, usually this is 993.", + "search": "The IMAP search command which is `UnSeen UnDeleted` by default.", + "server": "The IMAP server.", + "ssl_cipher_list": "If the IMAP service only supports legacy encryption, try to change this.", + "username": "The IMAP username.", + "verify_ssl": "Recommended, to ensure the server certificate is valid. Turn off, if the server certificate is not trusted (e.g. self signed)." + } + } } }, "entity": { @@ -72,18 +72,18 @@ "fetch_failed": { "message": "Fetching the message text failed with \"{error}\"." }, - "invalid_entry": { - "message": "No valid IMAP entry was found." + "imap_server_fail": { + "message": "The IMAP server failed to connect: {error}." }, "invalid_auth": { "message": "[%key:common::config_flow::error::invalid_auth%]" }, + "invalid_entry": { + "message": "No valid IMAP entry was found." + }, "invalid_folder": { "message": "[%key:component::imap::config::error::invalid_folder%]" }, - "imap_server_fail": { - "message": "The IMAP server failed to connect: {error}." - }, "invalid_part_index": { "message": "Invalid part index." }, @@ -92,26 +92,6 @@ } }, "options": { - "step": { - "init": { - "data": { - "folder": "[%key:component::imap::config::step::user::data::folder%]", - "search": "[%key:component::imap::config::step::user::data::search%]", - "custom_event_data_template": "Template to create custom event data", - "max_message_size": "Max message size (2048 < size < 30000)", - "enable_push": "Enable Push-IMAP if the server supports it. Turn off if Push-IMAP updates are unreliable.", - "event_message_data": "Message data to be included in the `imap_content` event data." - }, - "data_description": { - "folder": "[%key:component::imap::config::step::user::data_description::folder%]", - "search": "[%key:component::imap::config::step::user::data_description::search%]", - "event_message_data": "[%key:component::imap::config::step::user::data_description::event_message_data%]", - "custom_event_data_template": "This template is evaluated when a new message was received, and the result is added to the `custom` attribute of the event data.", - "max_message_size": "Limit the maximum size of the event. Instead of passing the (whole) text message, using a template is a better option.", - "enable_push": "Using Push-IMAP is recommended. Polling will increase the time to respond." - } - } - }, "error": { "already_configured": "An entry with these folder and search options already exists.", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -119,105 +99,125 @@ "invalid_charset": "[%key:component::imap::config::error::invalid_charset%]", "invalid_folder": "[%key:component::imap::config::error::invalid_folder%]", "invalid_search": "[%key:component::imap::config::error::invalid_search%]" + }, + "step": { + "init": { + "data": { + "custom_event_data_template": "Template to create custom event data", + "enable_push": "Enable Push-IMAP if the server supports it. Turn off if Push-IMAP updates are unreliable.", + "event_message_data": "Message data to be included in the `imap_content` event data.", + "folder": "[%key:component::imap::config::step::user::data::folder%]", + "max_message_size": "Max message size (2048 < size < 30000)", + "search": "[%key:component::imap::config::step::user::data::search%]" + }, + "data_description": { + "custom_event_data_template": "This template is evaluated when a new message was received, and the result is added to the `custom` attribute of the event data.", + "enable_push": "Using Push-IMAP is recommended. Polling will increase the time to respond.", + "event_message_data": "[%key:component::imap::config::step::user::data_description::event_message_data%]", + "folder": "[%key:component::imap::config::step::user::data_description::folder%]", + "max_message_size": "Limit the maximum size of the event. Instead of passing the (whole) text message, using a template is a better option.", + "search": "[%key:component::imap::config::step::user::data_description::search%]" + } + } } }, "selector": { - "ssl_cipher_list": { - "options": { - "python_default": "Default settings", - "modern": "Modern ciphers", - "intermediate": "Intermediate ciphers" - } - }, "event_message_data": { "options": { - "text": "Body text", - "headers": "Message headers" + "headers": "Message headers", + "text": "Body text" + } + }, + "ssl_cipher_list": { + "options": { + "intermediate": "Intermediate ciphers", + "modern": "Modern ciphers", + "python_default": "Default settings" } } }, "services": { - "fetch": { - "name": "Fetch message", - "description": "Fetches an email message from the server.", - "fields": { - "entry": { - "name": "Entry", - "description": "The IMAP config entry." - }, - "uid": { - "name": "UID", - "description": "The email identifier (UID)." - } - } - }, - "fetch_part": { - "name": "Fetch message part", - "description": "Fetches a message part or attachment from an email message.", - "fields": { - "entry": { - "name": "[%key:component::imap::services::fetch::fields::entry::name%]", - "description": "[%key:component::imap::services::fetch::fields::entry::description%]" - }, - "uid": { - "name": "[%key:component::imap::services::fetch::fields::uid::name%]", - "description": "[%key:component::imap::services::fetch::fields::uid::description%]" - }, - "part": { - "name": "Part", - "description": "The message part index." - } - } - }, - "seen": { - "name": "Mark message as seen", - "description": "Marks an email as seen.", - "fields": { - "entry": { - "name": "Entry", - "description": "The IMAP config entry." - }, - "uid": { - "name": "UID", - "description": "The email identifier (UID)." - } - } - }, - "move": { - "name": "Move message", - "description": "Moves an email to a target folder.", - "fields": { - "entry": { - "name": "[%key:component::imap::services::seen::fields::entry::name%]", - "description": "[%key:component::imap::services::seen::fields::entry::description%]" - }, - "seen": { - "name": "Seen", - "description": "Mark the email as seen." - }, - "uid": { - "name": "[%key:component::imap::services::seen::fields::uid::name%]", - "description": "[%key:component::imap::services::seen::fields::uid::description%]" - }, - "target_folder": { - "name": "Target folder", - "description": "The target folder the email should be moved to." - } - } - }, "delete": { - "name": "Delete message", "description": "Deletes an email.", "fields": { "entry": { - "name": "[%key:component::imap::services::seen::fields::entry::name%]", - "description": "[%key:component::imap::services::seen::fields::entry::description%]" + "description": "[%key:component::imap::services::seen::fields::entry::description%]", + "name": "[%key:component::imap::services::seen::fields::entry::name%]" }, "uid": { - "name": "[%key:component::imap::services::seen::fields::uid::name%]", - "description": "[%key:component::imap::services::seen::fields::uid::description%]" + "description": "[%key:component::imap::services::seen::fields::uid::description%]", + "name": "[%key:component::imap::services::seen::fields::uid::name%]" } - } + }, + "name": "Delete message" + }, + "fetch": { + "description": "Fetches an email message from the server.", + "fields": { + "entry": { + "description": "The IMAP config entry.", + "name": "Entry" + }, + "uid": { + "description": "The email identifier (UID).", + "name": "UID" + } + }, + "name": "Fetch message" + }, + "fetch_part": { + "description": "Fetches a message part or attachment from an email message.", + "fields": { + "entry": { + "description": "[%key:component::imap::services::fetch::fields::entry::description%]", + "name": "[%key:component::imap::services::fetch::fields::entry::name%]" + }, + "part": { + "description": "The message part index.", + "name": "Part" + }, + "uid": { + "description": "[%key:component::imap::services::fetch::fields::uid::description%]", + "name": "[%key:component::imap::services::fetch::fields::uid::name%]" + } + }, + "name": "Fetch message part" + }, + "move": { + "description": "Moves an email to a target folder.", + "fields": { + "entry": { + "description": "[%key:component::imap::services::seen::fields::entry::description%]", + "name": "[%key:component::imap::services::seen::fields::entry::name%]" + }, + "seen": { + "description": "Mark the email as seen.", + "name": "Seen" + }, + "target_folder": { + "description": "The target folder the email should be moved to.", + "name": "Target folder" + }, + "uid": { + "description": "[%key:component::imap::services::seen::fields::uid::description%]", + "name": "[%key:component::imap::services::seen::fields::uid::name%]" + } + }, + "name": "Move message" + }, + "seen": { + "description": "Marks an email as seen.", + "fields": { + "entry": { + "description": "The IMAP config entry.", + "name": "Entry" + }, + "uid": { + "description": "The email identifier (UID).", + "name": "UID" + } + }, + "name": "Mark message as seen" } } } diff --git a/homeassistant/components/imeon_inverter/icons.json b/homeassistant/components/imeon_inverter/icons.json index 34ecd9d7923..b77bebb21ec 100644 --- a/homeassistant/components/imeon_inverter/icons.json +++ b/homeassistant/components/imeon_inverter/icons.json @@ -1,6 +1,14 @@ { "entity": { + "select": { + "manager_inverter_mode": { + "default": "mdi:view-grid" + } + }, "sensor": { + "battery_consumed": { + "default": "mdi:battery-arrow-down" + }, "battery_power": { "default": "mdi:battery" }, @@ -13,8 +21,29 @@ "battery_stored": { "default": "mdi:battery-arrow-up" }, - "battery_consumed": { - "default": "mdi:battery-arrow-down" + "energy_battery_consumed": { + "default": "mdi:battery-arrow-down-outline" + }, + "energy_battery_stored": { + "default": "mdi:battery-arrow-up-outline" + }, + "energy_building_consumption": { + "default": "mdi:home-lightning-bolt-outline" + }, + "energy_grid_consumed": { + "default": "mdi:transmission-tower-import" + }, + "energy_grid_injected": { + "default": "mdi:transmission-tower-export" + }, + "energy_pv": { + "default": "mdi:solar-power" + }, + "forecast_cons_remaining_today": { + "default": "mdi:chart-line" + }, + "forecast_prod_remaining_today": { + "default": "mdi:chart-line" }, "grid_current_l1": { "default": "mdi:current-ac" @@ -58,6 +87,27 @@ "meter_power": { "default": "mdi:meter-electric" }, + "monitoring_minute_building_consumption": { + "default": "mdi:home-lightning-bolt" + }, + "monitoring_minute_grid_consumption": { + "default": "mdi:transmission-tower-import" + }, + "monitoring_minute_grid_injection": { + "default": "mdi:transmission-tower-export" + }, + "monitoring_minute_grid_power_flow": { + "default": "mdi:power-plug" + }, + "monitoring_minute_solar_production": { + "default": "mdi:solar-power" + }, + "monitoring_self_consumption": { + "default": "mdi:percent" + }, + "monitoring_self_sufficiency": { + "default": "mdi:percent" + }, "output_current_l1": { "default": "mdi:current-ac" }, @@ -112,74 +162,24 @@ "temp_component_temperature": { "default": "mdi:thermometer" }, - "monitoring_self_consumption": { - "default": "mdi:percent" - }, - "monitoring_self_sufficiency": { - "default": "mdi:percent" - }, - "monitoring_minute_building_consumption": { - "default": "mdi:home-lightning-bolt" - }, - "monitoring_minute_grid_consumption": { - "default": "mdi:transmission-tower-import" - }, - "monitoring_minute_grid_injection": { - "default": "mdi:transmission-tower-export" - }, - "monitoring_minute_grid_power_flow": { - "default": "mdi:power-plug" - }, - "monitoring_minute_solar_production": { - "default": "mdi:solar-power" - }, "timeline_type_msg": { "default": "mdi:check-circle", "state": { "com_lost": "mdi:lan-disconnect", - "warning_grid": "mdi:alert-circle", - "warning_pv": "mdi:alert-circle", - "warning_bat": "mdi:alert-circle", - "error_ond": "mdi:close-octagon", - "error_soft": "mdi:close-octagon", - "error_pv": "mdi:close-octagon", - "error_grid": "mdi:close-octagon", "error_bat": "mdi:close-octagon", + "error_grid": "mdi:close-octagon", + "error_ond": "mdi:close-octagon", + "error_pv": "mdi:close-octagon", + "error_soft": "mdi:close-octagon", "good_1": "mdi:check-circle", - "info_soft": "mdi:information-slab-circle", - "info_ond": "mdi:information-slab-circle", "info_bat": "mdi:information-slab-circle", - "info_smartlo": "mdi:information-slab-circle" + "info_ond": "mdi:information-slab-circle", + "info_smartlo": "mdi:information-slab-circle", + "info_soft": "mdi:information-slab-circle", + "warning_bat": "mdi:alert-circle", + "warning_grid": "mdi:alert-circle", + "warning_pv": "mdi:alert-circle" } - }, - "energy_pv": { - "default": "mdi:solar-power" - }, - "energy_grid_injected": { - "default": "mdi:transmission-tower-export" - }, - "energy_grid_consumed": { - "default": "mdi:transmission-tower-import" - }, - "energy_building_consumption": { - "default": "mdi:home-lightning-bolt-outline" - }, - "energy_battery_stored": { - "default": "mdi:battery-arrow-up-outline" - }, - "energy_battery_consumed": { - "default": "mdi:battery-arrow-down-outline" - }, - "forecast_cons_remaining_today": { - "default": "mdi:chart-line" - }, - "forecast_prod_remaining_today": { - "default": "mdi:chart-line" - } - }, - "select": { - "manager_inverter_mode": { - "default": "mdi:view-grid" } } } diff --git a/homeassistant/components/imeon_inverter/manifest.json b/homeassistant/components/imeon_inverter/manifest.json index ed24d169d63..4e6aa592c5e 100644 --- a/homeassistant/components/imeon_inverter/manifest.json +++ b/homeassistant/components/imeon_inverter/manifest.json @@ -10,8 +10,8 @@ "requirements": ["imeon_inverter_api==0.4.0"], "ssdp": [ { - "manufacturer": "IMEON", "deviceType": "urn:schemas-upnp-org:device:Basic:1", + "manufacturer": "IMEON", "st": "upnp:rootdevice" } ] diff --git a/homeassistant/components/imeon_inverter/strings.json b/homeassistant/components/imeon_inverter/strings.json index 50ca969746d..e1eba01b423 100644 --- a/homeassistant/components/imeon_inverter/strings.json +++ b/homeassistant/components/imeon_inverter/strings.json @@ -1,21 +1,5 @@ { "config": { - "flow_title": "Imeon {model} ({serial})", - "step": { - "user": { - "title": "Add Imeon inverter", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP of your inverter", - "username": "The username of your OS One account", - "password": "The password of your OS One account" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, @@ -25,10 +9,40 @@ "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "invalid_route": "Unable to request the API, make sure 'API Module' is enabled on your device", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "Imeon {model} ({serial})", + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP of your inverter", + "password": "The password of your OS One account", + "username": "The username of your OS One account" + }, + "title": "Add Imeon inverter" + } } }, "entity": { + "select": { + "manager_inverter_mode": { + "name": "Inverter mode", + "state": { + "backup": "Backup", + "off_grid": "Off-grid", + "on_grid": "On-grid", + "smart_grid": "Smart grid" + } + } + }, "sensor": { + "battery_consumed": { + "name": "Battery consumed" + }, "battery_power": { "name": "Battery power" }, @@ -46,8 +60,29 @@ "battery_stored": { "name": "Battery stored" }, - "battery_consumed": { - "name": "Battery consumed" + "energy_battery_consumed": { + "name": "Today battery-consumed energy" + }, + "energy_battery_stored": { + "name": "Today battery-stored energy" + }, + "energy_building_consumption": { + "name": "Today building consumption" + }, + "energy_grid_consumed": { + "name": "Today grid-consumed energy" + }, + "energy_grid_injected": { + "name": "Today grid-injected energy" + }, + "energy_pv": { + "name": "Today PV energy" + }, + "forecast_cons_remaining_today": { + "name": "Forecast remaining energy consumption for today" + }, + "forecast_prod_remaining_today": { + "name": "Forecast remaining energy production for today" }, "grid_current_l1": { "name": "Grid current L1" @@ -91,16 +126,37 @@ "manager_inverter_state": { "name": "Inverter state", "state": { - "not_connected": "Not connected", - "unsynchronized": "Unsynchronized", "grid_consumption": "Grid consumption", "grid_injection": "Grid injection", - "grid_synchronized_but_not_used": "Grid unsynchronized but used" + "grid_synchronized_but_not_used": "Grid unsynchronized but used", + "not_connected": "Not connected", + "unsynchronized": "Unsynchronized" } }, "meter_power": { "name": "Meter power" }, + "monitoring_minute_building_consumption": { + "name": "Building consumption" + }, + "monitoring_minute_grid_consumption": { + "name": "Grid consumption" + }, + "monitoring_minute_grid_injection": { + "name": "Grid injection" + }, + "monitoring_minute_grid_power_flow": { + "name": "Grid power flow" + }, + "monitoring_minute_solar_production": { + "name": "Solar production" + }, + "monitoring_self_consumption": { + "name": "Self-consumption" + }, + "monitoring_self_sufficiency": { + "name": "Self-sufficiency" + }, "output_current_l1": { "name": "Output current L1" }, @@ -155,80 +211,24 @@ "temp_component_temperature": { "name": "Component temperature" }, - "monitoring_self_consumption": { - "name": "Self-consumption" - }, - "monitoring_self_sufficiency": { - "name": "Self-sufficiency" - }, - "monitoring_minute_building_consumption": { - "name": "Building consumption" - }, - "monitoring_minute_grid_consumption": { - "name": "Grid consumption" - }, - "monitoring_minute_grid_injection": { - "name": "Grid injection" - }, - "monitoring_minute_grid_power_flow": { - "name": "Grid power flow" - }, - "monitoring_minute_solar_production": { - "name": "Solar production" - }, "timeline_type_msg": { "name": "Timeline status", "state": { "com_lost": "Communication lost.", + "error_bat": "Battery error detected.", + "error_grid": "Power grid error detected.", + "error_ond": "Inverter error detected.", + "error_pv": "PV system error detected.", + "error_soft": "Software error detected.", + "good_1": "System operating normally.", + "info_bat": "Battery information available.", + "info_ond": "Inverter information available.", + "info_smartlo": "Smart load information available.", + "info_soft": "Software information available.", + "warning_bat": "Battery warning detected.", "warning_grid": "Power grid warning detected.", "warning_pv": "PV system warning detected.", - "warning_bat": "Battery warning detected.", - "error_ond": "Inverter error detected.", - "error_soft": "Software error detected.", - "error_pv": "PV system error detected.", - "error_grid": "Power grid error detected.", - "error_bat": "Battery error detected.", - "good_1": "System operating normally.", - "web_account": "Web account notification.", - "info_soft": "Software information available.", - "info_ond": "Inverter information available.", - "info_bat": "Battery information available.", - "info_smartlo": "Smart load information available." - } - }, - "energy_pv": { - "name": "Today PV energy" - }, - "energy_grid_injected": { - "name": "Today grid-injected energy" - }, - "energy_grid_consumed": { - "name": "Today grid-consumed energy" - }, - "energy_building_consumption": { - "name": "Today building consumption" - }, - "energy_battery_stored": { - "name": "Today battery-stored energy" - }, - "energy_battery_consumed": { - "name": "Today battery-consumed energy" - }, - "forecast_cons_remaining_today": { - "name": "Forecast remaining energy consumption for today" - }, - "forecast_prod_remaining_today": { - "name": "Forecast remaining energy production for today" - } - }, - "select": { - "manager_inverter_mode": { - "name": "Inverter mode", - "state": { - "smart_grid": "Smart grid", - "backup": "Backup", - "on_grid": "On-grid", - "off_grid": "Off-grid" + "web_account": "Web account notification." } } } diff --git a/homeassistant/components/imgw_pib/strings.json b/homeassistant/components/imgw_pib/strings.json index d55c134ba3b..17f190c0cb1 100644 --- a/homeassistant/components/imgw_pib/strings.json +++ b/homeassistant/components/imgw_pib/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,14 +17,6 @@ "station_id": "Select a hydrological station from the list." } } - }, - "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_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { @@ -24,9 +24,9 @@ "hydrological_alert": { "name": "Hydrological alert", "state": { - "no_alert": "No alert", "exceeding_the_warning_level": "Exceeding the warning level", "hydrological_drought": "Hydrological drought", + "no_alert": "No alert", "rapid_water_level_rise": "Rapid water level rise" }, "state_attributes": { @@ -41,9 +41,9 @@ }, "options": { "state": { - "no_alert": "[%key:component::imgw_pib::entity::sensor::hydrological_alert::state::no_alert%]", "exceeding_the_warning_level": "[%key:component::imgw_pib::entity::sensor::hydrological_alert::state::exceeding_the_warning_level%]", "hydrological_drought": "[%key:component::imgw_pib::entity::sensor::hydrological_alert::state::hydrological_drought%]", + "no_alert": "[%key:component::imgw_pib::entity::sensor::hydrological_alert::state::no_alert%]", "rapid_water_level_rise": "[%key:component::imgw_pib::entity::sensor::hydrological_alert::state::rapid_water_level_rise%]" } }, diff --git a/homeassistant/components/immich/strings.json b/homeassistant/components/immich/strings.json index 90fccfa1bb1..7db4a132bd3 100644 --- a/homeassistant/components/immich/strings.json +++ b/homeassistant/components/immich/strings.json @@ -1,32 +1,14 @@ { "common": { - "data_desc_url": "The full URL of your immich instance.", "data_desc_api_key": "API key to connect to your immich instance.", - "data_desc_ssl_verify": "Whether to verify the SSL certificate when SSL encryption is used to connect to your immich instance." + "data_desc_ssl_verify": "Whether to verify the SSL certificate when SSL encryption is used to connect to your immich instance.", + "data_desc_url": "The full URL of your immich instance." }, "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "[%key:component::immich::common::data_desc_url%]", - "api_key": "[%key:component::immich::common::data_desc_api_key%]", - "verify_ssl": "[%key:component::immich::common::data_desc_ssl_verify%]" - } - }, - "reauth_confirm": { - "description": "Update the API key for {name}.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::immich::common::data_desc_api_key%]" - } - } + "abort": { + "already_configured": "This user is already configured for this immich instance.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unique_id_mismatch": "The provided API key does not match the configured user." }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -34,39 +16,57 @@ "invalid_url": "The provided URL is invalid.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "The provided API key does not match the configured user.", - "already_configured": "This user is already configured for this immich instance." + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::immich::common::data_desc_api_key%]" + }, + "description": "Update the API key for {name}." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "[%key:component::immich::common::data_desc_api_key%]", + "url": "[%key:component::immich::common::data_desc_url%]", + "verify_ssl": "[%key:component::immich::common::data_desc_ssl_verify%]" + } + } } }, "entity": { "sensor": { - "disk_size": { - "name": "Disk size" - }, "disk_available": { "name": "Disk available" }, - "disk_use": { - "name": "Disk used" + "disk_size": { + "name": "Disk size" }, "disk_usage": { "name": "Disk usage" }, + "disk_use": { + "name": "Disk used" + }, "photos_count": { "name": "Photos count", "unit_of_measurement": "photos" }, - "videos_count": { - "name": "Videos count", - "unit_of_measurement": "videos" - }, "usage_by_photos": { "name": "Disk used by photos" }, "usage_by_videos": { "name": "Disk used by videos" + }, + "videos_count": { + "name": "Videos count", + "unit_of_measurement": "videos" } }, "update": { @@ -75,27 +75,10 @@ } } }, - "services": { - "upload_file": { - "name": "Upload file", - "description": "Uploads a file to your Immich instance.", - "fields": { - "config_entry_id": { - "name": "Immich instance", - "description": "The Immich instance where to upload the file." - }, - "file": { - "name": "File", - "description": "The path to the file to be uploaded." - }, - "album_id": { - "name": "Album ID", - "description": "The album in which the file should be placed after uploading." - } - } - } - }, "exceptions": { + "album_not_found": { + "message": "Album with ID `{album_id}` not found ({error})." + }, "config_entry_not_found": { "message": "Config entry not found." }, @@ -105,11 +88,28 @@ "only_local_media_supported": { "message": "Only local media files are currently supported." }, - "album_not_found": { - "message": "Album with ID `{album_id}` not found ({error})." - }, "upload_failed": { "message": "Upload of file `{file}` failed ({error})." } + }, + "services": { + "upload_file": { + "description": "Uploads a file to your Immich instance.", + "fields": { + "album_id": { + "description": "The album in which the file should be placed after uploading.", + "name": "Album ID" + }, + "config_entry_id": { + "description": "The Immich instance where to upload the file.", + "name": "Immich instance" + }, + "file": { + "description": "The path to the file to be uploaded.", + "name": "File" + } + }, + "name": "Upload file" + } } } diff --git a/homeassistant/components/improv_ble/manifest.json b/homeassistant/components/improv_ble/manifest.json index 30af6e111a0..2815df5d7f5 100644 --- a/homeassistant/components/improv_ble/manifest.json +++ b/homeassistant/components/improv_ble/manifest.json @@ -3,8 +3,8 @@ "name": "Improv via BLE", "bluetooth": [ { - "service_uuid": "00467768-6228-2272-4663-277478268000", - "service_data_uuid": "00004677-0000-1000-8000-00805f9b34fb" + "service_data_uuid": "00004677-0000-1000-8000-00805f9b34fb", + "service_uuid": "00467768-6228-2272-4663-277478268000" } ], "codeowners": ["@emontnemery"], diff --git a/homeassistant/components/improv_ble/strings.json b/homeassistant/components/improv_ble/strings.json index 9bf340b9abe..919a52958d2 100644 --- a/homeassistant/components/improv_ble/strings.json +++ b/homeassistant/components/improv_ble/strings.json @@ -1,13 +1,23 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "characteristic_missing": "The device is either already connected to Wi-Fi, or no longer able to connect to Wi-Fi. If you want to connect it to another network, try factory resetting it first.", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "provision_successful": "The device has successfully connected to the Wi-Fi network.", + "provision_successful_url": "The device has successfully connected to the Wi-Fi network.\n\nPlease finish the setup by following the [setup instructions]({url}).", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "unable_to_connect": "The device could not connect to the Wi-Fi network. Check that the SSID and password are correct and try again." + }, "flow_title": "{name}", + "progress": { + "authorize": "The device requires authorization, please press its authorization button or consult the device's manual for how to proceed.", + "provisioning": "The device is connecting to the Wi-Fi network." + }, "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%]" }, @@ -22,28 +32,18 @@ } }, "provision": { - "description": "Enter Wi-Fi credentials to connect the device to your network.", "data": { "password": "Password", "ssid": "SSID" - } + }, + "description": "Enter Wi-Fi credentials to connect the device to your network." + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "progress": { - "authorize": "The device requires authorization, please press its authorization button or consult the device's manual for how to proceed.", - "provisioning": "The device is connecting to the Wi-Fi network." - }, - "error": { - "unable_to_connect": "The device could not connect to the Wi-Fi network. Check that the SSID and password are correct and try again." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "characteristic_missing": "The device is either already connected to Wi-Fi, or no longer able to connect to Wi-Fi. If you want to connect it to another network, try factory resetting it first.", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "provision_successful": "The device has successfully connected to the Wi-Fi network.", - "provision_successful_url": "The device has successfully connected to the Wi-Fi network.\n\nPlease finish the setup by following the [setup instructions]({url}).", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/incomfort/icons.json b/homeassistant/components/incomfort/icons.json index 56ba6f545de..c0c844b7f3d 100644 --- a/homeassistant/components/incomfort/icons.json +++ b/homeassistant/components/incomfort/icons.json @@ -23,29 +23,25 @@ "water_heater": { "boiler": { "state": { - "unknown": "mdi:water-boiler-alert", - "opentherm": "mdi:radiator", "boiler_ext": "mdi:water-boiler", - "frost": "mdi:snowflake-thermometer", - "central_heating_rf": "mdi:radiator", - "tapwater_int": "mdi:faucet", - "sensor_test": "mdi:thermometer-check", - "central_heating": "mdi:radiator", - "standby": "mdi:water-boiler-off", - "off": "mdi:water-boiler-off", - "postrun_boyler": "mdi:water-boiler-auto", - "service": "mdi:progress-wrench", - "tapwater": "mdi:faucet", - "postrun_ch": "mdi:radiator-disabled", "boiler_int": "mdi:water-boiler", "buffer": "mdi:water-boiler-auto", - "sensor_fault_after_self_check_e0": "mdi:thermometer-alert", + "central_heating": "mdi:radiator", + "central_heating_rf": "mdi:radiator", "cv_temperature_too_high_e1": "mdi:thermometer-alert", - "s1_and_s2_interchanged_e2": "mdi:thermometer-alert", - "no_flame_signal_e4": "mdi:fire-alert", - "poor_flame_signal_e5": "mdi:fire-alert", "flame_detection_fault_e6": "mdi:fire-alert", + "frost": "mdi:snowflake-thermometer", + "gas_valve_relay_faulty_e29": "mdi:water-boiler-alert", + "gas_valve_relay_faulty_e30": "mdi:water-boiler-alert", "incorrect_fan_speed_e8": "mdi:water-boiler-alert", + "no_flame_signal_e4": "mdi:fire-alert", + "off": "mdi:water-boiler-off", + "opentherm": "mdi:radiator", + "poor_flame_signal_e5": "mdi:fire-alert", + "postrun_boyler": "mdi:water-boiler-auto", + "postrun_ch": "mdi:radiator-disabled", + "s1_and_s2_interchanged_e2": "mdi:thermometer-alert", + "sensor_fault_after_self_check_e0": "mdi:thermometer-alert", "sensor_fault_s1_e10": "mdi:water-boiler-alert", "sensor_fault_s1_e11": "mdi:water-boiler-alert", "sensor_fault_s1_e12": "mdi:water-boiler-alert", @@ -56,9 +52,13 @@ "sensor_fault_s2_e22": "mdi:water-boiler-alert", "sensor_fault_s2_e23": "mdi:water-boiler-alert", "sensor_fault_s2_e24": "mdi:water-boiler-alert", + "sensor_test": "mdi:thermometer-check", + "service": "mdi:progress-wrench", "shortcut_outside_sensor_temperature_e27": "mdi:thermometer-alert", - "gas_valve_relay_faulty_e29": "mdi:water-boiler-alert", - "gas_valve_relay_faulty_e30": "mdi:water-boiler-alert" + "standby": "mdi:water-boiler-off", + "tapwater": "mdi:faucet", + "tapwater_int": "mdi:faucet", + "unknown": "mdi:water-boiler-alert" } } } diff --git a/homeassistant/components/incomfort/strings.json b/homeassistant/components/incomfort/strings.json index 40673a67609..4f8ec308e7d 100644 --- a/homeassistant/components/incomfort/strings.json +++ b/homeassistant/components/incomfort/strings.json @@ -1,45 +1,5 @@ { "config": { - "step": { - "user": { - "description": "Set up new Intergas gateway. Note that some older systems might not accept credentials to be set up. For newer devices authentication is required.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "Hostname or IP address of the Intergas gateway.", - "username": "The username to log in to the gateway. This is `admin` in most cases.", - "password": "The password to log in to the gateway, is printed at the bottom of the gateway or is `intergas` for some older devices." - } - }, - "dhcp_auth": { - "title": "Set up Intergas gateway", - "description": "Please enter authentication details for gateway {host}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::incomfort::config::step::user::data_description::username%]", - "password": "[%key:component::incomfort::config::step::user::data_description::password%]" - } - }, - "dhcp_confirm": { - "title": "Set up Intergas gateway", - "description": "Do you want to set up the discovered Intergas gateway ({host})?" - }, - "reauth_confirm": { - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "Correct the gateway password." - }, - "description": "Re-authenticate to the gateway." - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", @@ -51,32 +11,45 @@ "not_found": "No gateway found.", "timeout_error": "Timeout when connecting to the gateway.", "unknown": "Unknown error when connecting to the gateway." - } - }, - "exceptions": { - "no_heaters": { - "message": "[%key:component::incomfort::config::error::no_heaters%]" }, - "not_found": { - "message": "[%key:component::incomfort::config::error::not_found%]" - }, - "timeout_error": { - "message": "[%key:component::incomfort::config::error::timeout_error%]" - }, - "unknown": { - "message": "[%key:component::incomfort::config::error::unknown%]" - } - }, - "options": { "step": { - "init": { - "title": "Intergas gateway options", + "dhcp_auth": { "data": { - "legacy_setpoint_status": "Legacy setpoint handling" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "legacy_setpoint_status": "Some older gateway models with an older firmware versions might not update the thermostat setpoint and override settings correctly. Enable this option if you experience issues in updating the setpoint for your thermostat. It will use the actual setpoint of the thermostat instead of the override. As side effect is that it might take a few minutes before the setpoint is updated." - } + "password": "[%key:component::incomfort::config::step::user::data_description::password%]", + "username": "[%key:component::incomfort::config::step::user::data_description::username%]" + }, + "description": "Please enter authentication details for gateway {host}", + "title": "Set up Intergas gateway" + }, + "dhcp_confirm": { + "description": "Do you want to set up the discovered Intergas gateway ({host})?", + "title": "Set up Intergas gateway" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "Correct the gateway password." + }, + "description": "Re-authenticate to the gateway." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "Hostname or IP address of the Intergas gateway.", + "password": "The password to log in to the gateway, is printed at the bottom of the gateway or is `intergas` for some older devices.", + "username": "The username to log in to the gateway. This is `admin` in most cases." + }, + "description": "Set up new Intergas gateway. Note that some older systems might not accept credentials to be set up. For newer devices authentication is required." } } }, @@ -110,29 +83,25 @@ "water_heater": { "boiler": { "state": { - "unknown": "Unknown", - "opentherm": "OpenTherm", "boiler_ext": "Boiler external", - "frost": "Frost protection", - "central_heating_rf": "Central heating rf", - "tapwater_int": "Tap water internal", - "sensor_test": "Sensor test", - "central_heating": "Central heating", - "standby": "[%key:common::state::standby%]", - "off": "[%key:common::state::off%]", - "postrun_boyler": "Post run boiler", - "service": "Service", - "tapwater": "Tap water", - "postrun_ch": "Post run central heating", "boiler_int": "Boiler internal", "buffer": "Buffer", - "sensor_fault_after_self_check_e0": "Sensor fault after self-check", + "central_heating": "Central heating", + "central_heating_rf": "Central heating rf", "cv_temperature_too_high_e1": "Temperature too high", - "s1_and_s2_interchanged_e2": "S1 and S2 interchanged", - "no_flame_signal_e4": "No flame signal", - "poor_flame_signal_e5": "Poor flame signal", "flame_detection_fault_e6": "Flame detection fault", + "frost": "Frost protection", + "gas_valve_relay_faulty_e29": "Gas valve relay faulty", + "gas_valve_relay_faulty_e30": "[%key:component::incomfort::entity::water_heater::boiler::state::gas_valve_relay_faulty_e29%]", "incorrect_fan_speed_e8": "Incorrect fan speed", + "no_flame_signal_e4": "No flame signal", + "off": "[%key:common::state::off%]", + "opentherm": "OpenTherm", + "poor_flame_signal_e5": "Poor flame signal", + "postrun_boyler": "Post run boiler", + "postrun_ch": "Post run central heating", + "s1_and_s2_interchanged_e2": "S1 and S2 interchanged", + "sensor_fault_after_self_check_e0": "Sensor fault after self-check", "sensor_fault_s1_e10": "Sensor fault S1", "sensor_fault_s1_e11": "[%key:component::incomfort::entity::water_heater::boiler::state::sensor_fault_s1_e10%]", "sensor_fault_s1_e12": "[%key:component::incomfort::entity::water_heater::boiler::state::sensor_fault_s1_e10%]", @@ -143,11 +112,42 @@ "sensor_fault_s2_e22": "[%key:component::incomfort::entity::water_heater::boiler::state::sensor_fault_s2_e20%]", "sensor_fault_s2_e23": "[%key:component::incomfort::entity::water_heater::boiler::state::sensor_fault_s2_e20%]", "sensor_fault_s2_e24": "[%key:component::incomfort::entity::water_heater::boiler::state::sensor_fault_s2_e20%]", + "sensor_test": "Sensor test", + "service": "Service", "shortcut_outside_sensor_temperature_e27": "Shortcut outside temperature sensor", - "gas_valve_relay_faulty_e29": "Gas valve relay faulty", - "gas_valve_relay_faulty_e30": "[%key:component::incomfort::entity::water_heater::boiler::state::gas_valve_relay_faulty_e29%]" + "standby": "[%key:common::state::standby%]", + "tapwater": "Tap water", + "tapwater_int": "Tap water internal", + "unknown": "Unknown" } } } + }, + "exceptions": { + "no_heaters": { + "message": "[%key:component::incomfort::config::error::no_heaters%]" + }, + "not_found": { + "message": "[%key:component::incomfort::config::error::not_found%]" + }, + "timeout_error": { + "message": "[%key:component::incomfort::config::error::timeout_error%]" + }, + "unknown": { + "message": "[%key:component::incomfort::config::error::unknown%]" + } + }, + "options": { + "step": { + "init": { + "data": { + "legacy_setpoint_status": "Legacy setpoint handling" + }, + "data_description": { + "legacy_setpoint_status": "Some older gateway models with an older firmware versions might not update the thermostat setpoint and override settings correctly. Enable this option if you experience issues in updating the setpoint for your thermostat. It will use the actual setpoint of the thermostat instead of the override. As side effect is that it might take a few minutes before the setpoint is updated." + }, + "title": "Intergas gateway options" + } + } } } diff --git a/homeassistant/components/inels/icons.json b/homeassistant/components/inels/icons.json index aa111c31f52..f9e47d06c75 100644 --- a/homeassistant/components/inels/icons.json +++ b/homeassistant/components/inels/icons.json @@ -4,10 +4,10 @@ "bit": { "default": "mdi:power-socket-eu" }, - "simple_relay": { + "relay": { "default": "mdi:power-socket-eu" }, - "relay": { + "simple_relay": { "default": "mdi:power-socket-eu" } } diff --git a/homeassistant/components/inels/strings.json b/homeassistant/components/inels/strings.json index e7a81bf1868..fd633a99c7f 100644 --- a/homeassistant/components/inels/strings.json +++ b/homeassistant/components/inels/strings.json @@ -1,17 +1,17 @@ { "config": { + "abort": { + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "mqtt_not_configured": "Home Assistant MQTT integration not configured.", + "mqtt_not_connected": "Home Assistant MQTT integration not connected to MQTT broker." + }, "step": { - "confirm_from_user": { - "description": "iNELS devices must be connected to the same broker as the Home Assistant MQTT integration client. Continue setup?" - }, "confirm_from_mqtt": { "description": "Do you want to set up iNELS?" + }, + "confirm_from_user": { + "description": "iNELS devices must be connected to the same broker as the Home Assistant MQTT integration client. Continue setup?" } - }, - "abort": { - "mqtt_not_connected": "Home Assistant MQTT integration not connected to MQTT broker.", - "mqtt_not_configured": "Home Assistant MQTT integration not configured.", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" } }, "entity": { @@ -19,11 +19,11 @@ "bit": { "name": "Bit{addr}" }, - "simple_relay": { - "name": "Simple relay{index}" - }, "relay": { "name": "Relay{index}" + }, + "simple_relay": { + "name": "Simple relay{index}" } } } diff --git a/homeassistant/components/inkbird/manifest.json b/homeassistant/components/inkbird/manifest.json index 721c462c800..17e3f90aa82 100644 --- a/homeassistant/components/inkbird/manifest.json +++ b/homeassistant/components/inkbird/manifest.json @@ -3,58 +3,58 @@ "name": "INKBIRD", "bluetooth": [ { - "local_name": "sps", - "connectable": false + "connectable": false, + "local_name": "sps" }, { - "local_name": "Inkbird*", - "connectable": false + "connectable": false, + "local_name": "Inkbird*" }, { - "local_name": "iBBQ*", - "connectable": false + "connectable": false, + "local_name": "iBBQ*" }, { - "local_name": "xBBQ*", - "connectable": false + "connectable": false, + "local_name": "xBBQ*" }, { - "local_name": "tps", - "connectable": false + "connectable": false, + "local_name": "tps" }, { - "local_name": "ITH-11-B", - "connectable": false + "connectable": false, + "local_name": "ITH-11-B" }, { - "local_name": "ITH-13-B", - "connectable": false + "connectable": false, + "local_name": "ITH-13-B" }, { - "local_name": "ITH-21-B", - "connectable": false + "connectable": false, + "local_name": "ITH-21-B" }, { - "local_name": "IBS-P02B", - "connectable": false + "connectable": false, + "local_name": "IBS-P02B" }, { - "local_name": "Ink@IAM-T1", - "connectable": true + "connectable": true, + "local_name": "Ink@IAM-T1" }, { - "local_name": "Ink@IAM-T2", - "connectable": true + "connectable": true, + "local_name": "Ink@IAM-T2" }, { - "manufacturer_id": 12628, + "connectable": true, "manufacturer_data_start": [65, 67, 45], - "connectable": true + "manufacturer_id": 12628 }, { - "manufacturer_id": 12884, + "connectable": false, "manufacturer_data_start": [0, 98, 0], - "connectable": false + "manufacturer_id": 12884 } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/inkbird/strings.json b/homeassistant/components/inkbird/strings.json index b8490dfb92a..46cc7ae374c 100644 --- a/homeassistant/components/inkbird/strings.json +++ b/homeassistant/components/inkbird/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } }, "exceptions": { diff --git a/homeassistant/components/input_boolean/icons.json b/homeassistant/components/input_boolean/icons.json index 088c9094b3f..bf65c2d8d7a 100644 --- a/homeassistant/components/input_boolean/icons.json +++ b/homeassistant/components/input_boolean/icons.json @@ -8,6 +8,9 @@ } }, "services": { + "reload": { + "service": "mdi:reload" + }, "toggle": { "service": "mdi:toggle-switch" }, @@ -16,9 +19,6 @@ }, "turn_on": { "service": "mdi:toggle-switch" - }, - "reload": { - "service": "mdi:reload" } } } diff --git a/homeassistant/components/input_boolean/strings.json b/homeassistant/components/input_boolean/strings.json index a2087f1247a..67534bdab82 100644 --- a/homeassistant/components/input_boolean/strings.json +++ b/homeassistant/components/input_boolean/strings.json @@ -1,5 +1,4 @@ { - "title": "Input boolean", "entity_component": { "_": { "name": "[%key:component::input_boolean::title%]", @@ -11,29 +10,30 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } } } } }, "services": { + "reload": { + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles the helper on/off." + "description": "Toggles the helper on/off.", + "name": "[%key:common::action::toggle%]" }, "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns off the helper." + "description": "Turns off the helper.", + "name": "[%key:common::action::turn_off%]" }, "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns on the helper." - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + "description": "Turns on the helper.", + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Input boolean" } diff --git a/homeassistant/components/input_button/strings.json b/homeassistant/components/input_button/strings.json index d36871917a9..c85a69f0383 100644 --- a/homeassistant/components/input_button/strings.json +++ b/homeassistant/components/input_button/strings.json @@ -1,5 +1,4 @@ { - "title": "Input button", "entity_component": { "_": { "name": "[%key:component::input_button::title%]", @@ -7,8 +6,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } } } @@ -16,12 +15,13 @@ }, "services": { "press": { - "name": "Press", - "description": "Mimics the physical button press on the device." + "description": "Mimics the physical button press on the device.", + "name": "Press" }, "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Input button" } diff --git a/homeassistant/components/input_datetime/icons.json b/homeassistant/components/input_datetime/icons.json index f3676f02220..d32372d0d31 100644 --- a/homeassistant/components/input_datetime/icons.json +++ b/homeassistant/components/input_datetime/icons.json @@ -1,10 +1,10 @@ { "services": { - "set_datetime": { - "service": "mdi:calendar-clock" - }, "reload": { "service": "mdi:reload" + }, + "set_datetime": { + "service": "mdi:calendar-clock" } } } diff --git a/homeassistant/components/input_datetime/strings.json b/homeassistant/components/input_datetime/strings.json index e4a2b6349b7..701d2618637 100644 --- a/homeassistant/components/input_datetime/strings.json +++ b/homeassistant/components/input_datetime/strings.json @@ -1,5 +1,4 @@ { - "title": "Input datetime", "entity_component": { "_": { "name": "[%key:component::input_datetime::title%]", @@ -10,8 +9,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "hour": { @@ -36,31 +35,32 @@ } }, "services": { + "reload": { + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, "set_datetime": { - "name": "Set", "description": "Sets the date and/or time.", "fields": { "date": { - "name": "Date", - "description": "The target date." - }, - "time": { - "name": "Time", - "description": "The target time." + "description": "The target date.", + "name": "Date" }, "datetime": { - "name": "Date & time", - "description": "The target date & time." + "description": "The target date & time.", + "name": "Date & time" + }, + "time": { + "description": "The target time.", + "name": "Time" }, "timestamp": { - "name": "Timestamp", - "description": "The target date & time, expressed by a UNIX timestamp." + "description": "The target date & time, expressed by a UNIX timestamp.", + "name": "Timestamp" } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + }, + "name": "Set" } - } + }, + "title": "Input datetime" } diff --git a/homeassistant/components/input_number/icons.json b/homeassistant/components/input_number/icons.json index 9f90582308b..dfebc1f4e75 100644 --- a/homeassistant/components/input_number/icons.json +++ b/homeassistant/components/input_number/icons.json @@ -6,11 +6,11 @@ "increment": { "service": "mdi:plus" }, - "set_value": { - "service": "mdi:numeric" - }, "reload": { "service": "mdi:reload" + }, + "set_value": { + "service": "mdi:numeric" } } } diff --git a/homeassistant/components/input_number/strings.json b/homeassistant/components/input_number/strings.json index ed6b6fad208..ca733c9ca1e 100644 --- a/homeassistant/components/input_number/strings.json +++ b/homeassistant/components/input_number/strings.json @@ -1,5 +1,4 @@ { - "title": "Input number", "entity_component": { "_": { "name": "[%key:component::input_number::title%]", @@ -7,8 +6,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "initial": { @@ -36,26 +35,27 @@ }, "services": { "decrement": { - "name": "Decrement", - "description": "Decrements the current value by 1 step." + "description": "Decrements the current value by 1 step.", + "name": "Decrement" }, "increment": { - "name": "Increment", - "description": "Increments the current value by 1 step." + "description": "Increments the current value by 1 step.", + "name": "Increment" + }, + "reload": { + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" }, "set_value": { - "name": "Set", "description": "Sets the value.", "fields": { "value": { - "name": "Value", - "description": "The target value." + "description": "The target value.", + "name": "Value" } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + }, + "name": "Set" } - } + }, + "title": "Input number" } diff --git a/homeassistant/components/input_select/icons.json b/homeassistant/components/input_select/icons.json index 6ef5cfaf96a..8e70db3c360 100644 --- a/homeassistant/components/input_select/icons.json +++ b/homeassistant/components/input_select/icons.json @@ -1,5 +1,14 @@ { "services": { + "reload": { + "service": "mdi:reload" + }, + "select_first": { + "service": "mdi:skip-backward" + }, + "select_last": { + "service": "mdi:skip-forward" + }, "select_next": { "service": "mdi:skip-next" }, @@ -9,17 +18,8 @@ "select_previous": { "service": "mdi:skip-previous" }, - "select_first": { - "service": "mdi:skip-backward" - }, - "select_last": { - "service": "mdi:skip-forward" - }, "set_options": { "service": "mdi:cog" - }, - "reload": { - "service": "mdi:reload" } } } diff --git a/homeassistant/components/input_select/strings.json b/homeassistant/components/input_select/strings.json index 72fd50f7ec7..f4b261ec22c 100644 --- a/homeassistant/components/input_select/strings.json +++ b/homeassistant/components/input_select/strings.json @@ -1,5 +1,4 @@ { - "title": "Input select", "entity_component": { "_": { "name": "[%key:component::input_select::title%]", @@ -7,8 +6,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "options": { @@ -18,57 +17,58 @@ } }, "services": { + "reload": { + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, + "select_first": { + "description": "Selects the first option.", + "name": "First" + }, + "select_last": { + "description": "Selects the last option.", + "name": "Last" + }, "select_next": { - "name": "Next", "description": "Selects the next option.", "fields": { "cycle": { - "name": "Cycle", - "description": "If the option should cycle from the last to the first option on the list." + "description": "If the option should cycle from the last to the first option on the list.", + "name": "Cycle" } - } + }, + "name": "Next" }, "select_option": { - "name": "Select", "description": "Selects an option.", "fields": { "option": { - "name": "Option", - "description": "Option to be selected." + "description": "Option to be selected.", + "name": "Option" } - } + }, + "name": "Select" }, "select_previous": { - "name": "Previous", "description": "Selects the previous option.", "fields": { "cycle": { - "name": "[%key:component::input_select::services::select_next::fields::cycle::name%]", - "description": "If the option should cycle from the first to the last option on the list." + "description": "If the option should cycle from the first to the last option on the list.", + "name": "[%key:component::input_select::services::select_next::fields::cycle::name%]" } - } - }, - "select_first": { - "name": "First", - "description": "Selects the first option." - }, - "select_last": { - "name": "Last", - "description": "Selects the last option." + }, + "name": "Previous" }, "set_options": { - "name": "Set options", "description": "Sets the options.", "fields": { "options": { - "name": "Options", - "description": "List of options." + "description": "List of options.", + "name": "Options" } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + }, + "name": "Set options" } - } + }, + "title": "Input select" } diff --git a/homeassistant/components/input_text/icons.json b/homeassistant/components/input_text/icons.json index 8fca66668bc..c6799af87cc 100644 --- a/homeassistant/components/input_text/icons.json +++ b/homeassistant/components/input_text/icons.json @@ -1,10 +1,10 @@ { "services": { - "set_value": { - "service": "mdi:form-textbox" - }, "reload": { "service": "mdi:reload" + }, + "set_value": { + "service": "mdi:form-textbox" } } } diff --git a/homeassistant/components/input_text/strings.json b/homeassistant/components/input_text/strings.json index 13a86a329a7..ad55a9b617a 100644 --- a/homeassistant/components/input_text/strings.json +++ b/homeassistant/components/input_text/strings.json @@ -1,5 +1,4 @@ { - "title": "Input text", "entity_component": { "_": { "name": "[%key:component::input_text::title%]", @@ -7,8 +6,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "max": { @@ -20,8 +19,8 @@ "mode": { "name": "[%key:common::config_flow::data::mode%]", "state": { - "text": "[%key:component::text::entity_component::_::state_attributes::mode::state::text%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "text": "[%key:component::text::entity_component::_::state_attributes::mode::state::text%]" } }, "pattern": { @@ -31,19 +30,20 @@ } }, "services": { + "reload": { + "description": "Reloads helpers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, "set_value": { - "name": "Set", "description": "Sets the value.", "fields": { "value": { - "name": "Value", - "description": "The target value." + "description": "The target value.", + "name": "Value" } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads helpers from the YAML-configuration." + }, + "name": "Set" } - } + }, + "title": "Input text" } diff --git a/homeassistant/components/insteon/icons.json b/homeassistant/components/insteon/icons.json index 530006ca7d4..41e3f5fd960 100644 --- a/homeassistant/components/insteon/icons.json +++ b/homeassistant/components/insteon/icons.json @@ -3,6 +3,9 @@ "add_all_link": { "service": "mdi:link-variant" }, + "add_default_links": { + "service": "mdi:link-variant-plus" + }, "delete_all_link": { "service": "mdi:link-variant-remove" }, @@ -15,23 +18,20 @@ "print_im_all_link_database": { "service": "mdi:database-export" }, - "x10_all_units_off": { - "service": "mdi:power-off" - }, - "x10_all_lights_on": { - "service": "mdi:lightbulb-on" - }, - "x10_all_lights_off": { - "service": "mdi:lightbulb-off" + "scene_off": { + "service": "mdi:palette-outline" }, "scene_on": { "service": "mdi:palette" }, - "scene_off": { - "service": "mdi:palette-outline" + "x10_all_lights_off": { + "service": "mdi:lightbulb-off" }, - "add_default_links": { - "service": "mdi:link-variant-plus" + "x10_all_lights_on": { + "service": "mdi:lightbulb-on" + }, + "x10_all_units_off": { + "service": "mdi:power-off" } } } diff --git a/homeassistant/components/insteon/strings.json b/homeassistant/components/insteon/strings.json index dedbc9c4fa9..e8781bcc662 100644 --- a/homeassistant/components/insteon/strings.json +++ b/homeassistant/components/insteon/strings.json @@ -1,226 +1,226 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Select the Insteon modem type.", - "menu_options": { - "plm": "PowerLink Modem (PLM)", - "hubv1": "Hub version 1 (pre 2014)", - "hubv2": "Hub version 2" - } - }, - "plm": { - "title": "Insteon PLM", - "description": "Configure the Insteon PowerLink Modem (PLM).", - "data": { - "device": "[%key:common::config_flow::data::usb_path%]" - } - }, - "hubv1": { - "title": "Insteon Hub version 1", - "description": "Configure the Insteon Hub version 1 (pre-2014).", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "hubv2": { - "title": "Insteon Hub version 2", - "description": "Configure the Insteon Hub version 2.", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "confirm_usb": { - "description": "Do you want to set up {name}?" - } + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "not_insteon_device": "Discovered device not an Insteon device" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "not_insteon_device": "Discovered device not an Insteon device" + "flow_title": "{name}", + "step": { + "confirm_usb": { + "description": "Do you want to set up {name}?" + }, + "hubv1": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "Configure the Insteon Hub version 1 (pre-2014).", + "title": "Insteon Hub version 1" + }, + "hubv2": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Configure the Insteon Hub version 2.", + "title": "Insteon Hub version 2" + }, + "plm": { + "data": { + "device": "[%key:common::config_flow::data::usb_path%]" + }, + "description": "Configure the Insteon PowerLink Modem (PLM).", + "title": "Insteon PLM" + }, + "user": { + "description": "Select the Insteon modem type.", + "menu_options": { + "hubv1": "Hub version 1 (pre 2014)", + "hubv2": "Hub version 2", + "plm": "PowerLink Modem (PLM)" + } + } } }, "options": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "input_error": "Invalid entries, please check your values." + }, "step": { - "init": { - "menu_options": { - "change_hub_config": "Change the Hub configuration.", - "change_plm_config": "Change the PLM configuration.", - "add_override": "Add a device override.", - "add_x10": "Add an X10 device.", - "remove_override": "Remove a device override.", - "remove_x10": "Remove an X10 device." - } - }, - "change_hub_config": { - "description": "Change the Insteon Hub connection information.", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "change_plm_config": { - "description": "Change the Insteon PLM connection information.", - "data": { - "device": "[%key:common::config_flow::data::usb_path%]" - } - }, "add_override": { - "description": "[%key:component::insteon::options::step::init::menu_options::add_override%]", "data": { "address": "Device address (i.e. 1a2b3c)", "cat": "Device category (i.e. 0x10)", "subcat": "Device subcategory (i.e. 0x0a)" - } + }, + "description": "[%key:component::insteon::options::step::init::menu_options::add_override%]" }, "add_x10": { - "description": "Change the Insteon Hub password.", "data": { "housecode": "Housecode (a - p)", - "unitcode": "Unitcode (1 - 16)", "platform": "Platform", - "steps": "Dimmer steps (for light devices only, default 22)" + "steps": "Dimmer steps (for light devices only, default 22)", + "unitcode": "Unitcode (1 - 16)" + }, + "description": "Change the Insteon Hub password." + }, + "change_hub_config": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Change the Insteon Hub connection information." + }, + "change_plm_config": { + "data": { + "device": "[%key:common::config_flow::data::usb_path%]" + }, + "description": "Change the Insteon PLM connection information." + }, + "init": { + "menu_options": { + "add_override": "Add a device override.", + "add_x10": "Add an X10 device.", + "change_hub_config": "Change the Hub configuration.", + "change_plm_config": "Change the PLM configuration.", + "remove_override": "Remove a device override.", + "remove_x10": "Remove an X10 device." } }, "remove_override": { - "description": "Remove a device override", "data": { "address": "Select a device address to remove" - } + }, + "description": "Remove a device override" }, "remove_x10": { - "description": "Remove an X10 device", "data": { "address": "[%key:component::insteon::options::step::remove_override::data::address%]" - } + }, + "description": "Remove an X10 device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "input_error": "Invalid entries, please check your values." } }, "services": { "add_all_link": { - "name": "Add All-Link", "description": "Tells the Insteon Modem (IM) start All-Linking mode. Once the IM is in All-Linking mode, press the link button on the device to complete All-Linking.", "fields": { "group": { - "name": "Group", - "description": "All-Link group number." + "description": "All-Link group number.", + "name": "Group" }, "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Linking mode of the Insteon Modem." + "description": "Linking mode of the Insteon Modem.", + "name": "[%key:common::config_flow::data::mode%]" } - } - }, - "delete_all_link": { - "name": "Delete All-Link", - "description": "Tells the Insteon Modem (IM) to remove an All-Link record from the All-Link database of the IM and a device. Once the IM is set to delete the link, press the link button on the corresponding device to complete the process.", - "fields": { - "group": { - "name": "Group", - "description": "[%key:component::insteon::services::add_all_link::fields::group::description%]" - } - } - }, - "load_all_link_database": { - "name": "Load All-Link database", - "description": "Loads the All-Link database for a device. WARNING - Loading a device All-Link database is very time consuming and inconsistent. This may take a LONG time and may need to be repeated to obtain all records.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of the device to load. Use \"all\" to load the database of all devices." - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "If enabled, all current records are cleared from memory (does not affect the device) and reloaded. Otherwise the existing records are left in place and only missing records are added." - } - } - }, - "print_all_link_database": { - "name": "Print All-Link database", - "description": "Prints the All-Link database for a device. Requires that the All-Link database is loaded into memory.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of the device to print." - } - } - }, - "print_im_all_link_database": { - "name": "Print IM All-Link database", - "description": "Prints the All-Link database for the INSTEON Modem (IM)." - }, - "x10_all_units_off": { - "name": "X10 all units off", - "description": "Sends X10 'All units off' command.", - "fields": { - "housecode": { - "name": "Housecode", - "description": "X10 house code." - } - } - }, - "x10_all_lights_on": { - "name": "X10 all lights on", - "description": "Sends X10 'All lights on' command.", - "fields": { - "housecode": { - "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]", - "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]" - } - } - }, - "x10_all_lights_off": { - "name": "X10 all lights off", - "description": "Sends X10 'All lights off' command.", - "fields": { - "housecode": { - "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]", - "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]" - } - } - }, - "scene_on": { - "name": "Scene on", - "description": "Triggers an INSTEON scene to turn ON.", - "fields": { - "group": { - "name": "Group", - "description": "INSTEON group or scene number." - } - } - }, - "scene_off": { - "name": "Scene off", - "description": "Triggers an INSTEON scene to turn OFF.", - "fields": { - "group": { - "name": "Group", - "description": "[%key:component::insteon::services::scene_on::fields::group::description%]" - } - } + }, + "name": "Add All-Link" }, "add_default_links": { - "name": "Add default links", "description": "Adds the default links between the device and the Insteon Modem (IM).", "fields": { "entity_id": { - "name": "Entity", - "description": "[%key:component::insteon::services::load_all_link_database::fields::entity_id::description%]" + "description": "[%key:component::insteon::services::load_all_link_database::fields::entity_id::description%]", + "name": "Entity" } - } + }, + "name": "Add default links" + }, + "delete_all_link": { + "description": "Tells the Insteon Modem (IM) to remove an All-Link record from the All-Link database of the IM and a device. Once the IM is set to delete the link, press the link button on the corresponding device to complete the process.", + "fields": { + "group": { + "description": "[%key:component::insteon::services::add_all_link::fields::group::description%]", + "name": "Group" + } + }, + "name": "Delete All-Link" + }, + "load_all_link_database": { + "description": "Loads the All-Link database for a device. WARNING - Loading a device All-Link database is very time consuming and inconsistent. This may take a LONG time and may need to be repeated to obtain all records.", + "fields": { + "entity_id": { + "description": "Name of the device to load. Use \"all\" to load the database of all devices.", + "name": "Entity" + }, + "reload": { + "description": "If enabled, all current records are cleared from memory (does not affect the device) and reloaded. Otherwise the existing records are left in place and only missing records are added.", + "name": "[%key:common::action::reload%]" + } + }, + "name": "Load All-Link database" + }, + "print_all_link_database": { + "description": "Prints the All-Link database for a device. Requires that the All-Link database is loaded into memory.", + "fields": { + "entity_id": { + "description": "Name of the device to print.", + "name": "Entity" + } + }, + "name": "Print All-Link database" + }, + "print_im_all_link_database": { + "description": "Prints the All-Link database for the INSTEON Modem (IM).", + "name": "Print IM All-Link database" + }, + "scene_off": { + "description": "Triggers an INSTEON scene to turn OFF.", + "fields": { + "group": { + "description": "[%key:component::insteon::services::scene_on::fields::group::description%]", + "name": "Group" + } + }, + "name": "Scene off" + }, + "scene_on": { + "description": "Triggers an INSTEON scene to turn ON.", + "fields": { + "group": { + "description": "INSTEON group or scene number.", + "name": "Group" + } + }, + "name": "Scene on" + }, + "x10_all_lights_off": { + "description": "Sends X10 'All lights off' command.", + "fields": { + "housecode": { + "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]", + "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]" + } + }, + "name": "X10 all lights off" + }, + "x10_all_lights_on": { + "description": "Sends X10 'All lights on' command.", + "fields": { + "housecode": { + "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]", + "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]" + } + }, + "name": "X10 all lights on" + }, + "x10_all_units_off": { + "description": "Sends X10 'All units off' command.", + "fields": { + "housecode": { + "description": "X10 house code.", + "name": "Housecode" + } + }, + "name": "X10 all units off" } } } diff --git a/homeassistant/components/integration/strings.json b/homeassistant/components/integration/strings.json index ddd0d42ca39..0da7a1438b0 100644 --- a/homeassistant/components/integration/strings.json +++ b/homeassistant/components/integration/strings.json @@ -1,25 +1,24 @@ { - "title": "Integral sensor", "config": { "step": { "user": { - "title": "Create Riemann sum integral sensor", - "description": "Create a sensor that calculates a Riemann sum to estimate the integral of a sensor.", "data": { + "max_sub_interval": "Max sub-interval", "method": "Integration method", "name": "[%key:common::config_flow::data::name%]", "round": "Precision", "source": "Input sensor", "unit_prefix": "Metric prefix", - "unit_time": "Time unit", - "max_sub_interval": "Max sub-interval" + "unit_time": "Time unit" }, "data_description": { + "max_sub_interval": "Applies time-based integration if the source did not change for this duration. Use 0 for no time-based updates.", "round": "Controls the number of decimal digits in the output.", "unit_prefix": "The output will be scaled according to the selected metric prefix.", - "unit_time": "The output will be scaled according to the selected time unit.", - "max_sub_interval": "Applies time-based integration if the source did not change for this duration. Use 0 for no time-based updates." - } + "unit_time": "The output will be scaled according to the selected time unit." + }, + "description": "Create a sensor that calculates a Riemann sum to estimate the integral of a sensor.", + "title": "Create Riemann sum integral sensor" } } }, @@ -27,18 +26,18 @@ "step": { "init": { "data": { + "max_sub_interval": "[%key:component::integration::config::step::user::data::max_sub_interval%]", "method": "[%key:component::integration::config::step::user::data::method%]", "round": "[%key:component::integration::config::step::user::data::round%]", "source": "[%key:component::integration::config::step::user::data::source%]", "unit_prefix": "[%key:component::integration::config::step::user::data::unit_prefix%]", - "unit_time": "[%key:component::integration::config::step::user::data::unit_time%]", - "max_sub_interval": "[%key:component::integration::config::step::user::data::max_sub_interval%]" + "unit_time": "[%key:component::integration::config::step::user::data::unit_time%]" }, "data_description": { + "max_sub_interval": "[%key:component::integration::config::step::user::data_description::max_sub_interval%]", "round": "[%key:component::integration::config::step::user::data_description::round%]", "unit_prefix": "[%key:component::integration::config::step::user::data_description::unit_prefix%]", - "unit_time": "[%key:component::integration::config::step::user::data_description::unit_time%]", - "max_sub_interval": "[%key:component::integration::config::step::user::data_description::max_sub_interval%]" + "unit_time": "[%key:component::integration::config::step::user::data_description::unit_time%]" } } } @@ -46,18 +45,19 @@ "selector": { "method": { "options": { - "trapezoidal": "Trapezoidal rule", "left": "Left Riemann sum", - "right": "Right Riemann sum" + "right": "Right Riemann sum", + "trapezoidal": "Trapezoidal rule" } }, "unit_time": { "options": { - "s": "Seconds", - "min": "Minutes", + "d": "Days", "h": "Hours", - "d": "Days" + "min": "Minutes", + "s": "Seconds" } } - } + }, + "title": "Integral sensor" } diff --git a/homeassistant/components/intellifire/icons.json b/homeassistant/components/intellifire/icons.json index fd6a2c149a7..0899804ebe9 100644 --- a/homeassistant/components/intellifire/icons.json +++ b/homeassistant/components/intellifire/icons.json @@ -1,17 +1,12 @@ { "entity": { "binary_sensor": { - "flame": { - "default": "mdi:fire" - }, - "timer_on": { - "default": "mdi:camera-timer" - }, - "pilot_light_on": { - "default": "mdi:fire-alert" - }, - "thermostat_on": { - "default": "mdi:home-thermometer-outline" + "cloud_connectivity": { + "default": "mdi:cloud-question", + "state": { + "off": "mdi:cloud-alert-outline", + "on": "mdi:cloud-check-variant-outline" + } }, "fan_delay_error": { "default": "mdi:fan-alert" @@ -19,19 +14,24 @@ "fan_error": { "default": "mdi:fan-alert" }, + "flame": { + "default": "mdi:fire" + }, "local_connectivity": { "default": "mdi:lan-pending", "state": { - "on": "mdi:lan-connect", - "off": "mdi:lan-disconnect" + "off": "mdi:lan-disconnect", + "on": "mdi:lan-connect" } }, - "cloud_connectivity": { - "default": "mdi:cloud-question", - "state": { - "on": "mdi:cloud-check-variant-outline", - "off": "mdi:cloud-alert-outline" - } + "pilot_light_on": { + "default": "mdi:fire-alert" + }, + "thermostat_on": { + "default": "mdi:home-thermometer-outline" + }, + "timer_on": { + "default": "mdi:camera-timer" } }, "number": { @@ -40,12 +40,12 @@ } }, "sensor": { - "flame_height": { - "default": "mdi:fire-circle" - }, "fan_speed": { "default": "mdi:fan" }, + "flame_height": { + "default": "mdi:fire-circle" + }, "timer_end_timestamp": { "default": "mdi:timer-sand" } diff --git a/homeassistant/components/intellifire/strings.json b/homeassistant/components/intellifire/strings.json index 7f53cb725b5..7c6c349b564 100644 --- a/homeassistant/components/intellifire/strings.json +++ b/homeassistant/components/intellifire/strings.json @@ -1,84 +1,84 @@ { "config": { - "flow_title": "{serial}", - "step": { - "pick_cloud_device": { - "title": "Configure fireplace", - "description": "Select fireplace by serial number:" - }, - "cloud_api": { - "description": "Authenticate against IntelliFire cloud", - "data_description": { - "username": "Your IntelliFire app username", - "password": "Your IntelliFire app password" - }, - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "no_available_devices": "All available devices have already been configured.", + "not_intellifire_device": "Not an IntelliFire device.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "api_error": "Login failed" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "not_intellifire_device": "Not an IntelliFire device.", - "no_available_devices": "All available devices have already been configured." + "flow_title": "{serial}", + "step": { + "cloud_api": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "data_description": { + "password": "Your IntelliFire app password", + "username": "Your IntelliFire app username" + }, + "description": "Authenticate against IntelliFire cloud" + }, + "pick_cloud_device": { + "description": "Select fireplace by serial number:", + "title": "Configure fireplace" + } } }, "entity": { "binary_sensor": { - "flame": { - "name": "Flame" - }, - "timer_on": { - "name": "Timer on" - }, - "pilot_light_on": { - "name": "Pilot light on" - }, - "thermostat_on": { - "name": "Thermostat on" - }, - "pilot_flame_error": { - "name": "Pilot flame error" - }, - "flame_error": { - "name": "Flame error" - }, - "fan_delay_error": { - "name": "Fan delay error" - }, - "maintenance_error": { - "name": "Maintenance error" - }, - "disabled_error": { - "name": "Disabled error" - }, - "fan_error": { - "name": "Fan error" - }, - "lights_error": { - "name": "Lights error" - }, "accessory_error": { "name": "Accessory error" }, - "soft_lock_out_error": { - "name": "Soft lock out error" - }, - "ecm_offline_error": { - "name": "ECM offline error" - }, - "offline_error": { - "name": "Offline error" - }, "cloud_connectivity": { "name": "Cloud connectivity" }, + "disabled_error": { + "name": "Disabled error" + }, + "ecm_offline_error": { + "name": "ECM offline error" + }, + "fan_delay_error": { + "name": "Fan delay error" + }, + "fan_error": { + "name": "Fan error" + }, + "flame": { + "name": "Flame" + }, + "flame_error": { + "name": "Flame error" + }, + "lights_error": { + "name": "Lights error" + }, "local_connectivity": { "name": "Local connectivity" + }, + "maintenance_error": { + "name": "Maintenance error" + }, + "offline_error": { + "name": "Offline error" + }, + "pilot_flame_error": { + "name": "Pilot flame error" + }, + "pilot_light_on": { + "name": "Pilot light on" + }, + "soft_lock_out_error": { + "name": "Soft lock out error" + }, + "thermostat_on": { + "name": "Thermostat on" + }, + "timer_on": { + "name": "Timer on" } }, "fan": { @@ -97,32 +97,32 @@ } }, "sensor": { - "flame_height": { - "name": "Flame height" - }, - "target_temp": { - "name": "Target temperature" - }, - "fan_speed": { - "name": "Fan speed" - }, - "timer_end_timestamp": { - "name": "Timer end" + "connection_quality": { + "name": "Connection quality" }, "downtime": { "name": "Downtime" }, - "uptime": { - "name": "Uptime" - }, - "connection_quality": { - "name": "Connection quality" - }, "ecm_latency": { "name": "ECM latency" }, + "fan_speed": { + "name": "Fan speed" + }, + "flame_height": { + "name": "Flame height" + }, "ipv4_address": { "name": "IP address" + }, + "target_temp": { + "name": "Target temperature" + }, + "timer_end_timestamp": { + "name": "Timer end" + }, + "uptime": { + "name": "Uptime" } }, "switch": { diff --git a/homeassistant/components/intent_script/strings.json b/homeassistant/components/intent_script/strings.json index 74ddd45c1af..975b59a8ad3 100644 --- a/homeassistant/components/intent_script/strings.json +++ b/homeassistant/components/intent_script/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads the intent script from the YAML-configuration." + "description": "Reloads the intent script from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/iometer/icons.json b/homeassistant/components/iometer/icons.json index 8c71684f859..23a4701e47a 100644 --- a/homeassistant/components/iometer/icons.json +++ b/homeassistant/components/iometer/icons.json @@ -21,8 +21,8 @@ "default": "mdi:eye", "state": { "entered": "mdi:lock-open", - "pending": "mdi:lock-clock", "missing": "mdi:lock", + "pending": "mdi:lock-clock", "unknown": "mdi:help" } }, diff --git a/homeassistant/components/iometer/strings.json b/homeassistant/components/iometer/strings.json index 305642d57c5..3c77222bccd 100644 --- a/homeassistant/components/iometer/strings.json +++ b/homeassistant/components/iometer/strings.json @@ -1,36 +1,47 @@ { "config": { - "step": { - "user": { - "description": "Set up your IOmeter device for local data", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the IOmeter device to connect to." - } - }, - "zeroconf_confirm": { - "title": "Discovered IOmeter", - "description": "Do you want to set up IOmeter on the meter with meter number: {meter_number}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" }, "error": { - "no_status": "No status received from the IOmeter. Check your device status in the IOmeter app", - "no_readings": "No readings received from the IOmeter. Please attach the IOmeter Core to the electricity meter and wait for the first reading.", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_readings": "No readings received from the IOmeter. Please attach the IOmeter Core to the electricity meter and wait for the first reading.", + "no_status": "No status received from the IOmeter. Check your device status in the IOmeter app", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the IOmeter device to connect to." + }, + "description": "Set up your IOmeter device for local data" + }, + "zeroconf_confirm": { + "description": "Do you want to set up IOmeter on the meter with meter number: {meter_number}?", + "title": "Discovered IOmeter" + } } }, "entity": { + "binary_sensor": { + "attachment_status": { + "name": "Core attachment status" + }, + "connection_status": { + "name": "Core/Bridge connection status" + } + }, "sensor": { "battery_level": { "name": "Battery level" }, + "core_bridge_rssi": { + "name": "Signal strength Core/Bridge" + }, "meter_number": { "name": "Meter number" }, @@ -38,8 +49,8 @@ "name": "PIN status", "state": { "entered": "Entered", - "pending": "Pending", "missing": "Missing", + "pending": "Pending", "unknown": "Unknown" } }, @@ -56,20 +67,9 @@ "total_production": { "name": "Total production" }, - "core_bridge_rssi": { - "name": "Signal strength Core/Bridge" - }, "wifi_rssi": { "name": "Signal strength Wi-Fi" } - }, - "binary_sensor": { - "connection_status": { - "name": "Core/Bridge connection status" - }, - "attachment_status": { - "name": "Core attachment status" - } } } } diff --git a/homeassistant/components/ios/strings.json b/homeassistant/components/ios/strings.json index 6c77209e317..1fb7ac74aae 100644 --- a/homeassistant/components/ios/strings.json +++ b/homeassistant/components/ios/strings.json @@ -1,12 +1,12 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, "entity": { diff --git a/homeassistant/components/iotawatt/strings.json b/homeassistant/components/iotawatt/strings.json index 01a82b721a2..aa69f8d5fd5 100644 --- a/homeassistant/components/iotawatt/strings.json +++ b/homeassistant/components/iotawatt/strings.json @@ -1,6 +1,18 @@ { "config": { + "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": { + "auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "The IoTawatt device requires authentication. Please enter the username and password and select the Submit button." + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -8,19 +20,7 @@ "data_description": { "host": "The hostname or IP address of your IoTaWatt device." } - }, - "auth": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "description": "The IoTawatt device requires authentication. Please enter the username and password and select the Submit button." } - }, - "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%]" } } } diff --git a/homeassistant/components/iotty/strings.json b/homeassistant/components/iotty/strings.json index cf9a8fbb877..91358cffeda 100644 --- a/homeassistant/components/iotty/strings.json +++ b/homeassistant/components/iotty/strings.json @@ -1,28 +1,28 @@ { "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%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "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%]", - "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } } } diff --git a/homeassistant/components/iperf3/strings.json b/homeassistant/components/iperf3/strings.json index 4c6c68b9573..9fa228de257 100644 --- a/homeassistant/components/iperf3/strings.json +++ b/homeassistant/components/iperf3/strings.json @@ -1,14 +1,14 @@ { "services": { "speedtest": { - "name": "Speedtest", "description": "Immediately executes a speed test with iperf3.", "fields": { "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "The host name of the iperf3 server (already configured) to run a test with." + "description": "The host name of the iperf3 server (already configured) to run a test with.", + "name": "[%key:common::config_flow::data::host%]" } - } + }, + "name": "Speedtest" } } } diff --git a/homeassistant/components/ipma/strings.json b/homeassistant/components/ipma/strings.json index ff9c23dd7ca..359b2b64f36 100644 --- a/homeassistant/components/ipma/strings.json +++ b/homeassistant/components/ipma/strings.json @@ -1,27 +1,22 @@ { "config": { - "step": { - "user": { - "title": "[%key:common::config_flow::data::location%]", - "description": "Instituto Portugu\u00eas do Mar e Atmosfera", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "mode": "[%key:common::config_flow::data::mode%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" }, "error": { "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" - } - }, - "system_health": { - "info": { - "api_endpoint_reachable": "IPMA API endpoint reachable" + "step": { + "user": { + "data": { + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "mode": "[%key:common::config_flow::data::mode%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "Instituto Portugu\u00eas do Mar e Atmosfera", + "title": "[%key:common::config_flow::data::location%]" + } } }, "entity": { @@ -35,12 +30,17 @@ "weather_alert": { "name": "Weather Alert", "state": { - "red": "Red", - "yellow": "Yellow", + "green": "Green", "orange": "Orange", - "green": "Green" + "red": "Red", + "yellow": "Yellow" } } } + }, + "system_health": { + "info": { + "api_endpoint_reachable": "IPMA API endpoint reachable" + } } } diff --git a/homeassistant/components/ipp/icons.json b/homeassistant/components/ipp/icons.json index 08abebf674d..1469ba01518 100644 --- a/homeassistant/components/ipp/icons.json +++ b/homeassistant/components/ipp/icons.json @@ -1,14 +1,14 @@ { "entity": { "sensor": { + "marker": { + "default": "mdi:water" + }, "printer": { "default": "mdi:printer" }, "uptime": { "default": "mdi:clock-outline" - }, - "marker": { - "default": "mdi:water" } } } diff --git a/homeassistant/components/ipp/strings.json b/homeassistant/components/ipp/strings.json index b4c092c8ae3..2bb9f08a701 100644 --- a/homeassistant/components/ipp/strings.json +++ b/homeassistant/components/ipp/strings.json @@ -1,27 +1,5 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Link your printer", - "description": "Set up your printer via Internet Printing Protocol (IPP) to integrate with Home Assistant.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "base_path": "Relative path to the printer", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "zeroconf_confirm": { - "description": "Do you want to set up {name}?", - "title": "Discovered printer" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "connection_upgrade": "Failed to connect to printer. Please try again with SSL/TLS option checked." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -30,14 +8,36 @@ "ipp_version_error": "IPP version not supported by printer.", "parse_error": "Failed to parse response from printer.", "unique_id_required": "Device missing unique identification required for discovery." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "connection_upgrade": "Failed to connect to printer. Please try again with SSL/TLS option checked." + }, + "flow_title": "{name}", + "step": { + "user": { + "data": { + "base_path": "Relative path to the printer", + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]", + "ssl": "[%key:common::config_flow::data::ssl%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "Set up your printer via Internet Printing Protocol (IPP) to integrate with Home Assistant.", + "title": "Link your printer" + }, + "zeroconf_confirm": { + "description": "Do you want to set up {name}?", + "title": "Discovered printer" + } } }, "entity": { "sensor": { "printer": { "state": { - "printing": "Printing", "idle": "[%key:common::state::idle%]", + "printing": "Printing", "stopped": "[%key:common::state::stopped%]" } }, diff --git a/homeassistant/components/iqvia/strings.json b/homeassistant/components/iqvia/strings.json index a0697a6c210..68678dc07b5 100644 --- a/homeassistant/components/iqvia/strings.json +++ b/homeassistant/components/iqvia/strings.json @@ -1,18 +1,18 @@ { "config": { - "step": { - "user": { - "description": "Fill out your U.S. or Canadian ZIP code.", - "data": { - "zip_code": "ZIP code" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "invalid_zip_code": "ZIP code is invalid" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "zip_code": "ZIP code" + }, + "description": "Fill out your U.S. or Canadian ZIP code." + } } } } diff --git a/homeassistant/components/irm_kmi/strings.json b/homeassistant/components/irm_kmi/strings.json index 810b61fc276..930be6496f1 100644 --- a/homeassistant/components/irm_kmi/strings.json +++ b/homeassistant/components/irm_kmi/strings.json @@ -1,5 +1,4 @@ { - "title": "Royal Meteorological Institute of Belgium", "common": { "language_override_description": "Override the Home Assistant language for the textual weather forecast." }, @@ -9,6 +8,9 @@ "api_error": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, + "error": { + "out_of_benelux": "The location is outside of Benelux. Pick a location in Benelux." + }, "step": { "user": { "data": { @@ -18,33 +20,31 @@ "location": "[%key:common::config_flow::data::location%]" } } - }, - "error": { - "out_of_benelux": "The location is outside of Benelux. Pick a location in Benelux." - } - }, - "selector": { - "language_override": { - "options": { - "none": "Follow Home Assistant server language", - "fr": "French", - "nl": "Dutch", - "de": "German", - "en": "English" - } } }, "options": { "step": { "init": { - "title": "Options", "data": { "language_override": "[%key:common::config_flow::data::language%]" }, "data_description": { "language_override": "[%key:component::irm_kmi::common::language_override_description%]" - } + }, + "title": "Options" } } - } + }, + "selector": { + "language_override": { + "options": { + "de": "German", + "en": "English", + "fr": "French", + "nl": "Dutch", + "none": "Follow Home Assistant server language" + } + } + }, + "title": "Royal Meteorological Institute of Belgium" } diff --git a/homeassistant/components/iron_os/icons.json b/homeassistant/components/iron_os/icons.json index 039ad61cbf4..7cbdcaf1eaf 100644 --- a/homeassistant/components/iron_os/icons.json +++ b/homeassistant/components/iron_os/icons.json @@ -9,52 +9,28 @@ } }, "button": { - "settings_save": { - "default": "mdi:content-save-cog" - }, "settings_reset": { "default": "mdi:refresh" + }, + "settings_save": { + "default": "mdi:content-save-cog" } }, "number": { - "setpoint_temperature": { - "default": "mdi:thermometer" - }, - "sleep_temperature": { - "default": "mdi:thermometer-low" - }, - "sleep_timeout": { - "default": "mdi:timer-sand" - }, - "qc_max_voltage": { - "default": "mdi:flash-alert-outline" - }, - "pd_timeout": { - "default": "mdi:timer-alert-outline" + "accel_sensitivity": { + "default": "mdi:motion" }, "boost_temp": { "default": "mdi:thermometer-high" }, - "shutdown_timeout": { - "default": "mdi:thermometer-off" + "calibration_offset": { + "default": "mdi:contrast" }, "display_brightness": { "default": "mdi:brightness-6" }, - "voltage_div": { - "default": "mdi:call-split" - }, - "temp_increment_short": { - "default": "mdi:gesture-tap-button" - }, - "temp_increment_long": { - "default": "mdi:gesture-tap-button" - }, - "accel_sensitivity": { - "default": "mdi:motion" - }, - "calibration_offset": { - "default": "mdi:contrast" + "hall_effect_sleep_time": { + "default": "mdi:timer-sand" }, "hall_sensitivity": { "default": "mdi:leak" @@ -71,58 +47,110 @@ "min_voltage_per_cell": { "default": "mdi:fuel-cell" }, + "pd_timeout": { + "default": "mdi:timer-alert-outline" + }, "power_limit": { "default": "mdi:flash-alert" }, - "hall_effect_sleep_time": { + "qc_max_voltage": { + "default": "mdi:flash-alert-outline" + }, + "setpoint_temperature": { + "default": "mdi:thermometer" + }, + "shutdown_timeout": { + "default": "mdi:thermometer-off" + }, + "sleep_temperature": { + "default": "mdi:thermometer-low" + }, + "sleep_timeout": { "default": "mdi:timer-sand" + }, + "temp_increment_long": { + "default": "mdi:gesture-tap-button" + }, + "temp_increment_short": { + "default": "mdi:gesture-tap-button" + }, + "voltage_div": { + "default": "mdi:call-split" } }, "select": { - "locking_mode": { - "default": "mdi:download-lock" - }, - "orientation_mode": { - "default": "mdi:screen-rotation" + "animation_speed": { + "default": "mdi:image-refresh" }, "autostart_mode": { "default": "mdi:power-standby" }, - "animation_speed": { - "default": "mdi:image-refresh" + "desc_scroll_speed": { + "default": "mdi:message-text-fast" + }, + "locking_mode": { + "default": "mdi:download-lock" + }, + "logo_duration": { + "default": "mdi:clock-digital" }, "min_dc_voltage_cells": { "default": "mdi:fuel-cell" }, + "orientation_mode": { + "default": "mdi:screen-rotation" + }, "temp_unit": { "default": "mdi:temperature-celsius", "state": { "fahrenheit": "mdi:temperature-fahrenheit" } }, - "desc_scroll_speed": { - "default": "mdi:message-text-fast" - }, - "logo_duration": { - "default": "mdi:clock-digital" + "tip_type": { + "default": "mdi:pencil-outline" }, "usb_pd_mode": { "default": "mdi:meter-electric-outline" - }, - "tip_type": { - "default": "mdi:pencil-outline" } }, "sensor": { - "live_temperature": { - "default": "mdi:soldering-iron" + "estimated_power": { + "default": "mdi:flash" }, - "voltage": { - "default": "mdi:current-dc" + "hall_sensor": { + "default": "mdi:leak" }, "handle_temperature": { "default": "mdi:grease-pencil" }, + "live_temperature": { + "default": "mdi:soldering-iron" + }, + "max_tip_temp_ability": { + "default": "mdi:thermometer-chevron-up" + }, + "movement_time": { + "default": "mdi:clock-fast" + }, + "operating_mode": { + "default": "mdi:format-list-bulleted", + "state": { + "boost": "mdi:rocket-launch", + "cjc_calibration": "mdi:tune-vertical", + "debug": "mdi:bug-play", + "hibernating": "mdi:sleep", + "initialisation_done": "mdi:check-circle", + "settings": "mdi:menu-open", + "sleeping": "mdi:sleep", + "soldering": "mdi:soldering-iron", + "soldering_profile": "mdi:chart-box-outline", + "startup_logo": "mdi:dots-circle", + "startup_warnings": "mdi:alert", + "temperature_adjust": "mdi:thermostat-box", + "thermal_runaway": "mdi:fire-alert", + "usb_pd_debug": "mdi:bug-play" + } + }, "power_pwm_level": { "default": "mdi:square-wave" }, @@ -130,50 +158,22 @@ "default": "mdi:power-plug", "state": { "dc": "mdi:record-circle-outline", - "qc": "mdi:usb-port", + "pd": "mdi:usb-c-port", "pd_vbus": "mdi:usb-c-port", - "pd": "mdi:usb-c-port" + "qc": "mdi:usb-port" } }, "tip_resistance": { "default": "mdi:omega" }, - "hall_sensor": { - "default": "mdi:leak" - }, - "movement_time": { - "default": "mdi:clock-fast" - }, - "max_tip_temp_ability": { - "default": "mdi:thermometer-chevron-up" + "tip_voltage": { + "default": "mdi:sine-wave" }, "uptime": { "default": "mdi:progress-clock" }, - "tip_voltage": { - "default": "mdi:sine-wave" - }, - "operating_mode": { - "default": "mdi:format-list-bulleted", - "state": { - "boost": "mdi:rocket-launch", - "soldering": "mdi:soldering-iron", - "sleeping": "mdi:sleep", - "settings": "mdi:menu-open", - "debug": "mdi:bug-play", - "soldering_profile": "mdi:chart-box-outline", - "temperature_adjust": "mdi:thermostat-box", - "usb_pd_debug": "mdi:bug-play", - "thermal_runaway": "mdi:fire-alert", - "startup_logo": "mdi:dots-circle", - "cjc_calibration": "mdi:tune-vertical", - "startup_warnings": "mdi:alert", - "initialisation_done": "mdi:check-circle", - "hibernating": "mdi:sleep" - } - }, - "estimated_power": { - "default": "mdi:flash" + "voltage": { + "default": "mdi:current-dc" } }, "switch": { @@ -183,6 +183,12 @@ "on": "mdi:animation-play" } }, + "boost": { + "default": "mdi:thermometer-high", + "state": { + "off": "mdi:thermometer-off" + } + }, "calibrate_cjc": { "default": "mdi:tune-vertical" }, @@ -195,26 +201,20 @@ "display_invert": { "default": "mdi:invert-colors" }, - "invert_buttons": { - "default": "mdi:plus-minus-variant" - }, "idle_screen_details": { "default": "mdi:card-bulleted-outline", "state": { "off": "mdi:card-bulleted-off-outline" } }, + "invert_buttons": { + "default": "mdi:plus-minus-variant" + }, "solder_screen_details": { "default": "mdi:card-bulleted-outline", "state": { "off": "mdi:card-bulleted-off-outline" } - }, - "boost": { - "default": "mdi:thermometer-high", - "state": { - "off": "mdi:thermometer-off" - } } } } diff --git a/homeassistant/components/iron_os/manifest.json b/homeassistant/components/iron_os/manifest.json index c50ca236928..1d7827fb2f6 100644 --- a/homeassistant/components/iron_os/manifest.json +++ b/homeassistant/components/iron_os/manifest.json @@ -3,8 +3,8 @@ "name": "IronOS", "bluetooth": [ { - "service_uuid": "9eae1000-9d0d-48c5-aa55-33e27f9bc533", - "connectable": true + "connectable": true, + "service_uuid": "9eae1000-9d0d-48c5-aa55-33e27f9bc533" } ], "codeowners": ["@tr4nt0r"], diff --git a/homeassistant/components/iron_os/strings.json b/homeassistant/components/iron_os/strings.json index 18464dc6dd2..4fbae1a540e 100644 --- a/homeassistant/components/iron_os/strings.json +++ b/homeassistant/components/iron_os/strings.json @@ -1,32 +1,32 @@ { "common": { - "slow": "Slow", - "fast": "Fast" + "fast": "Fast", + "slow": "Slow" }, "config": { - "step": { - "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", - "data": { - "address": "[%key:common::config_flow::data::device%]" - }, - "data_description": { - "address": "Ensure your device is powered on and within Bluetooth range before continuing" - } - }, - "bluetooth_confirm": { - "description": "Do you want to set up {name}?\n\n*Ensure your device is powered on and within Bluetooth range before continuing*" - } - }, "abort": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "bluetooth_confirm": { + "description": "Do you want to set up {name}?\n\n*Ensure your device is powered on and within Bluetooth range before continuing*" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "data_description": { + "address": "Ensure your device is powered on and within Bluetooth range before continuing" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" + } } }, "entity": { @@ -36,110 +36,137 @@ } }, "button": { - "settings_save": { - "name": "Save settings" - }, "settings_reset": { "name": "Restore default settings" + }, + "settings_save": { + "name": "Save settings" } }, "number": { - "setpoint_temperature": { - "name": "Setpoint temperature" - }, - "sleep_temperature": { - "name": "Sleep temperature" - }, - "sleep_timeout": { - "name": "Sleep timeout" - }, - "qc_max_voltage": { - "name": "Quick Charge voltage" - }, - "pd_timeout": { - "name": "Power Delivery timeout" + "accel_sensitivity": { + "name": "Motion sensitivity" }, "boost_temp": { "name": "Boost temperature" }, - "shutdown_timeout": { - "name": "Shutdown timeout" + "calibration_offset": { + "name": "Calibration offset" }, "display_brightness": { "name": "Display brightness" }, - "power_limit": { - "name": "Power limit" - }, - "calibration_offset": { - "name": "Calibration offset" + "hall_effect_sleep_time": { + "name": "Hall sensor sleep timeout" }, "hall_sensitivity": { "name": "Hall effect sensitivity" }, - "min_voltage_per_cell": { - "name": "Min. voltage per cell" - }, - "accel_sensitivity": { - "name": "Motion sensitivity" - }, - "keep_awake_pulse_power": { - "name": "Keep-awake pulse intensity" - }, "keep_awake_pulse_delay": { "name": "Keep-awake pulse delay" }, "keep_awake_pulse_duration": { "name": "Keep-awake pulse duration" }, - "voltage_div": { - "name": "Voltage divider" + "keep_awake_pulse_power": { + "name": "Keep-awake pulse intensity" }, - "temp_increment_short": { - "name": "Short-press temperature step" + "min_voltage_per_cell": { + "name": "Min. voltage per cell" + }, + "pd_timeout": { + "name": "Power Delivery timeout" + }, + "power_limit": { + "name": "Power limit" + }, + "qc_max_voltage": { + "name": "Quick Charge voltage" + }, + "setpoint_temperature": { + "name": "Setpoint temperature" + }, + "shutdown_timeout": { + "name": "Shutdown timeout" + }, + "sleep_temperature": { + "name": "Sleep temperature" + }, + "sleep_timeout": { + "name": "Sleep timeout" }, "temp_increment_long": { "name": "Long-press temperature step" }, - "hall_effect_sleep_time": { - "name": "Hall sensor sleep timeout" + "temp_increment_short": { + "name": "Short-press temperature step" + }, + "voltage_div": { + "name": "Voltage divider" } }, "select": { - "min_dc_voltage_cells": { - "name": "Power source", - "state": { - "no_battery": "External power supply (DC)", - "battery_3s": "3S (3 cells)", - "battery_4s": "4S (4 cells)", - "battery_5s": "5S (5 cells)", - "battery_6s": "6S (6 cells)" - } - }, - "orientation_mode": { - "name": "Display orientation mode", - "state": { - "right_handed": "Right-handed", - "left_handed": "Left-handed", - "auto": "[%key:common::state::auto%]" - } - }, "animation_speed": { "name": "Animation speed", "state": { - "off": "[%key:common::state::off%]", - "slow": "[%key:component::iron_os::common::slow%]", + "fast": "[%key:component::iron_os::common::fast%]", "medium": "[%key:common::state::medium%]", - "fast": "[%key:component::iron_os::common::fast%]" + "off": "[%key:common::state::off%]", + "slow": "[%key:component::iron_os::common::slow%]" } }, "autostart_mode": { "name": "Start-up behavior", "state": { "disabled": "[%key:common::state::disabled%]", - "soldering": "Soldering mode", + "idle": "Idle mode", "sleeping": "Sleeping mode", - "idle": "Idle mode" + "soldering": "Soldering mode" + } + }, + "desc_scroll_speed": { + "name": "Scrolling speed", + "state": { + "fast": "[%key:component::iron_os::common::fast%]", + "slow": "[%key:component::iron_os::common::slow%]" + } + }, + "locking_mode": { + "name": "Button locking mode", + "state": { + "boost_only": "Boost only", + "full_locking": "Full locking", + "off": "[%key:common::state::off%]" + } + }, + "logo_duration": { + "name": "Boot logo duration", + "state": { + "loop": "Loop", + "off": "[%key:common::state::off%]", + "seconds_1": "1 second", + "seconds_2": "2 second", + "seconds_3": "3 second", + "seconds_4": "4 second", + "seconds_5": "5 second" + } + }, + "min_dc_voltage_cells": { + "name": "Power source", + "state": { + "battery_3s": "3S (3 cells)", + "battery_4s": "4S (4 cells)", + "battery_5s": "5S (5 cells)", + "battery_6s": "6S (6 cells)", + "no_battery": "External power supply (DC)" + } + }, + "orientation_mode": { + "name": "Display orientation mode", + "state": { + "auto": "[%key:common::state::auto%]", + "left_handed": "Left-handed", + "right_handed": "Right-handed" } }, "temp_unit": { @@ -149,31 +176,13 @@ "fahrenheit": "Fahrenheit (°F)" } }, - "desc_scroll_speed": { - "name": "Scrolling speed", + "tip_type": { + "name": "Soldering tip type", "state": { - "slow": "[%key:component::iron_os::common::slow%]", - "fast": "[%key:component::iron_os::common::fast%]" - } - }, - "locking_mode": { - "name": "Button locking mode", - "state": { - "off": "[%key:common::state::off%]", - "boost_only": "Boost only", - "full_locking": "Full locking" - } - }, - "logo_duration": { - "name": "Boot logo duration", - "state": { - "off": "[%key:common::state::off%]", - "seconds_1": "1 second", - "seconds_2": "2 second", - "seconds_3": "3 second", - "seconds_4": "4 second", - "seconds_5": "5 second", - "loop": "Loop" + "auto": "Auto sense", + "pine_short": "Pinecil short tip", + "pts200": "PTS200 short tip", + "ts100_long": "TS100 long/Hakko T12 tip" } }, "usb_pd_mode": { @@ -182,27 +191,47 @@ "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]" } - }, - "tip_type": { - "name": "Soldering tip type", - "state": { - "auto": "Auto sense", - "ts100_long": "TS100 long/Hakko T12 tip", - "pine_short": "Pinecil short tip", - "pts200": "PTS200 short tip" - } } }, "sensor": { - "live_temperature": { - "name": "Tip temperature" + "estimated_power": { + "name": "Estimated power" }, - "voltage": { - "name": "DC input voltage" + "hall_sensor": { + "name": "Hall effect strength" }, "handle_temperature": { "name": "Handle temperature" }, + "live_temperature": { + "name": "Tip temperature" + }, + "max_tip_temp_ability": { + "name": "Max tip temperature" + }, + "movement_time": { + "name": "Last movement time" + }, + "operating_mode": { + "name": "Operating mode", + "state": { + "boost": "Boost", + "cjc_calibration": "CJC calibration", + "debug": "Debug", + "hibernating": "Hibernating", + "idle": "[%key:common::state::idle%]", + "initialisation_done": "Initialisation done", + "settings": "Settings", + "sleeping": "Sleeping", + "soldering": "Soldering", + "soldering_profile": "Soldering profile", + "startup_logo": "Booting", + "startup_warnings": "Startup warnings", + "temperature_adjust": "Temperature adjust", + "thermal_runaway": "Thermal runaway", + "usb_pd_debug": "USB PD debug" + } + }, "power_pwm_level": { "name": "Power level" }, @@ -210,87 +239,58 @@ "name": "Power source", "state": { "dc": "DC input", - "qc": "USB Quick Charge", + "pd": "USB Power Delivery", "pd_vbus": "USB PD VBUS", - "pd": "USB Power Delivery" + "qc": "USB Quick Charge" } }, "tip_resistance": { "name": "Tip resistance" }, - "uptime": { - "name": "Uptime" - }, - "movement_time": { - "name": "Last movement time" - }, - "max_tip_temp_ability": { - "name": "Max tip temperature" - }, "tip_voltage": { "name": "Raw tip voltage" }, - "hall_sensor": { - "name": "Hall effect strength" + "uptime": { + "name": "Uptime" }, - "operating_mode": { - "name": "Operating mode", - "state": { - "idle": "[%key:common::state::idle%]", - "soldering": "Soldering", - "sleeping": "Sleeping", - "settings": "Settings", - "debug": "Debug", - "boost": "Boost", - "soldering_profile": "Soldering profile", - "temperature_adjust": "Temperature adjust", - "usb_pd_debug": "USB PD debug", - "thermal_runaway": "Thermal runaway", - "startup_logo": "Booting", - "cjc_calibration": "CJC calibration", - "startup_warnings": "Startup warnings", - "initialisation_done": "Initialisation done", - "hibernating": "Hibernating" - } - }, - "estimated_power": { - "name": "Estimated power" + "voltage": { + "name": "DC input voltage" } }, "switch": { "animation_loop": { "name": "Animation loop" }, - "cooling_temp_blink": { - "name": "Cool down screen flashing" - }, - "idle_screen_details": { - "name": "Detailed idle screen" - }, - "solder_screen_details": { - "name": "Detailed solder screen" - }, - "invert_buttons": { - "name": "Swap +/- buttons" - }, - "display_invert": { - "name": "Invert screen" + "boost": { + "name": "Boost" }, "calibrate_cjc": { "name": "Calibrate CJC" }, - "boost": { - "name": "Boost" + "cooling_temp_blink": { + "name": "Cool down screen flashing" + }, + "display_invert": { + "name": "Invert screen" + }, + "idle_screen_details": { + "name": "Detailed idle screen" + }, + "invert_buttons": { + "name": "Swap +/- buttons" + }, + "solder_screen_details": { + "name": "Detailed solder screen" } } }, "exceptions": { - "submit_setting_failed": { - "message": "Failed to submit setting to device, try again later" - }, "cannot_connect": { "message": "Cannot connect to device {name}" }, + "submit_setting_failed": { + "message": "Failed to submit setting to device, try again later" + }, "update_check_failed": { "message": "Failed to check for latest IronOS update" } diff --git a/homeassistant/components/iskra/strings.json b/homeassistant/components/iskra/strings.json index ee62974c90d..701f347a623 100644 --- a/homeassistant/components/iskra/strings.json +++ b/homeassistant/components/iskra/strings.json @@ -1,92 +1,48 @@ { "config": { - "step": { - "user": { - "title": "Configure Iskra device", - "description": "Enter the IP address of your Iskra device and select protocol.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Iskra device." - } - }, - "authentication": { - "title": "Configure REST API credentials", - "description": "Enter username and password", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "modbus_tcp": { - "title": "Configure Modbus TCP", - "description": "Enter Modbus TCP port and device's Modbus address.", - "data": { - "port": "[%key:common::config_flow::data::port%]", - "address": "Modbus address" - }, - "data_description": { - "port": "Port number can be found in the device's settings menu.", - "address": "Modbus address can be found in the device's settings menu." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "selector": { - "protocol": { - "options": { - "rest_api": "REST API", - "modbus_tcp": "Modbus TCP" + "step": { + "authentication": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Enter username and password", + "title": "Configure REST API credentials" + }, + "modbus_tcp": { + "data": { + "address": "Modbus address", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "address": "Modbus address can be found in the device's settings menu.", + "port": "Port number can be found in the device's settings menu." + }, + "description": "Enter Modbus TCP port and device's Modbus address.", + "title": "Configure Modbus TCP" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Iskra device." + }, + "description": "Enter the IP address of your Iskra device and select protocol.", + "title": "Configure Iskra device" } } }, "entity": { "sensor": { - "total_active_power": { - "name": "Total active power" - }, - "total_apparent_power": { - "name": "Total apparent power" - }, - "total_reactive_power": { - "name": "Total reactive power" - }, - "phase1_power": { - "name": "Phase 1 power" - }, - "phase2_power": { - "name": "Phase 2 power" - }, - "phase3_power": { - "name": "Phase 3 power" - }, - "phase1_voltage": { - "name": "Phase 1 voltage" - }, - "phase2_voltage": { - "name": "Phase 2 voltage" - }, - "phase3_voltage": { - "name": "Phase 3 voltage" - }, - "phase1_current": { - "name": "Phase 1 current" - }, - "phase2_current": { - "name": "Phase 2 current" - }, - "phase3_current": { - "name": "Phase 3 current" - }, "non_resettable_counter_1": { "name": "Non-resettable counter 1" }, @@ -99,6 +55,33 @@ "non_resettable_counter_4": { "name": "Non-resettable counter 4" }, + "phase1_current": { + "name": "Phase 1 current" + }, + "phase1_power": { + "name": "Phase 1 power" + }, + "phase1_voltage": { + "name": "Phase 1 voltage" + }, + "phase2_current": { + "name": "Phase 2 current" + }, + "phase2_power": { + "name": "Phase 2 power" + }, + "phase2_voltage": { + "name": "Phase 2 voltage" + }, + "phase3_current": { + "name": "Phase 3 current" + }, + "phase3_power": { + "name": "Phase 3 power" + }, + "phase3_voltage": { + "name": "Phase 3 voltage" + }, "resettable_counter_1": { "name": "Resettable counter 1" }, @@ -122,6 +105,23 @@ }, "resettable_counter_8": { "name": "Resettable counter 8" + }, + "total_active_power": { + "name": "Total active power" + }, + "total_apparent_power": { + "name": "Total apparent power" + }, + "total_reactive_power": { + "name": "Total reactive power" + } + } + }, + "selector": { + "protocol": { + "options": { + "modbus_tcp": "Modbus TCP", + "rest_api": "REST API" } } } diff --git a/homeassistant/components/islamic_prayer_times/strings.json b/homeassistant/components/islamic_prayer_times/strings.json index a90031c088d..eaf54950ab4 100644 --- a/homeassistant/components/islamic_prayer_times/strings.json +++ b/homeassistant/components/islamic_prayer_times/strings.json @@ -1,14 +1,38 @@ { - "title": "Islamic Prayer Times", "config": { - "step": { - "user": { - "title": "Set up Islamic Prayer Times", - "description": "Do you want to set up Islamic Prayer Times?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "description": "Do you want to set up Islamic Prayer Times?", + "title": "Set up Islamic Prayer Times" + } + } + }, + "entity": { + "sensor": { + "asr": { + "name": "Asr prayer" + }, + "dhuhr": { + "name": "Dhuhr prayer" + }, + "fajr": { + "name": "Fajr prayer" + }, + "isha": { + "name": "Isha prayer" + }, + "maghrib": { + "name": "Maghrib prayer" + }, + "midnight": { + "name": "Midnight time" + }, + "sunrise": { + "name": "Sunrise time" + } } }, "options": { @@ -26,75 +50,51 @@ "selector": { "calculation_method": { "options": { - "jafari": "Shia Ithna-Ansari", - "karachi": "University of Islamic Sciences, Karachi", - "isna": "Islamic Society of North America", - "mwl": "Muslim World League", - "makkah": "Umm Al-Qura University, Makkah", - "egypt": "Egyptian General Authority of Survey", - "tehran": "Institute of Geophysics, University of Tehran", - "gulf": "Gulf Region", - "kuwait": "Kuwait", - "qatar": "Qatar", - "singapore": "Majlis Ugama Islam Singapura, Singapore", - "france": "Union Organization islamic de France", - "turkey": "Diyanet İşleri Başkanlığı, Turkey", - "russia": "Spiritual Administration of Muslims of Russia", - "moonsighting": "Moonsighting Committee Worldwide", - "dubai": "Dubai", - "jakim": "Jabatan Kemajuan Islam Malaysia (JAKIM)", - "tunisia": "Tunisia", "algeria": "Algeria", - "kemenag": "Kementerian Agama Republik Indonesia", - "morocco": "Morocco", - "portugal": "Comunidade Islamica de Lisboa", + "custom": "Custom", + "dubai": "Dubai", + "egypt": "Egyptian General Authority of Survey", + "france": "Union Organization islamic de France", + "gulf": "Gulf Region", + "isna": "Islamic Society of North America", + "jafari": "Shia Ithna-Ansari", + "jakim": "Jabatan Kemajuan Islam Malaysia (JAKIM)", "jordan": "Ministry of Awqaf, Islamic Affairs and Holy Places, Jordan", - "custom": "Custom" + "karachi": "University of Islamic Sciences, Karachi", + "kemenag": "Kementerian Agama Republik Indonesia", + "kuwait": "Kuwait", + "makkah": "Umm Al-Qura University, Makkah", + "moonsighting": "Moonsighting Committee Worldwide", + "morocco": "Morocco", + "mwl": "Muslim World League", + "portugal": "Comunidade Islamica de Lisboa", + "qatar": "Qatar", + "russia": "Spiritual Administration of Muslims of Russia", + "singapore": "Majlis Ugama Islam Singapura, Singapore", + "tehran": "Institute of Geophysics, University of Tehran", + "tunisia": "Tunisia", + "turkey": "Diyanet İşleri Başkanlığı, Turkey" } }, "latitude_adjustment_method": { "options": { + "angle_based": "Angle based", "middle_of_the_night": "Middle of the night", - "one_seventh": "One seventh", - "angle_based": "Angle based" + "one_seventh": "One seventh" } }, "midnight_mode": { "options": { - "standard": "Standard (mid sunset to sunrise)", - "jafari": "Jafari (mid sunset to fajr)" + "jafari": "Jafari (mid sunset to fajr)", + "standard": "Standard (mid sunset to sunrise)" } }, "school": { "options": { - "shafi": "Shafi", - "hanafi": "Hanafi" + "hanafi": "Hanafi", + "shafi": "Shafi" } } }, - "entity": { - "sensor": { - "fajr": { - "name": "Fajr prayer" - }, - "sunrise": { - "name": "Sunrise time" - }, - "dhuhr": { - "name": "Dhuhr prayer" - }, - "asr": { - "name": "Asr prayer" - }, - "maghrib": { - "name": "Maghrib prayer" - }, - "isha": { - "name": "Isha prayer" - }, - "midnight": { - "name": "Midnight time" - } - } - } + "title": "Islamic Prayer Times" } diff --git a/homeassistant/components/israel_rail/icons.json b/homeassistant/components/israel_rail/icons.json index 39f8f24c77b..9222e555542 100644 --- a/homeassistant/components/israel_rail/icons.json +++ b/homeassistant/components/israel_rail/icons.json @@ -13,14 +13,14 @@ "duration": { "default": "mdi:timeline-clock" }, - "trains": { - "default": "mdi:train" - }, "platform": { "default": "mdi:bus-stop-uncovered" }, "train_number": { "default": "mdi:numeric" + }, + "trains": { + "default": "mdi:train" } } } diff --git a/homeassistant/components/israel_rail/strings.json b/homeassistant/components/israel_rail/strings.json index f42cf765e22..3b16015fe34 100644 --- a/homeassistant/components/israel_rail/strings.json +++ b/homeassistant/components/israel_rail/strings.json @@ -1,11 +1,11 @@ { "config": { - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -28,14 +28,14 @@ "departure2": { "name": "Departure +2" }, - "trains": { - "name": "Trains" - }, "platform": { "name": "Platform" }, "train_number": { "name": "Train number" + }, + "trains": { + "name": "Trains" } } } diff --git a/homeassistant/components/iss/strings.json b/homeassistant/components/iss/strings.json index 17e86587e85..26c64d0e530 100644 --- a/homeassistant/components/iss/strings.json +++ b/homeassistant/components/iss/strings.json @@ -1,12 +1,12 @@ { "config": { + "abort": { + "latitude_longitude_not_defined": "Latitude and longitude are not defined in Home Assistant." + }, "step": { "user": { "description": "Do you want to configure International Space Station (ISS)?" } - }, - "abort": { - "latitude_longitude_not_defined": "Latitude and longitude are not defined in Home Assistant." } }, "options": { diff --git a/homeassistant/components/ista_ecotrend/icons.json b/homeassistant/components/ista_ecotrend/icons.json index 4223e8488ff..44dd0af1842 100644 --- a/homeassistant/components/ista_ecotrend/icons.json +++ b/homeassistant/components/ista_ecotrend/icons.json @@ -4,10 +4,10 @@ "heating": { "default": "mdi:radiator" }, - "water": { + "hot_water": { "default": "mdi:faucet" }, - "hot_water": { + "water": { "default": "mdi:faucet" } } diff --git a/homeassistant/components/ista_ecotrend/strings.json b/homeassistant/components/ista_ecotrend/strings.json index 389612c40e7..6343b73651c 100644 --- a/homeassistant/components/ista_ecotrend/strings.json +++ b/homeassistant/components/ista_ecotrend/strings.json @@ -3,8 +3,8 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "The login details correspond to a different account. Please re-authenticate to the previously configured account.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "The login details correspond to a different account. Please re-authenticate to the previously configured account." }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -12,6 +12,30 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { + "reauth_confirm": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "email": "[%key:component::ista_ecotrend::config::step::user::data_description::email%]", + "password": "[%key:component::ista_ecotrend::config::step::user::data_description::password%]" + }, + "description": "Re-enter your password for `{email}` to reconnect your ista EcoTrend account to Home Assistant.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "email": "[%key:component::ista_ecotrend::config::step::user::data_description::email%]", + "password": "[%key:component::ista_ecotrend::config::step::user::data_description::password%]" + }, + "description": "Update your credentials if you have changed your **ista EcoTrend** account email or password.", + "title": "Update ista EcoTrend configuration" + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", @@ -22,30 +46,6 @@ "password": "Enter the password for your ista EcoTrend account" }, "description": "Connect your **ista EcoTrend** account to Home Assistant to access your monthly heating and water usage data." - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Re-enter your password for `{email}` to reconnect your ista EcoTrend account to Home Assistant.", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "email": "[%key:component::ista_ecotrend::config::step::user::data_description::email%]", - "password": "[%key:component::ista_ecotrend::config::step::user::data_description::password%]" - } - }, - "reconfigure": { - "title": "Update ista EcoTrend configuration", - "description": "Update your credentials if you have changed your **ista EcoTrend** account email or password.", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "email": "[%key:component::ista_ecotrend::config::step::user::data_description::email%]", - "password": "[%key:component::ista_ecotrend::config::step::user::data_description::password%]" - } } } }, diff --git a/homeassistant/components/isy994/icons.json b/homeassistant/components/isy994/icons.json index 9c6e7fa78df..4c56b6e0b81 100644 --- a/homeassistant/components/isy994/icons.json +++ b/homeassistant/components/isy994/icons.json @@ -1,28 +1,28 @@ { "services": { - "send_raw_node_command": { - "service": "mdi:console-line" - }, - "send_node_command": { - "service": "mdi:console" + "delete_zwave_lock_user_code": { + "service": "mdi:lock-remove" }, "get_zwave_parameter": { "service": "mdi:download" }, - "set_zwave_parameter": { - "service": "mdi:upload" + "rename_node": { + "service": "mdi:pencil" + }, + "send_node_command": { + "service": "mdi:console" + }, + "send_program_command": { + "service": "mdi:console" + }, + "send_raw_node_command": { + "service": "mdi:console-line" }, "set_zwave_lock_user_code": { "service": "mdi:upload-lock" }, - "delete_zwave_lock_user_code": { - "service": "mdi:lock-remove" - }, - "rename_node": { - "service": "mdi:pencil" - }, - "send_program_command": { - "service": "mdi:console" + "set_zwave_parameter": { + "service": "mdi:upload" } } } diff --git a/homeassistant/components/isy994/manifest.json b/homeassistant/components/isy994/manifest.json index bbfc7deb80d..e9e0fd625d0 100644 --- a/homeassistant/components/isy994/manifest.json +++ b/homeassistant/components/isy994/manifest.json @@ -27,8 +27,8 @@ "requirements": ["pyisy==3.4.1"], "ssdp": [ { - "manufacturer": "Universal Devices Inc.", - "deviceType": "urn:udi-com:device:X_Insteon_Lighting_Device:1" + "deviceType": "urn:udi-com:device:X_Insteon_Lighting_Device:1", + "manufacturer": "Universal Devices Inc." } ] } diff --git a/homeassistant/components/isy994/strings.json b/homeassistant/components/isy994/strings.json index 230ad5fca4e..f7c8aa22838 100644 --- a/homeassistant/components/isy994/strings.json +++ b/homeassistant/components/isy994/strings.json @@ -1,176 +1,176 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "host": "[%key:common::config_flow::data::url%]", - "password": "[%key:common::config_flow::data::password%]", - "tls": "The TLS version of the ISY controller." - }, - "description": "The host entry must be in full URL format, e.g., {sample_ip}", - "title": "Connect to your ISY" - }, - "reauth_confirm": { - "description": "The credentials for {host} are no longer valid.", - "title": "Reauthenticate your ISY", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_host": "The host entry was not in full URL format, e.g., {sample_ip}" - }, "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%]", + "invalid_host": "The host entry was not in full URL format, e.g., {sample_ip}", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name} ({host})", + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "The credentials for {host} are no longer valid.", + "title": "Reauthenticate your ISY" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::url%]", + "password": "[%key:common::config_flow::data::password%]", + "tls": "The TLS version of the ISY controller.", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "The host entry must be in full URL format, e.g., {sample_ip}", + "title": "Connect to your ISY" + } } }, "options": { "step": { "init": { - "title": "ISY options", - "description": "Set the options for the ISY integration: \n • Node Sensor String: Any device or folder that contains 'Node Sensor String' in the name will be treated as a sensor or binary sensor. \n • Ignore String: Any device with 'Ignore String' in the name will be ignored. \n • Variable Sensor String: Any variable that contains 'Variable Sensor String' will be added as a sensor. \n • Restore Light Brightness: If enabled, the previous brightness will be restored when turning on a light instead of the device's built-in On-Level.", "data": { - "sensor_string": "Node Sensor String", "ignore_string": "Ignore String", - "variable_sensor_string": "Variable Sensor String", - "restore_light_state": "Restore Light Brightness" - } + "restore_light_state": "Restore Light Brightness", + "sensor_string": "Node Sensor String", + "variable_sensor_string": "Variable Sensor String" + }, + "description": "Set the options for the ISY integration: \n • Node Sensor String: Any device or folder that contains 'Node Sensor String' in the name will be treated as a sensor or binary sensor. \n • Ignore String: Any device with 'Ignore String' in the name will be ignored. \n • Variable Sensor String: Any variable that contains 'Variable Sensor String' will be added as a sensor. \n • Restore Light Brightness: If enabled, the previous brightness will be restored when turning on a light instead of the device's built-in On-Level.", + "title": "ISY options" } } }, + "services": { + "delete_zwave_lock_user_code": { + "description": "Deletes a user code for a Z-Wave lock via the ISY.", + "fields": { + "user_num": { + "description": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::description%]", + "name": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::name%]" + } + }, + "name": "Delete Z-Wave lock user code" + }, + "get_zwave_parameter": { + "description": "Requests a Z-Wave device parameter via the ISY. The parameter value will be returned as an entity extra state attribute with the name \"ZW_#\" where \"#\" is the parameter number.", + "fields": { + "parameter": { + "description": "The parameter number to retrieve from the device.", + "name": "Parameter" + } + }, + "name": "Get Z-Wave parameter" + }, + "rename_node": { + "description": "Renames a node or group (scene) on the ISY. Note: this will not automatically change the Home Assistant entity name or entity ID to match. The entity name and ID will only be updated after reloading the integration or restarting Home Assistant, and ONLY IF you have not already customized the name within Home Assistant.", + "fields": { + "name": { + "description": "The new name to use within the ISY.", + "name": "New Name" + } + }, + "name": "Rename node on ISY" + }, + "send_node_command": { + "description": "Sends a command to an ISY device using its Home Assistant entity ID. Valid commands are: beep, brighten, dim, disable, enable, fade_down, fade_stop, fade_up, fast_off, fast_on, and query.", + "fields": { + "command": { + "description": "The command to be sent to the device.", + "name": "Command" + } + }, + "name": "Send node command" + }, + "send_program_command": { + "description": "Sends a command to control an ISY program or folder. Valid commands are run, run_then, run_else, stop, enable, disable, enable_run_at_startup, and disable_run_at_startup.", + "fields": { + "address": { + "description": "The address of the program to control (use either address or name).", + "name": "Address" + }, + "command": { + "description": "The ISY program command to be sent.", + "name": "Command" + }, + "isy": { + "description": "If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). If you have the same program name or address on multiple ISYs, omitting this will run the command on them all.", + "name": "ISY" + }, + "name": { + "description": "The name of the program to control (use either address or name).", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Send program command" + }, + "send_raw_node_command": { + "description": "Sends a “raw” (e.g., DON, DOF) ISY REST device command to a node using its Home Assistant entity ID. This is useful for devices that aren’t fully supported in Home Assistant yet, such as controls for many NodeServer nodes.", + "fields": { + "command": { + "description": "The ISY REST command to be sent to the device.", + "name": "Command" + }, + "parameters": { + "description": "A dict of parameters to be sent in the query string (e.g. for controlling colored bulbs).", + "name": "Parameters" + }, + "unit_of_measurement": { + "description": "The ISY unit of measurement (UOM) to send with the command, if required.", + "name": "Unit of measurement" + }, + "value": { + "description": "The integer value to be sent with the command.", + "name": "Value" + } + }, + "name": "Send raw node command" + }, + "set_zwave_lock_user_code": { + "description": "Sets a user code for a Z-Wave lock via the ISY.", + "fields": { + "code": { + "description": "The code to set for the user.", + "name": "Code" + }, + "user_num": { + "description": "The user slot number on the lock.", + "name": "User Number" + } + }, + "name": "Set Z-Wave lock user code" + }, + "set_zwave_parameter": { + "description": "Updates a Z-Wave device parameter via the ISY. The parameter value will also be returned as an entity extra state attribute with the name \"ZW_#\" where \"#\" is the parameter number.", + "fields": { + "parameter": { + "description": "The parameter number to set on the end device.", + "name": "[%key:component::isy994::services::get_zwave_parameter::fields::parameter::name%]" + }, + "size": { + "description": "The size of the parameter, either 1, 2, or 4 bytes.", + "name": "Size" + }, + "value": { + "description": "The value to set for the parameter. May be an integer or byte string (e.g. \"0xFFFF\").", + "name": "Value" + } + }, + "name": "Set Z-Wave parameter" + } + }, "system_health": { "info": { - "host_reachable": "Host reachable", "device_connected": "ISY connected", + "host_reachable": "Host reachable", "last_heartbeat": "Last heartbeat time", "websocket_status": "Event socket status" } - }, - "services": { - "send_raw_node_command": { - "name": "Send raw node command", - "description": "Sends a “raw” (e.g., DON, DOF) ISY REST device command to a node using its Home Assistant entity ID. This is useful for devices that aren’t fully supported in Home Assistant yet, such as controls for many NodeServer nodes.", - "fields": { - "command": { - "name": "Command", - "description": "The ISY REST command to be sent to the device." - }, - "value": { - "name": "Value", - "description": "The integer value to be sent with the command." - }, - "parameters": { - "name": "Parameters", - "description": "A dict of parameters to be sent in the query string (e.g. for controlling colored bulbs)." - }, - "unit_of_measurement": { - "name": "Unit of measurement", - "description": "The ISY unit of measurement (UOM) to send with the command, if required." - } - } - }, - "send_node_command": { - "name": "Send node command", - "description": "Sends a command to an ISY device using its Home Assistant entity ID. Valid commands are: beep, brighten, dim, disable, enable, fade_down, fade_stop, fade_up, fast_off, fast_on, and query.", - "fields": { - "command": { - "name": "Command", - "description": "The command to be sent to the device." - } - } - }, - "get_zwave_parameter": { - "name": "Get Z-Wave parameter", - "description": "Requests a Z-Wave device parameter via the ISY. The parameter value will be returned as an entity extra state attribute with the name \"ZW_#\" where \"#\" is the parameter number.", - "fields": { - "parameter": { - "name": "Parameter", - "description": "The parameter number to retrieve from the device." - } - } - }, - "set_zwave_parameter": { - "name": "Set Z-Wave parameter", - "description": "Updates a Z-Wave device parameter via the ISY. The parameter value will also be returned as an entity extra state attribute with the name \"ZW_#\" where \"#\" is the parameter number.", - "fields": { - "parameter": { - "name": "[%key:component::isy994::services::get_zwave_parameter::fields::parameter::name%]", - "description": "The parameter number to set on the end device." - }, - "value": { - "name": "Value", - "description": "The value to set for the parameter. May be an integer or byte string (e.g. \"0xFFFF\")." - }, - "size": { - "name": "Size", - "description": "The size of the parameter, either 1, 2, or 4 bytes." - } - } - }, - "set_zwave_lock_user_code": { - "name": "Set Z-Wave lock user code", - "description": "Sets a user code for a Z-Wave lock via the ISY.", - "fields": { - "user_num": { - "name": "User Number", - "description": "The user slot number on the lock." - }, - "code": { - "name": "Code", - "description": "The code to set for the user." - } - } - }, - "delete_zwave_lock_user_code": { - "name": "Delete Z-Wave lock user code", - "description": "Deletes a user code for a Z-Wave lock via the ISY.", - "fields": { - "user_num": { - "name": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::name%]", - "description": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::description%]" - } - } - }, - "rename_node": { - "name": "Rename node on ISY", - "description": "Renames a node or group (scene) on the ISY. Note: this will not automatically change the Home Assistant entity name or entity ID to match. The entity name and ID will only be updated after reloading the integration or restarting Home Assistant, and ONLY IF you have not already customized the name within Home Assistant.", - "fields": { - "name": { - "name": "New Name", - "description": "The new name to use within the ISY." - } - } - }, - "send_program_command": { - "name": "Send program command", - "description": "Sends a command to control an ISY program or folder. Valid commands are run, run_then, run_else, stop, enable, disable, enable_run_at_startup, and disable_run_at_startup.", - "fields": { - "address": { - "name": "Address", - "description": "The address of the program to control (use either address or name)." - }, - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The name of the program to control (use either address or name)." - }, - "command": { - "name": "Command", - "description": "The ISY program command to be sent." - }, - "isy": { - "name": "ISY", - "description": "If you have more than one ISY connected, provide the name of the ISY to query (as shown on the Device Registry or as the top-first node in the ISY Admin Console). If you have the same program name or address on multiple ISYs, omitting this will run the command on them all." - } - } - } } } diff --git a/homeassistant/components/ituran/strings.json b/homeassistant/components/ituran/strings.json index ededb5232f5..caf0b2d6af2 100644 --- a/homeassistant/components/ituran/strings.json +++ b/homeassistant/components/ituran/strings.json @@ -1,16 +1,16 @@ { "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%]", + "invalid_otp": "OTP invalid", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "id_or_passport": "ID or passport number", - "phone_number": "Mobile phone number" - }, - "data_description": { - "id_or_passport": "The government ID or passport number provided when registering with Ituran.", - "phone_number": "The mobile phone number provided when registering with Ituran. A one-time password will be sent to this mobile number." - } - }, "otp": { "data": { "otp": "OTP" @@ -20,19 +20,19 @@ } }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "A new one-time password will be sent to {phone_number}." + "description": "A new one-time password will be sent to {phone_number}.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "id_or_passport": "ID or passport number", + "phone_number": "Mobile phone number" + }, + "data_description": { + "id_or_passport": "The government ID or passport number provided when registering with Ituran.", + "phone_number": "The mobile phone number provided when registering with Ituran. A one-time password will be sent to this mobile number." + } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_otp": "OTP invalid", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" } }, "entity": { diff --git a/homeassistant/components/izone/icons.json b/homeassistant/components/izone/icons.json index bb38db27839..ede714b48f3 100644 --- a/homeassistant/components/izone/icons.json +++ b/homeassistant/components/izone/icons.json @@ -1,10 +1,10 @@ { "services": { - "airflow_min": { - "service": "mdi:fan-minus" - }, "airflow_max": { "service": "mdi:fan-plus" + }, + "airflow_min": { + "service": "mdi:fan-minus" } } } diff --git a/homeassistant/components/izone/strings.json b/homeassistant/components/izone/strings.json index 707d7d71d34..0716bee8074 100644 --- a/homeassistant/components/izone/strings.json +++ b/homeassistant/components/izone/strings.json @@ -1,35 +1,35 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up iZone?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "services": { - "airflow_min": { - "name": "Set minimum airflow", - "description": "Sets the airflow minimum percent for a zone.", - "fields": { - "airflow": { - "name": "Percent", - "description": "Airflow percent." - } - } - }, "airflow_max": { - "name": "Set maximum airflow", "description": "Sets the airflow maximum percent for a zone.", "fields": { "airflow": { - "name": "[%key:component::izone::services::airflow_min::fields::airflow::name%]", - "description": "[%key:component::izone::services::airflow_min::fields::airflow::description%]" + "description": "[%key:component::izone::services::airflow_min::fields::airflow::description%]", + "name": "[%key:component::izone::services::airflow_min::fields::airflow::name%]" } - } + }, + "name": "Set maximum airflow" + }, + "airflow_min": { + "description": "Sets the airflow minimum percent for a zone.", + "fields": { + "airflow": { + "description": "Airflow percent.", + "name": "Percent" + } + }, + "name": "Set minimum airflow" } } } diff --git a/homeassistant/components/jellyfin/strings.json b/homeassistant/components/jellyfin/strings.json index a9816b1fb78..258b0f36216 100644 --- a/homeassistant/components/jellyfin/strings.json +++ b/homeassistant/components/jellyfin/strings.json @@ -1,29 +1,29 @@ { "config": { - "step": { - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Jellyfin integration needs to re-authenticate your account", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The Jellyfin integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { diff --git a/homeassistant/components/jewish_calendar/icons.json b/homeassistant/components/jewish_calendar/icons.json index ae2f752f0f6..b3997bcc9e8 100644 --- a/homeassistant/components/jewish_calendar/icons.json +++ b/homeassistant/components/jewish_calendar/icons.json @@ -1,39 +1,39 @@ { - "services": { - "count_omer": { - "service": "mdi:counter" - } - }, "entity": { "binary_sensor": { - "issur_melacha_in_effect": { "default": "mdi:power-plug-off" }, "erev_shabbat_hag": { "default": "mdi:candle-light" }, + "issur_melacha_in_effect": { "default": "mdi:power-plug-off" }, "motzei_shabbat_hag": { "default": "mdi:fire" } }, "sensor": { - "hebrew_date": { "default": "mdi:star-david" }, - "weekly_portion": { "default": "mdi:book-open-variant" }, - "holiday": { "default": "mdi:calendar-star" }, - "omer_count": { "default": "mdi:counter" }, - "daf_yomi": { "default": "mdi:book-open-variant" }, "alot_hashachar": { "default": "mdi:weather-sunset-up" }, - "talit_and_tefillin": { "default": "mdi:calendar-clock" }, + "chatzot_hayom": { "default": "mdi:calendar-clock" }, + "daf_yomi": { "default": "mdi:book-open-variant" }, + "hebrew_date": { "default": "mdi:star-david" }, + "holiday": { "default": "mdi:calendar-star" }, + "mincha_gedola": { "default": "mdi:calendar-clock" }, + "mincha_ketana": { "default": "mdi:calendar-clock" }, "netz_hachama": { "default": "mdi:calendar-clock" }, + "omer_count": { "default": "mdi:counter" }, + "plag_hamincha": { "default": "mdi:weather-sunset-down" }, + "shkia": { "default": "mdi:weather-sunset" }, "sof_zman_shema_gra": { "default": "mdi:calendar-clock" }, "sof_zman_shema_mga": { "default": "mdi:calendar-clock" }, "sof_zman_tfilla_gra": { "default": "mdi:calendar-clock" }, "sof_zman_tfilla_mga": { "default": "mdi:calendar-clock" }, - "chatzot_hayom": { "default": "mdi:calendar-clock" }, - "mincha_gedola": { "default": "mdi:calendar-clock" }, - "mincha_ketana": { "default": "mdi:calendar-clock" }, - "plag_hamincha": { "default": "mdi:weather-sunset-down" }, - "shkia": { "default": "mdi:weather-sunset" }, - "tset_hakohavim_tsom": { "default": "mdi:weather-night" }, + "talit_and_tefillin": { "default": "mdi:calendar-clock" }, "tset_hakohavim_shabbat": { "default": "mdi:weather-night" }, + "tset_hakohavim_tsom": { "default": "mdi:weather-night" }, + "upcoming_candle_lighting": { "default": "mdi:candle" }, + "upcoming_havdalah": { "default": "mdi:weather-night" }, "upcoming_shabbat_candle_lighting": { "default": "mdi:candle" }, "upcoming_shabbat_havdalah": { "default": "mdi:weather-night" }, - "upcoming_candle_lighting": { "default": "mdi:candle" }, - "upcoming_havdalah": { "default": "mdi:weather-night" } + "weekly_portion": { "default": "mdi:book-open-variant" } + } + }, + "services": { + "count_omer": { + "service": "mdi:counter" } } } diff --git a/homeassistant/components/jewish_calendar/strings.json b/homeassistant/components/jewish_calendar/strings.json index 28f9186afb5..fe7ed69b9c1 100644 --- a/homeassistant/components/jewish_calendar/strings.json +++ b/homeassistant/components/jewish_calendar/strings.json @@ -1,61 +1,110 @@ { "common": { - "diaspora": "Outside of Israel?", - "time_zone": "Time zone", "descr_diaspora": "Is the location outside of Israel?", + "descr_elevation": "Elevation in meters above sea level. This is used to calculate the times correctly.", + "descr_language": "Language to use when displaying values in the UI. This does not affect the Hebrew date.", "descr_location": "Location to use for the Jewish calendar calculations. By default, the location is set to the Home Assistant location.", "descr_time_zone": "If you specify a location, make sure to specify the time zone for correct calendar times calculations", - "descr_elevation": "Elevation in meters above sea level. This is used to calculate the times correctly.", - "descr_language": "Language to use when displaying values in the UI. This does not affect the Hebrew date." + "diaspora": "Outside of Israel?", + "time_zone": "Time zone" + }, + "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "step": { + "reconfigure": { + "data": { + "diaspora": "[%key:component::jewish_calendar::common::diaspora%]", + "elevation": "[%key:common::config_flow::data::elevation%]", + "language": "[%key:common::config_flow::data::language%]", + "location": "[%key:common::config_flow::data::location%]", + "time_zone": "[%key:component::jewish_calendar::common::time_zone%]" + }, + "data_description": { + "diaspora": "[%key:component::jewish_calendar::common::descr_diaspora%]", + "elevation": "[%key:component::jewish_calendar::common::descr_elevation%]", + "language": "[%key:component::jewish_calendar::common::descr_language%]", + "location": "[%key:component::jewish_calendar::common::descr_location%]", + "time_zone": "[%key:component::jewish_calendar::common::descr_time_zone%]" + } + }, + "user": { + "data": { + "diaspora": "[%key:component::jewish_calendar::common::diaspora%]", + "elevation": "[%key:common::config_flow::data::elevation%]", + "language": "[%key:common::config_flow::data::language%]", + "location": "[%key:common::config_flow::data::location%]", + "time_zone": "[%key:component::jewish_calendar::common::time_zone%]" + }, + "data_description": { + "diaspora": "[%key:component::jewish_calendar::common::descr_diaspora%]", + "elevation": "[%key:component::jewish_calendar::common::descr_elevation%]", + "language": "[%key:component::jewish_calendar::common::descr_language%]", + "location": "[%key:component::jewish_calendar::common::descr_location%]", + "time_zone": "[%key:component::jewish_calendar::common::descr_time_zone%]" + } + } + } }, "entity": { "binary_sensor": { - "issur_melacha_in_effect": { - "name": "Issur Melacha in effect" - }, "erev_shabbat_hag": { "name": "Erev Shabbat/Hag" }, + "issur_melacha_in_effect": { + "name": "Issur Melacha in effect" + }, "motzei_shabbat_hag": { "name": "Motzei Shabbat/Hag" } }, "sensor": { - "hebrew_date": { - "name": "Date", - "state_attributes": { - "hebrew_year": { "name": "Hebrew year" }, - "hebrew_month_name": { "name": "Hebrew month name" }, - "hebrew_month_standard_order": { - "name": "Hebrew month in standard order" - }, - "hebrew_month_biblical_order": { - "name": "Hebrew month in biblical order" - }, - "hebrew_day": { "name": "Hebrew day" } - } + "alot_hashachar": { + "name": "Halachic dawn (Alot Hashachar)" }, - "weekly_portion": { - "name": "Weekly Torah portion" - }, - "holiday": { - "name": "Holiday" - }, - "omer_count": { - "name": "Day of the Omer" + "chatzot_hayom": { + "name": "Halachic midday (Chatzot Hayom)" }, "daf_yomi": { "name": "Daf Yomi" }, - "alot_hashachar": { - "name": "Halachic dawn (Alot Hashachar)" + "hebrew_date": { + "name": "Date", + "state_attributes": { + "hebrew_day": { "name": "Hebrew day" }, + "hebrew_month_biblical_order": { + "name": "Hebrew month in biblical order" + }, + "hebrew_month_name": { "name": "Hebrew month name" }, + "hebrew_month_standard_order": { + "name": "Hebrew month in standard order" + }, + "hebrew_year": { "name": "Hebrew year" } + } }, - "talit_and_tefillin": { - "name": "Earliest time for Talit and Tefillin" + "holiday": { + "name": "Holiday" + }, + "mincha_gedola": { + "name": "Mincha Gedola" + }, + "mincha_ketana": { + "name": "Mincha Ketana" }, "netz_hachama": { "name": "Halachic sunrise (Netz Hachama)" }, + "omer_count": { + "name": "Day of the Omer" + }, + "plag_hamincha": { + "name": "Plag Hamincha" + }, + "shkia": { + "name": "Sunset (Shkia)" + }, "sof_zman_shema_gra": { "name": "Latest time for Shma Gr\"a" }, @@ -68,26 +117,20 @@ "sof_zman_tfilla_mga": { "name": "Latest time for Tefilla MG\"A" }, - "chatzot_hayom": { - "name": "Halachic midday (Chatzot Hayom)" + "talit_and_tefillin": { + "name": "Earliest time for Talit and Tefillin" }, - "mincha_gedola": { - "name": "Mincha Gedola" - }, - "mincha_ketana": { - "name": "Mincha Ketana" - }, - "plag_hamincha": { - "name": "Plag Hamincha" - }, - "shkia": { - "name": "Sunset (Shkia)" + "tset_hakohavim_shabbat": { + "name": "Nightfall (T'set Hakochavim, 3 stars)" }, "tset_hakohavim_tsom": { "name": "Nightfall (T'set Hakochavim)" }, - "tset_hakohavim_shabbat": { - "name": "Nightfall (T'set Hakochavim, 3 stars)" + "upcoming_candle_lighting": { + "name": "Upcoming candle lighting" + }, + "upcoming_havdalah": { + "name": "Upcoming Havdalah" }, "upcoming_shabbat_candle_lighting": { "name": "Upcoming Shabbat candle lighting" @@ -95,100 +138,8 @@ "upcoming_shabbat_havdalah": { "name": "Upcoming Shabbat Havdalah" }, - "upcoming_candle_lighting": { - "name": "Upcoming candle lighting" - }, - "upcoming_havdalah": { - "name": "Upcoming Havdalah" - } - } - }, - "config": { - "step": { - "reconfigure": { - "data": { - "location": "[%key:common::config_flow::data::location%]", - "elevation": "[%key:common::config_flow::data::elevation%]", - "time_zone": "[%key:component::jewish_calendar::common::time_zone%]", - "diaspora": "[%key:component::jewish_calendar::common::diaspora%]", - "language": "[%key:common::config_flow::data::language%]" - }, - "data_description": { - "location": "[%key:component::jewish_calendar::common::descr_location%]", - "elevation": "[%key:component::jewish_calendar::common::descr_elevation%]", - "time_zone": "[%key:component::jewish_calendar::common::descr_time_zone%]", - "diaspora": "[%key:component::jewish_calendar::common::descr_diaspora%]", - "language": "[%key:component::jewish_calendar::common::descr_language%]" - } - }, - "user": { - "data": { - "location": "[%key:common::config_flow::data::location%]", - "elevation": "[%key:common::config_flow::data::elevation%]", - "time_zone": "[%key:component::jewish_calendar::common::time_zone%]", - "diaspora": "[%key:component::jewish_calendar::common::diaspora%]", - "language": "[%key:common::config_flow::data::language%]" - }, - "data_description": { - "location": "[%key:component::jewish_calendar::common::descr_location%]", - "elevation": "[%key:component::jewish_calendar::common::descr_elevation%]", - "time_zone": "[%key:component::jewish_calendar::common::descr_time_zone%]", - "diaspora": "[%key:component::jewish_calendar::common::descr_diaspora%]", - "language": "[%key:component::jewish_calendar::common::descr_language%]" - } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "options": { - "step": { - "init": { - "title": "Configure options for Jewish Calendar", - "data": { - "candle_lighting_minutes_before_sunset": "Minutes before sunset for candle lighting", - "havdalah_minutes_after_sunset": "Minutes after sunset for Havdalah" - }, - "data_description": { - "candle_lighting_minutes_before_sunset": "Defaults to 18 minutes. In Israel you probably want to use 20/30/40 depending on your location. Outside of Israel you probably want to use 18/24.", - "havdalah_minutes_after_sunset": "Setting this to 0 means 36 minutes as fixed degrees (8.5°) will be used instead" - } - } - } - }, - "selector": { - "nusach": { - "options": { - "sfarad": "Sfarad", - "ashkenaz": "Ashkenaz", - "adot_mizrah": "Adot Mizrah", - "italian": "Italian" - } - } - }, - "services": { - "count_omer": { - "name": "Count the Omer", - "description": "Returns the phrase for counting the Omer on a given date.", - "fields": { - "date": { - "name": "Date", - "description": "Date to count the Omer for." - }, - "after_sunset": { - "name": "After sunset", - "description": "Uses the next Hebrew day (starting at sunset) for a given date. This indicator is ignored if the Date field is empty." - }, - "nusach": { - "name": "Nusach", - "description": "Nusach to count the Omer in." - }, - "language": { - "name": "[%key:common::config_flow::data::language%]", - "description": "Language to count the Omer in." - } + "weekly_portion": { + "name": "Weekly Torah portion" } } }, @@ -196,5 +147,54 @@ "sunset_event": { "message": "Sunset event cannot be calculated for the provided date and location" } + }, + "options": { + "step": { + "init": { + "data": { + "candle_lighting_minutes_before_sunset": "Minutes before sunset for candle lighting", + "havdalah_minutes_after_sunset": "Minutes after sunset for Havdalah" + }, + "data_description": { + "candle_lighting_minutes_before_sunset": "Defaults to 18 minutes. In Israel you probably want to use 20/30/40 depending on your location. Outside of Israel you probably want to use 18/24.", + "havdalah_minutes_after_sunset": "Setting this to 0 means 36 minutes as fixed degrees (8.5°) will be used instead" + }, + "title": "Configure options for Jewish Calendar" + } + } + }, + "selector": { + "nusach": { + "options": { + "adot_mizrah": "Adot Mizrah", + "ashkenaz": "Ashkenaz", + "italian": "Italian", + "sfarad": "Sfarad" + } + } + }, + "services": { + "count_omer": { + "description": "Returns the phrase for counting the Omer on a given date.", + "fields": { + "after_sunset": { + "description": "Uses the next Hebrew day (starting at sunset) for a given date. This indicator is ignored if the Date field is empty.", + "name": "After sunset" + }, + "date": { + "description": "Date to count the Omer for.", + "name": "Date" + }, + "language": { + "description": "Language to count the Omer in.", + "name": "[%key:common::config_flow::data::language%]" + }, + "nusach": { + "description": "Nusach to count the Omer in.", + "name": "Nusach" + } + }, + "name": "Count the Omer" + } } } diff --git a/homeassistant/components/juicenet/strings.json b/homeassistant/components/juicenet/strings.json index 6e25130955b..dc762700c1f 100644 --- a/homeassistant/components/juicenet/strings.json +++ b/homeassistant/components/juicenet/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The JuiceNet integration has been removed", - "description": "Enel X has dropped support for JuiceNet in favor of JuicePass, and the JuiceNet integration has been removed from Home Assistant as it was no longer working.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing JuiceNet integration entries]({entries})." + "description": "Enel X has dropped support for JuiceNet in favor of JuicePass, and the JuiceNet integration has been removed from Home Assistant as it was no longer working.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing JuiceNet integration entries]({entries}).", + "title": "The JuiceNet integration has been removed" } } } diff --git a/homeassistant/components/justnimbus/icons.json b/homeassistant/components/justnimbus/icons.json index ed2ea39d08b..8a9d7bacbc5 100644 --- a/homeassistant/components/justnimbus/icons.json +++ b/homeassistant/components/justnimbus/icons.json @@ -4,23 +4,23 @@ "pump_pressure": { "default": "mdi:water-pump" }, - "reservoir_temperature": { - "default": "mdi:coolant-temperature" + "pump_type": { + "default": "mdi:pump" + }, + "reservoir_capacity": { + "default": "mdi:waves" }, "reservoir_content": { "default": "mdi:car-coolant-level" }, + "reservoir_temperature": { + "default": "mdi:coolant-temperature" + }, "water_saved": { "default": "mdi:water-opacity" }, "water_used": { "default": "mdi:chart-donut" - }, - "reservoir_capacity": { - "default": "mdi:waves" - }, - "pump_type": { - "default": "mdi:pump" } } } diff --git a/homeassistant/components/justnimbus/strings.json b/homeassistant/components/justnimbus/strings.json index bb9d0a44ebe..98da939f785 100644 --- a/homeassistant/components/justnimbus/strings.json +++ b/homeassistant/components/justnimbus/strings.json @@ -1,5 +1,14 @@ { "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": { "user": { "data": { @@ -7,15 +16,6 @@ "zip_code": "ZIP code" } } - }, - "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -35,11 +35,11 @@ "reservoir_temperature": { "name": "Reservoir temperature" }, - "water_used": { - "name": "Total use" - }, "water_saved": { "name": "Total saved" + }, + "water_used": { + "name": "Total use" } } } diff --git a/homeassistant/components/jvc_projector/icons.json b/homeassistant/components/jvc_projector/icons.json index a0404b328e1..0ac1db4fb34 100644 --- a/homeassistant/components/jvc_projector/icons.json +++ b/homeassistant/components/jvc_projector/icons.json @@ -17,10 +17,10 @@ "jvc_power_status": { "default": "mdi:power-plug-off", "state": { - "on": "mdi:power-plug", - "warming": "mdi:heat-wave", "cooling": "mdi:snowflake", - "error": "mdi:alert-circle" + "error": "mdi:alert-circle", + "on": "mdi:power-plug", + "warming": "mdi:heat-wave" } } } diff --git a/homeassistant/components/jvc_projector/strings.json b/homeassistant/components/jvc_projector/strings.json index ab17ef6e8ff..a536b2f282a 100644 --- a/homeassistant/components/jvc_projector/strings.json +++ b/homeassistant/components/jvc_projector/strings.json @@ -1,26 +1,5 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "IP address or hostname of projector", - "port": "IP port of projector (default is 20554)", - "password": "Optional password if projector is configured for one" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Password authentication failed", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -28,9 +7,30 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "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_host": "[%key:common::config_flow::error::invalid_host%]" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Password authentication failed", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "IP address or hostname of projector", + "password": "Optional password if projector is configured for one", + "port": "IP port of projector (default is 20554)" + } + } } }, "entity": { @@ -52,11 +52,11 @@ "jvc_power_status": { "name": "Power status", "state": { - "standby": "[%key:common::state::standby%]", - "on": "[%key:common::state::on%]", - "warming": "Warming", "cooling": "Cooling", - "error": "[%key:common::state::error%]" + "error": "[%key:common::state::error%]", + "on": "[%key:common::state::on%]", + "standby": "[%key:common::state::standby%]", + "warming": "Warming" } } } diff --git a/homeassistant/components/kaleidescape/icons.json b/homeassistant/components/kaleidescape/icons.json index 2a9408b6843..6528c2a0eb8 100644 --- a/homeassistant/components/kaleidescape/icons.json +++ b/homeassistant/components/kaleidescape/icons.json @@ -1,34 +1,22 @@ { "entity": { "sensor": { - "media_location": { - "default": "mdi:monitor" + "cinemascape_mask": { + "default": "mdi:monitor-star" }, - "play_status": { + "cinemascape_mode": { + "default": "mdi:monitor-star" + }, + "media_location": { "default": "mdi:monitor" }, "play_speed": { "default": "mdi:monitor" }, - "video_mode": { - "default": "mdi:monitor-screenshot" + "play_status": { + "default": "mdi:monitor" }, - "video_color_eotf": { - "default": "mdi:monitor-eye" - }, - "video_color_space": { - "default": "mdi:monitor-eye" - }, - "video_color_depth": { - "default": "mdi:monitor-eye" - }, - "video_color_sampling": { - "default": "mdi:monitor-eye" - }, - "screen_mask_ratio": { - "default": "mdi:monitor-screenshot" - }, - "screen_mask_top_trim_rel": { + "screen_mask_bottom_mask_abs": { "default": "mdi:monitor-screenshot" }, "screen_mask_bottom_trim_rel": { @@ -37,17 +25,29 @@ "screen_mask_conservative_ratio": { "default": "mdi:monitor-screenshot" }, + "screen_mask_ratio": { + "default": "mdi:monitor-screenshot" + }, "screen_mask_top_mask_abs": { "default": "mdi:monitor-screenshot" }, - "screen_mask_bottom_mask_abs": { + "screen_mask_top_trim_rel": { "default": "mdi:monitor-screenshot" }, - "cinemascape_mask": { - "default": "mdi:monitor-star" + "video_color_depth": { + "default": "mdi:monitor-eye" }, - "cinemascape_mode": { - "default": "mdi:monitor-star" + "video_color_eotf": { + "default": "mdi:monitor-eye" + }, + "video_color_sampling": { + "default": "mdi:monitor-eye" + }, + "video_color_space": { + "default": "mdi:monitor-eye" + }, + "video_mode": { + "default": "mdi:monitor-screenshot" } } } diff --git a/homeassistant/components/kaleidescape/manifest.json b/homeassistant/components/kaleidescape/manifest.json index 96acdf5ffb7..f38fd091a48 100644 --- a/homeassistant/components/kaleidescape/manifest.json +++ b/homeassistant/components/kaleidescape/manifest.json @@ -8,8 +8,8 @@ "requirements": ["pykaleidescape==1.0.1"], "ssdp": [ { - "manufacturer": "Kaleidescape, Inc.", - "deviceType": "schemas-upnp-org:device:Basic:1" + "deviceType": "schemas-upnp-org:device:Basic:1", + "manufacturer": "Kaleidescape, Inc." } ] } diff --git a/homeassistant/components/kaleidescape/strings.json b/homeassistant/components/kaleidescape/strings.json index 0cebfd4bf5c..e7d3adcbf5c 100644 --- a/homeassistant/components/kaleidescape/strings.json +++ b/homeassistant/components/kaleidescape/strings.json @@ -1,16 +1,5 @@ { "config": { - "flow_title": "{model} ({name})", - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up the {model} player named {name}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -20,39 +9,38 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unsupported": "[%key:component::kaleidescape::config::abort::unsupported%]" + }, + "flow_title": "{model} ({name})", + "step": { + "discovery_confirm": { + "description": "Do you want to set up the {model} player named {name}?" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + } + } } }, "entity": { "sensor": { + "cinemascape_mask": { + "name": "Cinemascape mask" + }, + "cinemascape_mode": { + "name": "Cinemascape mode" + }, "media_location": { "name": "Media location" }, - "play_status": { - "name": "Play status" - }, "play_speed": { "name": "Play speed" }, - "video_mode": { - "name": "Video mode" + "play_status": { + "name": "Play status" }, - "video_color_eotf": { - "name": "Video color EOTF" - }, - "video_color_space": { - "name": "Video color space" - }, - "video_color_depth": { - "name": "Video color depth" - }, - "video_color_sampling": { - "name": "Video color sampling" - }, - "screen_mask_ratio": { - "name": "Screen mask ratio" - }, - "screen_mask_top_trim_rel": { - "name": "Screen mask top trim relative" + "screen_mask_bottom_mask_abs": { + "name": "Screen mask bottom mask absolute" }, "screen_mask_bottom_trim_rel": { "name": "Screen mask bottom trim relative" @@ -60,17 +48,29 @@ "screen_mask_conservative_ratio": { "name": "Screen mask conservative ratio" }, + "screen_mask_ratio": { + "name": "Screen mask ratio" + }, "screen_mask_top_mask_abs": { "name": "Screen mask top mask absolute" }, - "screen_mask_bottom_mask_abs": { - "name": "Screen mask bottom mask absolute" + "screen_mask_top_trim_rel": { + "name": "Screen mask top trim relative" }, - "cinemascape_mask": { - "name": "Cinemascape mask" + "video_color_depth": { + "name": "Video color depth" }, - "cinemascape_mode": { - "name": "Cinemascape mode" + "video_color_eotf": { + "name": "Video color EOTF" + }, + "video_color_sampling": { + "name": "Video color sampling" + }, + "video_color_space": { + "name": "Video color space" + }, + "video_mode": { + "name": "Video mode" } } } diff --git a/homeassistant/components/keba/icons.json b/homeassistant/components/keba/icons.json index 6de43a84cf6..7a07cceab4a 100644 --- a/homeassistant/components/keba/icons.json +++ b/homeassistant/components/keba/icons.json @@ -1,25 +1,25 @@ { "services": { - "request_data": { - "service": "mdi:database-arrow-down" - }, "authorize": { "service": "mdi:lock" }, "deauthorize": { "service": "mdi:lock-open" }, - "set_energy": { - "service": "mdi:flash" - }, - "set_current": { - "service": "mdi:flash" + "disable": { + "service": "mdi:fash-off" }, "enable": { "service": "mdi:flash" }, - "disable": { - "service": "mdi:fash-off" + "request_data": { + "service": "mdi:database-arrow-down" + }, + "set_current": { + "service": "mdi:flash" + }, + "set_energy": { + "service": "mdi:flash" }, "set_failsafe": { "service": "mdi:message-alert" diff --git a/homeassistant/components/keba/strings.json b/homeassistant/components/keba/strings.json index 1616df6237b..1e9a6ebfb03 100644 --- a/homeassistant/components/keba/strings.json +++ b/homeassistant/components/keba/strings.json @@ -1,62 +1,62 @@ { "services": { - "request_data": { - "name": "Request data", - "description": "Requests new data from the charging station." - }, "authorize": { - "name": "Authorize", - "description": "Authorizes a charging process with the predefined RFID tag of the configuration file." + "description": "Authorizes a charging process with the predefined RFID tag of the configuration file.", + "name": "Authorize" }, "deauthorize": { - "name": "Deauthorize", - "description": "Deauthorizes the running charging process with the predefined RFID tag of the configuration file." + "description": "Deauthorizes the running charging process with the predefined RFID tag of the configuration file.", + "name": "Deauthorize" }, - "set_energy": { - "name": "Set energy", - "description": "Sets the energy target after which the charging process stops.", - "fields": { - "energy": { - "name": "Energy", - "description": "The energy target to stop charging. Setting 0 disables the limit." - } - } + "disable": { + "description": "Stops the charging process if charging station is authorized.", + "name": "[%key:common::action::disable%]" + }, + "enable": { + "description": "Starts a charging process if charging station is authorized.", + "name": "[%key:common::action::enable%]" + }, + "request_data": { + "description": "Requests new data from the charging station.", + "name": "Request data" }, "set_current": { - "name": "Set current", "description": "Sets the maximum current for charging processes.", "fields": { "current": { - "name": "Current", - "description": "The maximum current used for the charging process. The value depends on the DIP switch settings and the cable used by the charging station." + "description": "The maximum current used for the charging process. The value depends on the DIP switch settings and the cable used by the charging station.", + "name": "Current" } - } + }, + "name": "Set current" }, - "enable": { - "name": "[%key:common::action::enable%]", - "description": "Starts a charging process if charging station is authorized." - }, - "disable": { - "name": "[%key:common::action::disable%]", - "description": "Stops the charging process if charging station is authorized." + "set_energy": { + "description": "Sets the energy target after which the charging process stops.", + "fields": { + "energy": { + "description": "The energy target to stop charging. Setting 0 disables the limit.", + "name": "Energy" + } + }, + "name": "Set energy" }, "set_failsafe": { - "name": "Set failsafe", "description": "Sets the failsafe mode of the charging station. If all parameters are 0, the failsafe mode will be disabled.", "fields": { - "failsafe_timeout": { - "name": "Failsafe timeout", - "description": "Timeout after which the failsafe mode is triggered if the 'Set current' action was not run during this time." - }, "failsafe_fallback": { - "name": "Failsafe fallback", - "description": "Fallback current to be set after timeout." + "description": "Fallback current to be set after timeout.", + "name": "Failsafe fallback" }, "failsafe_persist": { - "name": "Failsafe persist", - "description": "If set to 0, the failsafe option will be disabled after a charging station reboot. If set to 1, the failsafe option will survive a reboot." + "description": "If set to 0, the failsafe option will be disabled after a charging station reboot. If set to 1, the failsafe option will survive a reboot.", + "name": "Failsafe persist" + }, + "failsafe_timeout": { + "description": "Timeout after which the failsafe mode is triggered if the 'Set current' action was not run during this time.", + "name": "Failsafe timeout" } - } + }, + "name": "Set failsafe" } } } diff --git a/homeassistant/components/keenetic_ndms2/strings.json b/homeassistant/components/keenetic_ndms2/strings.json index 3098996d48f..f36ec8b59fe 100644 --- a/homeassistant/components/keenetic_ndms2/strings.json +++ b/homeassistant/components/keenetic_ndms2/strings.json @@ -1,46 +1,46 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "title": "Set up Keenetic NDMS2 Router", - "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%]" - }, - "data_description": { - "host": "The hostname or IP address of your Keenetic router." - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "no_udn": "SSDP discovery info has no UDN", "not_keenetic_ndms2": "Discovered device is not a Keenetic router", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "options": { + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "flow_title": "{name} ({host})", "step": { "user": { "data": { - "scan_interval": "Scan interval", - "consider_home": "Consider home interval", - "interfaces": "Choose interfaces to scan", - "try_hotspot": "Use 'ip hotspot' data (most accurate)", - "include_arp": "Use ARP data (ignored if hotspot data used)", - "include_associated": "Use Wi-Fi AP associations data (ignored if hotspot data used)" - } + "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 hostname or IP address of your Keenetic router." + }, + "title": "Set up Keenetic NDMS2 Router" } - }, + } + }, + "options": { "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "not_initialized": "The integration is not initialized yet. Can't display available options." + }, + "step": { + "user": { + "data": { + "consider_home": "Consider home interval", + "include_arp": "Use ARP data (ignored if hotspot data used)", + "include_associated": "Use Wi-Fi AP associations data (ignored if hotspot data used)", + "interfaces": "Choose interfaces to scan", + "scan_interval": "Scan interval", + "try_hotspot": "Use 'ip hotspot' data (most accurate)" + } + } } } } diff --git a/homeassistant/components/kef/icons.json b/homeassistant/components/kef/icons.json index e259e91eb1b..c38d8356837 100644 --- a/homeassistant/components/kef/icons.json +++ b/homeassistant/components/kef/icons.json @@ -1,28 +1,28 @@ { "services": { - "update_dsp": { - "service": "mdi:update" - }, - "set_mode": { - "service": "mdi:cog" - }, "set_desk_db": { "service": "mdi:volume-high" }, - "set_wall_db": { - "service": "mdi:volume-high" - }, - "set_treble_db": { - "service": "mdi:volume-high" - }, "set_high_hz": { "service": "mdi:sine-wave" }, "set_low_hz": { "service": "mdi:cosine-wave" }, + "set_mode": { + "service": "mdi:cog" + }, "set_sub_db": { "service": "mdi:volume-high" + }, + "set_treble_db": { + "service": "mdi:volume-high" + }, + "set_wall_db": { + "service": "mdi:volume-high" + }, + "update_dsp": { + "service": "mdi:update" } } } diff --git a/homeassistant/components/kef/strings.json b/homeassistant/components/kef/strings.json index 56fdeaa6704..3ca700aac65 100644 --- a/homeassistant/components/kef/strings.json +++ b/homeassistant/components/kef/strings.json @@ -1,98 +1,98 @@ { "services": { - "update_dsp": { - "name": "Update DSP", - "description": "Updates all DSP settings." - }, - "set_mode": { - "name": "Set mode", - "description": "Sets the mode of the speaker.", - "fields": { - "desk_mode": { - "name": "Desk mode", - "description": "Desk mode." - }, - "wall_mode": { - "name": "Wall mode", - "description": "Wall mode." - }, - "phase_correction": { - "name": "Phase correction", - "description": "Phase correction." - }, - "high_pass": { - "name": "High pass", - "description": "High-pass mode." - }, - "sub_polarity": { - "name": "Subwoofer polarity", - "description": "Sub polarity." - }, - "bass_extension": { - "name": "Bass extension", - "description": "Bass extension." - } - } - }, "set_desk_db": { - "name": "Set desk dB", "description": "Sets the \"Desk mode\" slider of the speaker in dB.", "fields": { "db_value": { - "name": "dB value", - "description": "Value of the slider." + "description": "Value of the slider.", + "name": "dB value" } - } - }, - "set_wall_db": { - "name": "Set wall dB", - "description": "Sets the \"Wall mode\" slider of the speaker in dB.", - "fields": { - "db_value": { - "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", - "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" - } - } - }, - "set_treble_db": { - "name": "Set treble dB", - "description": "Sets desk the \"Treble trim\" slider of the speaker in dB.", - "fields": { - "db_value": { - "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", - "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" - } - } + }, + "name": "Set desk dB" }, "set_high_hz": { - "name": "Set high hertz", "description": "Sets the \"High-pass mode\" slider of the speaker in Hz.", "fields": { "hz_value": { - "name": "Hertz value", - "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]", + "name": "Hertz value" } - } + }, + "name": "Set high hertz" }, "set_low_hz": { - "name": "Set low Hertz", "description": "Sets the \"Sub out low-pass frequency\" slider of the speaker in Hz.", "fields": { "hz_value": { - "name": "[%key:component::kef::services::set_high_hz::fields::hz_value::name%]", - "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]", + "name": "[%key:component::kef::services::set_high_hz::fields::hz_value::name%]" } - } + }, + "name": "Set low Hertz" + }, + "set_mode": { + "description": "Sets the mode of the speaker.", + "fields": { + "bass_extension": { + "description": "Bass extension.", + "name": "Bass extension" + }, + "desk_mode": { + "description": "Desk mode.", + "name": "Desk mode" + }, + "high_pass": { + "description": "High-pass mode.", + "name": "High pass" + }, + "phase_correction": { + "description": "Phase correction.", + "name": "Phase correction" + }, + "sub_polarity": { + "description": "Sub polarity.", + "name": "Subwoofer polarity" + }, + "wall_mode": { + "description": "Wall mode.", + "name": "Wall mode" + } + }, + "name": "Set mode" }, "set_sub_db": { - "name": "Set subwoofer dB", "description": "Sets the \"Sub gain\" slider of the speaker in dB.", "fields": { "db_value": { - "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", - "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]", + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]" } - } + }, + "name": "Set subwoofer dB" + }, + "set_treble_db": { + "description": "Sets desk the \"Treble trim\" slider of the speaker in dB.", + "fields": { + "db_value": { + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]", + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]" + } + }, + "name": "Set treble dB" + }, + "set_wall_db": { + "description": "Sets the \"Wall mode\" slider of the speaker in dB.", + "fields": { + "db_value": { + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]", + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]" + } + }, + "name": "Set wall dB" + }, + "update_dsp": { + "description": "Updates all DSP settings.", + "name": "Update DSP" } } } diff --git a/homeassistant/components/kegtron/strings.json b/homeassistant/components/kegtron/strings.json index 16a80220a20..f85ef2e6920 100644 --- a/homeassistant/components/kegtron/strings.json +++ b/homeassistant/components/kegtron/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } } } diff --git a/homeassistant/components/keyboard/icons.json b/homeassistant/components/keyboard/icons.json index 03b6210bf41..632c0d6424b 100644 --- a/homeassistant/components/keyboard/icons.json +++ b/homeassistant/components/keyboard/icons.json @@ -1,7 +1,13 @@ { "services": { - "volume_up": { - "service": "mdi:volume-high" + "media_next_track": { + "service": "mdi:skip-next" + }, + "media_play_pause": { + "service": "mdi:play-pause" + }, + "media_prev_track": { + "service": "mdi:skip-previous" }, "volume_down": { "service": "mdi:volume-low" @@ -9,14 +15,8 @@ "volume_mute": { "service": "mdi:volume-off" }, - "media_play_pause": { - "service": "mdi:play-pause" - }, - "media_next_track": { - "service": "mdi:skip-next" - }, - "media_prev_track": { - "service": "mdi:skip-previous" + "volume_up": { + "service": "mdi:volume-high" } } } diff --git a/homeassistant/components/keyboard/strings.json b/homeassistant/components/keyboard/strings.json index 1b744cb7a71..81bda5acac7 100644 --- a/homeassistant/components/keyboard/strings.json +++ b/homeassistant/components/keyboard/strings.json @@ -1,28 +1,28 @@ { "services": { - "volume_up": { - "name": "Volume up", - "description": "Simulates a key press of the \"Volume Up\" button on Home Assistant's host machine." - }, - "volume_down": { - "name": "Volume down", - "description": "Simulates a key press of the \"Volume Down\" button on Home Assistant's host machine." - }, - "volume_mute": { - "name": "Volume mute", - "description": "Simulates a key press of the \"Volume Mute\" button on Home Assistant's host machine." + "media_next_track": { + "description": "Simulates a key press of the \"Media Next Track\" button on Home Assistant's host machine.", + "name": "Media next track" }, "media_play_pause": { - "name": "Media play/pause", - "description": "Simulates a key press of the \"Media Play/Pause\" button on Home Assistant's host machine." - }, - "media_next_track": { - "name": "Media next track", - "description": "Simulates a key press of the \"Media Next Track\" button on Home Assistant's host machine." + "description": "Simulates a key press of the \"Media Play/Pause\" button on Home Assistant's host machine.", + "name": "Media play/pause" }, "media_prev_track": { - "name": "Media previous track", - "description": "Simulates a key press of the \"Media Previous Track\" button on Home Assistant's host machine." + "description": "Simulates a key press of the \"Media Previous Track\" button on Home Assistant's host machine.", + "name": "Media previous track" + }, + "volume_down": { + "description": "Simulates a key press of the \"Volume Down\" button on Home Assistant's host machine.", + "name": "Volume down" + }, + "volume_mute": { + "description": "Simulates a key press of the \"Volume Mute\" button on Home Assistant's host machine.", + "name": "Volume mute" + }, + "volume_up": { + "description": "Simulates a key press of the \"Volume Up\" button on Home Assistant's host machine.", + "name": "Volume up" } } } diff --git a/homeassistant/components/keymitt_ble/strings.json b/homeassistant/components/keymitt_ble/strings.json index 5e7e895d222..f7bc8693360 100644 --- a/homeassistant/components/keymitt_ble/strings.json +++ b/homeassistant/components/keymitt_ble/strings.json @@ -1,27 +1,27 @@ { "config": { - "flow_title": "{name}", - "step": { - "init": { - "title": "Set up MicroBot device", - "data": { - "address": "Device address", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "link": { - "title": "Pairing", - "description": "Press the button on the MicroBot Push when the LED is solid pink or green to register with Home Assistant." - } + "abort": { + "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "linking": "Failed to pair, please try again. Is the MicroBot in pairing mode?" }, - "abort": { - "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "flow_title": "{name}", + "step": { + "init": { + "data": { + "address": "Device address", + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "Set up MicroBot device" + }, + "link": { + "description": "Press the button on the MicroBot Push when the LED is solid pink or green to register with Home Assistant.", + "title": "Pairing" + } } }, "entity": { @@ -33,26 +33,26 @@ }, "services": { "calibrate": { - "name": "Calibrate", "description": "Sets the depth, press or release duration, and operation mode. Warning - this will send a push command to the device.", "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of entity to calibrate." - }, "depth": { - "name": "Depth", - "description": "How far to extend the push arm." + "description": "How far to extend the push arm.", + "name": "Depth" }, "duration": { - "name": "Duration", - "description": "How long to press or release." + "description": "How long to press or release.", + "name": "Duration" + }, + "entity_id": { + "description": "Name of entity to calibrate.", + "name": "Entity" }, "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The operation mode of the arm." + "description": "The operation mode of the arm.", + "name": "[%key:common::config_flow::data::mode%]" } - } + }, + "name": "Calibrate" } } } diff --git a/homeassistant/components/kitchen_sink/icons.json b/homeassistant/components/kitchen_sink/icons.json index 565d595d9c7..d9d91a6054e 100644 --- a/homeassistant/components/kitchen_sink/icons.json +++ b/homeassistant/components/kitchen_sink/icons.json @@ -10,10 +10,10 @@ }, "services": { "test_service_1": { - "service": "mdi:flask", "sections": { "advanced_fields": "mdi:test-tube" - } + }, + "service": "mdi:flask" } } } diff --git a/homeassistant/components/kitchen_sink/strings.json b/homeassistant/components/kitchen_sink/strings.json index e0cdf75b707..ad490f9c32f 100644 --- a/homeassistant/components/kitchen_sink/strings.json +++ b/homeassistant/components/kitchen_sink/strings.json @@ -11,27 +11,73 @@ }, "config_subentries": { "entity": { + "entry_type": "Sensor", + "initiate_flow": { + "reconfigure": "Reconfigure sensor", + "user": "Add sensor" + }, "step": { "add_sensor": { - "description": "Configure the new sensor", "data": { "name": "[%key:common::config_flow::data::name%]", "state": "Initial state" - } + }, + "description": "Configure the new sensor" }, "reconfigure_sensor": { - "description": "Reconfigure the sensor", "data": { "name": "[%key:component::kitchen_sink::config_subentries::entity::step::reconfigure_sensor::data::state%]", "state": "Initial state" + }, + "description": "Reconfigure the sensor" + } + } + } + }, + "device": { + "n_ch_power_strip": { + "name": "Power strip with {number_of_sockets} sockets" + } + }, + "issues": { + "bad_psu": { + "fix_flow": { + "step": { + "confirm": { + "description": "Select **Submit** to confirm the power supply has been replaced", + "title": "The power supply needs to be replaced" } } }, - "initiate_flow": { - "user": "Add sensor", - "reconfigure": "Reconfigure sensor" + "title": "The power supply is not stable" + }, + "cold_tea": { + "fix_flow": { + "abort": { + "not_tea_time": "Can not re-heat the tea at this time" + }, + "step": {} }, - "entry_type": "Sensor" + "title": "The tea is cold" + }, + "out_of_blinker_fluid": { + "fix_flow": { + "step": { + "confirm": { + "description": "Select **Submit** when blinker fluid has been refilled", + "title": "Blinker fluid needs to be refilled" + } + } + }, + "title": "The blinker fluid is empty and needs to be refilled" + }, + "transmogrifier_deprecated": { + "description": "The transmogrifier component is now deprecated due to the lack of local control available in the new API", + "title": "The transmogrifier component is deprecated" + }, + "unfixable_problem": { + "description": "This issue is never going to give up.", + "title": "This is not a fixable problem" } }, "options": { @@ -57,78 +103,32 @@ } } }, - "device": { - "n_ch_power_strip": { - "name": "Power strip with {number_of_sockets} sockets" - } - }, - "issues": { - "bad_psu": { - "title": "The power supply is not stable", - "fix_flow": { - "step": { - "confirm": { - "title": "The power supply needs to be replaced", - "description": "Select **Submit** to confirm the power supply has been replaced" - } - } - } - }, - "out_of_blinker_fluid": { - "title": "The blinker fluid is empty and needs to be refilled", - "fix_flow": { - "step": { - "confirm": { - "title": "Blinker fluid needs to be refilled", - "description": "Select **Submit** when blinker fluid has been refilled" - } - } - } - }, - "cold_tea": { - "title": "The tea is cold", - "fix_flow": { - "step": {}, - "abort": { - "not_tea_time": "Can not re-heat the tea at this time" - } - } - }, - "transmogrifier_deprecated": { - "title": "The transmogrifier component is deprecated", - "description": "The transmogrifier component is now deprecated due to the lack of local control available in the new API" - }, - "unfixable_problem": { - "title": "This is not a fixable problem", - "description": "This issue is never going to give up." - } - }, "services": { "test_service_1": { - "name": "Test action 1", "description": "Fake action for testing", "fields": { "field_1": { - "name": "Field 1", - "description": "Number of seconds" + "description": "Number of seconds", + "name": "Field 1" }, "field_2": { - "name": "Field 2", - "description": "Mode" + "description": "Mode", + "name": "Field 2" }, "field_3": { - "name": "Field 3", - "description": "Number of hours" + "description": "Number of hours", + "name": "Field 3" }, "field_4": { - "name": "Field 4", - "description": "Direction" + "description": "Direction", + "name": "Field 4" } }, + "name": "Test action 1", "sections": { "advanced_fields": { - "name": "Advanced options", - "description": "Some very advanced things" + "description": "Some very advanced things", + "name": "Advanced options" } } } diff --git a/homeassistant/components/kmtronic/strings.json b/homeassistant/components/kmtronic/strings.json index f3c1f75d818..d3215d74c3f 100644 --- a/homeassistant/components/kmtronic/strings.json +++ b/homeassistant/components/kmtronic/strings.json @@ -1,31 +1,22 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your KMtronic device." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { "step": { - "init": { + "user": { "data": { - "reverse": "Reverse switch logic (use NC)" + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your KMtronic device." } } } @@ -36,5 +27,14 @@ "name": "Relay {relay_id}" } } + }, + "options": { + "step": { + "init": { + "data": { + "reverse": "Reverse switch logic (use NC)" + } + } + } } } diff --git a/homeassistant/components/knocki/strings.json b/homeassistant/components/knocki/strings.json index 8e6fb722281..98a70ceec54 100644 --- a/homeassistant/components/knocki/strings.json +++ b/homeassistant/components/knocki/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "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_service%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { diff --git a/homeassistant/components/knx/icons.json b/homeassistant/components/knx/icons.json index 756b6ab9f9e..e13a41ba3c2 100644 --- a/homeassistant/components/knx/icons.json +++ b/homeassistant/components/knx/icons.json @@ -5,10 +5,10 @@ "state_attributes": { "preset_mode": { "state": { + "building_protection": "mdi:sun-snowflake-variant", "comfort": "mdi:sofa", - "standby": "mdi:home-export-outline", "economy": "mdi:leaf", - "building_protection": "mdi:sun-snowflake-variant" + "standby": "mdi:home-export-outline" } } } @@ -18,6 +18,9 @@ "individual_address": { "default": "mdi:router-network" }, + "telegram_count": { + "default": "mdi:plus-network" + }, "telegrams_incoming": { "default": "mdi:upload-network" }, @@ -29,27 +32,24 @@ }, "telegrams_outgoing_error": { "default": "mdi:close-network" - }, - "telegram_count": { - "default": "mdi:plus-network" } } }, "services": { - "send": { - "service": "mdi:email-arrow-right" - }, - "read": { - "service": "mdi:email-search" - }, "event_register": { "service": "mdi:home-import-outline" }, "exposure_register": { "service": "mdi:home-export-outline" }, + "read": { + "service": "mdi:email-search" + }, "reload": { "service": "mdi:reload" + }, + "send": { + "service": "mdi:email-arrow-right" } } } diff --git a/homeassistant/components/knx/strings.json b/homeassistant/components/knx/strings.json index 4f7e7344ba4..200b90a49e0 100644 --- a/homeassistant/components/knx/strings.json +++ b/homeassistant/components/knx/strings.json @@ -1,141 +1,5 @@ { "config": { - "step": { - "reconfigure": { - "title": "KNX connection settings", - "menu_options": { - "connection_type": "Reconfigure KNX connection", - "secure_knxkeys": "Import KNX keyring file" - } - }, - "connection_type": { - "title": "KNX connection", - "description": "'Automatic' performs a gateway scan on start, to find a KNX IP interface. It will connect via a tunnel. (Not available if a gateway scan was not successful.)\n\n'Tunneling' will connect to a specific KNX IP interface over a tunnel.\n\n'Routing' will use Multicast to communicate with KNX IP routers.", - "data": { - "connection_type": "KNX connection type" - }, - "data_description": { - "connection_type": "Please select the connection type you want to use for your KNX connection." - } - }, - "tunnel": { - "title": "Tunnel", - "data": { - "gateway": "Please select a gateway from the list." - }, - "data_description": { - "gateway": "Select a KNX tunneling interface you want use for the connection." - } - }, - "tcp_tunnel_endpoint": { - "title": "Tunnel endpoint", - "data": { - "tunnel_endpoint_ia": "Select the tunnel endpoint used for the connection." - }, - "data_description": { - "tunnel_endpoint_ia": "'Automatic' selects a free tunnel endpoint for you when connecting. If you're unsure, this is the best option." - } - }, - "manual_tunnel": { - "title": "Tunnel settings", - "description": "Please enter the connection information of your tunneling device.", - "data": { - "tunneling_type": "KNX tunneling type", - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "route_back": "Route back / NAT mode", - "local_ip": "Local IP interface" - }, - "data_description": { - "tunneling_type": "Select the tunneling type of your KNX/IP tunneling device. Older interfaces may only support `UDP`.", - "host": "IP address or hostname of the KNX/IP tunneling device.", - "port": "Port used by the KNX/IP tunneling device.", - "route_back": "Enable if your KNXnet/IP tunneling server is behind NAT. Only applies for UDP connections.", - "local_ip": "Local IP or interface name used for the connection from Home Assistant. Leave blank to use auto-discovery." - } - }, - "secure_key_source_menu_tunnel": { - "title": "KNX IP Secure", - "description": "How do you want to configure KNX/IP Secure?", - "menu_options": { - "secure_knxkeys": "Use a `.knxkeys` file providing IP Secure keys", - "secure_tunnel_manual": "Configure IP Secure credentials manually" - } - }, - "secure_key_source_menu_routing": { - "title": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::title%]", - "description": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::description%]", - "menu_options": { - "secure_knxkeys": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_knxkeys%]", - "secure_routing_manual": "Configure IP Secure backbone key manually" - } - }, - "secure_knxkeys": { - "title": "Import KNX Keyring", - "description": "The keyring is used to encrypt and decrypt KNX IP Secure communication. You can import a new keyring file or re-import to update existing keys if your configuration has changed.", - "data": { - "knxkeys_file": "Keyring file", - "knxkeys_password": "Keyring password" - }, - "data_description": { - "knxkeys_file": "Select a `.knxkeys` file. This can be exported from ETS.", - "knxkeys_password": "The password to open the `.knxkeys` file was set when exporting." - } - }, - "knxkeys_tunnel_select": { - "title": "[%key:component::knx::config::step::tcp_tunnel_endpoint::title%]", - "data": { - "tunnel_endpoint_ia": "[%key:component::knx::config::step::tcp_tunnel_endpoint::data::tunnel_endpoint_ia%]" - }, - "data_description": { - "tunnel_endpoint_ia": "[%key:component::knx::config::step::tcp_tunnel_endpoint::data_description::tunnel_endpoint_ia%]" - } - }, - "secure_tunnel_manual": { - "title": "Secure tunneling", - "description": "Please enter your IP Secure information.", - "data": { - "user_id": "User ID", - "user_password": "User password", - "device_authentication": "Device authentication password" - }, - "data_description": { - "user_id": "This usually is tunnel number +1. So first tunnel in the list presented in ETS would have User-ID `2`.", - "user_password": "Password for the specific tunnel connection set in the 'Properties' panel of the tunnel in ETS.", - "device_authentication": "This is set in the 'IP' panel of the interface in ETS." - } - }, - "secure_routing_manual": { - "title": "Secure routing", - "description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]", - "data": { - "backbone_key": "Backbone key", - "sync_latency_tolerance": "Network latency tolerance" - }, - "data_description": { - "backbone_key": "Can be seen in the 'Security' report of your ETS project. Eg. `00112233445566778899AABBCCDDEEFF`", - "sync_latency_tolerance": "Should be equal to the backbone configuration of your ETS project. Default is `1000`" - } - }, - "routing": { - "title": "Routing", - "description": "Please configure the routing options.", - "data": { - "individual_address": "Individual address", - "routing_secure": "KNX IP Secure Routing", - "multicast_group": "Multicast group", - "multicast_port": "Multicast port", - "local_ip": "[%key:component::knx::config::step::manual_tunnel::data::local_ip%]" - }, - "data_description": { - "individual_address": "KNX address to be used by Home Assistant, e.g. `0.0.4`", - "routing_secure": "Select if your installation uses encrypted communication according to the KNX IP Secure standard. This setting requires compatible devices and configuration. You'll be prompted for credentials in the next step.", - "multicast_group": "Multicast group used by your installation. Default is `224.0.23.12`", - "multicast_port": "Multicast port used by your installation. Default is `3671`", - "local_ip": "[%key:component::knx::config::step::manual_tunnel::data_description::local_ip%]" - } - } - }, "abort": { "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, @@ -151,39 +15,572 @@ "no_router_discovered": "No KNXnet/IP router was discovered on the network.", "no_tunnel_discovered": "Could not find a KNX tunneling server on your network.", "unsupported_tunnel_type": "Selected tunneling type not supported by gateway." - } - }, - "exceptions": { - "integration_not_loaded": { - "message": "KNX integration is not loaded." }, - "service_exposure_remove_not_found": { - "message": "Could not find exposure for `{group_address}` to remove." - }, - "service_send_invalid_payload": { - "message": "Invalid payload for `knx.send` service. {error}" - }, - "service_send_invalid_type": { - "message": "Invalid type for `knx.send` service: {type}" - } - }, - "options": { "step": { - "communication_settings": { - "title": "Communication settings", + "connection_type": { "data": { - "state_updater": "State updater", - "rate_limit": "Rate limit", - "telegram_log_size": "Telegram history limit" + "connection_type": "KNX connection type" }, "data_description": { - "state_updater": "Sets the default behavior for reading state addresses from the KNX Bus.\nWhen enabled, Home Assistant will monitor each group address and read it from the bus if no value has been received for one hour.\nWhen disabled, state addresses will only be read once after a bus connection is established.\nThis behavior can be overridden for individual entities using the `sync_state` option.", - "rate_limit": "Maximum outgoing telegrams per second.\n`0` to disable limit. Recommended: `0` or between `20` and `40`", - "telegram_log_size": "Telegrams to keep in memory for KNX panel group monitor. Maximum: {telegram_log_size_max}" + "connection_type": "Please select the connection type you want to use for your KNX connection." + }, + "description": "'Automatic' performs a gateway scan on start, to find a KNX IP interface. It will connect via a tunnel. (Not available if a gateway scan was not successful.)\n\n'Tunneling' will connect to a specific KNX IP interface over a tunnel.\n\n'Routing' will use Multicast to communicate with KNX IP routers.", + "title": "KNX connection" + }, + "knxkeys_tunnel_select": { + "data": { + "tunnel_endpoint_ia": "[%key:component::knx::config::step::tcp_tunnel_endpoint::data::tunnel_endpoint_ia%]" + }, + "data_description": { + "tunnel_endpoint_ia": "[%key:component::knx::config::step::tcp_tunnel_endpoint::data_description::tunnel_endpoint_ia%]" + }, + "title": "[%key:component::knx::config::step::tcp_tunnel_endpoint::title%]" + }, + "manual_tunnel": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "local_ip": "Local IP interface", + "port": "[%key:common::config_flow::data::port%]", + "route_back": "Route back / NAT mode", + "tunneling_type": "KNX tunneling type" + }, + "data_description": { + "host": "IP address or hostname of the KNX/IP tunneling device.", + "local_ip": "Local IP or interface name used for the connection from Home Assistant. Leave blank to use auto-discovery.", + "port": "Port used by the KNX/IP tunneling device.", + "route_back": "Enable if your KNXnet/IP tunneling server is behind NAT. Only applies for UDP connections.", + "tunneling_type": "Select the tunneling type of your KNX/IP tunneling device. Older interfaces may only support `UDP`." + }, + "description": "Please enter the connection information of your tunneling device.", + "title": "Tunnel settings" + }, + "reconfigure": { + "menu_options": { + "connection_type": "Reconfigure KNX connection", + "secure_knxkeys": "Import KNX keyring file" + }, + "title": "KNX connection settings" + }, + "routing": { + "data": { + "individual_address": "Individual address", + "local_ip": "[%key:component::knx::config::step::manual_tunnel::data::local_ip%]", + "multicast_group": "Multicast group", + "multicast_port": "Multicast port", + "routing_secure": "KNX IP Secure Routing" + }, + "data_description": { + "individual_address": "KNX address to be used by Home Assistant, e.g. `0.0.4`", + "local_ip": "[%key:component::knx::config::step::manual_tunnel::data_description::local_ip%]", + "multicast_group": "Multicast group used by your installation. Default is `224.0.23.12`", + "multicast_port": "Multicast port used by your installation. Default is `3671`", + "routing_secure": "Select if your installation uses encrypted communication according to the KNX IP Secure standard. This setting requires compatible devices and configuration. You'll be prompted for credentials in the next step." + }, + "description": "Please configure the routing options.", + "title": "Routing" + }, + "secure_key_source_menu_routing": { + "description": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::description%]", + "menu_options": { + "secure_knxkeys": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_knxkeys%]", + "secure_routing_manual": "Configure IP Secure backbone key manually" + }, + "title": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::title%]" + }, + "secure_key_source_menu_tunnel": { + "description": "How do you want to configure KNX/IP Secure?", + "menu_options": { + "secure_knxkeys": "Use a `.knxkeys` file providing IP Secure keys", + "secure_tunnel_manual": "Configure IP Secure credentials manually" + }, + "title": "KNX IP Secure" + }, + "secure_knxkeys": { + "data": { + "knxkeys_file": "Keyring file", + "knxkeys_password": "Keyring password" + }, + "data_description": { + "knxkeys_file": "Select a `.knxkeys` file. This can be exported from ETS.", + "knxkeys_password": "The password to open the `.knxkeys` file was set when exporting." + }, + "description": "The keyring is used to encrypt and decrypt KNX IP Secure communication. You can import a new keyring file or re-import to update existing keys if your configuration has changed.", + "title": "Import KNX Keyring" + }, + "secure_routing_manual": { + "data": { + "backbone_key": "Backbone key", + "sync_latency_tolerance": "Network latency tolerance" + }, + "data_description": { + "backbone_key": "Can be seen in the 'Security' report of your ETS project. Eg. `00112233445566778899AABBCCDDEEFF`", + "sync_latency_tolerance": "Should be equal to the backbone configuration of your ETS project. Default is `1000`" + }, + "description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]", + "title": "Secure routing" + }, + "secure_tunnel_manual": { + "data": { + "device_authentication": "Device authentication password", + "user_id": "User ID", + "user_password": "User password" + }, + "data_description": { + "device_authentication": "This is set in the 'IP' panel of the interface in ETS.", + "user_id": "This usually is tunnel number +1. So first tunnel in the list presented in ETS would have User-ID `2`.", + "user_password": "Password for the specific tunnel connection set in the 'Properties' panel of the tunnel in ETS." + }, + "description": "Please enter your IP Secure information.", + "title": "Secure tunneling" + }, + "tcp_tunnel_endpoint": { + "data": { + "tunnel_endpoint_ia": "Select the tunnel endpoint used for the connection." + }, + "data_description": { + "tunnel_endpoint_ia": "'Automatic' selects a free tunnel endpoint for you when connecting. If you're unsure, this is the best option." + }, + "title": "Tunnel endpoint" + }, + "tunnel": { + "data": { + "gateway": "Please select a gateway from the list." + }, + "data_description": { + "gateway": "Select a KNX tunneling interface you want use for the connection." + }, + "title": "Tunnel" + } + } + }, + "config_panel": { + "entities": { + "create": { + "_": { + "entity": { + "description": "Home Assistant specific settings.", + "device_description": "A device allows to group multiple entities. Select the device this entity belongs to or create a new one.", + "entity_category_description": "Classification of a non-primary entity. Leave empty for standard behavior.", + "entity_category_title": "Entity category", + "entity_description": "Optional if a device is selected, otherwise required. If the entity is assigned to a device, the device name is used as prefix.", + "entity_label": "Entity name", + "name_description": "Define how the entity should be named in Home Assistant.", + "name_title": "Device and entity name", + "title": "Entity configuration" + }, + "knx": { + "knx_group_address": { + "dpt": "Datapoint type", + "passive_addresses": "Passive addresses", + "send_address": "Send address", + "state_address": "State address", + "valid_dpts": "Valid DPTs" + }, + "sync_state": { + "description": "Actively request state updates from KNX bus for state addresses.", + "options": { + "every": "Scheduled every", + "expire": "Expire after last value update", + "false": "Never", + "init": "Once when connection established", + "true": "Use integration default" + }, + "strategy": "Strategy", + "title": "State updater" + }, + "title": "KNX configuration" + } + }, + "binary_sensor": { + "description": "Read-only entity for binary datapoints. Window or door states etc.", + "knx": { + "context_timeout": { + "description": "The time in seconds between multiple identical telegram payloads would count towards an internal counter. This can be used to automate on multi-clicks of a button. `0` to disable this feature.", + "label": "Context timeout" + }, + "ga_sensor": { + "description": "Group address representing a binary state.", + "label": "State" + }, + "ignore_internal_state": { + "description": "Write each update to the state machine, even if the data is the same.", + "label": "Force update" + }, + "invert": { + "description": "Invert payload before processing.", + "label": "Invert" + }, + "reset_after": { + "description": "Reset back to “off” state after specified seconds.", + "label": "Reset after" + }, + "section_advanced_options": { + "description": "Properties of the binary sensor state.", + "title": "State properties" + } + } + }, + "climate": { + "description": "The KNX climate platform is used as an interface to heating actuators, HVAC gateways, etc.", + "knx": { + "default_controller_mode": { + "description": "Climate mode to be set on initialization.", + "label": "Default mode" + }, + "fan_max_step": { + "description": "The maximum amount of steps for the fan.", + "label": "Fan steps" + }, + "fan_zero_mode": { + "description": "Set the mode that represents fan speed `0`.", + "label": "Zero fan speed mode", + "options": { + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]" + } + }, + "ga_active": { + "description": "Binary value indicating if the device is active or idle. If configured, this takes precedence over valve position.", + "label": "Active" + }, + "ga_controller_mode": { + "label": "Controller mode" + }, + "ga_controller_status": { + "description": "HVAC controller mode and preset status. Eberle Status octet (KNX AN 097/07 rev 3) non-standardized DPT.", + "label": "Controller status" + }, + "ga_fan_speed": { + "description": "Set the current fan speed.", + "label": "Fan speed", + "options": { + "5_001": "Percent", + "5_010": "Steps" + } + }, + "ga_fan_swing": { + "description": "Toggle (vertical) fan swing mode. Use this if only one direction is supported.", + "label": "Fan swing" + }, + "ga_fan_swing_horizontal": { + "description": "Toggle horizontal fan swing mode.", + "label": "Fan horizontal swing" + }, + "ga_heat_cool": { + "label": "Heating/Cooling" + }, + "ga_humidity_current": { + "label": "Current humidity" + }, + "ga_on_off": { + "label": "On/Off" + }, + "ga_operation_mode": { + "description": "Current operation mode.", + "label": "Operation mode" + }, + "ga_operation_mode_comfort": { + "label": "Comfort mode" + }, + "ga_operation_mode_economy": { + "label": "Economy mode" + }, + "ga_operation_mode_protection": { + "label": "Building protection mode" + }, + "ga_operation_mode_standby": { + "label": "Standby mode" + }, + "ga_temperature_current": { + "label": "Current temperature" + }, + "ga_valve": { + "description": "Current control value / valve position in percent. `0` sets the climate entity to idle.", + "label": "Valve position" + }, + "ignore_auto_mode": { + "description": "Enable when your controller doesn't support `auto` mode. It will be ignored by the integration then.", + "label": "Ignore auto mode" + }, + "on_off_invert": { + "description": "[%key:component::knx::config_panel::entities::create::binary_sensor::knx::invert::description%]", + "label": "[%key:component::knx::config_panel::entities::create::binary_sensor::knx::invert::label%]" + }, + "section_activity": { + "description": "Determine if the device is active or idle.", + "title": "Activity" + }, + "section_controller_mode": { + "description": "Set the mode of the climate device.", + "title": "Controller mode" + }, + "section_fan": { + "description": "Configuration for fan control (AC units).", + "title": "Fan" + }, + "section_heat_cool": { + "description": "Set whether the device is in heating or cooling mode.", + "title": "Heating/Cooling" + }, + "section_on_off": { + "description": "Turn the device on or off.", + "title": "On/Off" + }, + "section_operation_mode": { + "description": "Set the preset mode of the device.", + "title": "Operation mode" + }, + "section_operation_mode_individual": { + "description": "Set the preset mode of the device using individual group addresses.", + "title": "Individual operation modes" + }, + "target_temperature": { + "description": "Set the target temperature.", + "ga_setpoint_shift": { + "description": "Target temperature deviation from a base setpoint.", + "label": "Setpoint shift" + }, + "ga_temperature_target": { + "description": "Current absolute target temperature.", + "label": "Target temperature" + }, + "max_temp": { + "description": "Maximum temperature that can be set.", + "label": "Maximum temperature" + }, + "min_temp": { + "description": "Minimum temperature that can be set.", + "label": "Minimum temperature" + }, + "options": { + "group_direct_temp": { + "description": "Set the target temperature by an absolute value.", + "label": "Absolute setpoint" + }, + "group_setpoint_shift": { + "description": "Shift the target temperature from a base setpoint.", + "label": "Setpoint shift" + } + }, + "setpoint_shift_max": { + "description": "Highest allowed deviation from the base setpoint.", + "label": "Maximum setpoint shift" + }, + "setpoint_shift_min": { + "description": "Lowest allowed deviation from the base setpoint.", + "label": "Minimum setpoint shift" + }, + "temperature_step": { + "description": "Smallest step size to change the temperature. For setpoint shift configurations this sets the scale factor of the shift value.", + "label": "Temperature step" + }, + "title": "Target temperature" + } + } + }, + "cover": { + "description": "The KNX cover platform is used as an interface to shutter actuators.", + "knx": { + "ga_angle": { + "label": "Tilt angle" + }, + "ga_position_set": { + "description": "Group addresses for setting a new absolute position.", + "label": "Set position" + }, + "ga_position_state": { + "description": "Group addresses reporting the current position.", + "label": "Current position" + }, + "ga_step": { + "description": "Group addresses for stepwise movement. Used to stop the cover when no dedicated stop address is available.", + "label": "Stepwise move" + }, + "ga_stop": { + "description": "Group addresses for stopping movement.", + "label": "Stop" + }, + "ga_up_down": { + "description": "Group addresses triggering a full movement.", + "label": "Open/Close control" + }, + "invert_angle": { + "description": "[%key:component::knx::config_panel::entities::create::cover::knx::invert_position::description%]", + "label": "Invert angle" + }, + "invert_position": { + "description": "Invert telegram payload before processing. Enable if KNX reports 0% as fully closed.", + "label": "Invert position" + }, + "invert_updown": { + "description": "Default is UP (0) to open a cover and DOWN (1) to close a cover. Enable this to invert the open/close commands from/to your KNX actuator.", + "label": "Invert open/close" + }, + "section_position_control": { + "description": "Control cover position.", + "title": "Position" + }, + "section_tilt_control": { + "description": "Control slat tilt angle.", + "title": "Tilt" + }, + "section_travel_time": { + "description": "Used to calculate intermediate positions of the cover while traveling.", + "title": "Travel time" + }, + "travelling_time_down": { + "description": "Time in seconds the cover needs to fully close.", + "label": "Time for closing" + }, + "travelling_time_up": { + "description": "Time in seconds the cover needs to fully open.", + "label": "Time for opening" + } + } + }, + "header": "Create new entity", + "light": { + "description": "The KNX light platform is used as an interface to dimming actuators, LED controllers, DALI gateways and similar.", + "knx": { + "color": { + "description": "Control the color of the light.", + "ga_blue_brightness": { + "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_brightness::description%]", + "label": "Blue brightness" + }, + "ga_blue_switch": { + "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]", + "label": "Blue switch" + }, + "ga_color": { + "label": "Color addresses", + "options": { + "232_600": "RGB", + "242_600": "XYY", + "251_600": "RGBW" + } + }, + "ga_green_brightness": { + "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_brightness::description%]", + "label": "Green brightness" + }, + "ga_green_switch": { + "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]", + "label": "Green switch" + }, + "ga_hue": { + "description": "Controls the light's hue.", + "label": "Hue" + }, + "ga_red_brightness": { + "description": "Group address to control the brightness of the color channel. Required.", + "label": "Red brightness" + }, + "ga_red_switch": { + "description": "Group address to switch the color channel on/off.", + "label": "Red switch" + }, + "ga_saturation": { + "description": "Controls the light's saturation.", + "label": "Saturation" + }, + "ga_white_brightness": { + "description": "Group address to control the brightness of the color channel.", + "label": "White brightness" + }, + "ga_white_switch": { + "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]", + "label": "White switch" + }, + "options": { + "hsv_addresses": { + "description": "Hue, saturation and brightness controlled by individual group addresses.", + "label": "HSV" + }, + "individual_addresses": { + "description": "RGB(W) using individual group addresses for each color channel's state and brightness.", + "label": "Individual addresses" + }, + "single_address": { + "description": "RGB, RGBW or XYY color controlled by a single group address.", + "label": "Single address" + } + }, + "title": "Color" + }, + "color_temp_max": { + "label": "Coldest possible color temperature" + }, + "color_temp_min": { + "label": "Warmest possible color temperature" + }, + "ga_brightness": { + "description": "Control the absolute brightness of the light.", + "label": "Brightness" + }, + "ga_color_temp": { + "label": "Color temperature addresses", + "options": { + "5_001": "Percent", + "7_600": "Kelvin", + "9": "2-byte floating point" + } + }, + "ga_switch": { + "description": "Turn the light on/off.", + "label": "Switch" + }, + "section_color_temp": { + "description": "Control the color temperature of the light.", + "title": "Color temperature" + } + } + }, + "switch": { + "description": "The KNX switch platform is used as an interface to switching actuators.", + "knx": { + "ga_switch": { + "description": "Group address to switch the device on/off.", + "label": "Switch" + }, + "invert": { + "description": "Invert payloads before processing or sending.", + "label": "Invert" + }, + "respond_to_read": { + "description": "Respond to GroupValueRead telegrams received to the configured send address.", + "label": "Respond to read" + } + } + }, + "type_selection": { + "header": "Create KNX entity", + "title": "Select entity type" } } } }, + "device_automation": { + "extra_fields": { + "destination": "Group addresses", + "group_value_read": "GroupValueRead", + "group_value_response": "GroupValueResponse", + "group_value_write": "GroupValueWrite", + "incoming": "Incoming", + "outgoing": "Outgoing" + }, + "extra_fields_descriptions": { + "destination": "The trigger will listen to telegrams sent or received on these group addresses. If no address is selected, the trigger will fire for every group address.", + "group_value_read": "Listen on GroupValueRead telegrams.", + "group_value_response": "Listen on GroupValueResponse telegrams.", + "group_value_write": "Listen on GroupValueWrite telegrams.", + "incoming": "Listen on incoming telegrams.", + "outgoing": "Listen on outgoing telegrams." + }, + "trigger_type": { + "telegram": "Telegram" + } + }, "entity": { "climate": { "knx_climate": { @@ -202,15 +599,19 @@ } }, "sensor": { - "individual_address": { - "name": "[%key:component::knx::config::step::routing::data::individual_address%]" - }, "connected_since": { "name": "Connection established" }, "connection_type": { "name": "Connection type" }, + "individual_address": { + "name": "[%key:component::knx::config::step::routing::data::individual_address%]" + }, + "telegram_count": { + "name": "Telegrams", + "unit_of_measurement": "telegrams" + }, "telegrams_incoming": { "name": "Incoming telegrams", "unit_of_measurement": "[%key:component::knx::entity::sensor::telegram_count::unit_of_measurement%]" @@ -226,525 +627,124 @@ "telegrams_outgoing_error": { "name": "Outgoing telegram errors", "unit_of_measurement": "[%key:component::knx::entity::sensor::telegrams_incoming_error::unit_of_measurement%]" - }, - "telegram_count": { - "name": "Telegrams", - "unit_of_measurement": "telegrams" } } }, - "device_automation": { - "trigger_type": { - "telegram": "Telegram" + "exceptions": { + "integration_not_loaded": { + "message": "KNX integration is not loaded." }, - "extra_fields": { - "destination": "Group addresses", - "group_value_write": "GroupValueWrite", - "group_value_read": "GroupValueRead", - "group_value_response": "GroupValueResponse", - "incoming": "Incoming", - "outgoing": "Outgoing" + "service_exposure_remove_not_found": { + "message": "Could not find exposure for `{group_address}` to remove." }, - "extra_fields_descriptions": { - "destination": "The trigger will listen to telegrams sent or received on these group addresses. If no address is selected, the trigger will fire for every group address.", - "group_value_write": "Listen on GroupValueWrite telegrams.", - "group_value_read": "Listen on GroupValueRead telegrams.", - "group_value_response": "Listen on GroupValueResponse telegrams.", - "incoming": "Listen on incoming telegrams.", - "outgoing": "Listen on outgoing telegrams." + "service_send_invalid_payload": { + "message": "Invalid payload for `knx.send` service. {error}" + }, + "service_send_invalid_type": { + "message": "Invalid type for `knx.send` service: {type}" + } + }, + "options": { + "step": { + "communication_settings": { + "data": { + "rate_limit": "Rate limit", + "state_updater": "State updater", + "telegram_log_size": "Telegram history limit" + }, + "data_description": { + "rate_limit": "Maximum outgoing telegrams per second.\n`0` to disable limit. Recommended: `0` or between `20` and `40`", + "state_updater": "Sets the default behavior for reading state addresses from the KNX Bus.\nWhen enabled, Home Assistant will monitor each group address and read it from the bus if no value has been received for one hour.\nWhen disabled, state addresses will only be read once after a bus connection is established.\nThis behavior can be overridden for individual entities using the `sync_state` option.", + "telegram_log_size": "Telegrams to keep in memory for KNX panel group monitor. Maximum: {telegram_log_size_max}" + }, + "title": "Communication settings" + } } }, "services": { - "send": { - "name": "Send to KNX bus", - "description": "Sends arbitrary data directly to the KNX bus.", - "fields": { - "address": { - "name": "Group address", - "description": "Group address(es) to write to. Lists will send to multiple group addresses successively." - }, - "payload": { - "name": "Payload", - "description": "Payload to send to the bus. Integers are treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length." - }, - "type": { - "name": "Value type", - "description": "If set, the payload will not be sent as raw bytes, but encoded as given DPT. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)." - }, - "response": { - "name": "Send as Response", - "description": "Whether the telegram should be sent as a `GroupValueResponse` instead of a `GroupValueWrite`." - } - } - }, - "read": { - "name": "Read from KNX bus", - "description": "Sends GroupValueRead requests to the KNX bus. Response can be used from `knx_event` and will be processed in KNX entities.", - "fields": { - "address": { - "name": "[%key:component::knx::services::send::fields::address::name%]", - "description": "Group address(es) to send read request to. Lists will read multiple group addresses." - } - } - }, "event_register": { - "name": "Register knx_event", "description": "Adds or removes group addresses to knx_event filter for triggering `knx_event`s. Only addresses added with this action can be removed.", "fields": { "address": { - "name": "[%key:component::knx::services::send::fields::address::name%]", - "description": "Group address(es) that shall be added or removed. Lists are allowed." - }, - "type": { - "name": "Value type", - "description": "If set, the payload will be decoded as given DPT in the event data `value` key. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)." + "description": "Group address(es) that shall be added or removed. Lists are allowed.", + "name": "[%key:component::knx::services::send::fields::address::name%]" }, "remove": { - "name": "Remove event registration", - "description": "Whether the group address(es) will be removed." + "description": "Whether the group address(es) will be removed.", + "name": "Remove event registration" + }, + "type": { + "description": "If set, the payload will be decoded as given DPT in the event data `value` key. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types).", + "name": "Value type" } - } + }, + "name": "Register knx_event" }, "exposure_register": { - "name": "Expose to KNX bus", "description": "Adds or removes exposures to KNX bus. Only exposures added with this action can be removed.", "fields": { "address": { - "name": "[%key:component::knx::services::send::fields::address::name%]", - "description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered. Per address only one exposure can be registered." - }, - "type": { - "name": "Value type", - "description": "Telegrams will be encoded as given DPT. 'binary' and all KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)." - }, - "entity_id": { - "name": "Entity", - "description": "Entity ID whose state or attribute shall be exposed." + "description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered. Per address only one exposure can be registered.", + "name": "[%key:component::knx::services::send::fields::address::name%]" }, "attribute": { - "name": "Entity attribute", - "description": "Attribute of the entity that shall be sent to the KNX bus. If not set the state will be sent. Eg. for a light the state is eigther “on” or “off” - with attribute you can expose its “brightness”." + "description": "Attribute of the entity that shall be sent to the KNX bus. If not set the state will be sent. Eg. for a light the state is eigther “on” or “off” - with attribute you can expose its “brightness”.", + "name": "Entity attribute" }, "default": { - "name": "Default value", - "description": "Default value to send to the bus if the state or attribute value is None. Eg. a light with state “off” has no brightness attribute so a default value of 0 could be used. If not set (or None) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value." + "description": "Default value to send to the bus if the state or attribute value is None. Eg. a light with state “off” has no brightness attribute so a default value of 0 could be used. If not set (or None) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value.", + "name": "Default value" + }, + "entity_id": { + "description": "Entity ID whose state or attribute shall be exposed.", + "name": "Entity" }, "remove": { - "name": "Remove exposure", - "description": "Whether the exposure should be removed. Only the 'Address' field is required for removal." + "description": "Whether the exposure should be removed. Only the 'Address' field is required for removal.", + "name": "Remove exposure" + }, + "type": { + "description": "Telegrams will be encoded as given DPT. 'binary' and all KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types).", + "name": "Value type" } - } + }, + "name": "Expose to KNX bus" + }, + "read": { + "description": "Sends GroupValueRead requests to the KNX bus. Response can be used from `knx_event` and will be processed in KNX entities.", + "fields": { + "address": { + "description": "Group address(es) to send read request to. Lists will read multiple group addresses.", + "name": "[%key:component::knx::services::send::fields::address::name%]" + } + }, + "name": "Read from KNX bus" }, "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads the KNX integration." - } - }, - "config_panel": { - "entities": { - "create": { - "type_selection": { - "title": "Select entity type", - "header": "Create KNX entity" + "description": "Reloads the KNX integration.", + "name": "[%key:common::action::reload%]" + }, + "send": { + "description": "Sends arbitrary data directly to the KNX bus.", + "fields": { + "address": { + "description": "Group address(es) to write to. Lists will send to multiple group addresses successively.", + "name": "Group address" }, - "header": "Create new entity", - "_": { - "entity": { - "title": "Entity configuration", - "description": "Home Assistant specific settings.", - "name_title": "Device and entity name", - "name_description": "Define how the entity should be named in Home Assistant.", - "device_description": "A device allows to group multiple entities. Select the device this entity belongs to or create a new one.", - "entity_label": "Entity name", - "entity_description": "Optional if a device is selected, otherwise required. If the entity is assigned to a device, the device name is used as prefix.", - "entity_category_title": "Entity category", - "entity_category_description": "Classification of a non-primary entity. Leave empty for standard behavior." - }, - "knx": { - "title": "KNX configuration", - "knx_group_address": { - "dpt": "Datapoint type", - "send_address": "Send address", - "state_address": "State address", - "passive_addresses": "Passive addresses", - "valid_dpts": "Valid DPTs" - }, - "sync_state": { - "title": "State updater", - "description": "Actively request state updates from KNX bus for state addresses.", - "strategy": "Strategy", - "options": { - "true": "Use integration default", - "false": "Never", - "init": "Once when connection established", - "expire": "Expire after last value update", - "every": "Scheduled every" - } - } - } + "payload": { + "description": "Payload to send to the bus. Integers are treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length.", + "name": "Payload" }, - "binary_sensor": { - "description": "Read-only entity for binary datapoints. Window or door states etc.", - "knx": { - "ga_sensor": { - "label": "State", - "description": "Group address representing a binary state." - }, - "invert": { - "label": "Invert", - "description": "Invert payload before processing." - }, - "section_advanced_options": { - "title": "State properties", - "description": "Properties of the binary sensor state." - }, - "ignore_internal_state": { - "label": "Force update", - "description": "Write each update to the state machine, even if the data is the same." - }, - "context_timeout": { - "label": "Context timeout", - "description": "The time in seconds between multiple identical telegram payloads would count towards an internal counter. This can be used to automate on multi-clicks of a button. `0` to disable this feature." - }, - "reset_after": { - "label": "Reset after", - "description": "Reset back to “off” state after specified seconds." - } - } + "response": { + "description": "Whether the telegram should be sent as a `GroupValueResponse` instead of a `GroupValueWrite`.", + "name": "Send as Response" }, - "climate": { - "description": "The KNX climate platform is used as an interface to heating actuators, HVAC gateways, etc.", - "knx": { - "ga_temperature_current": { - "label": "Current temperature" - }, - "ga_humidity_current": { - "label": "Current humidity" - }, - "target_temperature": { - "title": "Target temperature", - "description": "Set the target temperature.", - "options": { - "group_direct_temp": { - "label": "Absolute setpoint", - "description": "Set the target temperature by an absolute value." - }, - "group_setpoint_shift": { - "label": "Setpoint shift", - "description": "Shift the target temperature from a base setpoint." - } - }, - "ga_temperature_target": { - "label": "Target temperature", - "description": "Current absolute target temperature." - }, - "min_temp": { - "label": "Minimum temperature", - "description": "Minimum temperature that can be set." - }, - "max_temp": { - "label": "Maximum temperature", - "description": "Maximum temperature that can be set." - }, - "temperature_step": { - "label": "Temperature step", - "description": "Smallest step size to change the temperature. For setpoint shift configurations this sets the scale factor of the shift value." - }, - "ga_setpoint_shift": { - "label": "Setpoint shift", - "description": "Target temperature deviation from a base setpoint." - }, - "setpoint_shift_min": { - "label": "Minimum setpoint shift", - "description": "Lowest allowed deviation from the base setpoint." - }, - "setpoint_shift_max": { - "label": "Maximum setpoint shift", - "description": "Highest allowed deviation from the base setpoint." - } - }, - "section_activity": { - "title": "Activity", - "description": "Determine if the device is active or idle." - }, - "ga_active": { - "label": "Active", - "description": "Binary value indicating if the device is active or idle. If configured, this takes precedence over valve position." - }, - "ga_valve": { - "label": "Valve position", - "description": "Current control value / valve position in percent. `0` sets the climate entity to idle." - }, - "section_operation_mode": { - "title": "Operation mode", - "description": "Set the preset mode of the device." - }, - "ga_operation_mode": { - "label": "Operation mode", - "description": "Current operation mode." - }, - "ignore_auto_mode": { - "label": "Ignore auto mode", - "description": "Enable when your controller doesn't support `auto` mode. It will be ignored by the integration then." - }, - "section_operation_mode_individual": { - "title": "Individual operation modes", - "description": "Set the preset mode of the device using individual group addresses." - }, - "ga_operation_mode_comfort": { - "label": "Comfort mode" - }, - "ga_operation_mode_economy": { - "label": "Economy mode" - }, - "ga_operation_mode_standby": { - "label": "Standby mode" - }, - "ga_operation_mode_protection": { - "label": "Building protection mode" - }, - "section_heat_cool": { - "title": "Heating/Cooling", - "description": "Set whether the device is in heating or cooling mode." - }, - "ga_heat_cool": { - "label": "Heating/Cooling" - }, - "section_on_off": { - "title": "On/Off", - "description": "Turn the device on or off." - }, - "ga_on_off": { - "label": "On/Off" - }, - "on_off_invert": { - "label": "[%key:component::knx::config_panel::entities::create::binary_sensor::knx::invert::label%]", - "description": "[%key:component::knx::config_panel::entities::create::binary_sensor::knx::invert::description%]" - }, - "section_controller_mode": { - "title": "Controller mode", - "description": "Set the mode of the climate device." - }, - "ga_controller_mode": { - "label": "Controller mode" - }, - "ga_controller_status": { - "label": "Controller status", - "description": "HVAC controller mode and preset status. Eberle Status octet (KNX AN 097/07 rev 3) non-standardized DPT." - }, - "default_controller_mode": { - "label": "Default mode", - "description": "Climate mode to be set on initialization." - }, - "section_fan": { - "title": "Fan", - "description": "Configuration for fan control (AC units)." - }, - "ga_fan_speed": { - "label": "Fan speed", - "description": "Set the current fan speed.", - "options": { - "5_001": "Percent", - "5_010": "Steps" - } - }, - "fan_max_step": { - "label": "Fan steps", - "description": "The maximum amount of steps for the fan." - }, - "fan_zero_mode": { - "label": "Zero fan speed mode", - "description": "Set the mode that represents fan speed `0`.", - "options": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]" - } - }, - "ga_fan_swing": { - "label": "Fan swing", - "description": "Toggle (vertical) fan swing mode. Use this if only one direction is supported." - }, - "ga_fan_swing_horizontal": { - "label": "Fan horizontal swing", - "description": "Toggle horizontal fan swing mode." - } - } - }, - "cover": { - "description": "The KNX cover platform is used as an interface to shutter actuators.", - "knx": { - "ga_up_down": { - "label": "Open/Close control", - "description": "Group addresses triggering a full movement." - }, - "invert_updown": { - "label": "Invert open/close", - "description": "Default is UP (0) to open a cover and DOWN (1) to close a cover. Enable this to invert the open/close commands from/to your KNX actuator." - }, - "ga_stop": { - "label": "Stop", - "description": "Group addresses for stopping movement." - }, - "ga_step": { - "label": "Stepwise move", - "description": "Group addresses for stepwise movement. Used to stop the cover when no dedicated stop address is available." - }, - "section_position_control": { - "title": "Position", - "description": "Control cover position." - }, - "ga_position_set": { - "label": "Set position", - "description": "Group addresses for setting a new absolute position." - }, - "ga_position_state": { - "label": "Current position", - "description": "Group addresses reporting the current position." - }, - "invert_position": { - "label": "Invert position", - "description": "Invert telegram payload before processing. Enable if KNX reports 0% as fully closed." - }, - "section_tilt_control": { - "title": "Tilt", - "description": "Control slat tilt angle." - }, - "ga_angle": { - "label": "Tilt angle" - }, - "invert_angle": { - "label": "Invert angle", - "description": "[%key:component::knx::config_panel::entities::create::cover::knx::invert_position::description%]" - }, - "section_travel_time": { - "title": "Travel time", - "description": "Used to calculate intermediate positions of the cover while traveling." - }, - "travelling_time_up": { - "label": "Time for opening", - "description": "Time in seconds the cover needs to fully open." - }, - "travelling_time_down": { - "label": "Time for closing", - "description": "Time in seconds the cover needs to fully close." - } - } - }, - "light": { - "description": "The KNX light platform is used as an interface to dimming actuators, LED controllers, DALI gateways and similar.", - "knx": { - "ga_switch": { - "label": "Switch", - "description": "Turn the light on/off." - }, - "ga_brightness": { - "label": "Brightness", - "description": "Control the absolute brightness of the light." - }, - "section_color_temp": { - "title": "Color temperature", - "description": "Control the color temperature of the light." - }, - "ga_color_temp": { - "label": "Color temperature addresses", - "options": { - "5_001": "Percent", - "7_600": "Kelvin", - "9": "2-byte floating point" - } - }, - "color_temp_min": { - "label": "Warmest possible color temperature" - }, - "color_temp_max": { - "label": "Coldest possible color temperature" - }, - "color": { - "title": "Color", - "description": "Control the color of the light.", - "options": { - "single_address": { - "label": "Single address", - "description": "RGB, RGBW or XYY color controlled by a single group address." - }, - "individual_addresses": { - "label": "Individual addresses", - "description": "RGB(W) using individual group addresses for each color channel's state and brightness." - }, - "hsv_addresses": { - "label": "HSV", - "description": "Hue, saturation and brightness controlled by individual group addresses." - } - }, - "ga_color": { - "label": "Color addresses", - "options": { - "232_600": "RGB", - "242_600": "XYY", - "251_600": "RGBW" - } - }, - "ga_red_switch": { - "label": "Red switch", - "description": "Group address to switch the color channel on/off." - }, - "ga_red_brightness": { - "label": "Red brightness", - "description": "Group address to control the brightness of the color channel. Required." - }, - "ga_green_switch": { - "label": "Green switch", - "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]" - }, - "ga_green_brightness": { - "label": "Green brightness", - "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_brightness::description%]" - }, - "ga_blue_switch": { - "label": "Blue switch", - "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]" - }, - "ga_blue_brightness": { - "label": "Blue brightness", - "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_brightness::description%]" - }, - "ga_white_switch": { - "label": "White switch", - "description": "[%key:component::knx::config_panel::entities::create::light::knx::color::ga_red_switch::description%]" - }, - "ga_white_brightness": { - "label": "White brightness", - "description": "Group address to control the brightness of the color channel." - }, - "ga_hue": { - "label": "Hue", - "description": "Controls the light's hue." - }, - "ga_saturation": { - "label": "Saturation", - "description": "Controls the light's saturation." - } - } - } - }, - "switch": { - "description": "The KNX switch platform is used as an interface to switching actuators.", - "knx": { - "ga_switch": { - "label": "Switch", - "description": "Group address to switch the device on/off." - }, - "invert": { - "label": "Invert", - "description": "Invert payloads before processing or sending." - }, - "respond_to_read": { - "label": "Respond to read", - "description": "Respond to GroupValueRead telegrams received to the configured send address." - } - } + "type": { + "description": "If set, the payload will not be sent as raw bytes, but encoded as given DPT. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types).", + "name": "Value type" } - } + }, + "name": "Send to KNX bus" } } } diff --git a/homeassistant/components/kodi/strings.json b/homeassistant/components/kodi/strings.json index 8d5e76df71e..20b90cd8e99 100644 --- a/homeassistant/components/kodi/strings.json +++ b/homeassistant/components/kodi/strings.json @@ -1,9 +1,31 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_uuid": "Kodi instance does not have a unique ID. This is most likely due to an old Kodi version (17.x or below). You can configure the integration manually or upgrade to a more recent Kodi version.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "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%]" + }, "flow_title": "{name}", "step": { + "credentials": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter your Kodi user name and password. These can be found in System/Settings/Network/Services." + }, + "discovery_confirm": { + "description": "Do you want to add Kodi (`{name}`) to Home Assistant?", + "title": "Discovered Kodi" + }, "user": { - "description": "Kodi connection information. Please make sure to enable \"Allow control of Kodi via HTTP\" in System/Settings/Network/Services.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]", @@ -11,77 +33,21 @@ }, "data_description": { "host": "The hostname or IP address of the system hosting your Kodi server." - } - }, - "discovery_confirm": { - "description": "Do you want to add Kodi (`{name}`) to Home Assistant?", - "title": "Discovered Kodi" + }, + "description": "Kodi connection information. Please make sure to enable \"Allow control of Kodi via HTTP\" in System/Settings/Network/Services." }, "ws_port": { - "description": "The WebSocket port (sometimes called TCP port in Kodi). In order to connect over WebSocket, you need to enable \"Allow programs ... to control Kodi\" in System/Settings/Network/Services. If WebSocket is not enabled, remove the port and leave empty.", "data": { "ws_port": "[%key:common::config_flow::data::port%]" - } - }, - "credentials": { - "description": "Please enter your Kodi user name and password. These can be found in System/Settings/Network/Services.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "The WebSocket port (sometimes called TCP port in Kodi). In order to connect over WebSocket, you need to enable \"Allow programs ... to control Kodi\" in System/Settings/Network/Services. If WebSocket is not enabled, remove the port and leave empty." } - }, - "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%]", - "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%]", - "no_uuid": "Kodi instance does not have a unique ID. This is most likely due to an old Kodi version (17.x or below). You can configure the integration manually or upgrade to a more recent Kodi version." } }, "device_automation": { "trigger_type": { - "turn_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turn_off": "[%key:common::device_automation::trigger_type::turned_off%]" - } - }, - "services": { - "add_to_playlist": { - "name": "Add to playlist", - "description": "Adds music to the default playlist (i.e. playlistid=0).", - "fields": { - "media_type": { - "name": "Media type", - "description": "Media type identifier. It must be one of 'SONG' or 'ALBUM'." - }, - "media_id": { - "name": "Media ID", - "description": "Unique ID of the media entry to add (`songid` or albumid`). If not defined, Media name and Artist name are needed to search the Kodi music library." - }, - "media_name": { - "name": "Media name", - "description": "Optional media name for filtering media. Can be 'ALL' when Media type is 'ALBUM' and Artist name is specified, to add all songs from one artist." - }, - "artist_name": { - "name": "Artist name", - "description": "Optional artist name for filtering media." - } - } - }, - "call_method": { - "name": "Call method", - "description": "Calls a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`.", - "fields": { - "method": { - "name": "Method", - "description": "Name of the Kodi JSONRPC API method to be called." - } - } + "turn_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turn_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity": { @@ -92,5 +58,39 @@ } } } + }, + "services": { + "add_to_playlist": { + "description": "Adds music to the default playlist (i.e. playlistid=0).", + "fields": { + "artist_name": { + "description": "Optional artist name for filtering media.", + "name": "Artist name" + }, + "media_id": { + "description": "Unique ID of the media entry to add (`songid` or albumid`). If not defined, Media name and Artist name are needed to search the Kodi music library.", + "name": "Media ID" + }, + "media_name": { + "description": "Optional media name for filtering media. Can be 'ALL' when Media type is 'ALBUM' and Artist name is specified, to add all songs from one artist.", + "name": "Media name" + }, + "media_type": { + "description": "Media type identifier. It must be one of 'SONG' or 'ALBUM'.", + "name": "Media type" + } + }, + "name": "Add to playlist" + }, + "call_method": { + "description": "Calls a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`.", + "fields": { + "method": { + "description": "Name of the Kodi JSONRPC API method to be called.", + "name": "Method" + } + }, + "name": "Call method" + } } } diff --git a/homeassistant/components/konnected/strings.json b/homeassistant/components/konnected/strings.json index 4896e4fb767..dc3a0de40e4 100644 --- a/homeassistant/components/konnected/strings.json +++ b/homeassistant/components/konnected/strings.json @@ -1,38 +1,66 @@ { "config": { - "step": { - "import_confirm": { - "title": "Import Konnected device", - "description": "A Konnected alarm panel with ID {id} has been discovered in configuration.yaml. This flow will allow you to import it into a config entry." - }, - "user": { - "description": "Please enter the host information for your Konnected panel.", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "confirm": { - "title": "Konnected device ready", - "description": "Model: {model}\nID: {id}\nHost: {host}\nPort: {port}\n\nYou can configure the IO and panel behavior in the Konnected alarm panel settings." - } + "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%]", + "not_konn_panel": "Not a recognized Konnected.io device", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "not_konn_panel": "Not a recognized Konnected.io device", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "step": { + "confirm": { + "description": "Model: {model}\nID: {id}\nHost: {host}\nPort: {port}\n\nYou can configure the IO and panel behavior in the Konnected alarm panel settings.", + "title": "Konnected device ready" + }, + "import_confirm": { + "description": "A Konnected alarm panel with ID {id} has been discovered in configuration.yaml. This flow will allow you to import it into a config entry.", + "title": "Import Konnected device" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "Please enter the host information for your Konnected panel." + } + } + }, + "issues": { + "deprecated_firmware": { + "description": "Konnected's integration is deprecated and Konnected strongly recommends migrating to their ESPHome based firmware and integration by following the guide at {kb_page_url}. After this migration, make sure you don't have any Konnected YAML configuration left in your configuration.yaml file and remove this integration from Home Assistant.", + "title": "Konnected firmware is deprecated" } }, "options": { + "abort": { + "not_konn_panel": "[%key:component::konnected::config::abort::not_konn_panel%]" + }, + "error": { + "bad_host": "Invalid custom API host URL" + }, "step": { + "options_binary": { + "data": { + "inverse": "Invert the open/close state", + "name": "[%key:common::config_flow::data::name%]", + "type": "Binary sensor type" + }, + "description": "{zone} options", + "title": "Configure binary sensor" + }, + "options_digital": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "poll_interval": "Poll interval (minutes)", + "type": "Sensor type" + }, + "description": "[%key:component::konnected::options::step::options_binary::description%]", + "title": "Configure digital sensor" + }, "options_io": { - "title": "Configure I/O", - "description": "Discovered a {model} at {host}. Select the base configuration of each I/O below - depending on the I/O it may allow for binary sensors (open/close contacts), digital sensors (dht and ds18b20), or switchable outputs. You'll be able to configure detailed options in the next steps.", "data": { "1": "Zone 1", "2": "Zone 2", @@ -42,74 +70,46 @@ "6": "Zone 6", "7": "Zone 7", "out": "OUT" - } + }, + "description": "Discovered a {model} at {host}. Select the base configuration of each I/O below - depending on the I/O it may allow for binary sensors (open/close contacts), digital sensors (dht and ds18b20), or switchable outputs. You'll be able to configure detailed options in the next steps.", + "title": "Configure I/O" }, "options_io_ext": { - "title": "Configure extended I/O", - "description": "Select the configuration of the remaining I/O below. You'll be able to configure detailed options in the next steps.", "data": { "8": "Zone 8", "9": "Zone 9", "10": "Zone 10", "11": "Zone 11", "12": "Zone 12", - "out1": "OUT1", "alarm1": "ALARM1", - "alarm2_out2": "OUT2/ALARM2" - } - }, - "options_binary": { - "title": "Configure binary sensor", - "description": "{zone} options", - "data": { - "type": "Binary sensor type", - "name": "[%key:common::config_flow::data::name%]", - "inverse": "Invert the open/close state" - } - }, - "options_digital": { - "title": "Configure digital sensor", - "description": "[%key:component::konnected::options::step::options_binary::description%]", - "data": { - "type": "Sensor type", - "name": "[%key:common::config_flow::data::name%]", - "poll_interval": "Poll interval (minutes)" - } - }, - "options_switch": { - "title": "Configure switchable output", - "description": "{zone} options: state {state}", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "activation": "Output when on", - "momentary": "Pulse duration (ms)", - "pause": "Pause between pulses (ms)", - "repeat": "Times to repeat (-1=infinite)", - "more_states": "Configure additional states for this zone" - } + "alarm2_out2": "OUT2/ALARM2", + "out1": "OUT1" + }, + "description": "Select the configuration of the remaining I/O below. You'll be able to configure detailed options in the next steps.", + "title": "Configure extended I/O" }, "options_misc": { - "title": "Configure misc", - "description": "Please select the desired behavior for your panel", "data": { - "discovery": "Respond to discovery requests on your network", + "api_host": "Custom API host URL", "blink": "Blink panel LED on when sending state change", - "override_api_host": "Override default Home Assistant API host URL", - "api_host": "Custom API host URL" - } + "discovery": "Respond to discovery requests on your network", + "override_api_host": "Override default Home Assistant API host URL" + }, + "description": "Please select the desired behavior for your panel", + "title": "Configure misc" + }, + "options_switch": { + "data": { + "activation": "Output when on", + "momentary": "Pulse duration (ms)", + "more_states": "Configure additional states for this zone", + "name": "[%key:common::config_flow::data::name%]", + "pause": "Pause between pulses (ms)", + "repeat": "Times to repeat (-1=infinite)" + }, + "description": "{zone} options: state {state}", + "title": "Configure switchable output" } - }, - "error": { - "bad_host": "Invalid custom API host URL" - }, - "abort": { - "not_konn_panel": "[%key:component::konnected::config::abort::not_konn_panel%]" - } - }, - "issues": { - "deprecated_firmware": { - "title": "Konnected firmware is deprecated", - "description": "Konnected's integration is deprecated and Konnected strongly recommends migrating to their ESPHome based firmware and integration by following the guide at {kb_page_url}. After this migration, make sure you don't have any Konnected YAML configuration left in your configuration.yaml file and remove this integration from Home Assistant." } } } diff --git a/homeassistant/components/kostal_plenticore/strings.json b/homeassistant/components/kostal_plenticore/strings.json index 80a6748e327..6c702bc6e22 100644 --- a/homeassistant/components/kostal_plenticore/strings.json +++ b/homeassistant/components/kostal_plenticore/strings.json @@ -1,29 +1,29 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "service_code": "Service code" - } - }, - "reconfigure": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "service_code": "[%key:component::kostal_plenticore::config::step::user::data::service_code%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "service_code": "[%key:component::kostal_plenticore::config::step::user::data::service_code%]" + } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "service_code": "Service code" + } + } } } } diff --git a/homeassistant/components/kraken/strings.json b/homeassistant/components/kraken/strings.json index d30e2bb2dff..65d46251571 100644 --- a/homeassistant/components/kraken/strings.json +++ b/homeassistant/components/kraken/strings.json @@ -9,16 +9,6 @@ } } }, - "options": { - "step": { - "init": { - "data": { - "scan_interval": "Update interval", - "tracked_asset_pairs": "Tracked asset pairs" - } - } - } - }, "entity": { "sensor": { "ask": { @@ -33,41 +23,51 @@ "bid_volume": { "name": "Bid volume" }, - "volume_today": { - "name": "Volume today" - }, - "volume_last_24h": { - "name": "Volume last 24h" - }, - "volume_weighted_average_today": { - "name": "Volume-weighted average today" - }, - "volume_weighted_average_last_24h": { - "name": "Volume-weighted average last 24h" - }, - "number_of_trades_today": { - "name": "Number of trades today" - }, - "number_of_trades_last_24h": { - "name": "Number of trades last 24h" - }, - "last_trade_closed": { - "name": "Last trade closed" - }, - "low_today": { - "name": "Low today" - }, - "low_last_24h": { - "name": "Low last 24h" + "high_last_24h": { + "name": "High last 24h" }, "high_today": { "name": "High today" }, - "high_last_24h": { - "name": "High last 24h" + "last_trade_closed": { + "name": "Last trade closed" + }, + "low_last_24h": { + "name": "Low last 24h" + }, + "low_today": { + "name": "Low today" + }, + "number_of_trades_last_24h": { + "name": "Number of trades last 24h" + }, + "number_of_trades_today": { + "name": "Number of trades today" }, "opening_price_today": { "name": "Opening price today" + }, + "volume_last_24h": { + "name": "Volume last 24h" + }, + "volume_today": { + "name": "Volume today" + }, + "volume_weighted_average_last_24h": { + "name": "Volume-weighted average last 24h" + }, + "volume_weighted_average_today": { + "name": "Volume-weighted average today" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "scan_interval": "Update interval", + "tracked_asset_pairs": "Tracked asset pairs" + } } } } diff --git a/homeassistant/components/kulersky/strings.json b/homeassistant/components/kulersky/strings.json index 959d7d0690a..9b1dab226d6 100644 --- a/homeassistant/components/kulersky/strings.json +++ b/homeassistant/components/kulersky/strings.json @@ -1,18 +1,18 @@ { "config": { - "step": { - "user": { - "data": { - "address": "[%key:common::config_flow::data::device%]" - } - } - }, "abort": { "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + } + } } }, "exceptions": { diff --git a/homeassistant/components/lacrosse_view/strings.json b/homeassistant/components/lacrosse_view/strings.json index c5d9a11e49a..b08f355c961 100644 --- a/homeassistant/components/lacrosse_view/strings.json +++ b/homeassistant/components/lacrosse_view/strings.json @@ -1,45 +1,45 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "no_locations": "No locations found" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_locations": "No locations found", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { "sensor": { - "heat_index": { - "name": "Heat index" - }, - "wind_heading": { - "name": "Wind heading" - }, - "wet_dry": { - "name": "Wet/Dry" - }, - "flex": { - "name": "Flex" - }, "barometric_pressure": { "name": "Barometric pressure" }, "feels_like": { "name": "Feels like" }, + "flex": { + "name": "Flex" + }, + "heat_index": { + "name": "Heat index" + }, + "wet_dry": { + "name": "Wet/Dry" + }, "wind_chill": { "name": "Wind chill" + }, + "wind_heading": { + "name": "Wind heading" } } }, diff --git a/homeassistant/components/lamarzocco/icons.json b/homeassistant/components/lamarzocco/icons.json index fb61397575d..a361c2e8caf 100644 --- a/homeassistant/components/lamarzocco/icons.json +++ b/homeassistant/components/lamarzocco/icons.json @@ -1,24 +1,24 @@ { "entity": { "binary_sensor": { - "water_tank": { - "default": "mdi:water", + "backflush_enabled": { + "default": "mdi:water-off", "state": { - "on": "mdi:water-alert", - "off": "mdi:water-check" + "on": "mdi:water" } }, "brew_active": { "default": "mdi:cup", "state": { - "on": "mdi:cup-water", - "off": "mdi:cup-off" + "off": "mdi:cup-off", + "on": "mdi:cup-water" } }, - "backflush_enabled": { - "default": "mdi:water-off", + "water_tank": { + "default": "mdi:water", "state": { - "on": "mdi:water" + "off": "mdi:water-check", + "on": "mdi:water-alert" } } }, @@ -34,25 +34,33 @@ "dose": { "default": "mdi:cup-water" }, - "smart_standby_time": { - "default": "mdi:timer" - }, - "preinfusion_time": { - "default": "mdi:water" + "prebrew_time_off": { + "default": "mdi:water-off" }, "prebrew_time_on": { "default": "mdi:water" }, - "prebrew_time_off": { - "default": "mdi:water-off" + "preinfusion_time": { + "default": "mdi:water" + }, + "smart_standby_time": { + "default": "mdi:timer" } }, "select": { + "prebrew_infusion_select": { + "default": "mdi:water-pump-off", + "state": { + "disabled": "mdi:water-pump-off", + "prebrew": "mdi:water-pump", + "typeb": "mdi:water-pump" + } + }, "smart_standby_mode": { "default": "mdi:power", "state": { - "poweron": "mdi:power", - "lastbrewing": "mdi:coffee" + "lastbrewing": "mdi:coffee", + "poweron": "mdi:power" } }, "steam_temp_select": { @@ -62,17 +70,12 @@ "2": "mdi:thermometer", "3": "mdi:thermometer-high" } - }, - "prebrew_infusion_select": { - "default": "mdi:water-pump-off", - "state": { - "disabled": "mdi:water-pump-off", - "prebrew": "mdi:water-pump", - "typeb": "mdi:water-pump" - } } }, "sensor": { + "brewing_start_time": { + "default": "mdi:clock-start" + }, "coffee_boiler_ready_time": { "default": "mdi:av-timer" }, @@ -82,9 +85,6 @@ "steam_boiler_ready_time": { "default": "mdi:av-timer" }, - "brewing_start_time": { - "default": "mdi:clock-start" - }, "total_coffees_made": { "default": "mdi:coffee" }, @@ -93,39 +93,39 @@ } }, "switch": { - "main": { - "default": "mdi:power", - "state": { - "on": "mdi:power", - "off": "mdi:power-off" - } - }, "auto_on_off": { "default": "mdi:alarm", "state": { - "on": "mdi:alarm", - "off": "mdi:alarm-off" + "off": "mdi:alarm-off", + "on": "mdi:alarm" + } + }, + "main": { + "default": "mdi:power", + "state": { + "off": "mdi:power-off", + "on": "mdi:power" } }, "smart_standby_enabled": { "state": { - "on": "mdi:sleep", - "off": "mdi:sleep-off" + "off": "mdi:sleep-off", + "on": "mdi:sleep" } }, "steam_boiler": { "default": "mdi:water-boiler", "state": { - "on": "mdi:water-boiler", - "off": "mdi:water-boiler-off" + "off": "mdi:water-boiler-off", + "on": "mdi:water-boiler" } } }, "update": { - "machine_firmware": { + "gateway_firmware": { "default": "mdi:cloud-download" }, - "gateway_firmware": { + "machine_firmware": { "default": "mdi:cloud-download" } } diff --git a/homeassistant/components/lamarzocco/strings.json b/homeassistant/components/lamarzocco/strings.json index 8de62efd284..620e440eadd 100644 --- a/homeassistant/components/lamarzocco/strings.json +++ b/homeassistant/components/lamarzocco/strings.json @@ -1,74 +1,62 @@ { "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%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "machine_not_found": "Discovered machine not found in given account", - "no_machines": "No machines found in account", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + "no_machines": "No machines found in account" }, "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Your username from the La Marzocco app", - "password": "Your password from the La Marzocco app" - } - }, "bluetooth_selection": { - "description": "Select your device from available Bluetooth devices.", "data": { "mac": "[%key:common::config_flow::data::device%]" }, "data_description": { "mac": "Select the Bluetooth device that is your machine" - } + }, + "description": "Select your device from available Bluetooth devices." }, "machine_selection": { - "description": "Select the machine you want to integrate.", "data": { "machine": "Machine" }, "data_description": { "machine": "Select the machine you want to integrate" - } + }, + "description": "Select the machine you want to integrate." }, "reauth_confirm": { - "description": "Re-authentication required. Please enter your password again.", "data": { "password": "[%key:common::config_flow::data::password%]" }, "data_description": { "password": "[%key:component::lamarzocco::config::step::user::data_description::password%]" - } + }, + "description": "Re-authentication required. Please enter your password again." }, "reconfigure": { "data": { - "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": { - "username": "[%key:component::lamarzocco::config::step::user::data_description::username%]", - "password": "[%key:component::lamarzocco::config::step::user::data_description::password%]" + "password": "[%key:component::lamarzocco::config::step::user::data_description::password%]", + "username": "[%key:component::lamarzocco::config::step::user::data_description::username%]" } - } - } - }, - "options": { - "step": { - "init": { + }, + "user": { "data": { - "use_bluetooth": "Use Bluetooth" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "use_bluetooth": "Should the integration try to use Bluetooth to control the machine?" + "password": "Your password from the La Marzocco app", + "username": "Your username from the La Marzocco app" } } } @@ -102,17 +90,17 @@ "coffee_temp": { "name": "Coffee target temperature" }, - "smart_standby_time": { - "name": "Smart standby time" - }, - "preinfusion_time": { - "name": "Preinfusion time" + "prebrew_time_off": { + "name": "Prebrew off time" }, "prebrew_time_on": { "name": "Prebrew on time" }, - "prebrew_time_off": { - "name": "Prebrew off time" + "preinfusion_time": { + "name": "Preinfusion time" + }, + "smart_standby_time": { + "name": "Smart standby time" } }, "select": { @@ -141,15 +129,18 @@ } }, "sensor": { + "brewing_start_time": { + "name": "Brewing start time" + }, "coffee_boiler_ready_time": { "name": "Coffee boiler ready time" }, + "last_cleaning_time": { + "name": "Last cleaning time" + }, "steam_boiler_ready_time": { "name": "Steam boiler ready time" }, - "brewing_start_time": { - "name": "Brewing start time" - }, "total_coffees_made": { "name": "Total coffees made", "unit_of_measurement": "coffees" @@ -157,9 +148,6 @@ "total_flushes_done": { "name": "Total flushes done", "unit_of_measurement": "flushes" - }, - "last_cleaning_time": { - "name": "Last cleaning time" } }, "switch": { @@ -174,20 +162,14 @@ } }, "update": { - "machine_firmware": { - "name": "Machine firmware" - }, "gateway_firmware": { "name": "Gateway firmware" + }, + "machine_firmware": { + "name": "Machine firmware" } } }, - "issues": { - "unsupported_gateway_firmware": { - "title": "Unsupported gateway firmware", - "description": "Gateway firmware {gateway_version} is no longer supported by this integration, please update." - } - }, "exceptions": { "api_error": { "message": "Error while communicating with the API" @@ -207,14 +189,32 @@ "select_option_error": { "message": "Error while setting select option {option} for {key}" }, - "switch_on_error": { - "message": "Error while turning on switch {key}" - }, "switch_off_error": { "message": "Error while turning off switch {key}" }, + "switch_on_error": { + "message": "Error while turning on switch {key}" + }, "update_failed": { "message": "Error while updating {key}" } + }, + "issues": { + "unsupported_gateway_firmware": { + "description": "Gateway firmware {gateway_version} is no longer supported by this integration, please update.", + "title": "Unsupported gateway firmware" + } + }, + "options": { + "step": { + "init": { + "data": { + "use_bluetooth": "Use Bluetooth" + }, + "data_description": { + "use_bluetooth": "Should the integration try to use Bluetooth to control the machine?" + } + } + } } } diff --git a/homeassistant/components/lametric/icons.json b/homeassistant/components/lametric/icons.json index 229770c96dc..6368b7c3b37 100644 --- a/homeassistant/components/lametric/icons.json +++ b/homeassistant/components/lametric/icons.json @@ -7,10 +7,10 @@ "app_previous": { "default": "mdi:arrow-left-bold" }, - "dismiss_current": { + "dismiss_all": { "default": "mdi:bell-cancel" }, - "dismiss_all": { + "dismiss_current": { "default": "mdi:bell-cancel" } }, diff --git a/homeassistant/components/lametric/strings.json b/homeassistant/components/lametric/strings.json index acf69239830..2665e2f0b40 100644 --- a/homeassistant/components/lametric/strings.json +++ b/homeassistant/components/lametric/strings.json @@ -1,30 +1,31 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "invalid_discovery_info": "Invalid discovery information received", + "link_local_address": "Link local addresses are not supported", + "missing_configuration": "The LaMetric integration is not configured. Please follow the documentation.", + "no_devices": "The authorized user has no LaMetric devices", + "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_device_not_found": "The device you are trying to re-authenticate is not found in this LaMetric account", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "choice_enter_manual_or_fetch_cloud": { "description": "A LaMetric device can be set up in Home Assistant in two different ways.\n\nYou can enter all device information and API tokens yourself, or Home Assistant can import them from your LaMetric.com account.", "menu_options": { - "pick_implementation": "Import from LaMetric.com (recommended)", - "manual_entry": "Enter manually" - } - }, - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "manual_entry": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "host": "The IP address or hostname of your LaMetric TIME on your network.", - "api_key": "You can find this API key in the [devices page in your LaMetric developer account]({devices_url})." + "manual_entry": "Enter manually", + "pick_implementation": "Import from LaMetric.com (recommended)" } }, "cloud_select_device": { @@ -34,27 +35,26 @@ "data_description": { "device": "Select the LaMetric device to add" } + }, + "manual_entry": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "api_key": "You can find this API key in the [devices page in your LaMetric developer account]({devices_url}).", + "host": "The IP address or hostname of your LaMetric TIME on your network." + } + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "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%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "invalid_discovery_info": "Invalid discovery information received", - "link_local_address": "Link local addresses are not supported", - "missing_configuration": "The LaMetric integration is not configured. Please follow the documentation.", - "no_devices": "The authorized user has no LaMetric devices", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "reauth_device_not_found": "The device you are trying to re-authenticate is not found in this LaMetric account", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]" } }, "entity": { @@ -65,11 +65,11 @@ "app_previous": { "name": "Previous app" }, - "dismiss_current": { - "name": "Dismiss current notification" - }, "dismiss_all": { "name": "Dismiss all notifications" + }, + "dismiss_current": { + "name": "Dismiss current notification" } }, "number": { @@ -80,11 +80,6 @@ "name": "Volume" } }, - "sensor": { - "rssi": { - "name": "Wi-Fi signal" - } - }, "select": { "brightness_mode": { "name": "Brightness mode", @@ -94,82 +89,39 @@ } } }, + "sensor": { + "rssi": { + "name": "Wi-Fi signal" + } + }, "switch": { "bluetooth": { "name": "Bluetooth" } } }, - "services": { - "chart": { - "name": "Display a chart", - "description": "Displays a chart on a LaMetric device.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "The LaMetric device to display the chart on." - }, - "data": { - "name": "Data", - "description": "The list of data points in the chart." - }, - "sound": { - "name": "Sound", - "description": "The notification sound to play." - }, - "cycles": { - "name": "Cycles", - "description": "The number of times to display the message. When set to 0, the message will be displayed until dismissed." - }, - "icon_type": { - "name": "Icon type", - "description": "The type of icon to display, indicating the nature of the notification." - }, - "priority": { - "name": "Priority", - "description": "The priority of the notification. When the device is running in screensaver or kiosk mode, only critical priority notifications will be accepted." - } + "selector": { + "icon_type": { + "options": { + "alert": "Alert", + "info": "Info", + "none": "None" } }, - "message": { - "name": "Display a message", - "description": "Displays a message with an optional icon on a LaMetric device.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "The LaMetric device to display the message on." - }, - "message": { - "name": "Message", - "description": "The message to display." - }, - "icon": { - "name": "Icon ID", - "description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at: https://developer.lametric.com/icons." - }, - "sound": { - "name": "[%key:component::lametric::services::chart::fields::sound::name%]", - "description": "[%key:component::lametric::services::chart::fields::sound::description%]" - }, - "cycles": { - "name": "[%key:component::lametric::services::chart::fields::cycles::name%]", - "description": "[%key:component::lametric::services::chart::fields::cycles::description%]" - }, - "icon_type": { - "name": "[%key:component::lametric::services::chart::fields::icon_type::name%]", - "description": "[%key:component::lametric::services::chart::fields::icon_type::description%]" - }, - "priority": { - "name": "[%key:component::lametric::services::chart::fields::priority::name%]", - "description": "[%key:component::lametric::services::chart::fields::priority::description%]" - } + "priority": { + "options": { + "critical": "Critical", + "info": "[%key:component::lametric::selector::icon_type::options::info%]", + "warning": "Warning" } - } - }, - "selector": { + }, "sound": { "options": { "alarm1": "Alarm 1", + "alarm10": "Alarm 10", + "alarm11": "Alarm 11", + "alarm12": "Alarm 12", + "alarm13": "Alarm 13", "alarm2": "Alarm 2", "alarm3": "Alarm 3", "alarm4": "Alarm 4", @@ -178,10 +130,6 @@ "alarm7": "Alarm 7", "alarm8": "Alarm 8", "alarm9": "Alarm 9", - "alarm10": "Alarm 10", - "alarm11": "Alarm 11", - "alarm12": "Alarm 12", - "alarm13": "Alarm 13", "bicycle": "Bicycle", "car": "Car", "cash": "Cash", @@ -218,20 +166,72 @@ "wind": "Wind", "wind_short": "Wind short" } + } + }, + "services": { + "chart": { + "description": "Displays a chart on a LaMetric device.", + "fields": { + "cycles": { + "description": "The number of times to display the message. When set to 0, the message will be displayed until dismissed.", + "name": "Cycles" + }, + "data": { + "description": "The list of data points in the chart.", + "name": "Data" + }, + "device_id": { + "description": "The LaMetric device to display the chart on.", + "name": "[%key:common::config_flow::data::device%]" + }, + "icon_type": { + "description": "The type of icon to display, indicating the nature of the notification.", + "name": "Icon type" + }, + "priority": { + "description": "The priority of the notification. When the device is running in screensaver or kiosk mode, only critical priority notifications will be accepted.", + "name": "Priority" + }, + "sound": { + "description": "The notification sound to play.", + "name": "Sound" + } + }, + "name": "Display a chart" }, - "icon_type": { - "options": { - "none": "None", - "info": "Info", - "alert": "Alert" - } - }, - "priority": { - "options": { - "info": "[%key:component::lametric::selector::icon_type::options::info%]", - "warning": "Warning", - "critical": "Critical" - } + "message": { + "description": "Displays a message with an optional icon on a LaMetric device.", + "fields": { + "cycles": { + "description": "[%key:component::lametric::services::chart::fields::cycles::description%]", + "name": "[%key:component::lametric::services::chart::fields::cycles::name%]" + }, + "device_id": { + "description": "The LaMetric device to display the message on.", + "name": "[%key:common::config_flow::data::device%]" + }, + "icon": { + "description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at: https://developer.lametric.com/icons.", + "name": "Icon ID" + }, + "icon_type": { + "description": "[%key:component::lametric::services::chart::fields::icon_type::description%]", + "name": "[%key:component::lametric::services::chart::fields::icon_type::name%]" + }, + "message": { + "description": "The message to display.", + "name": "Message" + }, + "priority": { + "description": "[%key:component::lametric::services::chart::fields::priority::description%]", + "name": "[%key:component::lametric::services::chart::fields::priority::name%]" + }, + "sound": { + "description": "[%key:component::lametric::services::chart::fields::sound::description%]", + "name": "[%key:component::lametric::services::chart::fields::sound::name%]" + } + }, + "name": "Display a message" } } } diff --git a/homeassistant/components/landisgyr_heat_meter/strings.json b/homeassistant/components/landisgyr_heat_meter/strings.json index 31f08ded79f..3d9c03c66b2 100644 --- a/homeassistant/components/landisgyr_heat_meter/strings.json +++ b/homeassistant/components/landisgyr_heat_meter/strings.json @@ -1,22 +1,22 @@ { "config": { - "step": { - "user": { - "data": { - "device": "Select device" - } - }, - "setup_serial_manual_path": { - "data": { - "device": "[%key:common::config_flow::data::usb_path%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "setup_serial_manual_path": { + "data": { + "device": "[%key:common::config_flow::data::usb_path%]" + } + }, + "user": { + "data": { + "device": "Select device" + } + } } } } diff --git a/homeassistant/components/lannouncer/strings.json b/homeassistant/components/lannouncer/strings.json index 7ce8a542fe5..63b2e86aa82 100644 --- a/homeassistant/components/lannouncer/strings.json +++ b/homeassistant/components/lannouncer/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "LANnouncer integration is deprecated", - "description": "The LANnouncer Android app is no longer available, so this integration has been deprecated and will be removed in a future release.\n\nTo resolve this issue:\n1. Remove the LANnouncer integration from your `configuration.yaml`.\n2. Restart the Home Assistant instance.\n\nAfter removal, this issue will disappear." + "description": "The LANnouncer Android app is no longer available, so this integration has been deprecated and will be removed in a future release.\n\nTo resolve this issue:\n1. Remove the LANnouncer integration from your `configuration.yaml`.\n2. Restart the Home Assistant instance.\n\nAfter removal, this issue will disappear.", + "title": "LANnouncer integration is deprecated" } } } diff --git a/homeassistant/components/lastfm/strings.json b/homeassistant/components/lastfm/strings.json index 006fd5ebcc7..6ad36b7927c 100644 --- a/homeassistant/components/lastfm/strings.json +++ b/homeassistant/components/lastfm/strings.json @@ -1,39 +1,39 @@ { "config": { + "error": { + "invalid_account": "Invalid username", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "friends": { + "data": { + "users": "Last.fm usernames" + }, + "description": "Fill in other users you want to add." + }, "user": { - "description": "Request an API account at {api_account_url}.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "main_user": "Last.fm username" - } - }, - "friends": { - "description": "Fill in other users you want to add.", - "data": { - "users": "Last.fm usernames" - } + }, + "description": "Request an API account at {api_account_url}." } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "Invalid username", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "options": { + "error": { + "invalid_account": "[%key:component::lastfm::config::error::invalid_account%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "init": { - "description": "[%key:component::lastfm::config::step::friends::description%]", "data": { "users": "[%key:component::lastfm::config::step::friends::data::users%]" - } + }, + "description": "[%key:component::lastfm::config::step::friends::description%]" } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "[%key:component::lastfm::config::error::invalid_account%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/launch_library/strings.json b/homeassistant/components/launch_library/strings.json index 219d71600bc..69a5e6e27da 100644 --- a/homeassistant/components/launch_library/strings.json +++ b/homeassistant/components/launch_library/strings.json @@ -8,11 +8,8 @@ }, "entity": { "sensor": { - "next_launch": { - "name": "Next launch" - }, - "launch_time": { - "name": "Launch time" + "launch_mission": { + "name": "Launch mission" }, "launch_probability": { "name": "Launch probability" @@ -20,14 +17,17 @@ "launch_status": { "name": "Launch status" }, - "launch_mission": { - "name": "Launch mission" + "launch_time": { + "name": "Launch time" }, - "starship_launch": { - "name": "Next Starship launch" + "next_launch": { + "name": "Next launch" }, "starship_event": { "name": "Next Starship event" + }, + "starship_launch": { + "name": "Next Starship launch" } } } diff --git a/homeassistant/components/laundrify/icons.json b/homeassistant/components/laundrify/icons.json index 0297646302a..31c4a740717 100644 --- a/homeassistant/components/laundrify/icons.json +++ b/homeassistant/components/laundrify/icons.json @@ -4,8 +4,8 @@ "wash_cycle": { "default": "mdi:washing-machine", "state": { - "on": "mdi:washing-machine", - "off": "mdi:washing-machine-off" + "off": "mdi:washing-machine-off", + "on": "mdi:washing-machine" } } } diff --git a/homeassistant/components/laundrify/strings.json b/homeassistant/components/laundrify/strings.json index 600e6a9bdf0..88c9752dc59 100644 --- a/homeassistant/components/laundrify/strings.json +++ b/homeassistant/components/laundrify/strings.json @@ -1,33 +1,33 @@ { + "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_format": "Invalid format. Please specify as xxx-xxx.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "init": { + "data": { + "code": "Auth Code (xxx-xxx)" + }, + "description": "Please enter your personal Auth Code that is shown in the laundrify app." + }, + "reauth_confirm": { + "description": "The laundrify integration needs to re-authenticate.", + "title": "[%key:common::config_flow::title::reauth%]" + } + } + }, "entity": { "binary_sensor": { "wash_cycle": { "name": "Cycle" } } - }, - "config": { - "step": { - "init": { - "description": "Please enter your personal Auth Code that is shown in the laundrify app.", - "data": { - "code": "Auth Code (xxx-xxx)" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The laundrify integration needs to re-authenticate." - } - }, - "error": { - "invalid_format": "Invalid format. Please specify as xxx-xxx.", - "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%]", - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" - } } } diff --git a/homeassistant/components/lawn_mower/strings.json b/homeassistant/components/lawn_mower/strings.json index 9cc56b8a11e..ec19d988581 100644 --- a/homeassistant/components/lawn_mower/strings.json +++ b/homeassistant/components/lawn_mower/strings.json @@ -1,29 +1,29 @@ { - "title": "Lawn mower", "entity_component": { "_": { "name": "[%key:component::lawn_mower::title%]", "state": { - "error": "[%key:common::state::error%]", - "paused": "[%key:common::state::paused%]", - "mowing": "Mowing", "docked": "Docked", + "error": "[%key:common::state::error%]", + "mowing": "Mowing", + "paused": "[%key:common::state::paused%]", "returning": "Returning" } } }, "services": { - "start_mowing": { - "name": "Start mowing", - "description": "Starts the mowing task." - }, "dock": { - "name": "Return to dock", - "description": "Stops the mowing task and returns to the dock." + "description": "Stops the mowing task and returns to the dock.", + "name": "Return to dock" }, "pause": { - "name": "Pause", - "description": "Pauses the mowing task." + "description": "Pauses the mowing task.", + "name": "Pause" + }, + "start_mowing": { + "description": "Starts the mowing task.", + "name": "Start mowing" } - } + }, + "title": "Lawn mower" } diff --git a/homeassistant/components/lcn/icons.json b/homeassistant/components/lcn/icons.json index 944c3938a92..f3be74d7f54 100644 --- a/homeassistant/components/lcn/icons.json +++ b/homeassistant/components/lcn/icons.json @@ -1,5 +1,17 @@ { "services": { + "dyn_text": { + "service": "mdi:form-textbox" + }, + "led": { + "service": "mdi:led-on" + }, + "lock_keys": { + "service": "mdi:lock" + }, + "lock_regulator": { + "service": "mdi:lock" + }, "output_abs": { "service": "mdi:brightness-auto" }, @@ -9,35 +21,23 @@ "output_toggle": { "service": "mdi:toggle-switch" }, + "pck": { + "service": "mdi:package-variant-closed" + }, "relays": { "service": "mdi:light-switch-off" }, - "led": { - "service": "mdi:led-on" - }, - "var_abs": { - "service": "mdi:wrench" - }, - "var_reset": { - "service": "mdi:reload" - }, - "var_rel": { - "service": "mdi:wrench" - }, - "lock_regulator": { - "service": "mdi:lock" - }, "send_keys": { "service": "mdi:alarm-panel" }, - "lock_keys": { - "service": "mdi:lock" + "var_abs": { + "service": "mdi:wrench" }, - "dyn_text": { - "service": "mdi:form-textbox" + "var_rel": { + "service": "mdi:wrench" }, - "pck": { - "service": "mdi:package-variant-closed" + "var_reset": { + "service": "mdi:reload" } } } diff --git a/homeassistant/components/lcn/strings.json b/homeassistant/components/lcn/strings.json index 7a8afe10105..04ec2099666 100644 --- a/homeassistant/components/lcn/strings.json +++ b/homeassistant/components/lcn/strings.json @@ -1,364 +1,76 @@ { - "device_automation": { - "trigger_type": { - "transmitter": "Transmitter code received", - "transponder": "Transponder code received", - "fingerprint": "Fingerprint code received", - "codelock": "Code lock code received", - "send_keys": "Send keys received" + "config": { + "abort": { + "already_configured": "PCHK connection using the same IP address/port is already configured.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, + "error": { + "authentication_error": "Authentication failed. Wrong username or password.", + "connection_refused": "Unable to connect to PCHK. Check IP and port.", + "license_error": "Maximum number of connections was reached. An additional licence key is required." + }, + "step": { + "reconfigure": { + "data": { + "acknowledge": "[%key:component::lcn::config::step::user::data::acknowledge%]", + "dim_mode": "[%key:component::lcn::config::step::user::data::dim_mode%]", + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "sk_num_tries": "[%key:component::lcn::config::step::user::data::sk_num_tries%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "acknowledge": "[%key:component::lcn::config::step::user::data_description::acknowledge%]", + "dim_mode": "[%key:component::lcn::config::step::user::data_description::dim_mode%]", + "ip_address": "[%key:component::lcn::config::step::user::data_description::ip_address%]", + "password": "[%key:component::lcn::config::step::user::data_description::password%]", + "port": "[%key:component::lcn::config::step::user::data_description::port%]", + "sk_num_tries": "[%key:component::lcn::config::step::user::data_description::sk_num_tries%]", + "username": "[%key:component::lcn::config::step::user::data_description::username%]" + }, + "description": "Reconfigure connection to LCN host.", + "title": "Reconfigure LCN host" + }, + "user": { + "data": { + "acknowledge": "Request acknowledgement from modules", + "dim_mode": "Dimming mode", + "host": "[%key:common::config_flow::data::name%]", + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "sk_num_tries": "Segment coupler scan attempts", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "acknowledge": "Retry sendig commands if no expected response is received from modules (increases bus traffic).", + "dim_mode": "The number of steps used for dimming outputs of all LCN modules.", + "host": "Name of the LCN integration entry.", + "ip_address": "IP address or hostname of the PCHK server.", + "password": "Password for authorization on the PCHK server.", + "port": "Port used by the PCHK server.", + "sk_num_tries": "If you have a segment coupler in your LCN installation, increase this number to at least 3, so all segment couplers are identified correctly.", + "username": "Username for authorization on the PCHK server." + }, + "description": "Set up new connection to LCN host.", + "title": "Set up LCN host" + } + } + }, + "device_automation": { "extra_fields": { "action": "Action", "code": "Code", "key": "Key", "level": "Level" - } - }, - "config": { - "step": { - "user": { - "title": "Set up LCN host", - "description": "Set up new connection to LCN host.", - "data": { - "host": "[%key:common::config_flow::data::name%]", - "ip_address": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "sk_num_tries": "Segment coupler scan attempts", - "dim_mode": "Dimming mode", - "acknowledge": "Request acknowledgement from modules" - }, - "data_description": { - "host": "Name of the LCN integration entry.", - "ip_address": "IP address or hostname of the PCHK server.", - "port": "Port used by the PCHK server.", - "username": "Username for authorization on the PCHK server.", - "password": "Password for authorization on the PCHK server.", - "sk_num_tries": "If you have a segment coupler in your LCN installation, increase this number to at least 3, so all segment couplers are identified correctly.", - "dim_mode": "The number of steps used for dimming outputs of all LCN modules.", - "acknowledge": "Retry sendig commands if no expected response is received from modules (increases bus traffic)." - } - }, - "reconfigure": { - "title": "Reconfigure LCN host", - "description": "Reconfigure connection to LCN host.", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "sk_num_tries": "[%key:component::lcn::config::step::user::data::sk_num_tries%]", - "dim_mode": "[%key:component::lcn::config::step::user::data::dim_mode%]", - "acknowledge": "[%key:component::lcn::config::step::user::data::acknowledge%]" - }, - "data_description": { - "ip_address": "[%key:component::lcn::config::step::user::data_description::ip_address%]", - "port": "[%key:component::lcn::config::step::user::data_description::port%]", - "username": "[%key:component::lcn::config::step::user::data_description::username%]", - "password": "[%key:component::lcn::config::step::user::data_description::password%]", - "sk_num_tries": "[%key:component::lcn::config::step::user::data_description::sk_num_tries%]", - "dim_mode": "[%key:component::lcn::config::step::user::data_description::dim_mode%]", - "acknowledge": "[%key:component::lcn::config::step::user::data_description::acknowledge%]" - } - } }, - "error": { - "authentication_error": "Authentication failed. Wrong username or password.", - "license_error": "Maximum number of connections was reached. An additional licence key is required.", - "connection_refused": "Unable to connect to PCHK. Check IP and port." - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "already_configured": "PCHK connection using the same IP address/port is already configured." - } - }, - "issues": { - "deprecated_regulatorlock_sensor": { - "title": "Deprecated LCN regulator lock binary sensor", - "description": "Your LCN regulator lock binary sensor entity `{entity}` is being used in automations or scripts. A regulator lock switch entity is available and should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue." - }, - "deprecated_keylock_sensor": { - "title": "Deprecated LCN key lock binary sensor", - "description": "Your LCN key lock binary sensor entity `{entity}` is being used in automations or scripts. A key lock switch entity is available and should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue." - } - }, - "services": { - "output_abs": { - "name": "Output absolute brightness", - "description": "Sets absolute brightness of output port in percent.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "The device ID of the LCN module or group." - }, - "output": { - "name": "Output", - "description": "Output port." - }, - "brightness": { - "name": "Brightness", - "description": "Absolute brightness." - }, - "transition": { - "name": "Transition", - "description": "Transition time." - } - } - }, - "output_rel": { - "name": "Output relative brightness", - "description": "Sets relative brightness of output port in percent.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "output": { - "name": "[%key:component::lcn::services::output_abs::fields::output::name%]", - "description": "[%key:component::lcn::services::output_abs::fields::output::description%]" - }, - "brightness": { - "name": "Brightness", - "description": "Relative brightness." - } - } - }, - "output_toggle": { - "name": "Toggle output", - "description": "Toggles output port.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "output": { - "name": "[%key:component::lcn::services::output_abs::fields::output::name%]", - "description": "[%key:component::lcn::services::output_abs::fields::output::description%]" - }, - "transition": { - "name": "Transition", - "description": "[%key:component::lcn::services::output_abs::fields::transition::description%]" - } - } - }, - "relays": { - "name": "Relays", - "description": "Sets the relay states.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "state": { - "name": "State", - "description": "Relay states as string (1=on, 2=off, t=toggle, -=no change)." - } - } - }, - "led": { - "name": "LED", - "description": "Sets the LED state.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "led": { - "name": "[%key:component::lcn::services::led::name%]", - "description": "The LED port of the device." - }, - "state": { - "name": "State", - "description": "The LED state to set." - } - } - }, - "var_abs": { - "name": "Set absolute variable", - "description": "Sets absolute value of a variable or setpoint.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "variable": { - "name": "Variable", - "description": "Variable or setpoint name." - }, - "value": { - "name": "Value", - "description": "Value to set." - }, - "unit_of_measurement": { - "name": "Unit of measurement", - "description": "Unit of value." - } - } - }, - "var_reset": { - "name": "Reset variable", - "description": "Resets value of variable or setpoint.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "variable": { - "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]", - "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]" - } - } - }, - "var_rel": { - "name": "Shift variable", - "description": "Shift value of a variable, setpoint or threshold.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "variable": { - "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]", - "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]" - }, - "value": { - "name": "Value", - "description": "Shift value." - }, - "unit_of_measurement": { - "name": "Unit of measurement", - "description": "[%key:component::lcn::services::var_abs::fields::unit_of_measurement::description%]" - }, - "value_reference": { - "name": "Reference value", - "description": "Reference value for setpoint and threshold." - } - } - }, - "lock_regulator": { - "name": "Lock regulator", - "description": "Locks a regulator setpoint.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "setpoint": { - "name": "Setpoint", - "description": "Setpoint name." - }, - "state": { - "name": "State", - "description": "New setpoint state." - } - } - }, - "send_keys": { - "name": "Send keys", - "description": "Sends keys (which executes bound commands).", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "keys": { - "name": "Keys", - "description": "Keys to send." - }, - "state": { - "name": "State", - "description": "Key state upon sending (must be hit for deferred)." - }, - "time": { - "name": "Time", - "description": "Send delay." - }, - "time_unit": { - "name": "Time unit", - "description": "Time unit of send delay." - } - } - }, - "lock_keys": { - "name": "Lock keys", - "description": "Sets the key lock states.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "table": { - "name": "Table", - "description": "Table with keys to lock (must be A for interval)." - }, - "state": { - "name": "State", - "description": "Key lock states as string (1=on, 2=off, T=toggle, -=nochange)." - }, - "time": { - "name": "Time", - "description": "Lock interval." - }, - "time_unit": { - "name": "[%key:component::lcn::services::send_keys::fields::time_unit::name%]", - "description": "Time unit of lock interval." - } - } - }, - "dyn_text": { - "name": "Dynamic text", - "description": "Sends dynamic text to LCN-GTxD displays.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "row": { - "name": "Row", - "description": "Text row." - }, - "text": { - "name": "Text", - "description": "Text to send (up to 60 characters encoded as UTF-8)." - } - } - }, - "pck": { - "name": "PCK", - "description": "Sends arbitrary PCK command.", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]" - }, - "pck": { - "name": "[%key:component::lcn::services::pck::name%]", - "description": "PCK command (without address header)." - } - } - }, - "address_to_device_id": { - "name": "Address to device ID", - "description": "Converts an LCN address into a device ID.", - "fields": { - "id": { - "name": "Module or group ID", - "description": "Module or group number of the target." - }, - "segment_id": { - "name": "Segment ID", - "description": "Segment number of the target." - }, - "type": { - "name": "Type", - "description": "Module type of the target." - }, - "host": { - "name": "Host name", - "description": "Host name as given in the integration panel." - } - } + "trigger_type": { + "codelock": "Code lock code received", + "fingerprint": "Fingerprint code received", + "send_keys": "Send keys received", + "transmitter": "Transmitter code received", + "transponder": "Transponder code received" } }, "exceptions": { @@ -371,14 +83,302 @@ "invalid_domain": { "message": "Invalid domain {domain}." }, - "invalid_send_keys_action": { - "message": "Invalid state for sending keys. Only 'hit' allowed for deferred sending." + "invalid_length_of_states_string": { + "message": "Invalid length of states string. Expected 8 characters." }, "invalid_lock_keys_table": { "message": "Invalid table for locking keys. Only table A allowed when locking for a specific time." }, - "invalid_length_of_states_string": { - "message": "Invalid length of states string. Expected 8 characters." + "invalid_send_keys_action": { + "message": "Invalid state for sending keys. Only 'hit' allowed for deferred sending." + } + }, + "issues": { + "deprecated_keylock_sensor": { + "description": "Your LCN key lock binary sensor entity `{entity}` is being used in automations or scripts. A key lock switch entity is available and should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue.", + "title": "Deprecated LCN key lock binary sensor" + }, + "deprecated_regulatorlock_sensor": { + "description": "Your LCN regulator lock binary sensor entity `{entity}` is being used in automations or scripts. A regulator lock switch entity is available and should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue.", + "title": "Deprecated LCN regulator lock binary sensor" + } + }, + "services": { + "address_to_device_id": { + "description": "Converts an LCN address into a device ID.", + "fields": { + "host": { + "description": "Host name as given in the integration panel.", + "name": "Host name" + }, + "id": { + "description": "Module or group number of the target.", + "name": "Module or group ID" + }, + "segment_id": { + "description": "Segment number of the target.", + "name": "Segment ID" + }, + "type": { + "description": "Module type of the target.", + "name": "Type" + } + }, + "name": "Address to device ID" + }, + "dyn_text": { + "description": "Sends dynamic text to LCN-GTxD displays.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "row": { + "description": "Text row.", + "name": "Row" + }, + "text": { + "description": "Text to send (up to 60 characters encoded as UTF-8).", + "name": "Text" + } + }, + "name": "Dynamic text" + }, + "led": { + "description": "Sets the LED state.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "led": { + "description": "The LED port of the device.", + "name": "[%key:component::lcn::services::led::name%]" + }, + "state": { + "description": "The LED state to set.", + "name": "State" + } + }, + "name": "LED" + }, + "lock_keys": { + "description": "Sets the key lock states.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "state": { + "description": "Key lock states as string (1=on, 2=off, T=toggle, -=nochange).", + "name": "State" + }, + "table": { + "description": "Table with keys to lock (must be A for interval).", + "name": "Table" + }, + "time": { + "description": "Lock interval.", + "name": "Time" + }, + "time_unit": { + "description": "Time unit of lock interval.", + "name": "[%key:component::lcn::services::send_keys::fields::time_unit::name%]" + } + }, + "name": "Lock keys" + }, + "lock_regulator": { + "description": "Locks a regulator setpoint.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "setpoint": { + "description": "Setpoint name.", + "name": "Setpoint" + }, + "state": { + "description": "New setpoint state.", + "name": "State" + } + }, + "name": "Lock regulator" + }, + "output_abs": { + "description": "Sets absolute brightness of output port in percent.", + "fields": { + "brightness": { + "description": "Absolute brightness.", + "name": "Brightness" + }, + "device_id": { + "description": "The device ID of the LCN module or group.", + "name": "[%key:common::config_flow::data::device%]" + }, + "output": { + "description": "Output port.", + "name": "Output" + }, + "transition": { + "description": "Transition time.", + "name": "Transition" + } + }, + "name": "Output absolute brightness" + }, + "output_rel": { + "description": "Sets relative brightness of output port in percent.", + "fields": { + "brightness": { + "description": "Relative brightness.", + "name": "Brightness" + }, + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "output": { + "description": "[%key:component::lcn::services::output_abs::fields::output::description%]", + "name": "[%key:component::lcn::services::output_abs::fields::output::name%]" + } + }, + "name": "Output relative brightness" + }, + "output_toggle": { + "description": "Toggles output port.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "output": { + "description": "[%key:component::lcn::services::output_abs::fields::output::description%]", + "name": "[%key:component::lcn::services::output_abs::fields::output::name%]" + }, + "transition": { + "description": "[%key:component::lcn::services::output_abs::fields::transition::description%]", + "name": "Transition" + } + }, + "name": "Toggle output" + }, + "pck": { + "description": "Sends arbitrary PCK command.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "pck": { + "description": "PCK command (without address header).", + "name": "[%key:component::lcn::services::pck::name%]" + } + }, + "name": "PCK" + }, + "relays": { + "description": "Sets the relay states.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "state": { + "description": "Relay states as string (1=on, 2=off, t=toggle, -=no change).", + "name": "State" + } + }, + "name": "Relays" + }, + "send_keys": { + "description": "Sends keys (which executes bound commands).", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "keys": { + "description": "Keys to send.", + "name": "Keys" + }, + "state": { + "description": "Key state upon sending (must be hit for deferred).", + "name": "State" + }, + "time": { + "description": "Send delay.", + "name": "Time" + }, + "time_unit": { + "description": "Time unit of send delay.", + "name": "Time unit" + } + }, + "name": "Send keys" + }, + "var_abs": { + "description": "Sets absolute value of a variable or setpoint.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "unit_of_measurement": { + "description": "Unit of value.", + "name": "Unit of measurement" + }, + "value": { + "description": "Value to set.", + "name": "Value" + }, + "variable": { + "description": "Variable or setpoint name.", + "name": "Variable" + } + }, + "name": "Set absolute variable" + }, + "var_rel": { + "description": "Shift value of a variable, setpoint or threshold.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "unit_of_measurement": { + "description": "[%key:component::lcn::services::var_abs::fields::unit_of_measurement::description%]", + "name": "Unit of measurement" + }, + "value": { + "description": "Shift value.", + "name": "Value" + }, + "value_reference": { + "description": "Reference value for setpoint and threshold.", + "name": "Reference value" + }, + "variable": { + "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]", + "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]" + } + }, + "name": "Shift variable" + }, + "var_reset": { + "description": "Resets value of variable or setpoint.", + "fields": { + "device_id": { + "description": "[%key:component::lcn::services::output_abs::fields::device_id::description%]", + "name": "[%key:common::config_flow::data::device%]" + }, + "variable": { + "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]", + "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]" + } + }, + "name": "Reset variable" } } } diff --git a/homeassistant/components/ld2410_ble/manifest.json b/homeassistant/components/ld2410_ble/manifest.json index 016377154d2..0952a6bea7b 100644 --- a/homeassistant/components/ld2410_ble/manifest.json +++ b/homeassistant/components/ld2410_ble/manifest.json @@ -9,8 +9,8 @@ "local_name": "HLK-LD2410_*" }, { - "manufacturer_id": 256, "manufacturer_data_start": [7, 1], + "manufacturer_id": 256, "service_uuid": "0000af30-0000-1000-8000-00805f9b34fb" } ], diff --git a/homeassistant/components/ld2410_ble/strings.json b/homeassistant/components/ld2410_ble/strings.json index 7e919675426..769cbb6a652 100644 --- a/homeassistant/components/ld2410_ble/strings.json +++ b/homeassistant/components/ld2410_ble/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { "user": { @@ -7,35 +17,13 @@ "address": "Bluetooth address" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "not_supported": "Device not supported", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "entity": { "sensor": { - "moving_target_distance": { - "name": "Moving target distance" - }, - "static_target_distance": { - "name": "Static target distance" - }, "detection_distance": { "name": "Detection distance" }, - "moving_target_energy": { - "name": "Moving target energy" - }, - "static_target_energy": { - "name": "Static target energy" - }, "max_motion_gates": { "name": "Max motion gates" }, @@ -69,6 +57,12 @@ "motion_energy_gate_8": { "name": "Motion energy gate 8" }, + "moving_target_distance": { + "name": "Moving target distance" + }, + "moving_target_energy": { + "name": "Moving target energy" + }, "static_energy_gate_0": { "name": "Static energy gate 0" }, @@ -95,6 +89,12 @@ }, "static_energy_gate_8": { "name": "Static energy gate 8" + }, + "static_target_distance": { + "name": "Static target distance" + }, + "static_target_energy": { + "name": "Static target energy" } } } diff --git a/homeassistant/components/leaone/strings.json b/homeassistant/components/leaone/strings.json index 53332ce2fec..06e672e243b 100644 --- a/homeassistant/components/leaone/strings.json +++ b/homeassistant/components/leaone/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "No supported LeaOne devices found in range. If the device is in range, ensure it has been activated in the last few minutes. If you need clarification on whether the device is in range, download the diagnostics for the integration that provides your Bluetooth adapter or proxy and check if the MAC address of the LeaOne device is present." + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "no_devices_found": "No supported LeaOne devices found in range. If the device is in range, ensure it has been activated in the last few minutes. If you need clarification on whether the device is in range, download the diagnostics for the integration that provides your Bluetooth adapter or proxy and check if the MAC address of the LeaOne device is present.", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/led_ble/strings.json b/homeassistant/components/led_ble/strings.json index e2be7e6deff..7d777781ab1 100644 --- a/homeassistant/components/led_ble/strings.json +++ b/homeassistant/components/led_ble/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { "user": { @@ -7,16 +17,6 @@ "address": "Bluetooth address" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "not_supported": "Device not supported", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/lektrico/manifest.json b/homeassistant/components/lektrico/manifest.json index 1924f0a1fc8..df617861257 100644 --- a/homeassistant/components/lektrico/manifest.json +++ b/homeassistant/components/lektrico/manifest.json @@ -9,8 +9,8 @@ "requirements": ["lektricowifi==0.1"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "lektrico*" + "name": "lektrico*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/lektrico/strings.json b/homeassistant/components/lektrico/strings.json index 6664dd9672d..eb3ebc4306f 100644 --- a/homeassistant/components/lektrico/strings.json +++ b/homeassistant/components/lektrico/strings.json @@ -1,45 +1,45 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { - "description": "Set required parameters to connect to your device", "data": { - "host": "[%key:common::config_flow::data::host%]", - "device_name": "[%key:common::config_flow::data::name%]" - } + "device_name": "[%key:common::config_flow::data::name%]", + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Set required parameters to connect to your device" }, "zeroconf_confirm": { "description": "Do you want to add the Lektrico Charger with serial number `{serial_number}` to Home Assistant?", "title": "Discovered Lektrico Charger device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "binary_sensor": { - "state_e_activated": { - "name": "EV error" + "contactor_failure": { + "name": "Relay contacts welded" }, - "overtemp": { - "name": "Thermal throttling" + "cp_diode_failure": { + "name": "EV diode short" }, "critical_temp": { "name": "Overheating" }, - "overcurrent": { - "name": "Overcurrent" - }, "meter_fault": { "name": "Metering error" }, - "undervoltage": { - "name": "Undervoltage" + "overcurrent": { + "name": "Overcurrent" + }, + "overtemp": { + "name": "Thermal throttling" }, "overvoltage": { "name": "Overvoltage" @@ -47,11 +47,11 @@ "rcd_error": { "name": "RCD error" }, - "cp_diode_failure": { - "name": "EV diode short" + "state_e_activated": { + "name": "EV error" }, - "contactor_failure": { - "name": "Relay contacts welded" + "undervoltage": { + "name": "Undervoltage" } }, "button": { @@ -66,11 +66,11 @@ } }, "number": { - "led_max_brightness": { - "name": "LED brightness" - }, "dynamic_limit": { "name": "Dynamic limit" + }, + "led_max_brightness": { + "name": "LED brightness" } }, "select": { @@ -78,13 +78,68 @@ "name": "Load balancing mode", "state": { "disabled": "[%key:common::state::disabled%]", - "power": "Power", + "green": "Green", "hybrid": "Hybrid", - "green": "Green" + "power": "Power" } } }, "sensor": { + "breaker_current": { + "name": "Breaker current" + }, + "charging_time": { + "name": "Charging time" + }, + "current_l1": { + "name": "Current L1" + }, + "current_l2": { + "name": "Current L2" + }, + "current_l3": { + "name": "Current L3" + }, + "installation_current": { + "name": "Installation current" + }, + "lifetime_energy": { + "name": "Lifetime energy" + }, + "limit_reason": { + "name": "Limit reason", + "state": { + "1p_charging_disabled": "1P charging disabled", + "dynamic_limit": "Dynamic limit", + "em": "EM", + "em_offline": "EM offline", + "installation_current": "Installation current", + "no_limit": "No limit", + "ocpp": "OCPP", + "overtemperature": "Overtemperature", + "schedule": "Schedule", + "switching_phases": "Switching phases", + "user_limit": "User limit" + } + }, + "pf_l1": { + "name": "Power factor L1" + }, + "pf_l2": { + "name": "Power factor L2" + }, + "pf_l3": { + "name": "Power factor L3" + }, + "power_l1": { + "name": "Power L1" + }, + "power_l2": { + "name": "Power L2" + }, + "power_l3": { + "name": "Power L3" + }, "state": { "name": "State", "state": { @@ -99,34 +154,6 @@ "updating_firmware": "Updating firmware" } }, - "charging_time": { - "name": "Charging time" - }, - "lifetime_energy": { - "name": "Lifetime energy" - }, - "installation_current": { - "name": "Installation current" - }, - "limit_reason": { - "name": "Limit reason", - "state": { - "no_limit": "No limit", - "installation_current": "Installation current", - "user_limit": "User limit", - "dynamic_limit": "Dynamic limit", - "schedule": "Schedule", - "em_offline": "EM offline", - "em": "EM", - "ocpp": "OCPP", - "overtemperature": "Overtemperature", - "switching_phases": "Switching phases", - "1p_charging_disabled": "1P charging disabled" - } - }, - "breaker_current": { - "name": "Breaker current" - }, "voltage_l1": { "name": "Voltage L1" }, @@ -135,33 +162,6 @@ }, "voltage_l3": { "name": "Voltage L3" - }, - "current_l1": { - "name": "Current L1" - }, - "current_l2": { - "name": "Current L2" - }, - "current_l3": { - "name": "Current L3" - }, - "power_l1": { - "name": "Power L1" - }, - "power_l2": { - "name": "Power L2" - }, - "power_l3": { - "name": "Power L3" - }, - "pf_l1": { - "name": "Power factor L1" - }, - "pf_l2": { - "name": "Power factor L2" - }, - "pf_l3": { - "name": "Power factor L3" } }, "switch": { diff --git a/homeassistant/components/letpot/strings.json b/homeassistant/components/letpot/strings.json index 3af8c7e3db6..0cdefd4dd40 100644 --- a/homeassistant/components/letpot/strings.json +++ b/homeassistant/components/letpot/strings.json @@ -1,6 +1,24 @@ { "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::letpot::config::step::user::data_description::password%]" + }, + "description": "The LetPot integration needs to re-authenticate your account {email}." + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", @@ -10,25 +28,7 @@ "email": "The email address of your LetPot account.", "password": "The password of your LetPot account." } - }, - "reauth_confirm": { - "description": "The LetPot integration needs to re-authenticate your account {email}.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::letpot::config::step::user::data_description::password%]" - } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -68,8 +68,8 @@ "light_brightness": { "name": "[%key:component::letpot::entity::number::light_brightness::name%]", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]" } }, "light_mode": { diff --git a/homeassistant/components/lg_netcast/strings.json b/homeassistant/components/lg_netcast/strings.json index 0377d4bf318..7e659d5e6b3 100644 --- a/homeassistant/components/lg_netcast/strings.json +++ b/homeassistant/components/lg_netcast/strings.json @@ -1,32 +1,32 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, "step": { + "authorize": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "Enter the Pairing Key displayed on the TV", + "title": "Authorize LG Netcast TV" + }, "user": { - "description": "Ensure that your TV is turned on before trying to set it up.\nIf you leave the host empty, discovery will be used to find devices.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of the LG Netcast TV to control." - } - }, - "authorize": { - "title": "Authorize LG Netcast TV", - "description": "Enter the Pairing Key displayed on the TV", - "data": { - "access_token": "[%key:common::config_flow::data::access_token%]" - } + }, + "description": "Ensure that your TV is turned on before trying to set it up.\nIf you leave the host empty, discovery will be used to find devices." } - }, - "error": { - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]" } }, "device_automation": { diff --git a/homeassistant/components/lg_soundbar/strings.json b/homeassistant/components/lg_soundbar/strings.json index ee16a39350c..eedfa68be44 100644 --- a/homeassistant/components/lg_soundbar/strings.json +++ b/homeassistant/components/lg_soundbar/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_data": "Device did not return any data required to an entry." + }, "step": { "user": { "data": { @@ -9,13 +16,6 @@ "host": "The hostname or IP address of your LG Soundbar." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "no_data": "Device did not return any data required to an entry." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/lg_thinq/icons.json b/homeassistant/components/lg_thinq/icons.json index 527480a9065..2e0cb7efeee 100644 --- a/homeassistant/components/lg_thinq/icons.json +++ b/homeassistant/components/lg_thinq/icons.json @@ -1,15 +1,437 @@ { "entity": { + "binary_sensor": { + "clean_light_reminder": { + "default": "mdi:tune-vertical-variant" + }, + "eco_friendly_mode": { + "default": "mdi:sprout" + }, + "machine_clean_reminder": { + "default": "mdi:tune-vertical-variant" + }, + "one_touch_filter": { + "default": "mdi:air-filter" + }, + "operation_mode": { + "default": "mdi:power" + }, + "power_save_enabled": { + "default": "mdi:meter-electric" + }, + "remote_control_enabled": { + "default": "mdi:remote" + }, + "remote_control_enabled_for_location": { + "default": "mdi:remote" + }, + "rinse_refill": { + "default": "mdi:tune-vertical-variant" + }, + "sabbath_mode": { + "default": "mdi:food-off-outline" + }, + "signal_level": { + "default": "mdi:tune-vertical-variant" + }, + "water_heater_operation_mode": { + "default": "mdi:power" + } + }, + "climate": { + "climate_air_conditioner": { + "state_attributes": { + "fan_mode": { + "state": { + "auto": "mdi:fan-auto", + "high": "mdi:fan-speed-3", + "low": "mdi:fan-speed-1", + "medium": "mdi:fan-speed-2", + "power": "mdi:fan-chevron-up", + "slow": "mdi:fan-chevron-down" + } + } + } + } + }, + "event": { + "error": { + "default": "mdi:alert-circle-outline" + }, + "notification": { + "default": "mdi:message-badge-outline" + } + }, + "number": { + "fan_speed": { + "default": "mdi:wind-power-outline" + }, + "lamp_brightness": { + "default": "mdi:alarm-light-outline" + }, + "light_status": { + "default": "mdi:television-ambient-light" + }, + "relative_hour_to_start": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_start_for_location": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_start_wm": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_start_wm_for_location": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_stop": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_stop_for_location": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_stop_wm": { + "default": "mdi:timer-edit-outline" + }, + "relative_hour_to_stop_wm_for_location": { + "default": "mdi:timer-edit-outline" + }, + "sleep_timer_relative_hour_to_stop": { + "default": "mdi:bed-clock" + }, + "sleep_timer_relative_hour_to_stop_for_location": { + "default": "mdi:bed-clock" + }, + "target_temperature": { + "default": "mdi:thermometer" + }, + "target_temperature_for_location": { + "default": "mdi:thermometer" + }, + "wind_temperature": { + "default": "mdi:thermometer" + } + }, + "select": { + "air_clean_operation_mode": { + "default": "mdi:air-filter" + }, + "cook_mode": { + "default": "mdi:chef-hat" + }, + "cook_mode_for_location": { + "default": "mdi:chef-hat" + }, + "current_job_mode": { + "default": "mdi:format-list-bulleted" + }, + "current_job_mode_dehumidifier": { + "default": "mdi:format-list-bulleted" + }, + "current_job_mode_ventilator": { + "default": "mdi:format-list-bulleted" + }, + "display_light": { + "default": "mdi:brightness-6" + }, + "fresh_air_filter": { + "default": "mdi:air-filter" + }, + "hygiene_dry_mode": { + "default": "mdi:format-list-bulleted" + }, + "light_brightness": { + "default": "mdi:list-status" + }, + "monitoring_enabled": { + "default": "mdi:monitor-eye" + }, + "operation_mode": { + "default": "mdi:gesture-tap-button" + }, + "operation_mode_for_location": { + "default": "mdi:gesture-tap-button" + }, + "wind_angle": { + "default": "mdi:rotate-360" + }, + "wind_strength": { + "default": "mdi:wind-power-outline" + } + }, + "sensor": { + "absolute_to_start": { + "default": "mdi:clock-time-three-outline" + }, + "absolute_to_start_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "absolute_to_stop": { + "default": "mdi:clock-time-three-outline" + }, + "absolute_to_stop_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "battery_level": { + "default": "mdi:battery-medium" + }, + "beer_remain": { + "default": "mdi:glass-mug-variant" + }, + "brightness": { + "default": "mdi:tune-vertical-variant" + }, + "brightness_for_location": { + "default": "mdi:tune-vertical-variant" + }, + "carbon_dioxide": { + "default": "mdi:molecule-co2" + }, + "cock_state": { + "default": "mdi:air-filter" + }, + "current_dish_washing_course": { + "default": "mdi:format-list-checks" + }, + "current_job_mode": { + "default": "mdi:dots-circle" + }, + "current_job_mode_stick_cleaner": { + "default": "mdi:dots-circle" + }, + "current_state": { + "default": "mdi:list-status" + }, + "current_state_for_location": { + "default": "mdi:list-status" + }, + "current_temperature": { + "default": "mdi:thermometer" + }, + "cycle_count": { + "default": "mdi:counter" + }, + "cycle_count_for_location": { + "default": "mdi:counter" + }, + "day_target_temperature": { + "default": "mdi:thermometer" + }, + "day_target_temperature_for_location": { + "default": "mdi:thermometer" + }, + "duration": { + "default": "mdi:tune-vertical-variant" + }, + "duration_for_location": { + "default": "mdi:tune-vertical-variant" + }, + "elapsed_day_state": { + "default": "mdi:calendar-range-outline" + }, + "elapsed_day_total": { + "default": "mdi:calendar-range-outline" + }, + "energy_usage_last_month": { + "default": "mdi:chart-bar" + }, + "energy_usage_this_month": { + "default": "mdi:chart-bar" + }, + "energy_usage_yesterday": { + "default": "mdi:chart-bar" + }, + "filter_lifetime": { + "default": "mdi:air-filter" + }, + "flavor_capsule_1": { + "default": "mdi:information-box-outline" + }, + "flavor_capsule_2": { + "default": "mdi:information-box-outline" + }, + "flavor_info": { + "default": "mdi:information-box-outline" + }, + "fresh_air_filter": { + "default": "mdi:air-filter" + }, + "growth_mode": { + "default": "mdi:sprout-outline" + }, + "growth_mode_for_location": { + "default": "mdi:sprout-outline" + }, + "hop_oil_capsule_1": { + "default": "mdi:information-box-outline" + }, + "hop_oil_capsule_2": { + "default": "mdi:information-box-outline" + }, + "hop_oil_info": { + "default": "mdi:information-box-outline" + }, + "light_start": { + "default": "mdi:clock-time-three-outline" + }, + "light_start_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "monitoring_enabled": { + "default": "mdi:monitor-eye" + }, + "night_target_temperature": { + "default": "mdi:thermometer" + }, + "night_target_temperature_for_location": { + "default": "mdi:thermometer" + }, + "odor_level": { + "default": "mdi:scent" + }, + "personalization_mode": { + "default": "mdi:dots-circle" + }, + "power_level": { + "default": "mdi:radiator" + }, + "power_level_for_location": { + "default": "mdi:radiator" + }, + "recipe_name": { + "default": "mdi:information-box-outline" + }, + "relative_to_start": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_start_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_start_wm": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_start_wm_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_stop": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_stop_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_stop_wm": { + "default": "mdi:clock-time-three-outline" + }, + "relative_to_stop_wm_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "remain": { + "default": "mdi:timer-sand" + }, + "remain_for_location": { + "default": "mdi:timer-sand" + }, + "rinse_level": { + "default": "mdi:tune-vertical-variant" + }, + "running": { + "default": "mdi:timer-play-outline" + }, + "running_for_location": { + "default": "mdi:timer-play-outline" + }, + "sleep_timer_relative_to_stop": { + "default": "mdi:bed-clock" + }, + "sleep_timer_relative_to_stop_for_location": { + "default": "mdi:bed-clock" + }, + "softening_level": { + "default": "mdi:tune-vertical-variant" + }, + "sterilizing_state": { + "default": "mdi:water-alert-outline" + }, + "target": { + "default": "mdi:clock-time-three-outline" + }, + "target_for_location": { + "default": "mdi:clock-time-three-outline" + }, + "target_temperature": { + "default": "mdi:thermometer" + }, + "target_temperature_for_location": { + "default": "mdi:thermometer" + }, + "temperature": { + "default": "mdi:thermometer" + }, + "temperature_state": { + "default": "mdi:thermometer" + }, + "temperature_state_for_location": { + "default": "mdi:thermometer" + }, + "top_filter_remain_percent": { + "default": "mdi:air-filter" + }, + "total": { + "default": "mdi:timer-play-outline" + }, + "total_for_location": { + "default": "mdi:timer-play-outline" + }, + "total_pollution_level": { + "default": "mdi:air-filter" + }, + "used_time": { + "default": "mdi:air-filter" + }, + "water_filter_1_remain_percent": { + "default": "mdi:air-filter" + }, + "water_filter_2_remain_percent": { + "default": "mdi:air-filter" + }, + "water_filter_3_remain_percent": { + "default": "mdi:air-filter" + }, + "water_filter_state": { + "default": "mdi:air-filter" + }, + "water_type": { + "default": "mdi:water" + }, + "wind_volume": { + "default": "mdi:wind-power-outline" + }, + "wind_volume_for_location": { + "default": "mdi:wind-power-outline" + }, + "wort_info": { + "default": "mdi:information-box-outline" + }, + "yeast_info": { + "default": "mdi:information-box-outline" + } + }, "switch": { + "air_clean_operation_mode": { + "default": "mdi:air-filter" + }, "auto_mode": { "default": "mdi:cogs" }, - "express_mode": { - "default": "mdi:snowflake-variant" + "display_light": { + "default": "mdi:lightbulb-on-outline" }, "express_fridge": { "default": "mdi:snowflake" }, + "express_mode": { + "default": "mdi:snowflake-variant" + }, "hot_water_mode": { "default": "mdi:heat-wave" }, @@ -42,428 +464,6 @@ }, "warm_mode": { "default": "mdi:heat-wave" - }, - "display_light": { - "default": "mdi:lightbulb-on-outline" - }, - "air_clean_operation_mode": { - "default": "mdi:air-filter" - } - }, - "binary_sensor": { - "eco_friendly_mode": { - "default": "mdi:sprout" - }, - "power_save_enabled": { - "default": "mdi:meter-electric" - }, - "remote_control_enabled": { - "default": "mdi:remote" - }, - "remote_control_enabled_for_location": { - "default": "mdi:remote" - }, - "rinse_refill": { - "default": "mdi:tune-vertical-variant" - }, - "sabbath_mode": { - "default": "mdi:food-off-outline" - }, - "machine_clean_reminder": { - "default": "mdi:tune-vertical-variant" - }, - "signal_level": { - "default": "mdi:tune-vertical-variant" - }, - "clean_light_reminder": { - "default": "mdi:tune-vertical-variant" - }, - "operation_mode": { - "default": "mdi:power" - }, - "one_touch_filter": { - "default": "mdi:air-filter" - }, - "water_heater_operation_mode": { - "default": "mdi:power" - } - }, - "climate": { - "climate_air_conditioner": { - "state_attributes": { - "fan_mode": { - "state": { - "slow": "mdi:fan-chevron-down", - "low": "mdi:fan-speed-1", - "medium": "mdi:fan-speed-2", - "high": "mdi:fan-speed-3", - "power": "mdi:fan-chevron-up", - "auto": "mdi:fan-auto" - } - } - } - } - }, - "event": { - "error": { - "default": "mdi:alert-circle-outline" - }, - "notification": { - "default": "mdi:message-badge-outline" - } - }, - "number": { - "target_temperature": { - "default": "mdi:thermometer" - }, - "target_temperature_for_location": { - "default": "mdi:thermometer" - }, - "light_status": { - "default": "mdi:television-ambient-light" - }, - "fan_speed": { - "default": "mdi:wind-power-outline" - }, - "lamp_brightness": { - "default": "mdi:alarm-light-outline" - }, - "wind_temperature": { - "default": "mdi:thermometer" - }, - "relative_hour_to_start": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_start_for_location": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_start_wm": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_start_wm_for_location": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_stop": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_stop_for_location": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_stop_wm": { - "default": "mdi:timer-edit-outline" - }, - "relative_hour_to_stop_wm_for_location": { - "default": "mdi:timer-edit-outline" - }, - "sleep_timer_relative_hour_to_stop": { - "default": "mdi:bed-clock" - }, - "sleep_timer_relative_hour_to_stop_for_location": { - "default": "mdi:bed-clock" - } - }, - "select": { - "wind_strength": { - "default": "mdi:wind-power-outline" - }, - "monitoring_enabled": { - "default": "mdi:monitor-eye" - }, - "current_job_mode_ventilator": { - "default": "mdi:format-list-bulleted" - }, - "current_job_mode": { - "default": "mdi:format-list-bulleted" - }, - "current_job_mode_dehumidifier": { - "default": "mdi:format-list-bulleted" - }, - "operation_mode": { - "default": "mdi:gesture-tap-button" - }, - "operation_mode_for_location": { - "default": "mdi:gesture-tap-button" - }, - "air_clean_operation_mode": { - "default": "mdi:air-filter" - }, - "cook_mode": { - "default": "mdi:chef-hat" - }, - "cook_mode_for_location": { - "default": "mdi:chef-hat" - }, - "light_brightness": { - "default": "mdi:list-status" - }, - "wind_angle": { - "default": "mdi:rotate-360" - }, - "display_light": { - "default": "mdi:brightness-6" - }, - "fresh_air_filter": { - "default": "mdi:air-filter" - }, - "hygiene_dry_mode": { - "default": "mdi:format-list-bulleted" - } - }, - "sensor": { - "odor_level": { - "default": "mdi:scent" - }, - "current_temperature": { - "default": "mdi:thermometer" - }, - "temperature": { - "default": "mdi:thermometer" - }, - "total_pollution_level": { - "default": "mdi:air-filter" - }, - "carbon_dioxide": { - "default": "mdi:molecule-co2" - }, - "monitoring_enabled": { - "default": "mdi:monitor-eye" - }, - "growth_mode": { - "default": "mdi:sprout-outline" - }, - "growth_mode_for_location": { - "default": "mdi:sprout-outline" - }, - "wind_volume": { - "default": "mdi:wind-power-outline" - }, - "wind_volume_for_location": { - "default": "mdi:wind-power-outline" - }, - "brightness": { - "default": "mdi:tune-vertical-variant" - }, - "brightness_for_location": { - "default": "mdi:tune-vertical-variant" - }, - "duration": { - "default": "mdi:tune-vertical-variant" - }, - "duration_for_location": { - "default": "mdi:tune-vertical-variant" - }, - "day_target_temperature": { - "default": "mdi:thermometer" - }, - "day_target_temperature_for_location": { - "default": "mdi:thermometer" - }, - "night_target_temperature": { - "default": "mdi:thermometer" - }, - "night_target_temperature_for_location": { - "default": "mdi:thermometer" - }, - "temperature_state": { - "default": "mdi:thermometer" - }, - "temperature_state_for_location": { - "default": "mdi:thermometer" - }, - "current_state": { - "default": "mdi:list-status" - }, - "current_state_for_location": { - "default": "mdi:list-status" - }, - "fresh_air_filter": { - "default": "mdi:air-filter" - }, - "filter_lifetime": { - "default": "mdi:air-filter" - }, - "top_filter_remain_percent": { - "default": "mdi:air-filter" - }, - "used_time": { - "default": "mdi:air-filter" - }, - "water_filter_state": { - "default": "mdi:air-filter" - }, - "water_filter_1_remain_percent": { - "default": "mdi:air-filter" - }, - "water_filter_2_remain_percent": { - "default": "mdi:air-filter" - }, - "water_filter_3_remain_percent": { - "default": "mdi:air-filter" - }, - "current_job_mode": { - "default": "mdi:dots-circle" - }, - "current_job_mode_stick_cleaner": { - "default": "mdi:dots-circle" - }, - "personalization_mode": { - "default": "mdi:dots-circle" - }, - "current_dish_washing_course": { - "default": "mdi:format-list-checks" - }, - "rinse_level": { - "default": "mdi:tune-vertical-variant" - }, - "softening_level": { - "default": "mdi:tune-vertical-variant" - }, - "cock_state": { - "default": "mdi:air-filter" - }, - "sterilizing_state": { - "default": "mdi:water-alert-outline" - }, - "water_type": { - "default": "mdi:water" - }, - "target_temperature": { - "default": "mdi:thermometer" - }, - "target_temperature_for_location": { - "default": "mdi:thermometer" - }, - "elapsed_day_state": { - "default": "mdi:calendar-range-outline" - }, - "elapsed_day_total": { - "default": "mdi:calendar-range-outline" - }, - "recipe_name": { - "default": "mdi:information-box-outline" - }, - "wort_info": { - "default": "mdi:information-box-outline" - }, - "yeast_info": { - "default": "mdi:information-box-outline" - }, - "hop_oil_info": { - "default": "mdi:information-box-outline" - }, - "hop_oil_capsule_1": { - "default": "mdi:information-box-outline" - }, - "hop_oil_capsule_2": { - "default": "mdi:information-box-outline" - }, - "flavor_info": { - "default": "mdi:information-box-outline" - }, - "flavor_capsule_1": { - "default": "mdi:information-box-outline" - }, - "flavor_capsule_2": { - "default": "mdi:information-box-outline" - }, - "beer_remain": { - "default": "mdi:glass-mug-variant" - }, - "battery_level": { - "default": "mdi:battery-medium" - }, - "relative_to_start": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_start_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_start_wm": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_start_wm_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_stop": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_stop_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_stop_wm": { - "default": "mdi:clock-time-three-outline" - }, - "relative_to_stop_wm_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "sleep_timer_relative_to_stop": { - "default": "mdi:bed-clock" - }, - "sleep_timer_relative_to_stop_for_location": { - "default": "mdi:bed-clock" - }, - "absolute_to_start": { - "default": "mdi:clock-time-three-outline" - }, - "absolute_to_start_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "absolute_to_stop": { - "default": "mdi:clock-time-three-outline" - }, - "absolute_to_stop_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "remain": { - "default": "mdi:timer-sand" - }, - "remain_for_location": { - "default": "mdi:timer-sand" - }, - "running": { - "default": "mdi:timer-play-outline" - }, - "running_for_location": { - "default": "mdi:timer-play-outline" - }, - "total": { - "default": "mdi:timer-play-outline" - }, - "total_for_location": { - "default": "mdi:timer-play-outline" - }, - "target": { - "default": "mdi:clock-time-three-outline" - }, - "target_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "light_start": { - "default": "mdi:clock-time-three-outline" - }, - "light_start_for_location": { - "default": "mdi:clock-time-three-outline" - }, - "power_level": { - "default": "mdi:radiator" - }, - "power_level_for_location": { - "default": "mdi:radiator" - }, - "cycle_count": { - "default": "mdi:counter" - }, - "cycle_count_for_location": { - "default": "mdi:counter" - }, - "energy_usage_yesterday": { - "default": "mdi:chart-bar" - }, - "energy_usage_this_month": { - "default": "mdi:chart-bar" - }, - "energy_usage_last_month": { - "default": "mdi:chart-bar" } } } diff --git a/homeassistant/components/lg_thinq/strings.json b/homeassistant/components/lg_thinq/strings.json index bb90b668d4e..78e9f85da72 100644 --- a/homeassistant/components/lg_thinq/strings.json +++ b/homeassistant/components/lg_thinq/strings.json @@ -5,80 +5,42 @@ "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" }, "error": { + "exceeded_api_calls": "The number of API calls has been exceeded.", + "exceeded_user_api_calls": "The number of User API calls has been exceeded.", "invalid_token": "The token is not valid.", "not_acceptable_terms": "The service terms are not accepted.", "not_allowed_api_again": "The user does NOT have permission on the API call.", "not_supported_country": "The country is not supported.", - "exceeded_api_calls": "The number of API calls has been exceeded.", - "exceeded_user_api_calls": "The number of User API calls has been exceeded.", "token_unauthorized": "The token is invalid or unauthorized." }, "step": { "user": { - "title": "Connect to ThinQ", - "description": "Please enter a ThinQ [PAT(Personal Access Token)]({pat_url}) created with your LG ThinQ account.", "data": { "access_token": "Personal Access Token", "country": "[%key:common::config_flow::data::country%]" - } + }, + "description": "Please enter a ThinQ [PAT(Personal Access Token)]({pat_url}) created with your LG ThinQ account.", + "title": "Connect to ThinQ" } } }, "entity": { - "switch": { - "auto_mode": { - "name": "Auto mode" - }, - "express_mode": { - "name": "Express mode" - }, - "express_fridge": { - "name": "Express cool" - }, - "hot_water_mode": { - "name": "Heating water" - }, - "humidity_warm_mode": { - "name": "Warm mist" - }, - "hygiene_dry_mode": { - "name": "Drying mode" - }, - "mood_lamp_state": { - "name": "Mood light" - }, - "operation_power": { - "name": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]" - }, - "optimal_humidity": { - "name": "Ventilation" - }, - "power_save_enabled": { - "name": "Energy saving" - }, - "rapid_freeze": { - "name": "Quick freeze" - }, - "sleep_mode": { - "name": "Sleep mode" - }, - "uv_nano": { - "name": "UVnano" - }, - "warm_mode": { - "name": "Heating" - }, - "display_light": { - "name": "Lighting" - }, - "air_clean_operation_mode": { - "name": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::preset_mode::state::air_clean%]" - } - }, "binary_sensor": { + "clean_light_reminder": { + "name": "Clean indicator light" + }, "eco_friendly_mode": { "name": "Eco-friendly" }, + "machine_clean_reminder": { + "name": "Machine clean reminder" + }, + "one_touch_filter": { + "name": "Fresh air filter" + }, + "operation_mode": { + "name": "[%key:component::binary_sensor::entity_component::power::name%]" + }, "power_save_enabled": { "name": "Power saving mode" }, @@ -94,21 +56,9 @@ "sabbath_mode": { "name": "Sabbath" }, - "machine_clean_reminder": { - "name": "Machine clean reminder" - }, "signal_level": { "name": "Chime sound" }, - "clean_light_reminder": { - "name": "Clean indicator light" - }, - "operation_mode": { - "name": "[%key:component::binary_sensor::entity_component::power::name%]" - }, - "one_touch_filter": { - "name": "Fresh air filter" - }, "water_heater_operation_mode": { "name": "[%key:component::binary_sensor::entity_component::power::name%]", "state": { @@ -121,12 +71,12 @@ "state_attributes": { "fan_mode": { "state": { - "slow": "Slow", + "auto": "[%key:common::state::auto%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", "power": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", - "auto": "[%key:common::state::auto%]" + "slow": "Slow" } }, "preset_mode": { @@ -168,8 +118,8 @@ "high_temperature_detection_error": "High-temperature error", "inner_lid_open_error": "Lid open error", "ir_sensor_error": "IR sensor error", - "le_error": "LE error", "le2_error": "LE2 error", + "le_error": "LE error", "left_wheel_error": "Left wheel has a problem", "locked_motor_error": "Driver motor error", "mop_error": "Cannot operate properly without the mop attached", @@ -223,6 +173,7 @@ "error_during_cleaning": "Cleaning stopped due to an error", "error_during_washing": "An error has occurred in the washing machine", "error_has_occurred": "An error has occurred", + "filter_reset_complete": "The filter lifetime has been reset", "frozen_is_complete": "Ice Plus is done", "homeguard_is_stopped": "Home Guard has stopped", "lack_of_water": "There is no water in the water tank", @@ -240,33 +191,23 @@ "time_to_clean_filter": "It is time to clean the filter", "timer_is_complete": "Timer has been completed", "washing_is_complete": "Washing is completed", + "water_filter_reset_complete": "The water filter lifetime has been reset", "water_is_full": "Water is full", - "water_leak_has_occurred": "The dishwasher has detected a water leak", - "filter_reset_complete": "The filter lifetime has been reset", - "water_filter_reset_complete": "The water filter lifetime has been reset" + "water_leak_has_occurred": "The dishwasher has detected a water leak" } } } } }, "number": { - "target_temperature": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" - }, - "target_temperature_for_location": { - "name": "{location} temperature" - }, - "light_status": { - "name": "Light" - }, "fan_speed": { "name": "Fan" }, "lamp_brightness": { "name": "[%key:component::lg_thinq::entity::number::light_status::name%]" }, - "wind_temperature": { - "name": "Wind temperature" + "light_status": { + "name": "Light" }, "relative_hour_to_start": { "name": "Schedule turn-on" @@ -300,86 +241,212 @@ }, "target_humidity": { "name": "Target humidity" + }, + "target_temperature": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "target_temperature_for_location": { + "name": "{location} temperature" + }, + "wind_temperature": { + "name": "Wind temperature" + } + }, + "select": { + "air_clean_operation_mode": { + "name": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::preset_mode::state::air_clean%]", + "state": { + "start": "[%key:common::action::start%]", + "stop": "[%key:common::action::stop%]" + } + }, + "cook_mode": { + "name": "Cook mode", + "state": { + "bake": "Bake", + "convection_bake": "Convection bake", + "convection_roast": "Convection roast", + "crisp_convection": "Crisp convection", + "roast": "Roast" + } + }, + "cook_mode_for_location": { + "name": "{location} cook mode", + "state": { + "bake": "[%key:component::lg_thinq::entity::select::cook_mode::state::bake%]", + "convection_bake": "[%key:component::lg_thinq::entity::select::cook_mode::state::convection_bake%]", + "convection_roast": "[%key:component::lg_thinq::entity::select::cook_mode::state::convection_roast%]", + "crisp_convection": "[%key:component::lg_thinq::entity::select::cook_mode::state::crisp_convection%]", + "roast": "[%key:component::lg_thinq::entity::select::cook_mode::state::roast%]" + } + }, + "current_job_mode": { + "name": "Operating mode", + "state": { + "air_clean": "Purifying", + "auto": "[%key:common::state::auto%]", + "baby_care": "[%key:component::lg_thinq::entity::sensor::personalization_mode::state::baby%]", + "circulator": "Booster", + "clean": "Single", + "direct_clean": "Direct mode", + "dual_clean": "Dual", + "fast": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", + "heat_pump": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::heat_pump%]", + "humidify": "Mist", + "humidify_and_air_clean": "Mist & purifying", + "humidity": "Humid", + "nature_clean": "Natural mode", + "pet_clean": "[%key:component::lg_thinq::entity::sensor::personalization_mode::state::pet%]", + "silent": "Silent", + "sleep": "Sleep", + "smart": "Smart mode", + "space_clean": "Diffusion mode", + "spot_clean": "Wide mode", + "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", + "up_feature": "Additional mode", + "vacation": "Vacation" + } + }, + "current_job_mode_dehumidifier": { + "name": "[%key:component::lg_thinq::entity::sensor::current_job_mode::name%]", + "state": { + "air_clean": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::air_clean%]", + "clothes_dry": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::clothes_dry%]", + "intensive_dry": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::intensive_dry%]", + "quiet_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::quiet_humidity%]", + "rapid_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::rapid_humidity%]", + "smart_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::smart_humidity%]" + } + }, + "current_job_mode_ventilator": { + "name": "Operating mode", + "state": { + "vent_auto": "[%key:common::state::auto%]", + "vent_heat_exchange": "Heat exchange", + "vent_nature": "Bypass" + } + }, + "display_light": { + "name": "Display brightness", + "state": { + "level_1": "Brightness 1", + "level_2": "Brightness 2", + "level_3": "Brightness 3", + "off": "[%key:common::state::off%]" + } + }, + "fresh_air_filter": { + "name": "[%key:component::lg_thinq::entity::binary_sensor::one_touch_filter::name%]", + "state": { + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]", + "power": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", + "replace": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::replace%]", + "smart_off": "[%key:common::state::off%]", + "smart_on": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]", + "smart_power": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]" + } + }, + "hygiene_dry_mode": { + "name": "[%key:component::lg_thinq::entity::switch::hygiene_dry_mode::name%]", + "state": { + "fast": "Fast", + "normal": "[%key:component::lg_thinq::entity::sensor::current_dish_washing_course::state::delicate%]", + "off": "[%key:common::state::off%]", + "silent": "Silent" + } + }, + "light_brightness": { + "name": "Light" + }, + "monitoring_enabled": { + "name": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::name%]", + "state": { + "always": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::state::always%]", + "on_working": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::state::on_working%]" + } + }, + "operation_mode": { + "name": "Operation", + "state": { + "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]", + "power_off": "Power off", + "power_on": "Power on", + "preheating": "Preheating", + "start": "[%key:common::action::start%]", + "stop": "[%key:common::action::stop%]", + "wake_up": "Sleep mode off" + } + }, + "operation_mode_for_location": { + "name": "{location} operation", + "state": { + "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]", + "power_off": "[%key:component::lg_thinq::entity::select::operation_mode::state::power_off%]", + "power_on": "[%key:component::lg_thinq::entity::select::operation_mode::state::power_on%]", + "preheating": "[%key:component::lg_thinq::entity::select::operation_mode::state::preheating%]", + "start": "[%key:common::action::start%]", + "stop": "[%key:common::action::stop%]", + "wake_up": "[%key:component::lg_thinq::entity::select::operation_mode::state::wake_up%]" + } + }, + "wind_angle": { + "name": "Rotation", + "state": { + "angle_140": "140°", + "angle_45": "45°", + "angle_60": "60°", + "angle_90": "90°", + "off": "[%key:common::state::off%]" + } + }, + "wind_strength": { + "name": "Speed", + "state": { + "auto": "[%key:common::state::auto%]", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "mid": "[%key:common::state::medium%]", + "power": "Turbo", + "slow": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::fan_mode::state::slow%]", + "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", + "wind_1": "Step 1", + "wind_10": "Step 10", + "wind_2": "Step 2", + "wind_3": "Step 3", + "wind_4": "Step 4", + "wind_5": "Step 5", + "wind_6": "Step 6", + "wind_7": "Step 7", + "wind_8": "Step 8", + "wind_9": "Step 9" + } } }, "sensor": { - "odor_level": { - "name": "Odor", + "absolute_to_start": { + "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_start::name%]" + }, + "absolute_to_start_for_location": { + "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_start_for_location::name%]" + }, + "absolute_to_stop": { + "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_stop::name%]" + }, + "absolute_to_stop_for_location": { + "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_stop_for_location::name%]" + }, + "battery_level": { + "name": "Battery", "state": { - "invalid": "Invalid", - "weak": "Weak", - "normal": "[%key:common::state::normal%]", - "strong": "Strong", - "very_strong": "Very strong" + "high": "[%key:common::state::full%]", + "low": "[%key:common::state::low%]", + "mid": "[%key:common::state::medium%]", + "warning": "[%key:common::state::empty%]" } }, - "current_temperature": { - "name": "Current temperature" - }, - "room_air_current_temperature": { - "name": "Indoor temperature" - }, - "room_in_water_current_temperature": { - "name": "Inlet temperature" - }, - "room_out_water_current_temperature": { - "name": "Outlet temperature" - }, - "temperature": { - "name": "Temperature" - }, - "total_pollution_level": { - "name": "Overall air quality", - "state": { - "invalid": "Invalid", - "good": "Good", - "normal": "Moderate", - "bad": "Unhealthy", - "very_bad": "Poor" - } - }, - "carbon_dioxide": { - "name": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", - "state": { - "invalid": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::invalid%]", - "good": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::good%]", - "normal": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]", - "moderate": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]", - "bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]", - "unhealthy": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]", - "very_bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]", - "poor": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]" - } - }, - "monitoring_enabled": { - "name": "Air quality sensor", - "state": { - "on_working": "Turns on with product", - "always": "Always on" - } - }, - "growth_mode": { - "name": "Mode", - "state": { - "standard": "[%key:common::state::auto%]", - "ext_leaf": "Vegetables", - "ext_herb": "Herbs", - "ext_flower": "Flowers", - "ext_expert": "Custom growing mode" - } - }, - "growth_mode_for_location": { - "name": "{location} mode", - "state": { - "standard": "[%key:common::state::auto%]", - "ext_leaf": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_leaf%]", - "ext_herb": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_herb%]", - "ext_flower": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_flower%]", - "ext_expert": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_expert%]" - } - }, - "wind_volume_for_location": { - "name": "{location} wind speed" + "beer_remain": { + "name": "Recipe progress" }, "brightness": { "name": "Lighting intensity" @@ -387,38 +454,80 @@ "brightness_for_location": { "name": "{location} lighting intensity" }, - "duration": { - "name": "Lighting duration" - }, - "duration_for_location": { - "name": "{location} lighting duration" - }, - "day_target_temperature": { - "name": "Day growth temperature" - }, - "day_target_temperature_for_location": { - "name": "{location} day growth temperature" - }, - "night_target_temperature": { - "name": "Night growth temperature" - }, - "night_target_temperature_for_location": { - "name": "{location} night growth temperature" - }, - "temperature_state": { - "name": "[%key:component::sensor::entity_component::temperature::name%]", + "carbon_dioxide": { + "name": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", "state": { - "high": "[%key:common::state::high%]", - "normal": "Good", - "low": "[%key:common::state::low%]" + "bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]", + "good": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::good%]", + "invalid": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::invalid%]", + "moderate": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]", + "normal": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]", + "poor": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]", + "unhealthy": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]", + "very_bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]" } }, - "temperature_state_for_location": { - "name": "[%key:component::lg_thinq::entity::number::target_temperature_for_location::name%]", + "cock_state": { + "name": "[%key:component::lg_thinq::entity::switch::uv_nano::name%]", "state": { - "high": "[%key:common::state::high%]", - "normal": "[%key:component::lg_thinq::entity::sensor::temperature_state::state::normal%]", - "low": "[%key:common::state::low%]" + "cleaning": "In progress", + "normal": "[%key:common::state::standby%]" + } + }, + "current_dish_washing_course": { + "name": "Current cycle", + "state": { + "auto": "[%key:common::state::auto%]", + "delicate": "Delicate", + "download_cycle": "Download cycle", + "eco": "Eco", + "express": "Express", + "heavy": "Intensive", + "machine_clean": "Machine clean", + "normal": "[%key:common::state::normal%]", + "quick": "Quick", + "refresh": "Refresh", + "rinse": "Rinse", + "short_mode": "Short mode", + "spray": "Spray", + "steam": "Steam care", + "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]" + } + }, + "current_job_mode": { + "name": "Operating mode", + "state": { + "air_clean": "Purify", + "auto": "[%key:common::state::auto%]", + "clothes_dry": "Laundry", + "edge": "Edge cleaning", + "heat_pump": "Heat pump", + "high": "Power", + "intensive_dry": "Spot", + "macro": "Custom mode", + "mop": "Mop", + "normal": "[%key:common::state::normal%]", + "off": "[%key:common::state::off%]", + "quiet_humidity": "Silent", + "rapid_humidity": "Jet", + "sector_base": "Cell by cell", + "select": "My space", + "smart_humidity": "Smart", + "spot": "Spiral spot mode", + "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", + "vacation": "Vacation", + "zigzag": "Zigzag" + } + }, + "current_job_mode_stick_cleaner": { + "name": "Operating mode", + "state": { + "auto": "Low power", + "high": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", + "mop": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::mop%]", + "normal": "[%key:common::state::normal%]", + "off": "[%key:common::state::off%]", + "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]" } }, "current_state": { @@ -457,8 +566,8 @@ "firmware": "Updating firmware", "fota": "Updating", "frozen_prevent_initial": "Freeze protection standby", - "frozen_prevent_running": "Freeze protection in progress", "frozen_prevent_pause": "Freeze protection paused", + "frozen_prevent_running": "Freeze protection in progress", "homing": "Moving", "initial": "[%key:common::state::standby%]", "initializing": "[%key:common::state::standby%]", @@ -473,8 +582,8 @@ "pause": "[%key:common::state::paused%]", "paused": "[%key:common::state::paused%]", "power_fail": "Power fail", - "power_on": "[%key:common::state::on%]", "power_off": "[%key:common::state::off%]", + "power_on": "[%key:common::state::on%]", "preference": "Setting", "preheat": "Preheating", "preheat_complete": "[%key:component::lg_thinq::entity::event::notification::state_attributes::event_type::state::preheating_is_complete%]", @@ -498,8 +607,8 @@ "soaking": "Soak", "softening": "Softener", "spinning": "Spinning", - "stay": "Refresh", "standby": "[%key:common::state::standby%]", + "stay": "Refresh", "steam": "Refresh", "steam_softening": "Steam softening", "sterilize": "Sterilize", @@ -544,8 +653,8 @@ "firmware": "[%key:component::lg_thinq::entity::sensor::current_state::state::firmware%]", "fota": "[%key:component::lg_thinq::entity::sensor::current_state::state::fota%]", "frozen_prevent_initial": "[%key:component::lg_thinq::entity::sensor::current_state::state::frozen_prevent_initial%]", - "frozen_prevent_running": "[%key:component::lg_thinq::entity::sensor::current_state::state::frozen_prevent_running%]", "frozen_prevent_pause": "[%key:component::lg_thinq::entity::sensor::current_state::state::frozen_prevent_pause%]", + "frozen_prevent_running": "[%key:component::lg_thinq::entity::sensor::current_state::state::frozen_prevent_running%]", "homing": "[%key:component::lg_thinq::entity::sensor::current_state::state::homing%]", "initial": "[%key:common::state::standby%]", "initializing": "[%key:common::state::standby%]", @@ -560,8 +669,8 @@ "pause": "[%key:common::state::paused%]", "paused": "[%key:common::state::paused%]", "power_fail": "[%key:component::lg_thinq::entity::sensor::current_state::state::power_fail%]", - "power_on": "[%key:common::state::on%]", "power_off": "[%key:common::state::off%]", + "power_on": "[%key:common::state::on%]", "preference": "[%key:component::lg_thinq::entity::sensor::current_state::state::preference%]", "preheat": "[%key:component::lg_thinq::entity::sensor::current_state::state::preheat%]", "preheat_complete": "[%key:component::lg_thinq::entity::event::notification::state_attributes::event_type::state::preheating_is_complete%]", @@ -585,8 +694,8 @@ "soaking": "[%key:component::lg_thinq::entity::sensor::current_state::state::soaking%]", "softening": "[%key:component::lg_thinq::entity::sensor::current_state::state::softening%]", "spinning": "[%key:component::lg_thinq::entity::sensor::current_state::state::spinning%]", - "stay": "[%key:component::lg_thinq::entity::sensor::current_state::state::stay%]", "standby": "[%key:common::state::standby%]", + "stay": "[%key:component::lg_thinq::entity::sensor::current_state::state::stay%]", "steam": "[%key:component::lg_thinq::entity::sensor::current_state::state::steam%]", "steam_softening": "[%key:component::lg_thinq::entity::sensor::current_state::state::steam_softening%]", "sterilize": "[%key:component::lg_thinq::entity::sensor::current_state::state::sterilize%]", @@ -595,175 +704,26 @@ "wrinkle_care": "[%key:component::lg_thinq::entity::sensor::current_state::state::wrinkle_care%]" } }, - "fresh_air_filter": { - "name": "[%key:component::lg_thinq::entity::binary_sensor::one_touch_filter::name%]", - "state": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "power": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", - "replace": "Replace filter", - "smart_power": "Smart safe storage", - "smart_off": "[%key:common::state::off%]", - "smart_on": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]" - } + "current_temperature": { + "name": "Current temperature" }, - "filter_lifetime": { - "name": "Filter remaining" + "cycle_count": { + "name": "Cycles" }, - "top_filter_remain_percent": { - "name": "Upper filter remaining" + "cycle_count_for_location": { + "name": "{location} cycles" }, - "used_time": { - "name": "Water filter used" + "day_target_temperature": { + "name": "Day growth temperature" }, - "water_filter_state": { - "name": "Water filter" + "day_target_temperature_for_location": { + "name": "{location} day growth temperature" }, - "water_filter_1_remain_percent": { - "name": "[%key:component::lg_thinq::entity::sensor::water_filter_state::name%]" + "duration": { + "name": "Lighting duration" }, - "water_filter_2_remain_percent": { - "name": "Water filter stage 2" - }, - "water_filter_3_remain_percent": { - "name": "Water filter stage 3" - }, - "current_job_mode": { - "name": "Operating mode", - "state": { - "air_clean": "Purify", - "auto": "[%key:common::state::auto%]", - "clothes_dry": "Laundry", - "edge": "Edge cleaning", - "heat_pump": "Heat pump", - "high": "Power", - "intensive_dry": "Spot", - "macro": "Custom mode", - "mop": "Mop", - "normal": "[%key:common::state::normal%]", - "off": "[%key:common::state::off%]", - "quiet_humidity": "Silent", - "rapid_humidity": "Jet", - "sector_base": "Cell by cell", - "select": "My space", - "smart_humidity": "Smart", - "spot": "Spiral spot mode", - "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", - "vacation": "Vacation", - "zigzag": "Zigzag" - } - }, - "current_job_mode_stick_cleaner": { - "name": "Operating mode", - "state": { - "auto": "Low power", - "high": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", - "mop": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::mop%]", - "normal": "[%key:common::state::normal%]", - "off": "[%key:common::state::off%]", - "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]" - } - }, - "personalization_mode": { - "name": "Personal mode", - "state": { - "auto_inside": "[%key:component::lg_thinq::entity::switch::auto_mode::name%]", - "sleep": "Sleep mode", - "baby": "Baby care mode", - "sick_house": "New Home mode", - "auto_outside": "Interlocking mode", - "pet": "Pet mode", - "cooking": "Cooking mode", - "smoke": "Smoke mode", - "exercise": "Exercise mode", - "others": "Others" - } - }, - "current_dish_washing_course": { - "name": "Current cycle", - "state": { - "auto": "[%key:common::state::auto%]", - "heavy": "Intensive", - "delicate": "Delicate", - "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", - "normal": "[%key:common::state::normal%]", - "rinse": "Rinse", - "refresh": "Refresh", - "express": "Express", - "machine_clean": "Machine clean", - "short_mode": "Short mode", - "download_cycle": "Download cycle", - "quick": "Quick", - "steam": "Steam care", - "spray": "Spray", - "eco": "Eco" - } - }, - "rinse_level": { - "name": "Rinse aid dispenser level", - "state": { - "rinselevel_0": "0", - "rinselevel_1": "1", - "rinselevel_2": "2", - "rinselevel_3": "3", - "rinselevel_4": "4" - } - }, - "softening_level": { - "name": "Softening level", - "state": { - "softeninglevel_0": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_0%]", - "softeninglevel_1": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_1%]", - "softeninglevel_2": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_2%]", - "softeninglevel_3": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_3%]", - "softeninglevel_4": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_4%]" - } - }, - "cock_state": { - "name": "[%key:component::lg_thinq::entity::switch::uv_nano::name%]", - "state": { - "cleaning": "In progress", - "normal": "[%key:common::state::standby%]" - } - }, - "sterilizing_state": { - "name": "High-temp sterilization", - "state": { - "off": "[%key:common::state::off%]", - "on": "Sterilizing", - "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]" - } - }, - "water_type": { - "name": "Type" - }, - "target_temperature": { - "name": "[%key:component::sensor::entity_component::temperature::name%]", - "state": { - "kimchi": "Kimchi", - "off": "[%key:common::state::off%]", - "freezer": "Freezer", - "fridge": "Fridge", - "storage": "Storage", - "meat_fish": "Meat/Fish", - "rice_grain": "Rice/Grain", - "vegetable_fruit": "Vege/Fruit", - "temperature_number": "Number" - } - }, - "target_temperature_for_location": { - "name": "[%key:component::lg_thinq::entity::number::target_temperature_for_location::name%]", - "state": { - "kimchi": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::kimchi%]", - "off": "[%key:common::state::off%]", - "freezer": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::freezer%]", - "fridge": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::fridge%]", - "storage": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::storage%]", - "meat_fish": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::meat_fish%]", - "rice_grain": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::rice_grain%]", - "vegetable_fruit": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::vegetable_fruit%]", - "temperature_number": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::temperature_number%]" - } + "duration_for_location": { + "name": "{location} lighting duration" }, "elapsed_day_state": { "name": "Brewing period" @@ -771,63 +731,17 @@ "elapsed_day_total": { "name": "Brewing duration" }, - "recipe_name": { - "name": "Homebrew recipe", - "state": { - "ipa": "IPA", - "pale_ale": "Pale ale", - "stout": "Stout", - "wheat": "Wheat", - "pilsner": "Pilsner", - "red_ale": "Red ale", - "my_recipe": "My recipe" - } + "energy_usage_last_month": { + "name": "Energy last month" }, - "wort_info": { - "name": "Wort", - "state": { - "hoppy": "Hoppy", - "deep_gold": "DeepGold", - "wheat": "Wheat", - "dark": "Dark" - } + "energy_usage_this_month": { + "name": "Energy this month" }, - "yeast_info": { - "name": "Yeast", - "state": { - "american_ale": "American ale", - "english_ale": "English ale", - "lager": "Lager", - "weizen": "Weizen" - } + "energy_usage_yesterday": { + "name": "Energy yesterday" }, - "hop_oil_info": { - "name": "Hops" - }, - "hop_oil_capsule_1": { - "name": "First hop", - "state": { - "cascade": "Cascade", - "chinook": "Chinook", - "goldings": "Goldings", - "fuggles": "Fuggles", - "hallertau": "Hallertau", - "citrussy": "Citrussy" - } - }, - "hop_oil_capsule_2": { - "name": "Second hop", - "state": { - "cascade": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::cascade%]", - "chinook": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::chinook%]", - "goldings": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::goldings%]", - "fuggles": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::fuggles%]", - "hallertau": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::hallertau%]", - "citrussy": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::citrussy%]" - } - }, - "flavor_info": { - "name": "Flavor" + "filter_lifetime": { + "name": "Filter remaining" }, "flavor_capsule_1": { "name": "First flavor", @@ -845,16 +759,126 @@ "orange": "[%key:component::lg_thinq::entity::sensor::flavor_capsule_1::state::orange%]" } }, - "beer_remain": { - "name": "Recipe progress" + "flavor_info": { + "name": "Flavor" }, - "battery_level": { - "name": "Battery", + "fresh_air_filter": { + "name": "[%key:component::lg_thinq::entity::binary_sensor::one_touch_filter::name%]", "state": { - "high": "[%key:common::state::full%]", - "mid": "[%key:common::state::medium%]", - "low": "[%key:common::state::low%]", - "warning": "[%key:common::state::empty%]" + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]", + "power": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", + "replace": "Replace filter", + "smart_off": "[%key:common::state::off%]", + "smart_on": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]", + "smart_power": "Smart safe storage" + } + }, + "growth_mode": { + "name": "Mode", + "state": { + "ext_expert": "Custom growing mode", + "ext_flower": "Flowers", + "ext_herb": "Herbs", + "ext_leaf": "Vegetables", + "standard": "[%key:common::state::auto%]" + } + }, + "growth_mode_for_location": { + "name": "{location} mode", + "state": { + "ext_expert": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_expert%]", + "ext_flower": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_flower%]", + "ext_herb": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_herb%]", + "ext_leaf": "[%key:component::lg_thinq::entity::sensor::growth_mode::state::ext_leaf%]", + "standard": "[%key:common::state::auto%]" + } + }, + "hop_oil_capsule_1": { + "name": "First hop", + "state": { + "cascade": "Cascade", + "chinook": "Chinook", + "citrussy": "Citrussy", + "fuggles": "Fuggles", + "goldings": "Goldings", + "hallertau": "Hallertau" + } + }, + "hop_oil_capsule_2": { + "name": "Second hop", + "state": { + "cascade": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::cascade%]", + "chinook": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::chinook%]", + "citrussy": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::citrussy%]", + "fuggles": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::fuggles%]", + "goldings": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::goldings%]", + "hallertau": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::hallertau%]" + } + }, + "hop_oil_info": { + "name": "Hops" + }, + "light_start": { + "name": "Lights on time" + }, + "light_start_for_location": { + "name": "{location} lights on time" + }, + "monitoring_enabled": { + "name": "Air quality sensor", + "state": { + "always": "Always on", + "on_working": "Turns on with product" + } + }, + "night_target_temperature": { + "name": "Night growth temperature" + }, + "night_target_temperature_for_location": { + "name": "{location} night growth temperature" + }, + "odor_level": { + "name": "Odor", + "state": { + "invalid": "Invalid", + "normal": "[%key:common::state::normal%]", + "strong": "Strong", + "very_strong": "Very strong", + "weak": "Weak" + } + }, + "personalization_mode": { + "name": "Personal mode", + "state": { + "auto_inside": "[%key:component::lg_thinq::entity::switch::auto_mode::name%]", + "auto_outside": "Interlocking mode", + "baby": "Baby care mode", + "cooking": "Cooking mode", + "exercise": "Exercise mode", + "others": "Others", + "pet": "Pet mode", + "sick_house": "New Home mode", + "sleep": "Sleep mode", + "smoke": "Smoke mode" + } + }, + "power_level": { + "name": "Power level" + }, + "power_level_for_location": { + "name": "{location} power level" + }, + "recipe_name": { + "name": "Homebrew recipe", + "state": { + "ipa": "IPA", + "my_recipe": "My recipe", + "pale_ale": "Pale ale", + "pilsner": "Pilsner", + "red_ale": "Red ale", + "stout": "Stout", + "wheat": "Wheat" } }, "relative_to_start": { @@ -881,41 +905,60 @@ "relative_to_stop_wm_for_location": { "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_stop_wm_for_location::name%]" }, - "sleep_timer_relative_to_stop": { - "name": "[%key:component::lg_thinq::entity::number::sleep_timer_relative_hour_to_stop::name%]" - }, - "sleep_timer_relative_to_stop_for_location": { - "name": "[%key:component::lg_thinq::entity::number::sleep_timer_relative_hour_to_stop_for_location::name%]" - }, - "absolute_to_start": { - "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_start::name%]" - }, - "absolute_to_start_for_location": { - "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_start_for_location::name%]" - }, - "absolute_to_stop": { - "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_stop::name%]" - }, - "absolute_to_stop_for_location": { - "name": "[%key:component::lg_thinq::entity::number::relative_hour_to_stop_for_location::name%]" - }, "remain": { "name": "Remaining time" }, "remain_for_location": { "name": "{location} remaining time" }, + "rinse_level": { + "name": "Rinse aid dispenser level", + "state": { + "rinselevel_0": "0", + "rinselevel_1": "1", + "rinselevel_2": "2", + "rinselevel_3": "3", + "rinselevel_4": "4" + } + }, + "room_air_current_temperature": { + "name": "Indoor temperature" + }, + "room_in_water_current_temperature": { + "name": "Inlet temperature" + }, + "room_out_water_current_temperature": { + "name": "Outlet temperature" + }, "running": { "name": "Running time" }, "running_for_location": { "name": "{location} running time" }, - "total": { - "name": "Total time" + "sleep_timer_relative_to_stop": { + "name": "[%key:component::lg_thinq::entity::number::sleep_timer_relative_hour_to_stop::name%]" }, - "total_for_location": { - "name": "{location} total time" + "sleep_timer_relative_to_stop_for_location": { + "name": "[%key:component::lg_thinq::entity::number::sleep_timer_relative_hour_to_stop_for_location::name%]" + }, + "softening_level": { + "name": "Softening level", + "state": { + "softeninglevel_0": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_0%]", + "softeninglevel_1": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_1%]", + "softeninglevel_2": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_2%]", + "softeninglevel_3": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_3%]", + "softeninglevel_4": "[%key:component::lg_thinq::entity::sensor::rinse_level::state::rinselevel_4%]" + } + }, + "sterilizing_state": { + "name": "High-temp sterilization", + "state": { + "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]", + "off": "[%key:common::state::off%]", + "on": "Sterilizing" + } }, "target": { "name": "Cook time" @@ -923,203 +966,160 @@ "target_for_location": { "name": "{location} cook time" }, - "light_start": { - "name": "Lights on time" + "target_temperature": { + "name": "[%key:component::sensor::entity_component::temperature::name%]", + "state": { + "freezer": "Freezer", + "fridge": "Fridge", + "kimchi": "Kimchi", + "meat_fish": "Meat/Fish", + "off": "[%key:common::state::off%]", + "rice_grain": "Rice/Grain", + "storage": "Storage", + "temperature_number": "Number", + "vegetable_fruit": "Vege/Fruit" + } }, - "light_start_for_location": { - "name": "{location} lights on time" + "target_temperature_for_location": { + "name": "[%key:component::lg_thinq::entity::number::target_temperature_for_location::name%]", + "state": { + "freezer": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::freezer%]", + "fridge": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::fridge%]", + "kimchi": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::kimchi%]", + "meat_fish": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::meat_fish%]", + "off": "[%key:common::state::off%]", + "rice_grain": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::rice_grain%]", + "storage": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::storage%]", + "temperature_number": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::temperature_number%]", + "vegetable_fruit": "[%key:component::lg_thinq::entity::sensor::target_temperature::state::vegetable_fruit%]" + } }, - "power_level": { - "name": "Power level" + "temperature": { + "name": "Temperature" }, - "power_level_for_location": { - "name": "{location} power level" + "temperature_state": { + "name": "[%key:component::sensor::entity_component::temperature::name%]", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "normal": "Good" + } }, - "cycle_count": { - "name": "Cycles" + "temperature_state_for_location": { + "name": "[%key:component::lg_thinq::entity::number::target_temperature_for_location::name%]", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "normal": "[%key:component::lg_thinq::entity::sensor::temperature_state::state::normal%]" + } }, - "cycle_count_for_location": { - "name": "{location} cycles" + "top_filter_remain_percent": { + "name": "Upper filter remaining" }, - "energy_usage_yesterday": { - "name": "Energy yesterday" + "total": { + "name": "Total time" }, - "energy_usage_this_month": { - "name": "Energy this month" + "total_for_location": { + "name": "{location} total time" }, - "energy_usage_last_month": { - "name": "Energy last month" + "total_pollution_level": { + "name": "Overall air quality", + "state": { + "bad": "Unhealthy", + "good": "Good", + "invalid": "Invalid", + "normal": "Moderate", + "very_bad": "Poor" + } + }, + "used_time": { + "name": "Water filter used" + }, + "water_filter_1_remain_percent": { + "name": "[%key:component::lg_thinq::entity::sensor::water_filter_state::name%]" + }, + "water_filter_2_remain_percent": { + "name": "Water filter stage 2" + }, + "water_filter_3_remain_percent": { + "name": "Water filter stage 3" + }, + "water_filter_state": { + "name": "Water filter" + }, + "water_type": { + "name": "Type" + }, + "wind_volume_for_location": { + "name": "{location} wind speed" + }, + "wort_info": { + "name": "Wort", + "state": { + "dark": "Dark", + "deep_gold": "DeepGold", + "hoppy": "Hoppy", + "wheat": "Wheat" + } + }, + "yeast_info": { + "name": "Yeast", + "state": { + "american_ale": "American ale", + "english_ale": "English ale", + "lager": "Lager", + "weizen": "Weizen" + } } }, - "select": { - "wind_strength": { - "name": "Speed", - "state": { - "slow": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::fan_mode::state::slow%]", - "low": "[%key:common::state::low%]", - "mid": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "power": "Turbo", - "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", - "auto": "[%key:common::state::auto%]", - "wind_1": "Step 1", - "wind_2": "Step 2", - "wind_3": "Step 3", - "wind_4": "Step 4", - "wind_5": "Step 5", - "wind_6": "Step 6", - "wind_7": "Step 7", - "wind_8": "Step 8", - "wind_9": "Step 9", - "wind_10": "Step 10" - } - }, - "monitoring_enabled": { - "name": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::name%]", - "state": { - "on_working": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::state::on_working%]", - "always": "[%key:component::lg_thinq::entity::sensor::monitoring_enabled::state::always%]" - } - }, - "current_job_mode_ventilator": { - "name": "Operating mode", - "state": { - "vent_auto": "[%key:common::state::auto%]", - "vent_nature": "Bypass", - "vent_heat_exchange": "Heat exchange" - } - }, - "current_job_mode": { - "name": "Operating mode", - "state": { - "air_clean": "Purifying", - "auto": "[%key:common::state::auto%]", - "baby_care": "[%key:component::lg_thinq::entity::sensor::personalization_mode::state::baby%]", - "circulator": "Booster", - "clean": "Single", - "direct_clean": "Direct mode", - "dual_clean": "Dual", - "fast": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", - "heat_pump": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::heat_pump%]", - "humidify": "Mist", - "humidify_and_air_clean": "Mist & purifying", - "humidity": "Humid", - "nature_clean": "Natural mode", - "pet_clean": "[%key:component::lg_thinq::entity::sensor::personalization_mode::state::pet%]", - "silent": "Silent", - "sleep": "Sleep", - "smart": "Smart mode", - "space_clean": "Diffusion mode", - "spot_clean": "Wide mode", - "turbo": "[%key:component::lg_thinq::entity::select::wind_strength::state::power%]", - "up_feature": "Additional mode", - "vacation": "Vacation" - } - }, - "current_job_mode_dehumidifier": { - "name": "[%key:component::lg_thinq::entity::sensor::current_job_mode::name%]", - "state": { - "air_clean": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::air_clean%]", - "clothes_dry": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::clothes_dry%]", - "intensive_dry": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::intensive_dry%]", - "quiet_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::quiet_humidity%]", - "rapid_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::rapid_humidity%]", - "smart_humidity": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::smart_humidity%]" - } - }, - "operation_mode": { - "name": "Operation", - "state": { - "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]", - "power_off": "Power off", - "power_on": "Power on", - "preheating": "Preheating", - "start": "[%key:common::action::start%]", - "stop": "[%key:common::action::stop%]", - "wake_up": "Sleep mode off" - } - }, - "operation_mode_for_location": { - "name": "{location} operation", - "state": { - "cancel": "[%key:component::lg_thinq::entity::sensor::current_state::state::cancel%]", - "power_off": "[%key:component::lg_thinq::entity::select::operation_mode::state::power_off%]", - "power_on": "[%key:component::lg_thinq::entity::select::operation_mode::state::power_on%]", - "preheating": "[%key:component::lg_thinq::entity::select::operation_mode::state::preheating%]", - "start": "[%key:common::action::start%]", - "stop": "[%key:common::action::stop%]", - "wake_up": "[%key:component::lg_thinq::entity::select::operation_mode::state::wake_up%]" - } - }, + "switch": { "air_clean_operation_mode": { - "name": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::preset_mode::state::air_clean%]", - "state": { - "start": "[%key:common::action::start%]", - "stop": "[%key:common::action::stop%]" - } + "name": "[%key:component::lg_thinq::entity::climate::climate_air_conditioner::state_attributes::preset_mode::state::air_clean%]" }, - "cook_mode": { - "name": "Cook mode", - "state": { - "bake": "Bake", - "convection_bake": "Convection bake", - "convection_roast": "Convection roast", - "roast": "Roast", - "crisp_convection": "Crisp convection" - } - }, - "cook_mode_for_location": { - "name": "{location} cook mode", - "state": { - "bake": "[%key:component::lg_thinq::entity::select::cook_mode::state::bake%]", - "convection_bake": "[%key:component::lg_thinq::entity::select::cook_mode::state::convection_bake%]", - "convection_roast": "[%key:component::lg_thinq::entity::select::cook_mode::state::convection_roast%]", - "roast": "[%key:component::lg_thinq::entity::select::cook_mode::state::roast%]", - "crisp_convection": "[%key:component::lg_thinq::entity::select::cook_mode::state::crisp_convection%]" - } - }, - "light_brightness": { - "name": "Light" - }, - "wind_angle": { - "name": "Rotation", - "state": { - "off": "[%key:common::state::off%]", - "angle_45": "45°", - "angle_60": "60°", - "angle_90": "90°", - "angle_140": "140°" - } + "auto_mode": { + "name": "Auto mode" }, "display_light": { - "name": "Display brightness", - "state": { - "off": "[%key:common::state::off%]", - "level_1": "Brightness 1", - "level_2": "Brightness 2", - "level_3": "Brightness 3" - } + "name": "Lighting" }, - "fresh_air_filter": { - "name": "[%key:component::lg_thinq::entity::binary_sensor::one_touch_filter::name%]", - "state": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "power": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]", - "replace": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::replace%]", - "smart_power": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]", - "smart_off": "[%key:common::state::off%]", - "smart_on": "[%key:component::lg_thinq::entity::sensor::fresh_air_filter::state::smart_power%]" - } + "express_fridge": { + "name": "Express cool" + }, + "express_mode": { + "name": "Express mode" + }, + "hot_water_mode": { + "name": "Heating water" + }, + "humidity_warm_mode": { + "name": "Warm mist" }, "hygiene_dry_mode": { - "name": "[%key:component::lg_thinq::entity::switch::hygiene_dry_mode::name%]", - "state": { - "off": "[%key:common::state::off%]", - "fast": "Fast", - "silent": "Silent", - "normal": "[%key:component::lg_thinq::entity::sensor::current_dish_washing_course::state::delicate%]" - } + "name": "Drying mode" + }, + "mood_lamp_state": { + "name": "Mood light" + }, + "operation_power": { + "name": "[%key:component::lg_thinq::entity::sensor::current_job_mode::state::high%]" + }, + "optimal_humidity": { + "name": "Ventilation" + }, + "power_save_enabled": { + "name": "Energy saving" + }, + "rapid_freeze": { + "name": "Quick freeze" + }, + "sleep_mode": { + "name": "Sleep mode" + }, + "uv_nano": { + "name": "UVnano" + }, + "warm_mode": { + "name": "Heating" } } }, diff --git a/homeassistant/components/libre_hardware_monitor/strings.json b/homeassistant/components/libre_hardware_monitor/strings.json index 6a40a8dbb7a..c7b9519a4d4 100644 --- a/homeassistant/components/libre_hardware_monitor/strings.json +++ b/homeassistant/components/libre_hardware_monitor/strings.json @@ -1,12 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_devices": "[%key:common::config_flow::abort::no_devices_found%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, "step": { "user": { "data": { diff --git a/homeassistant/components/lidarr/strings.json b/homeassistant/components/lidarr/strings.json index 68e9c395319..94e7d2f0a4d 100644 --- a/homeassistant/components/lidarr/strings.json +++ b/homeassistant/components/lidarr/strings.json @@ -1,36 +1,39 @@ { "config": { - "step": { - "user": { - "description": "API key can be retrieved automatically if login credentials were not set in application.\nYour API key can be found in Settings > General in the Lidarr Web UI.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Lidarr integration needs to be manually re-authenticated with the Lidarr API", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]", - "zeroconf_failed": "API key not found. Please enter it manually", + "unknown": "[%key:common::config_flow::error::unknown%]", "wrong_app": "Incorrect application reached. Please try again", - "unknown": "[%key:common::config_flow::error::unknown%]" + "zeroconf_failed": "API key not found. Please enter it manually" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "The Lidarr integration needs to be manually re-authenticated with the Lidarr API", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "API key can be retrieved automatically if login credentials were not set in application.\nYour API key can be found in Settings > General in the Lidarr Web UI." + } } }, "entity": { "sensor": { + "albums": { + "name": "Albums" + }, "disk_space": { "name": "Disk space" }, @@ -39,9 +42,6 @@ }, "wanted": { "name": "Wanted" - }, - "albums": { - "name": "Albums" } } } diff --git a/homeassistant/components/life360/strings.json b/homeassistant/components/life360/strings.json index 885b3203f52..172d25da8f5 100644 --- a/homeassistant/components/life360/strings.json +++ b/homeassistant/components/life360/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Life360 integration has been removed", - "description": "The Life360 integration has been removed from Home Assistant.\n\nLife360 has blocked all third-party integrations.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Life360 integration entries]({entries})." + "description": "The Life360 integration has been removed from Home Assistant.\n\nLife360 has blocked all third-party integrations.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Life360 integration entries]({entries}).", + "title": "The Life360 integration has been removed" } } } diff --git a/homeassistant/components/lifx/icons.json b/homeassistant/components/lifx/icons.json index c37d7641717..04e5e293f58 100644 --- a/homeassistant/components/lifx/icons.json +++ b/homeassistant/components/lifx/icons.json @@ -1,26 +1,20 @@ { "services": { - "set_hev_cycle_state": { - "service": "mdi:led-on" - }, - "set_state": { - "service": "mdi:led-on" - }, - "effect_pulse": { - "service": "mdi:pulse" - }, "effect_colorloop": { "service": "mdi:looks" }, - "effect_move": { - "service": "mdi:cube-send" - }, "effect_flame": { "service": "mdi:fire" }, "effect_morph": { "service": "mdi:shape-outline" }, + "effect_move": { + "service": "mdi:cube-send" + }, + "effect_pulse": { + "service": "mdi:pulse" + }, "effect_sky": { "service": "mdi:clouds" }, @@ -29,6 +23,12 @@ }, "paint_theme": { "service": "mdi:palette" + }, + "set_hev_cycle_state": { + "service": "mdi:led-on" + }, + "set_state": { + "service": "mdi:led-on" } } } diff --git a/homeassistant/components/lifx/strings.json b/homeassistant/components/lifx/strings.json index d6b3a2c5404..d9f0f7bf02c 100644 --- a/homeassistant/components/lifx/strings.json +++ b/homeassistant/components/lifx/strings.json @@ -1,33 +1,33 @@ { "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%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{label} ({group})", "step": { - "user": { - "description": "If you leave the host empty, discovery will be used to find devices.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of your LIFX device." - } + "discovery_confirm": { + "description": "Do you want to set up {label} ({group})?" }, "pick_device": { "data": { "device": "[%key:common::config_flow::data::device%]" } }, - "discovery_confirm": { - "description": "Do you want to set up {label} ({group})?" + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of your LIFX device." + }, + "description": "If you leave the host empty, discovery will be used to find devices." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { @@ -51,235 +51,235 @@ } }, "services": { - "set_hev_cycle_state": { - "name": "Set HEV cycle state", - "description": "Controls the HEV LEDs on a LIFX Clean bulb.", - "fields": { - "power": { - "name": "[%key:common::action::enable%]", - "description": "Start or stop a Clean cycle." - }, - "duration": { - "name": "Duration", - "description": "How long the HEV LEDs will remain on. Uses the configured default duration if not specified." - } - } - }, - "set_state": { - "name": "Set state", - "description": "Sets a color/brightness and possibly turn the light on/off.", - "fields": { - "infrared": { - "name": "Infrared", - "description": "Automatic infrared level when light brightness is low." - }, - "zones": { - "name": "Zones", - "description": "List of zone numbers to affect (8 per LIFX Z, starts at 0)." - }, - "transition": { - "name": "Transition", - "description": "Duration it takes to get to the final state." - }, - "power": { - "name": "Power", - "description": "Turn the light on or off. Leave out to keep the power as it is." - } - } - }, - "effect_pulse": { - "name": "Pulse effect", - "description": "Runs a flash effect by changing to a color and back.", - "fields": { - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Decides how colors are changed." - }, - "brightness": { - "name": "Brightness value", - "description": "Number indicating brightness of the temporary color, where 1 is the minimum brightness and 255 is the maximum brightness supported by the light." - }, - "brightness_pct": { - "name": "Brightness", - "description": "Percentage indicating the brightness of the temporary color, where 1 is the minimum brightness and 100 is the maximum brightness supported by the light." - }, - "color_name": { - "name": "Color name", - "description": "A human-readable color name." - }, - "rgb_color": { - "name": "RGB color", - "description": "The temporary color in RGB-format." - }, - "period": { - "name": "Period", - "description": "Duration of the effect." - }, - "cycles": { - "name": "Cycles", - "description": "Number of times the effect should run." - }, - "power_on": { - "name": "Power on", - "description": "Powered off lights are temporarily turned on during the effect." - } - } - }, "effect_colorloop": { - "name": "Color loop effect", "description": "Runs an effect with looping colors.", "fields": { "brightness": { - "name": "Brightness value", - "description": "Number indicating brightness of the color loop, where 1 is the minimum brightness and 255 is the maximum brightness supported by the light." + "description": "Number indicating brightness of the color loop, where 1 is the minimum brightness and 255 is the maximum brightness supported by the light.", + "name": "Brightness value" }, "brightness_pct": { - "name": "Brightness", - "description": "Percentage indicating the brightness of the color loop, where 1 is the minimum brightness and 100 is the maximum brightness supported by the light." - }, - "saturation_min": { - "name": "Minimum saturation", - "description": "Percentage indicating the minimum saturation of the colors in the loop." - }, - "saturation_max": { - "name": "Maximum saturation", - "description": "Percentage indicating the maximum saturation of the colors in the loop." - }, - "period": { - "name": "[%key:component::lifx::services::effect_pulse::fields::period::name%]", - "description": "Duration between color changes." - }, - "transition": { - "name": "Transition", - "description": "Duration of the transition between colors." + "description": "Percentage indicating the brightness of the color loop, where 1 is the minimum brightness and 100 is the maximum brightness supported by the light.", + "name": "Brightness" }, "change": { - "name": "Change", - "description": "Hue movement per period, in degrees on a color wheel." + "description": "Hue movement per period, in degrees on a color wheel.", + "name": "Change" + }, + "period": { + "description": "Duration between color changes.", + "name": "[%key:component::lifx::services::effect_pulse::fields::period::name%]" + }, + "power_on": { + "description": "[%key:component::lifx::services::effect_pulse::fields::power_on::description%]", + "name": "Power on" + }, + "saturation_max": { + "description": "Percentage indicating the maximum saturation of the colors in the loop.", + "name": "Maximum saturation" + }, + "saturation_min": { + "description": "Percentage indicating the minimum saturation of the colors in the loop.", + "name": "Minimum saturation" }, "spread": { - "name": "Spread", - "description": "Maximum hue difference between participating lights, in degrees on a color wheel." + "description": "Maximum hue difference between participating lights, in degrees on a color wheel.", + "name": "Spread" }, - "power_on": { - "name": "Power on", - "description": "[%key:component::lifx::services::effect_pulse::fields::power_on::description%]" + "transition": { + "description": "Duration of the transition between colors.", + "name": "Transition" } - } - }, - "effect_move": { - "name": "Move effect", - "description": "Starts the firmware-based Move effect on a LIFX Z, Lightstrip or Beam.", - "fields": { - "speed": { - "name": "Speed", - "description": "How long in seconds for the effect to move across the length of the light." - }, - "direction": { - "name": "Direction", - "description": "Direction the effect will move across the device." - }, - "theme": { - "name": "[%key:component::lifx::entity::select::theme::name%]", - "description": "(Optional) set one of the predefined themes onto the device before starting the effect." - }, - "power_on": { - "name": "Power on", - "description": "Powered off lights will be turned on before starting the effect." - } - } + }, + "name": "Color loop effect" }, "effect_flame": { - "name": "Flame effect", "description": "Starts the firmware-based Flame effect on LIFX Tiles or Candle.", "fields": { - "speed": { - "name": "Speed", - "description": "How fast the flames will move." - }, "power_on": { - "name": "Power on", - "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]" + "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]", + "name": "Power on" + }, + "speed": { + "description": "How fast the flames will move.", + "name": "Speed" } - } + }, + "name": "Flame effect" }, "effect_morph": { - "name": "Morph effect", "description": "Starts the firmware-based Morph effect on LIFX Tiles or Candle.", "fields": { - "speed": { - "name": "Speed", - "description": "How fast the colors will move." - }, "palette": { - "name": "Palette", - "description": "List of at least 2 and at most 16 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to use for this effect. Overrides the 'Theme' attribute." + "description": "List of at least 2 and at most 16 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to use for this effect. Overrides the 'Theme' attribute.", + "name": "Palette" + }, + "power_on": { + "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]", + "name": "Power on" + }, + "speed": { + "description": "How fast the colors will move.", + "name": "Speed" }, "theme": { - "name": "[%key:component::lifx::entity::select::theme::name%]", - "description": "Predefined color theme to use for the effect. Overridden by the 'Palette' attribute." + "description": "Predefined color theme to use for the effect. Overridden by the 'Palette' attribute.", + "name": "[%key:component::lifx::entity::select::theme::name%]" + } + }, + "name": "Morph effect" + }, + "effect_move": { + "description": "Starts the firmware-based Move effect on a LIFX Z, Lightstrip or Beam.", + "fields": { + "direction": { + "description": "Direction the effect will move across the device.", + "name": "Direction" }, "power_on": { - "name": "Power on", - "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]" + "description": "Powered off lights will be turned on before starting the effect.", + "name": "Power on" + }, + "speed": { + "description": "How long in seconds for the effect to move across the length of the light.", + "name": "Speed" + }, + "theme": { + "description": "(Optional) set one of the predefined themes onto the device before starting the effect.", + "name": "[%key:component::lifx::entity::select::theme::name%]" } - } + }, + "name": "Move effect" + }, + "effect_pulse": { + "description": "Runs a flash effect by changing to a color and back.", + "fields": { + "brightness": { + "description": "Number indicating brightness of the temporary color, where 1 is the minimum brightness and 255 is the maximum brightness supported by the light.", + "name": "Brightness value" + }, + "brightness_pct": { + "description": "Percentage indicating the brightness of the temporary color, where 1 is the minimum brightness and 100 is the maximum brightness supported by the light.", + "name": "Brightness" + }, + "color_name": { + "description": "A human-readable color name.", + "name": "Color name" + }, + "cycles": { + "description": "Number of times the effect should run.", + "name": "Cycles" + }, + "mode": { + "description": "Decides how colors are changed.", + "name": "[%key:common::config_flow::data::mode%]" + }, + "period": { + "description": "Duration of the effect.", + "name": "Period" + }, + "power_on": { + "description": "Powered off lights are temporarily turned on during the effect.", + "name": "Power on" + }, + "rgb_color": { + "description": "The temporary color in RGB-format.", + "name": "RGB color" + } + }, + "name": "Pulse effect" }, "effect_sky": { - "name": "Sky effect", "description": "Starts a firmware-based effect on LIFX Ceiling lights that animates a sky scene across the device.", "fields": { - "speed": { - "name": "Speed", - "description": "How long the Sunrise and Sunset sky types will take to complete. For the Clouds sky type, it is the speed of the clouds across the device." - }, - "sky_type": { - "name": "Sky type", - "description": "The style of sky that will be animated by the effect." + "cloud_saturation_max": { + "description": "The maximum cloud saturation for the Clouds sky type.", + "name": "Cloud saturation maximum" }, "cloud_saturation_min": { - "name": "Cloud saturation minimum", - "description": "The minimum cloud saturation for the Clouds sky type." - }, - "cloud_saturation_max": { - "name": "Cloud saturation maximum", - "description": "The maximum cloud saturation for the Clouds sky type." + "description": "The minimum cloud saturation for the Clouds sky type.", + "name": "Cloud saturation minimum" }, "palette": { - "name": "Palette", - "description": "List of 1 to 6 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to use for this effect." + "description": "List of 1 to 6 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to use for this effect.", + "name": "Palette" }, "power_on": { - "name": "Power on", - "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]" + "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]", + "name": "Power on" + }, + "sky_type": { + "description": "The style of sky that will be animated by the effect.", + "name": "Sky type" + }, + "speed": { + "description": "How long the Sunrise and Sunset sky types will take to complete. For the Clouds sky type, it is the speed of the clouds across the device.", + "name": "Speed" } - } + }, + "name": "Sky effect" }, "effect_stop": { - "name": "Stop effect", - "description": "Stops a running effect." + "description": "Stops a running effect.", + "name": "Stop effect" }, "paint_theme": { - "name": "Paint theme", "description": "Paints either a provided theme or custom palette across one or more LIFX lights.", "fields": { "palette": { - "name": "Palette", - "description": "List of at least 2 and at most 16 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to paint across the target lights. Overrides the 'Theme' attribute." - }, - "theme": { - "name": "[%key:component::lifx::entity::select::theme::name%]", - "description": "Predefined color theme to paint. Overridden by the 'Palette' attribute." - }, - "transition": { - "name": "Transition", - "description": "Duration in seconds to paint the theme." + "description": "List of at least 2 and at most 16 colors as hue (0-360), saturation (0-100), brightness (0-100) and Kelvin (1500-9000) values to paint across the target lights. Overrides the 'Theme' attribute.", + "name": "Palette" }, "power_on": { - "name": "Power on", - "description": "Powered off lights will be turned on before painting the theme." + "description": "Powered off lights will be turned on before painting the theme.", + "name": "Power on" + }, + "theme": { + "description": "Predefined color theme to paint. Overridden by the 'Palette' attribute.", + "name": "[%key:component::lifx::entity::select::theme::name%]" + }, + "transition": { + "description": "Duration in seconds to paint the theme.", + "name": "Transition" } - } + }, + "name": "Paint theme" + }, + "set_hev_cycle_state": { + "description": "Controls the HEV LEDs on a LIFX Clean bulb.", + "fields": { + "duration": { + "description": "How long the HEV LEDs will remain on. Uses the configured default duration if not specified.", + "name": "Duration" + }, + "power": { + "description": "Start or stop a Clean cycle.", + "name": "[%key:common::action::enable%]" + } + }, + "name": "Set HEV cycle state" + }, + "set_state": { + "description": "Sets a color/brightness and possibly turn the light on/off.", + "fields": { + "infrared": { + "description": "Automatic infrared level when light brightness is low.", + "name": "Infrared" + }, + "power": { + "description": "Turn the light on or off. Leave out to keep the power as it is.", + "name": "Power" + }, + "transition": { + "description": "Duration it takes to get to the final state.", + "name": "Transition" + }, + "zones": { + "description": "List of zone numbers to affect (8 per LIFX Z, starts at 0).", + "name": "Zones" + } + }, + "name": "Set state" } } } diff --git a/homeassistant/components/light/strings.json b/homeassistant/components/light/strings.json index a17d6793b83..546c495a379 100644 --- a/homeassistant/components/light/strings.json +++ b/homeassistant/components/light/strings.json @@ -1,5 +1,4 @@ { - "title": "Light", "common": { "field_brightness_description": "Number indicating brightness, where 0 turns the light off, 1 is the minimum brightness, and 255 is the maximum brightness.", "field_brightness_name": "Brightness value", @@ -12,6 +11,8 @@ "field_color_name_description": "A human-readable color name.", "field_color_name_name": "Color name", "field_color_temp_description": "Color temperature in mireds.", + "field_color_temp_kelvin_description": "Color temperature in Kelvin.", + "field_color_temp_kelvin_name": "Color temperature", "field_color_temp_name": "Color temperature", "field_effect_description": "Light effect.", "field_effect_name": "Effect", @@ -19,8 +20,6 @@ "field_flash_name": "Flash", "field_hs_color_description": "Color in hue/sat format. A list of two integers. Hue is 0-360 and Sat is 0-100.", "field_hs_color_name": "Hue/Sat color", - "field_color_temp_kelvin_description": "Color temperature in Kelvin.", - "field_color_temp_kelvin_name": "Color temperature", "field_profile_description": "Name of a light profile to use.", "field_profile_name": "Profile", "field_rgb_color_description": "The color in RGB format. A list of three integers between 0 and 255 representing the values of red, green, and blue.", @@ -41,24 +40,24 @@ "action_type": { "brightness_decrease": "Decrease {entity_name} brightness", "brightness_increase": "Increase {entity_name} brightness", + "flash": "Flash {entity_name}", "toggle": "[%key:common::device_automation::action_type::toggle%]", - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", "turn_off": "[%key:common::device_automation::action_type::turn_off%]", - "flash": "Flash {entity_name}" + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" }, "condition_type": { - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" - }, - "trigger_type": { - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]" }, "extra_fields": { "brightness_pct": "Brightness", "flash": "Flash", "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { @@ -105,12 +104,12 @@ "max_color_temp_kelvin": { "name": "Maximum color temperature (Kelvin)" }, - "min_color_temp_kelvin": { - "name": "Minimum color temperature (Kelvin)" - }, "max_mireds": { "name": "Maximum color temperature (mireds)" }, + "min_color_temp_kelvin": { + "name": "Minimum color temperature (Kelvin)" + }, "min_mireds": { "name": "Minimum color temperature (mireds)" }, @@ -135,7 +134,6 @@ "selector": { "color_name": { "options": { - "homeassistant": "Home Assistant", "aliceblue": "Alice blue", "antiquewhite": "Antique white", "aqua": "Aqua", @@ -192,6 +190,7 @@ "green": "Green", "greenyellow": "Green yellow", "grey": "Grey", + "homeassistant": "Home Assistant", "honeydew": "Honeydew", "hotpink": "Hot pink", "indianred": "Indian red", @@ -287,85 +286,77 @@ }, "flash": { "options": { - "short": "Short", - "long": "Long" + "long": "Long", + "short": "Short" } } }, "services": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns on one or more lights and adjusts their properties, even when they are turned on already.", + "toggle": { + "description": "Toggles one or more lights, from on to off, or off to on, based on their current state.", "fields": { - "transition": { - "name": "[%key:component::light::common::field_transition_name%]", - "description": "[%key:component::light::common::field_transition_description%]" - }, - "rgb_color": { - "name": "[%key:component::light::common::field_rgb_color_name%]", - "description": "[%key:component::light::common::field_rgb_color_description%]" - }, - "rgbw_color": { - "name": "[%key:component::light::common::field_rgbw_color_name%]", - "description": "[%key:component::light::common::field_rgbw_color_description%]" - }, - "rgbww_color": { - "name": "[%key:component::light::common::field_rgbww_color_name%]", - "description": "[%key:component::light::common::field_rgbww_color_description%]" - }, - "color_name": { - "name": "[%key:component::light::common::field_color_name_name%]", - "description": "[%key:component::light::common::field_color_name_description%]" - }, - "hs_color": { - "name": "[%key:component::light::common::field_hs_color_name%]", - "description": "[%key:component::light::common::field_hs_color_description%]" - }, - "xy_color": { - "name": "[%key:component::light::common::field_xy_color_name%]", - "description": "[%key:component::light::common::field_xy_color_description%]" - }, - "color_temp": { - "name": "[%key:component::light::common::field_color_temp_name%]", - "description": "[%key:component::light::common::field_color_temp_description%]" - }, - "color_temp_kelvin": { - "name": "[%key:component::light::common::field_color_temp_kelvin_name%]", - "description": "[%key:component::light::common::field_color_temp_kelvin_description%]" - }, "brightness": { - "name": "[%key:component::light::common::field_brightness_name%]", - "description": "[%key:component::light::common::field_brightness_description%]" + "description": "[%key:component::light::common::field_brightness_description%]", + "name": "[%key:component::light::common::field_brightness_name%]" }, "brightness_pct": { - "name": "[%key:component::light::common::field_brightness_pct_name%]", - "description": "[%key:component::light::common::field_brightness_pct_description%]" + "description": "[%key:component::light::common::field_brightness_pct_description%]", + "name": "[%key:component::light::common::field_brightness_pct_name%]" }, - "brightness_step": { - "name": "[%key:component::light::common::field_brightness_step_name%]", - "description": "[%key:component::light::common::field_brightness_step_description%]" + "color_name": { + "description": "[%key:component::light::common::field_color_name_description%]", + "name": "[%key:component::light::common::field_color_name_name%]" }, - "brightness_step_pct": { - "name": "[%key:component::light::common::field_brightness_step_pct_name%]", - "description": "[%key:component::light::common::field_brightness_step_pct_description%]" + "color_temp": { + "description": "[%key:component::light::common::field_color_temp_description%]", + "name": "[%key:component::light::common::field_color_temp_name%]" }, - "white": { - "name": "[%key:component::light::common::field_white_name%]", - "description": "[%key:component::light::common::field_white_description%]" - }, - "profile": { - "name": "[%key:component::light::common::field_profile_name%]", - "description": "[%key:component::light::common::field_profile_description%]" - }, - "flash": { - "name": "[%key:component::light::common::field_flash_name%]", - "description": "[%key:component::light::common::field_flash_description%]" + "color_temp_kelvin": { + "description": "[%key:component::light::common::field_color_temp_kelvin_description%]", + "name": "[%key:component::light::common::field_color_temp_kelvin_name%]" }, "effect": { - "name": "[%key:component::light::common::field_effect_name%]", - "description": "[%key:component::light::common::field_effect_description%]" + "description": "[%key:component::light::common::field_effect_description%]", + "name": "[%key:component::light::common::field_effect_name%]" + }, + "flash": { + "description": "[%key:component::light::common::field_flash_description%]", + "name": "[%key:component::light::common::field_flash_name%]" + }, + "hs_color": { + "description": "[%key:component::light::common::field_hs_color_description%]", + "name": "[%key:component::light::common::field_hs_color_name%]" + }, + "profile": { + "description": "[%key:component::light::common::field_profile_description%]", + "name": "[%key:component::light::common::field_profile_name%]" + }, + "rgb_color": { + "description": "[%key:component::light::common::field_rgb_color_description%]", + "name": "[%key:component::light::common::field_rgb_color_name%]" + }, + "rgbw_color": { + "description": "[%key:component::light::common::field_rgbw_color_description%]", + "name": "[%key:component::light::common::field_rgbw_color_name%]" + }, + "rgbww_color": { + "description": "[%key:component::light::common::field_rgbww_color_description%]", + "name": "[%key:component::light::common::field_rgbww_color_name%]" + }, + "transition": { + "description": "[%key:component::light::common::field_transition_description%]", + "name": "[%key:component::light::common::field_transition_name%]" + }, + "white": { + "description": "[%key:component::light::common::field_white_description%]", + "name": "[%key:component::light::common::field_white_name%]" + }, + "xy_color": { + "description": "[%key:component::light::common::field_xy_color_description%]", + "name": "[%key:component::light::common::field_xy_color_name%]" } }, + "name": "[%key:common::action::toggle%]", "sections": { "advanced_fields": { "name": "[%key:component::light::common::section_advanced_fields_name%]" @@ -373,94 +364,103 @@ } }, "turn_off": { - "name": "[%key:common::action::turn_off%]", "description": "Turns off one or more lights.", "fields": { - "transition": { - "name": "[%key:component::light::common::field_transition_name%]", - "description": "[%key:component::light::common::field_transition_description%]" - }, "flash": { - "name": "[%key:component::light::common::field_flash_name%]", - "description": "[%key:component::light::common::field_flash_description%]" + "description": "[%key:component::light::common::field_flash_description%]", + "name": "[%key:component::light::common::field_flash_name%]" + }, + "transition": { + "description": "[%key:component::light::common::field_transition_description%]", + "name": "[%key:component::light::common::field_transition_name%]" } }, + "name": "[%key:common::action::turn_off%]", "sections": { "advanced_fields": { "name": "[%key:component::light::common::section_advanced_fields_name%]" } } }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles one or more lights, from on to off, or off to on, based on their current state.", + "turn_on": { + "description": "Turns on one or more lights and adjusts their properties, even when they are turned on already.", "fields": { - "transition": { - "name": "[%key:component::light::common::field_transition_name%]", - "description": "[%key:component::light::common::field_transition_description%]" - }, - "rgb_color": { - "name": "[%key:component::light::common::field_rgb_color_name%]", - "description": "[%key:component::light::common::field_rgb_color_description%]" - }, - "rgbw_color": { - "name": "[%key:component::light::common::field_rgbw_color_name%]", - "description": "[%key:component::light::common::field_rgbw_color_description%]" - }, - "rgbww_color": { - "name": "[%key:component::light::common::field_rgbww_color_name%]", - "description": "[%key:component::light::common::field_rgbww_color_description%]" - }, - "color_name": { - "name": "[%key:component::light::common::field_color_name_name%]", - "description": "[%key:component::light::common::field_color_name_description%]" - }, - "hs_color": { - "name": "[%key:component::light::common::field_hs_color_name%]", - "description": "[%key:component::light::common::field_hs_color_description%]" - }, - "xy_color": { - "name": "[%key:component::light::common::field_xy_color_name%]", - "description": "[%key:component::light::common::field_xy_color_description%]" - }, - "color_temp": { - "name": "[%key:component::light::common::field_color_temp_name%]", - "description": "[%key:component::light::common::field_color_temp_description%]" - }, - "color_temp_kelvin": { - "name": "[%key:component::light::common::field_color_temp_kelvin_name%]", - "description": "[%key:component::light::common::field_color_temp_kelvin_description%]" - }, "brightness": { - "name": "[%key:component::light::common::field_brightness_name%]", - "description": "[%key:component::light::common::field_brightness_description%]" + "description": "[%key:component::light::common::field_brightness_description%]", + "name": "[%key:component::light::common::field_brightness_name%]" }, "brightness_pct": { - "name": "[%key:component::light::common::field_brightness_pct_name%]", - "description": "[%key:component::light::common::field_brightness_pct_description%]" + "description": "[%key:component::light::common::field_brightness_pct_description%]", + "name": "[%key:component::light::common::field_brightness_pct_name%]" }, - "white": { - "name": "[%key:component::light::common::field_white_name%]", - "description": "[%key:component::light::common::field_white_description%]" + "brightness_step": { + "description": "[%key:component::light::common::field_brightness_step_description%]", + "name": "[%key:component::light::common::field_brightness_step_name%]" }, - "profile": { - "name": "[%key:component::light::common::field_profile_name%]", - "description": "[%key:component::light::common::field_profile_description%]" + "brightness_step_pct": { + "description": "[%key:component::light::common::field_brightness_step_pct_description%]", + "name": "[%key:component::light::common::field_brightness_step_pct_name%]" }, - "flash": { - "name": "[%key:component::light::common::field_flash_name%]", - "description": "[%key:component::light::common::field_flash_description%]" + "color_name": { + "description": "[%key:component::light::common::field_color_name_description%]", + "name": "[%key:component::light::common::field_color_name_name%]" + }, + "color_temp": { + "description": "[%key:component::light::common::field_color_temp_description%]", + "name": "[%key:component::light::common::field_color_temp_name%]" + }, + "color_temp_kelvin": { + "description": "[%key:component::light::common::field_color_temp_kelvin_description%]", + "name": "[%key:component::light::common::field_color_temp_kelvin_name%]" }, "effect": { - "name": "[%key:component::light::common::field_effect_name%]", - "description": "[%key:component::light::common::field_effect_description%]" + "description": "[%key:component::light::common::field_effect_description%]", + "name": "[%key:component::light::common::field_effect_name%]" + }, + "flash": { + "description": "[%key:component::light::common::field_flash_description%]", + "name": "[%key:component::light::common::field_flash_name%]" + }, + "hs_color": { + "description": "[%key:component::light::common::field_hs_color_description%]", + "name": "[%key:component::light::common::field_hs_color_name%]" + }, + "profile": { + "description": "[%key:component::light::common::field_profile_description%]", + "name": "[%key:component::light::common::field_profile_name%]" + }, + "rgb_color": { + "description": "[%key:component::light::common::field_rgb_color_description%]", + "name": "[%key:component::light::common::field_rgb_color_name%]" + }, + "rgbw_color": { + "description": "[%key:component::light::common::field_rgbw_color_description%]", + "name": "[%key:component::light::common::field_rgbw_color_name%]" + }, + "rgbww_color": { + "description": "[%key:component::light::common::field_rgbww_color_description%]", + "name": "[%key:component::light::common::field_rgbww_color_name%]" + }, + "transition": { + "description": "[%key:component::light::common::field_transition_description%]", + "name": "[%key:component::light::common::field_transition_name%]" + }, + "white": { + "description": "[%key:component::light::common::field_white_description%]", + "name": "[%key:component::light::common::field_white_name%]" + }, + "xy_color": { + "description": "[%key:component::light::common::field_xy_color_description%]", + "name": "[%key:component::light::common::field_xy_color_name%]" } }, + "name": "[%key:common::action::turn_on%]", "sections": { "advanced_fields": { "name": "[%key:component::light::common::section_advanced_fields_name%]" } } } - } + }, + "title": "Light" } diff --git a/homeassistant/components/linkplay/strings.json b/homeassistant/components/linkplay/strings.json index 7b0a6cbefe1..0cf28a2f98c 100644 --- a/homeassistant/components/linkplay/strings.json +++ b/homeassistant/components/linkplay/strings.json @@ -1,19 +1,5 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the LinkPlay device." - } - }, - "discovery_confirm": { - "description": "Do you want to set up {name}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" @@ -21,16 +7,18 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "services": { - "play_preset": { - "name": "Play preset", - "description": "Plays a preset on the device.", - "fields": { - "preset_number": { - "name": "Preset number", - "description": "The number of the preset to play." + }, + "flow_title": "{name}", + "step": { + "discovery_confirm": { + "description": "Do you want to set up {name}?" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the LinkPlay device." } } } @@ -45,10 +33,10 @@ "audio_output_hardware_mode": { "name": "Audio output hardware mode", "state": { - "optical": "Optical", - "line_out": "Line out", "coaxial": "Coaxial", - "headphones": "Headphones" + "headphones": "Headphones", + "line_out": "Line out", + "optical": "Optical" } } } @@ -57,5 +45,17 @@ "invalid_grouping_entity": { "message": "Entity with ID {entity_id} can't be added to the LinkPlay multiroom. Is the entity a LinkPlay media player?" } + }, + "services": { + "play_preset": { + "description": "Plays a preset on the device.", + "fields": { + "preset_number": { + "description": "The number of the preset to play.", + "name": "Preset number" + } + }, + "name": "Play preset" + } } } diff --git a/homeassistant/components/litejet/strings.json b/homeassistant/components/litejet/strings.json index c55df54c931..e17291bf76c 100644 --- a/homeassistant/components/litejet/strings.json +++ b/homeassistant/components/litejet/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "title": "Connect To LiteJet", - "description": "Connect the LiteJet's RS232-2 port to your computer and enter the path to the serial port device.\n\nThe LiteJet MCP must be configured for 19.2 K baud, 8 data bits, 1 stop bit, no parity, and to transmit a 'CR' after each response.", - "data": { - "port": "[%key:common::config_flow::data::port%]" - } - } - }, "error": { "open_failed": "Cannot open the specified serial port." + }, + "step": { + "user": { + "data": { + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "Connect the LiteJet's RS232-2 port to your computer and enter the path to the serial port device.\n\nThe LiteJet MCP must be configured for 19.2 K baud, 8 data bits, 1 stop bit, no parity, and to transmit a 'CR' after each response.", + "title": "Connect To LiteJet" + } } }, "options": { "step": { "init": { - "title": "Configure LiteJet", "data": { "default_transition": "Default Transition (seconds)" - } + }, + "title": "Configure LiteJet" } } } diff --git a/homeassistant/components/litterrobot/icons.json b/homeassistant/components/litterrobot/icons.json index 1ee6b899905..4d80b0702ac 100644 --- a/homeassistant/components/litterrobot/icons.json +++ b/homeassistant/components/litterrobot/icons.json @@ -1,31 +1,31 @@ { "entity": { "binary_sensor": { - "sleeping": { - "default": "mdi:sleep" + "hopper_connected": { + "default": "mdi:filter-check" }, "sleep_mode": { "default": "mdi:sleep" }, - "hopper_connected": { - "default": "mdi:filter-check" + "sleeping": { + "default": "mdi:sleep" } }, "button": { - "reset_waste_drawer": { - "default": "mdi:delete-variant" - }, "give_snack": { "default": "mdi:candy-outline" + }, + "reset_waste_drawer": { + "default": "mdi:delete-variant" } }, "select": { "brightness_level": { "default": "mdi:lightbulb-question", "state": { + "high": "mdi:lightbulb-on", "low": "mdi:lightbulb-on-30", - "medium": "mdi:lightbulb-on-50", - "high": "mdi:lightbulb-on" + "medium": "mdi:lightbulb-on-50" } }, "cycle_delay": { @@ -34,16 +34,16 @@ "globe_brightness": { "default": "mdi:lightbulb-question", "state": { + "high": "mdi:lightbulb-on", "low": "mdi:lightbulb-on-30", - "medium": "mdi:lightbulb-on-50", - "high": "mdi:lightbulb-on" + "medium": "mdi:lightbulb-on-50" } }, "globe_light": { "state": { + "auto": "mdi:lightbulb-auto", "off": "mdi:lightbulb-off", - "on": "mdi:lightbulb-on", - "auto": "mdi:lightbulb-auto" + "on": "mdi:lightbulb-on" } }, "meal_insert_size": { diff --git a/homeassistant/components/litterrobot/strings.json b/homeassistant/components/litterrobot/strings.json index 58ed6fd9eec..f9e99b52b42 100644 --- a/homeassistant/components/litterrobot/strings.json +++ b/homeassistant/components/litterrobot/strings.json @@ -1,35 +1,35 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The email address of your Whisker account.", - "password": "The password of your Whisker account." - } - }, - "reauth_confirm": { - "description": "Please update your password for {username}", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::litterrobot::config::step::user::data_description::password%]" - } - } + "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%]", "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%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::litterrobot::config::step::user::data_description::password%]" + }, + "description": "Please update your password for {username}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password of your Whisker account.", + "username": "The email address of your Whisker account." + } + } } }, "entity": { @@ -37,25 +37,57 @@ "hopper_connected": { "name": "Hopper connected" }, - "sleeping": { - "name": "Sleeping" + "power_status": { + "name": "Power status" }, "sleep_mode": { "name": "Sleep mode" }, - "power_status": { - "name": "Power status" + "sleeping": { + "name": "Sleeping" } }, "button": { + "give_snack": { + "name": "Give snack" + }, "reset": { "name": "Reset" }, "reset_waste_drawer": { "name": "Reset waste drawer" + } + }, + "select": { + "brightness_level": { + "name": "Panel brightness", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } }, - "give_snack": { - "name": "Give snack" + "cycle_delay": { + "name": "Clean cycle wait time minutes" + }, + "globe_brightness": { + "name": "Globe brightness", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } + }, + "globe_light": { + "name": "Globe light", + "state": { + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "meal_insert_size": { + "name": "Meal insert size" } }, "sensor": { @@ -69,12 +101,12 @@ "hopper_status": { "name": "Hopper status", "state": { - "enabled": "[%key:common::state::enabled%]", "disabled": "[%key:common::state::disabled%]", - "motor_fault_short": "Motor shorted", - "motor_ot_amps": "Motor overtorqued", + "empty": "[%key:common::state::empty%]", + "enabled": "[%key:common::state::enabled%]", "motor_disconnected": "Motor disconnected", - "empty": "[%key:common::state::empty%]" + "motor_fault_short": "Motor shorted", + "motor_ot_amps": "Motor overtorqued" } }, "last_feeding": { @@ -140,38 +172,6 @@ "name": "Waste drawer" } }, - "select": { - "cycle_delay": { - "name": "Clean cycle wait time minutes" - }, - "globe_brightness": { - "name": "Globe brightness", - "state": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "globe_light": { - "name": "Globe light", - "state": { - "auto": "[%key:common::state::auto%]", - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } - }, - "meal_insert_size": { - "name": "Meal insert size" - }, - "brightness_level": { - "name": "Panel brightness", - "state": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - } - }, "switch": { "gravity_mode": { "name": "Gravity mode" @@ -194,26 +194,26 @@ } } }, + "issues": { + "deprecated_entity": { + "description": "The Litter-Robot entity `{entity}` is deprecated and will be removed in a future release.\nPlease update your dashboards, automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue.", + "title": "{name} is deprecated" + } + }, "services": { "set_sleep_mode": { - "name": "Set sleep mode", "description": "Sets the sleep mode and start time.", "fields": { "enabled": { - "name": "[%key:common::state::enabled%]", - "description": "Whether sleep mode should be enabled." + "description": "Whether sleep mode should be enabled.", + "name": "[%key:common::state::enabled%]" }, "start_time": { - "name": "Start time", - "description": "The start time at which the Litter-Robot will enter sleep mode and prevent an automatic clean cycle for 8 hours." + "description": "The start time at which the Litter-Robot will enter sleep mode and prevent an automatic clean cycle for 8 hours.", + "name": "Start time" } - } - } - }, - "issues": { - "deprecated_entity": { - "title": "{name} is deprecated", - "description": "The Litter-Robot entity `{entity}` is deprecated and will be removed in a future release.\nPlease update your dashboards, automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue." + }, + "name": "Set sleep mode" } } } diff --git a/homeassistant/components/livisi/strings.json b/homeassistant/components/livisi/strings.json index 260ef07234b..c26573ab7df 100644 --- a/homeassistant/components/livisi/strings.json +++ b/homeassistant/components/livisi/strings.json @@ -1,18 +1,18 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "wrong_ip_address": "The IP address is incorrect or the SHC cannot be reached locally.", + "wrong_password": "The password is incorrect." + }, "step": { "user": { - "description": "Enter the IP address and the (local) password of the SHC.", "data": { "host": "[%key:common::config_flow::data::ip%]", "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "Enter the IP address and the (local) password of the SHC." } - }, - "error": { - "wrong_password": "The password is incorrect.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "wrong_ip_address": "The IP address is incorrect or the SHC cannot be reached locally." } } } diff --git a/homeassistant/components/local_calendar/strings.json b/homeassistant/components/local_calendar/strings.json index 6d68b46b5b0..c239d8abe8e 100644 --- a/homeassistant/components/local_calendar/strings.json +++ b/homeassistant/components/local_calendar/strings.json @@ -1,23 +1,22 @@ { - "title": "Local Calendar", "config": { - "step": { - "user": { - "description": "Please choose a name for your new calendar", - "data": { - "calendar_name": "Calendar Name", - "import": "Starting Data" - } - }, - "import": { - "description": "You can import events in iCal format (.ics file)." - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "invalid_ics_file": "There was a problem reading the calendar information. See the error log for additional details." + }, + "step": { + "import": { + "description": "You can import events in iCal format (.ics file)." + }, + "user": { + "data": { + "calendar_name": "Calendar Name", + "import": "Starting Data" + }, + "description": "Please choose a name for your new calendar" + } } }, "selector": { @@ -27,5 +26,6 @@ "import_ics_file": "Upload an iCalendar file (.ics)" } } - } + }, + "title": "Local Calendar" } diff --git a/homeassistant/components/local_file/strings.json b/homeassistant/components/local_file/strings.json index ebf4c9d7fbf..14866fa6300 100644 --- a/homeassistant/components/local_file/strings.json +++ b/homeassistant/components/local_file/strings.json @@ -9,16 +9,21 @@ "step": { "user": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "file_path": "File path" + "file_path": "File path", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { - "name": "Name for the created entity.", - "file_path": "The full path to the image file to be displayed. Be sure the path of the file is in the allowed paths, you can read more about this in the documentation." + "file_path": "The full path to the image file to be displayed. Be sure the path of the file is in the allowed paths, you can read more about this in the documentation.", + "name": "Name for the created entity." } } } }, + "exceptions": { + "file_path_not_accessible": { + "message": "Path {file_path} is not accessible" + } + }, "options": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" @@ -39,19 +44,14 @@ }, "services": { "update_file_path": { - "name": "Update file path", "description": "Changes the file displayed by the camera.", "fields": { "file_path": { - "name": "File path", - "description": "[%key:component::local_file::config::step::user::data_description::file_path%]" + "description": "[%key:component::local_file::config::step::user::data_description::file_path%]", + "name": "File path" } - } - } - }, - "exceptions": { - "file_path_not_accessible": { - "message": "Path {file_path} is not accessible" + }, + "name": "Update file path" } } } diff --git a/homeassistant/components/local_ip/strings.json b/homeassistant/components/local_ip/strings.json index 7f7508aa9b3..2377269751e 100644 --- a/homeassistant/components/local_ip/strings.json +++ b/homeassistant/components/local_ip/strings.json @@ -1,11 +1,11 @@ { - "title": "Local IP Address", "config": { "step": { "user": { - "title": "[%key:component::local_ip::title%]", - "description": "[%key:common::config_flow::description::confirm_setup%]" + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "[%key:component::local_ip::title%]" } } - } + }, + "title": "Local IP Address" } diff --git a/homeassistant/components/local_todo/strings.json b/homeassistant/components/local_todo/strings.json index ebf7810494c..9fef14e8886 100644 --- a/homeassistant/components/local_todo/strings.json +++ b/homeassistant/components/local_todo/strings.json @@ -1,17 +1,17 @@ { - "title": "Local To-do", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "step": { "user": { - "description": "Please choose a name for your new To-do list", "data": { "todo_list_name": "To-do list name" }, + "description": "Please choose a name for your new To-do list", "submit": "Create" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } - } + }, + "title": "Local To-do" } diff --git a/homeassistant/components/locative/strings.json b/homeassistant/components/locative/strings.json index 9d6c07ee442..b43d634a868 100644 --- a/homeassistant/components/locative/strings.json +++ b/homeassistant/components/locative/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the Locative webhook", - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send locations to Home Assistant, you will need to set up the webhook feature in the Locative app.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "Set up the Locative webhook" + } } } } diff --git a/homeassistant/components/lock/strings.json b/homeassistant/components/lock/strings.json index 46788e5a310..763d3668695 100644 --- a/homeassistant/components/lock/strings.json +++ b/homeassistant/components/lock/strings.json @@ -1,5 +1,4 @@ { - "title": "Lock", "device_automation": { "action_type": { "lock": "Lock {entity_name}", @@ -7,21 +6,21 @@ "unlock": "Unlock {entity_name}" }, "condition_type": { - "is_locked": "{entity_name} is locked", - "is_unlocked": "{entity_name} is unlocked", - "is_open": "{entity_name} is open", "is_jammed": "{entity_name} is jammed", + "is_locked": "{entity_name} is locked", "is_locking": "{entity_name} is locking", - "is_unlocking": "{entity_name} is unlocking", - "is_opening": "{entity_name} is opening" - }, - "trigger_type": { - "locked": "{entity_name} locked", - "unlocked": "{entity_name} unlocked", - "open": "{entity_name} opened" + "is_open": "{entity_name} is open", + "is_opening": "{entity_name} is opening", + "is_unlocked": "{entity_name} is unlocked", + "is_unlocking": "{entity_name} is unlocking" }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "locked": "{entity_name} locked", + "open": "{entity_name} opened", + "unlocked": "{entity_name} unlocked" } }, "entity_component": { @@ -37,43 +36,11 @@ "unlocking": "Unlocking" }, "state_attributes": { - "code_format": { - "name": "[%key:component::alarm_control_panel::entity_component::_::state_attributes::code_format::name%]" - }, "changed_by": { "name": "[%key:component::alarm_control_panel::entity_component::_::state_attributes::changed_by::name%]" - } - } - } - }, - "services": { - "lock": { - "name": "Lock", - "description": "Locks a lock.", - "fields": { - "code": { - "name": "Code", - "description": "Code used to lock the lock." - } - } - }, - "open": { - "name": "[%key:common::action::open%]", - "description": "Opens a lock.", - "fields": { - "code": { - "name": "[%key:component::lock::services::lock::fields::code::name%]", - "description": "Code used to open the lock." - } - } - }, - "unlock": { - "name": "Unlock", - "description": "Unlocks a lock.", - "fields": { - "code": { - "name": "[%key:component::lock::services::lock::fields::code::name%]", - "description": "Code used to unlock the lock." + }, + "code_format": { + "name": "[%key:component::alarm_control_panel::entity_component::_::state_attributes::code_format::name%]" } } } @@ -82,5 +49,38 @@ "add_default_code": { "message": "The code for {entity_id} doesn't match pattern {code_format}." } - } + }, + "services": { + "lock": { + "description": "Locks a lock.", + "fields": { + "code": { + "description": "Code used to lock the lock.", + "name": "Code" + } + }, + "name": "Lock" + }, + "open": { + "description": "Opens a lock.", + "fields": { + "code": { + "description": "Code used to open the lock.", + "name": "[%key:component::lock::services::lock::fields::code::name%]" + } + }, + "name": "[%key:common::action::open%]" + }, + "unlock": { + "description": "Unlocks a lock.", + "fields": { + "code": { + "description": "Code used to unlock the lock.", + "name": "[%key:component::lock::services::lock::fields::code::name%]" + } + }, + "name": "Unlock" + } + }, + "title": "Lock" } diff --git a/homeassistant/components/logbook/strings.json b/homeassistant/components/logbook/strings.json index 8c725a764c6..d56cc2cfd69 100644 --- a/homeassistant/components/logbook/strings.json +++ b/homeassistant/components/logbook/strings.json @@ -1,27 +1,27 @@ { - "title": "Activity", "services": { "log": { - "name": "Log", "description": "Tracks a custom activity.", "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Custom name for an entity, can be referenced using the 'Entity ID' field." - }, - "message": { - "name": "Message", - "description": "Message of the activity." + "domain": { + "description": "Determines which icon is used in the activity. The icon illustrates the integration domain related to this activity.", + "name": "Domain" }, "entity_id": { - "name": "Entity ID", - "description": "Entity to reference in the activity." + "description": "Entity to reference in the activity.", + "name": "Entity ID" }, - "domain": { - "name": "Domain", - "description": "Determines which icon is used in the activity. The icon illustrates the integration domain related to this activity." + "message": { + "description": "Message of the activity.", + "name": "Message" + }, + "name": { + "description": "Custom name for an entity, can be referenced using the 'Entity ID' field.", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Log" } - } + }, + "title": "Activity" } diff --git a/homeassistant/components/logger/strings.json b/homeassistant/components/logger/strings.json index aedaec42035..4fa4195eb81 100644 --- a/homeassistant/components/logger/strings.json +++ b/homeassistant/components/logger/strings.json @@ -1,30 +1,30 @@ { - "services": { - "set_default_level": { - "name": "Set default level", - "description": "Sets the default log level for integrations.", - "fields": { - "level": { - "name": "Level", - "description": "Default severity level for all integrations." - } - } - }, - "set_level": { - "name": "Set level", - "description": "Sets the log level for one or more integrations." - } - }, "selector": { "level": { "options": { + "critical": "Critical", "debug": "Debug", - "info": "Info", - "warning": "Warning", "error": "Error", "fatal": "Fatal", - "critical": "Critical" + "info": "Info", + "warning": "Warning" } } + }, + "services": { + "set_default_level": { + "description": "Sets the default log level for integrations.", + "fields": { + "level": { + "description": "Default severity level for all integrations.", + "name": "Level" + } + }, + "name": "Set default level" + }, + "set_level": { + "description": "Sets the log level for one or more integrations.", + "name": "Set level" + } } } diff --git a/homeassistant/components/london_underground/strings.json b/homeassistant/components/london_underground/strings.json index b924d281c04..27f5213fab0 100644 --- a/homeassistant/components/london_underground/strings.json +++ b/homeassistant/components/london_underground/strings.json @@ -1,38 +1,38 @@ { "config": { - "step": { - "user": { - "title": "Set up London Underground", - "description": "Select which tube lines you want to monitor", - "data": { - "line": "Tube lines" - } - } + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "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%]" }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" - } - }, - "options": { "step": { - "init": { - "title": "Configure London Underground", - "description": "[%key:component::london_underground::config::step::user::description%]", + "user": { "data": { - "line": "[%key:component::london_underground::config::step::user::data::line%]" - } + "line": "Tube lines" + }, + "description": "Select which tube lines you want to monitor", + "title": "Set up London Underground" } } }, "issues": { "deprecated_yaml_import_issue": { - "title": "London Underground YAML configuration deprecated", - "description": "Configuring London Underground using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an error occurred when trying to connect to the Transport for London API. Please restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI." + "description": "Configuring London Underground using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an error occurred when trying to connect to the Transport for London API. Please restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI.", + "title": "London Underground YAML configuration deprecated" + } + }, + "options": { + "step": { + "init": { + "data": { + "line": "[%key:component::london_underground::config::step::user::data::line%]" + }, + "description": "[%key:component::london_underground::config::step::user::description%]", + "title": "Configure London Underground" + } } } } diff --git a/homeassistant/components/lookin/strings.json b/homeassistant/components/lookin/strings.json index e8ec44addc2..a0da3130b20 100644 --- a/homeassistant/components/lookin/strings.json +++ b/homeassistant/components/lookin/strings.json @@ -1,12 +1,18 @@ { "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%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name} ({host})", "step": { - "user": { - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]" - } - }, "device_name": { "data": { "name": "[%key:common::config_flow::data::name%]" @@ -14,18 +20,12 @@ }, "discovery_confirm": { "description": "Do you want to set up {name} ({host})?" + }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]" + } } - }, - "error": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" } } } diff --git a/homeassistant/components/loqed/manifest.json b/homeassistant/components/loqed/manifest.json index 46ac84b1768..473222fdcf3 100644 --- a/homeassistant/components/loqed/manifest.json +++ b/homeassistant/components/loqed/manifest.json @@ -10,8 +10,8 @@ "requirements": ["loqedAPI==2.1.10"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "loqed*" + "name": "loqed*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/loqed/strings.json b/homeassistant/components/loqed/strings.json index 38eae7eb7b2..7e025716366 100644 --- a/homeassistant/components/loqed/strings.json +++ b/homeassistant/components/loqed/strings.json @@ -1,21 +1,21 @@ { "config": { - "flow_title": "LOQED Touch Smartlock setup", - "step": { - "user": { - "description": "Log in at LOQED's [personal access tokens portal]({config_url}) and: \n* Create an API key by clicking 'Create' \n* Copy the created access token.", - "data": { - "name": "Name of your lock in the LOQED app.", - "api_token": "[%key:common::config_flow::data::api_token%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "flow_title": "LOQED Touch Smartlock setup", + "step": { + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "name": "Name of your lock in the LOQED app." + }, + "description": "Log in at LOQED's [personal access tokens portal]({config_url}) and: \n* Create an API key by clicking 'Create' \n* Copy the created access token." + } } }, "entity": { diff --git a/homeassistant/components/lovelace/strings.json b/homeassistant/components/lovelace/strings.json index d0e456f142b..98b5877cb50 100644 --- a/homeassistant/components/lovelace/strings.json +++ b/homeassistant/components/lovelace/strings.json @@ -1,4 +1,10 @@ { + "services": { + "reload_resources": { + "description": "Reloads dashboard resources from the YAML-configuration.", + "name": "Reload resources" + } + }, "system_health": { "info": { "dashboards": "Dashboards", @@ -6,11 +12,5 @@ "resources": "Resources", "views": "Views" } - }, - "services": { - "reload_resources": { - "name": "Reload resources", - "description": "Reloads dashboard resources from the YAML-configuration." - } } } diff --git a/homeassistant/components/luftdaten/strings.json b/homeassistant/components/luftdaten/strings.json index 072252cdf21..412d665e0dd 100644 --- a/homeassistant/components/luftdaten/strings.json +++ b/homeassistant/components/luftdaten/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_sensor": "Sensor not available or invalid" + }, "step": { "user": { "data": { @@ -7,14 +15,6 @@ "show_on_map": "Show on map" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "invalid_sensor": "Sensor not available or invalid", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { diff --git a/homeassistant/components/lunatone/strings.json b/homeassistant/components/lunatone/strings.json index 71f4b23b058..1ba52be8e54 100644 --- a/homeassistant/components/lunatone/strings.json +++ b/homeassistant/components/lunatone/strings.json @@ -1,36 +1,36 @@ { "config": { - "step": { - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - }, - "user": { - "description": "Connect to the API of your Lunatone DALI IoT Gateway.", - "data": { - "url": "[%key:common::config_flow::data::url%]" - }, - "data_description": { - "url": "The URL of the Lunatone gateway device." - } - }, - "reconfigure": { - "description": "Update the URL.", - "data": { - "url": "[%key:common::config_flow::data::url%]" - }, - "data_description": { - "url": "[%key:component::lunatone::config::step::user::data_description::url%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_url": "Failed to connect. Check the URL and if the device is connected to power", "missing_device_info": "Failed to read device information. Check the network connection of the device" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "reconfigure": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "url": "[%key:component::lunatone::config::step::user::data_description::url%]" + }, + "description": "Update the URL." + }, + "user": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "url": "The URL of the Lunatone gateway device." + }, + "description": "Connect to the API of your Lunatone DALI IoT Gateway." + } } } } diff --git a/homeassistant/components/lupusec/strings.json b/homeassistant/components/lupusec/strings.json index 907232e0665..7613f474e77 100644 --- a/homeassistant/components/lupusec/strings.json +++ b/homeassistant/components/lupusec/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Lupus Electronics LUPUSEC connection", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Lupus Electronics LUPUSEC connection" + } } } } diff --git a/homeassistant/components/lutron/strings.json b/homeassistant/components/lutron/strings.json index 37db509e294..8dcaeffd024 100644 --- a/homeassistant/components/lutron/strings.json +++ b/homeassistant/components/lutron/strings.json @@ -8,8 +8,8 @@ "user": { "data": { "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": { "host": "The hostname or IP address of the Lutron main repeater." @@ -19,6 +19,21 @@ } } }, + "entity": { + "event": { + "button": { + "state_attributes": { + "event_type": { + "state": { + "press": "Press", + "release": "Release", + "single_press": "Single press" + } + } + } + } + } + }, "options": { "step": { "init": { @@ -27,20 +42,5 @@ } } } - }, - "entity": { - "event": { - "button": { - "state_attributes": { - "event_type": { - "state": { - "single_press": "Single press", - "press": "Press", - "release": "Release" - } - } - } - } - } } } diff --git a/homeassistant/components/lutron_caseta/manifest.json b/homeassistant/components/lutron_caseta/manifest.json index 0f0c199e448..96dbce24128 100644 --- a/homeassistant/components/lutron_caseta/manifest.json +++ b/homeassistant/components/lutron_caseta/manifest.json @@ -12,28 +12,28 @@ "requirements": ["pylutron-caseta==0.25.0"], "zeroconf": [ { - "type": "_lutron._tcp.local.", "properties": { "SYSTYPE": "hwqs*" - } + }, + "type": "_lutron._tcp.local." }, { - "type": "_lutron._tcp.local.", "properties": { "SYSTYPE": "radiora3*" - } + }, + "type": "_lutron._tcp.local." }, { - "type": "_lutron._tcp.local.", "properties": { "SYSTYPE": "smartbridge*" - } + }, + "type": "_lutron._tcp.local." }, { - "type": "_lutron._tcp.local.", "properties": { "SYSTYPE": "ra2select*" - } + }, + "type": "_lutron._tcp.local." } ] } diff --git a/homeassistant/components/lutron_caseta/strings.json b/homeassistant/components/lutron_caseta/strings.json index 0fb906f097f..296d0ef3e88 100644 --- a/homeassistant/components/lutron_caseta/strings.json +++ b/homeassistant/components/lutron_caseta/strings.json @@ -1,33 +1,33 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "not_lutron_device": "Discovered device is not a Lutron device" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name} ({host})", "step": { "import_failed": { - "title": "Failed to import Caséta bridge configuration.", - "description": "Couldn’t set up bridge (host: {host}) imported from configuration.yaml." + "description": "Couldn’t set up bridge (host: {host}) imported from configuration.yaml.", + "title": "Failed to import Caséta bridge configuration." + }, + "link": { + "description": "To pair with {name} ({host}), after submitting this form, press the black button on the back of the bridge.", + "title": "Pair with the bridge" }, "user": { - "title": "Automatically connect to the bridge", - "description": "Enter the IP address of the device.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your Lutron Caseta Smart Bridge." - } - }, - "link": { - "title": "Pair with the bridge", - "description": "To pair with {name} ({host}), after submitting this form, press the black button on the back of the bridge." + }, + "description": "Enter the IP address of the device.", + "title": "Automatically connect to the bridge" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "not_lutron_device": "Discovered device is not a Lutron device", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "device_automation": { @@ -39,40 +39,40 @@ "button_5": "Fifth button", "button_6": "Sixth button", "button_7": "Seventh button", + "close_1": "Close 1", + "close_2": "Close 2", + "close_3": "Close 3", + "close_4": "Close 4", + "close_all": "Close all", "group_1_button_1": "First Group first button", "group_1_button_2": "First Group second button", "group_2_button_1": "Second Group first button", "group_2_button_2": "Second Group second button", - "on": "[%key:common::state::on%]", - "stop": "Stop (favorite)", - "off": "[%key:common::state::off%]", - "raise": "Raise", "lower": "Lower", - "open_all": "Open all", - "stop_all": "Stop all", - "close_all": "Close all", - "raise_all": "Raise all", - "lower_all": "Lower all", - "open_1": "Open 1", - "stop_1": "Stop 1", - "close_1": "Close 1", - "raise_1": "Raise 1", "lower_1": "Lower 1", - "open_2": "Open 2", - "stop_2": "Stop 2", - "close_2": "Close 2", - "raise_2": "Raise 2", "lower_2": "Lower 2", - "open_3": "Open 3", - "stop_3": "Stop 3", - "close_3": "Close 3", - "raise_3": "Raise 3", "lower_3": "Lower 3", + "lower_4": "Lower 4", + "lower_all": "Lower all", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "open_1": "Open 1", + "open_2": "Open 2", + "open_3": "Open 3", "open_4": "Open 4", - "stop_4": "Stop 4", - "close_4": "Close 4", + "open_all": "Open all", + "raise": "Raise", + "raise_1": "Raise 1", + "raise_2": "Raise 2", + "raise_3": "Raise 3", "raise_4": "Raise 4", - "lower_4": "Lower 4" + "raise_all": "Raise all", + "stop": "Stop (favorite)", + "stop_1": "Stop 1", + "stop_2": "Stop 2", + "stop_3": "Stop 3", + "stop_4": "Stop 4", + "stop_all": "Stop all" }, "trigger_type": { "press": "\"{subtype}\" pressed", diff --git a/homeassistant/components/lyric/strings.json b/homeassistant/components/lyric/strings.json index a934d8eda2e..f4b90abe4cb 100644 --- a/homeassistant/components/lyric/strings.json +++ b/homeassistant/components/lyric/strings.json @@ -3,76 +3,76 @@ "description": "To be able to log in to Honeywell Lyric the integration requires a client ID and secret. To acquire those, please follow the following steps.\n\n1. Go to the [Honeywell Lyric Developer Apps Dashboard]({developer_dashboard_url}).\n1. Sign up for a developer account if you don't have one yet. This is a separate account from your Honeywell account.\n1. Log in with your Honeywell Lyric developer account.\n1. Go to the **My Apps** section.\n1. Press the **CREATE NEW APP** button.\n1. Give the application a name of your choice.\n1. Set the **Callback URL** to `{redirect_url}`.\n1. Save your changes.\\n1. Copy the **Consumer Key** and paste it here as the **Client ID**, then copy the **Consumer Secret** and paste it here as the **Client Secret**." }, "config": { + "abort": { + "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%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "oauth_discovery": { + "description": "Home Assistant has found a Honeywell Lyric device on your network. Be aware that the setup of the Lyric integration is more complicated than other integrations. Press **Submit** to continue setting up Honeywell Lyric." + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Lyric integration needs to re-authenticate your account." - }, - "oauth_discovery": { - "description": "Home Assistant has found a Honeywell Lyric device on your network. Be aware that the setup of the Lyric integration is more complicated than other integrations. Press **Submit** to continue setting up Honeywell Lyric." + "description": "The Lyric integration needs to re-authenticate your account.", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]", - "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { "sensor": { - "indoor_temperature": { - "name": "Indoor temperature" - }, "indoor_humidity": { "name": "Indoor humidity" }, - "outdoor_temperature": { - "name": "Outdoor temperature" - }, - "outdoor_humidity": { - "name": "Outdoor humidity" + "indoor_temperature": { + "name": "Indoor temperature" }, "next_period_time": { "name": "Next period time" }, - "setpoint_status": { - "name": "Setpoint status" + "outdoor_humidity": { + "name": "Outdoor humidity" + }, + "outdoor_temperature": { + "name": "Outdoor temperature" + }, + "room_humidity": { + "name": "Room humidity" }, "room_temperature": { "name": "Room temperature" }, - "room_humidity": { - "name": "Room humidity" + "setpoint_status": { + "name": "Setpoint status" } } }, "services": { "set_hold_time": { - "name": "Set hold time", "description": "Sets the time period to keep the temperature and override the schedule.", "fields": { "time_period": { - "name": "Time period", - "description": "Duration for which to override the schedule." + "description": "Duration for which to override the schedule.", + "name": "Time period" } - } + }, + "name": "Set hold time" } } } diff --git a/homeassistant/components/madvr/icons.json b/homeassistant/components/madvr/icons.json index 2f9f7217f5b..98c501a4846 100644 --- a/homeassistant/components/madvr/icons.json +++ b/homeassistant/components/madvr/icons.json @@ -27,69 +27,6 @@ } }, "sensor": { - "mac_address": { - "default": "mdi:ethernet" - }, - "temp_gpu": { - "default": "mdi:thermometer" - }, - "temp_hdmi": { - "default": "mdi:thermometer" - }, - "temp_cpu": { - "default": "mdi:thermometer" - }, - "temp_mainboard": { - "default": "mdi:thermometer" - }, - "incoming_res": { - "default": "mdi:television" - }, - "incoming_frame_rate": { - "default": "mdi:television" - }, - "incoming_color_space": { - "default": "mdi:television" - }, - "incoming_bit_depth": { - "default": "mdi:television" - }, - "incoming_colorimetry": { - "default": "mdi:television" - }, - "incoming_black_levels": { - "default": "mdi:television" - }, - "incoming_aspect_ratio": { - "default": "mdi:aspect-ratio" - }, - "outgoing_res": { - "default": "mdi:television" - }, - "outgoing_frame_rate": { - "default": "mdi:television" - }, - "outgoing_color_space": { - "default": "mdi:television" - }, - "outgoing_bit_depth": { - "default": "mdi:television" - }, - "outgoing_colorimetry": { - "default": "mdi:television" - }, - "outgoing_black_levels": { - "default": "mdi:television" - }, - "aspect_res": { - "default": "mdi:aspect-ratio" - }, - "incoming_signal_type": { - "default": "mdi:video-image" - }, - "outgoing_signal_type": { - "default": "mdi:video-image" - }, "aspect_dec": { "default": "mdi:aspect-ratio" }, @@ -99,14 +36,77 @@ "aspect_name": { "default": "mdi:aspect-ratio" }, - "masking_res": { + "aspect_res": { + "default": "mdi:aspect-ratio" + }, + "incoming_aspect_ratio": { + "default": "mdi:aspect-ratio" + }, + "incoming_bit_depth": { "default": "mdi:television" }, + "incoming_black_levels": { + "default": "mdi:television" + }, + "incoming_color_space": { + "default": "mdi:television" + }, + "incoming_colorimetry": { + "default": "mdi:television" + }, + "incoming_frame_rate": { + "default": "mdi:television" + }, + "incoming_res": { + "default": "mdi:television" + }, + "incoming_signal_type": { + "default": "mdi:video-image" + }, + "mac_address": { + "default": "mdi:ethernet" + }, "masking_dec": { "default": "mdi:television" }, "masking_int": { "default": "mdi:television" + }, + "masking_res": { + "default": "mdi:television" + }, + "outgoing_bit_depth": { + "default": "mdi:television" + }, + "outgoing_black_levels": { + "default": "mdi:television" + }, + "outgoing_color_space": { + "default": "mdi:television" + }, + "outgoing_colorimetry": { + "default": "mdi:television" + }, + "outgoing_frame_rate": { + "default": "mdi:television" + }, + "outgoing_res": { + "default": "mdi:television" + }, + "outgoing_signal_type": { + "default": "mdi:video-image" + }, + "temp_cpu": { + "default": "mdi:thermometer" + }, + "temp_gpu": { + "default": "mdi:thermometer" + }, + "temp_hdmi": { + "default": "mdi:thermometer" + }, + "temp_mainboard": { + "default": "mdi:thermometer" } } } diff --git a/homeassistant/components/madvr/strings.json b/homeassistant/components/madvr/strings.json index 38b949ee5d6..954fa65efca 100644 --- a/homeassistant/components/madvr/strings.json +++ b/homeassistant/components/madvr/strings.json @@ -1,31 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up madVR Envy", - "description": "Your device needs to be on in order to add the integration.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "The hostname or IP address of your madVR Envy device.", - "port": "The port your madVR Envy is listening on. In 99% of cases, leave this as the default." - } - }, - "reconfigure": { - "title": "Reconfigure madVR Envy", - "description": "Your device needs to be on in order to reconfigure the integration.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "[%key:component::madvr::config::step::user::data_description::host%]", - "port": "[%key:component::madvr::config::step::user::data_description::port%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", @@ -34,6 +8,32 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_mac": "A MAC address was not found. It is required to identify the device. Please ensure your device is connectable." + }, + "step": { + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::madvr::config::step::user::data_description::host%]", + "port": "[%key:component::madvr::config::step::user::data_description::port%]" + }, + "description": "Your device needs to be on in order to reconfigure the integration.", + "title": "Reconfigure madVR Envy" + }, + "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 your madVR Envy device.", + "port": "The port your madVR Envy is listening on. In 99% of cases, leave this as the default." + }, + "description": "Your device needs to be on in order to add the integration.", + "title": "Set up madVR Envy" + } } }, "entity": { @@ -52,66 +52,6 @@ } }, "sensor": { - "temp_gpu": { - "name": "GPU temperature" - }, - "temp_hdmi": { - "name": "HDMI temperature" - }, - "temp_cpu": { - "name": "CPU temperature" - }, - "temp_mainboard": { - "name": "Mainboard temperature" - }, - "incoming_res": { - "name": "Incoming resolution" - }, - "incoming_signal_type": { - "name": "Incoming signal type" - }, - "incoming_frame_rate": { - "name": "Incoming frame rate" - }, - "incoming_color_space": { - "name": "Incoming color space" - }, - "incoming_bit_depth": { - "name": "Incoming bit depth" - }, - "incoming_colorimetry": { - "name": "Incoming colorimetry" - }, - "incoming_black_levels": { - "name": "Incoming black levels" - }, - "incoming_aspect_ratio": { - "name": "Incoming aspect ratio" - }, - "outgoing_res": { - "name": "Outgoing resolution" - }, - "outgoing_signal_type": { - "name": "Outgoing signal type" - }, - "outgoing_frame_rate": { - "name": "Outgoing frame rate" - }, - "outgoing_color_space": { - "name": "Outgoing color space" - }, - "outgoing_bit_depth": { - "name": "Outgoing bit depth" - }, - "outgoing_colorimetry": { - "name": "Outgoing colorimetry" - }, - "outgoing_black_levels": { - "name": "Outgoing black levels" - }, - "aspect_res": { - "name": "Aspect resolution" - }, "aspect_dec": { "name": "Aspect decimal" }, @@ -121,14 +61,74 @@ "aspect_name": { "name": "Aspect name" }, - "masking_res": { - "name": "Masking resolution" + "aspect_res": { + "name": "Aspect resolution" + }, + "incoming_aspect_ratio": { + "name": "Incoming aspect ratio" + }, + "incoming_bit_depth": { + "name": "Incoming bit depth" + }, + "incoming_black_levels": { + "name": "Incoming black levels" + }, + "incoming_color_space": { + "name": "Incoming color space" + }, + "incoming_colorimetry": { + "name": "Incoming colorimetry" + }, + "incoming_frame_rate": { + "name": "Incoming frame rate" + }, + "incoming_res": { + "name": "Incoming resolution" + }, + "incoming_signal_type": { + "name": "Incoming signal type" }, "masking_dec": { "name": "Masking decimal" }, "masking_int": { "name": "Masking integer" + }, + "masking_res": { + "name": "Masking resolution" + }, + "outgoing_bit_depth": { + "name": "Outgoing bit depth" + }, + "outgoing_black_levels": { + "name": "Outgoing black levels" + }, + "outgoing_color_space": { + "name": "Outgoing color space" + }, + "outgoing_colorimetry": { + "name": "Outgoing colorimetry" + }, + "outgoing_frame_rate": { + "name": "Outgoing frame rate" + }, + "outgoing_res": { + "name": "Outgoing resolution" + }, + "outgoing_signal_type": { + "name": "Outgoing signal type" + }, + "temp_cpu": { + "name": "CPU temperature" + }, + "temp_gpu": { + "name": "GPU temperature" + }, + "temp_hdmi": { + "name": "HDMI temperature" + }, + "temp_mainboard": { + "name": "Mainboard temperature" } } } diff --git a/homeassistant/components/mailgun/strings.json b/homeassistant/components/mailgun/strings.json index e962dedd273..50b2f9cbe65 100644 --- a/homeassistant/components/mailgun/strings.json +++ b/homeassistant/components/mailgun/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the Mailgun webhook", - "description": "Are you sure you want to set up Mailgun?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up a [webhook with Mailgun]({mailgun_url}).\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n- Content Type: application/json\n\nSee [the documentation]({docs_url}) on how to configure automations to handle incoming data." + }, + "step": { + "user": { + "description": "Are you sure you want to set up Mailgun?", + "title": "Set up the Mailgun webhook" + } } } } diff --git a/homeassistant/components/mastodon/strings.json b/homeassistant/components/mastodon/strings.json index f6950cda668..a55b5647c8d 100644 --- a/homeassistant/components/mastodon/strings.json +++ b/homeassistant/components/mastodon/strings.json @@ -1,45 +1,28 @@ { "config": { - "step": { - "user": { - "data": { - "base_url": "[%key:common::config_flow::data::url%]", - "client_id": "Client key", - "client_secret": "Client secret", - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "base_url": "The URL of your Mastodon instance e.g. {example_url}.", - "client_id": "The client key for the application created within your Mastodon account.", - "client_secret": "The client secret for the application created within your Mastodon account.", - "access_token": "The access token for the application created within your Mastodon account." - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { - "unauthorized_error": "The credentials are incorrect.", "network_error": "The Mastodon instance was not found.", + "unauthorized_error": "The credentials are incorrect.", "unknown": "Unknown error occurred when connecting to the Mastodon instance." - } - }, - "exceptions": { - "not_loaded": { - "message": "{target} is not loaded." }, - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." - }, - "unable_to_send_message": { - "message": "Unable to send message." - }, - "unable_to_upload_image": { - "message": "Unable to upload image {media_path}." - }, - "not_whitelisted_directory": { - "message": "{media} is not a whitelisted directory." + "step": { + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "base_url": "[%key:common::config_flow::data::url%]", + "client_id": "Client key", + "client_secret": "Client secret" + }, + "data_description": { + "access_token": "The access token for the application created within your Mastodon account.", + "base_url": "The URL of your Mastodon instance e.g. {example_url}.", + "client_id": "The client key for the application created within your Mastodon account.", + "client_secret": "The client secret for the application created within your Mastodon account." + } + } } }, "entity": { @@ -58,54 +41,71 @@ } } }, - "services": { - "post": { - "name": "Post", - "description": "Posts a status on your Mastodon account.", - "fields": { - "config_entry_id": { - "name": "Mastodon account", - "description": "Select the Mastodon account to post to." - }, - "status": { - "name": "Status", - "description": "The status to post." - }, - "visibility": { - "name": "Visibility", - "description": "The visibility of the post (default: account setting)." - }, - "content_warning": { - "name": "Content warning", - "description": "A content warning will be shown before the status text is shown (default: no content warning)." - }, - "language": { - "name": "Language", - "description": "The language of the post (default: Mastodon account preference)." - }, - "media": { - "name": "Media", - "description": "Attach an image or video to the post." - }, - "media_description": { - "name": "Media description", - "description": "If an image or video is attached, will add a description for this media for people with visual impairments." - }, - "media_warning": { - "name": "Media warning", - "description": "If an image or video is attached, will mark the media as sensitive (default: no media warning)." - } - } + "exceptions": { + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, + "not_loaded": { + "message": "{target} is not loaded." + }, + "not_whitelisted_directory": { + "message": "{media} is not a whitelisted directory." + }, + "unable_to_send_message": { + "message": "Unable to send message." + }, + "unable_to_upload_image": { + "message": "Unable to upload image {media_path}." } }, "selector": { "post_visibility": { "options": { - "public": "Public - Visible to everyone", - "unlisted": "Unlisted - Public but not shown in public timelines", + "direct": "Direct - Mentioned accounts only", "private": "Private - Followers only", - "direct": "Direct - Mentioned accounts only" + "public": "Public - Visible to everyone", + "unlisted": "Unlisted - Public but not shown in public timelines" } } + }, + "services": { + "post": { + "description": "Posts a status on your Mastodon account.", + "fields": { + "config_entry_id": { + "description": "Select the Mastodon account to post to.", + "name": "Mastodon account" + }, + "content_warning": { + "description": "A content warning will be shown before the status text is shown (default: no content warning).", + "name": "Content warning" + }, + "language": { + "description": "The language of the post (default: Mastodon account preference).", + "name": "Language" + }, + "media": { + "description": "Attach an image or video to the post.", + "name": "Media" + }, + "media_description": { + "description": "If an image or video is attached, will add a description for this media for people with visual impairments.", + "name": "Media description" + }, + "media_warning": { + "description": "If an image or video is attached, will mark the media as sensitive (default: no media warning).", + "name": "Media warning" + }, + "status": { + "description": "The status to post.", + "name": "Status" + }, + "visibility": { + "description": "The visibility of the post (default: account setting).", + "name": "Visibility" + } + }, + "name": "Post" + } } } diff --git a/homeassistant/components/matrix/strings.json b/homeassistant/components/matrix/strings.json index 35351a33dbb..8171551e878 100644 --- a/homeassistant/components/matrix/strings.json +++ b/homeassistant/components/matrix/strings.json @@ -2,63 +2,63 @@ "selector": { "send_message_data": { "fields": { - "images": { - "name": "Images", - "description": "One or more image paths to attach to the message." - }, "format": { - "name": "Message format", - "description": "Format of the message, either 'text' or 'html'." + "description": "Format of the message, either 'text' or 'html'.", + "name": "Message format" + }, + "images": { + "description": "One or more image paths to attach to the message.", + "name": "Images" }, "thread_id": { - "name": "Thread ID", - "description": "An optional parent message ID to thread this message under." + "description": "An optional parent message ID to thread this message under.", + "name": "Thread ID" } } }, "send_message_data_format": { "options": { - "text": "Plain text", - "html": "HTML" + "html": "HTML", + "text": "Plain text" } } }, "services": { - "send_message": { - "name": "Send message", - "description": "Sends message to target room(s).", - "fields": { - "message": { - "name": "Message", - "description": "The message to be sent." - }, - "target": { - "name": "Target", - "description": "A list of room(s) to send the message to." - }, - "data": { - "name": "Data", - "description": "Extended information of notification." - } - } - }, "react": { - "name": "React", "description": "Sends a reaction to a message.", "fields": { "message_id": { - "name": "Message ID", - "description": "The ID of the message to react to." + "description": "The ID of the message to react to.", + "name": "Message ID" }, "reaction": { - "name": "Reaction", - "description": "The reaction to send." + "description": "The reaction to send.", + "name": "Reaction" }, "room": { - "name": "Room", - "description": "The room to send the reaction to." + "description": "The room to send the reaction to.", + "name": "Room" } - } + }, + "name": "React" + }, + "send_message": { + "description": "Sends message to target room(s).", + "fields": { + "data": { + "description": "Extended information of notification.", + "name": "Data" + }, + "message": { + "description": "The message to be sent.", + "name": "Message" + }, + "target": { + "description": "A list of room(s) to send the message to.", + "name": "Target" + } + }, + "name": "Send message" } } } diff --git a/homeassistant/components/matter/icons.json b/homeassistant/components/matter/icons.json index 34be69aef5c..989d0916c66 100644 --- a/homeassistant/components/matter/icons.json +++ b/homeassistant/components/matter/icons.json @@ -12,14 +12,14 @@ "resume": { "default": "mdi:play-pause" }, + "self_test_request": { + "default": "mdi:refresh-auto" + }, "start": { "default": "mdi:play" }, "stop": { "default": "mdi:stop" - }, - "self_test_request": { - "default": "mdi:refresh-auto" } }, "fan": { @@ -28,10 +28,10 @@ "preset_mode": { "default": "mdi:fan", "state": { + "auto": "mdi:fan-auto", + "high": "mdi:fan-speed-3", "low": "mdi:fan-speed-1", "medium": "mdi:fan-speed-2", - "high": "mdi:fan-speed-3", - "auto": "mdi:fan-auto", "natural_wind": "mdi:tailwind", "sleep_wind": "mdi:sleep" } @@ -39,6 +39,11 @@ } } }, + "number": { + "cook_time": { + "default": "mdi:microwave" + } + }, "select": { "laundry_washer_spin_speed": { "default": "mdi:reload" @@ -51,20 +56,8 @@ } }, "sensor": { - "contamination_state": { - "default": "mdi:air-filter" - }, - "current_phase": { - "default": "mdi:state-machine" - }, - "eve_weather_trend": { - "default": "mdi:weather", - "state": { - "sunny": "mdi:weather-sunny", - "cloudy": "mdi:weather-cloudy", - "rainy": "mdi:weather-rainy", - "stormy": "mdi:weather-windy" - } + "activated_carbon_filter_condition": { + "default": "mdi:filter-check" }, "air_quality": { "default": "mdi:air-filter" @@ -72,30 +65,6 @@ "bat_replacement_description": { "default": "mdi:battery-sync" }, - "battery_voltage": { - "default": "mdi:current-dc" - }, - "flow": { - "default": "mdi:pipe" - }, - "hepa_filter_condition": { - "default": "mdi:filter-check" - }, - "activated_carbon_filter_condition": { - "default": "mdi:filter-check" - }, - "operational_state": { - "default": "mdi:play-pause" - }, - "tank_volume": { - "default": "mdi:water-boiler" - }, - "tank_percentage": { - "default": "mdi:water-boiler" - }, - "valve_position": { - "default": "mdi:valve" - }, "battery_charge_state": { "default": "mdi:battery-charging" }, @@ -108,24 +77,51 @@ "battery_time_to_full_charge": { "default": "mdi:battery-clock" }, + "battery_voltage": { + "default": "mdi:current-dc" + }, + "contamination_state": { + "default": "mdi:air-filter" + }, + "current_phase": { + "default": "mdi:state-machine" + }, "esa_opt_out_state": { "default": "mdi:home-lightning-bolt" }, "esa_state": { "default": "mdi:home-lightning-bolt" }, + "eve_weather_trend": { + "default": "mdi:weather", + "state": { + "cloudy": "mdi:weather-cloudy", + "rainy": "mdi:weather-rainy", + "stormy": "mdi:weather-windy", + "sunny": "mdi:weather-sunny" + } + }, + "evse_fault_state": { + "default": "mdi:ev-station" + }, "evse_state": { "default": "mdi:ev-station" }, "evse_supply_state": { "default": "mdi:ev-station" }, - "evse_fault_state": { - "default": "mdi:ev-station" + "flow": { + "default": "mdi:pipe" + }, + "hepa_filter_condition": { + "default": "mdi:filter-check" }, "operational_error": { "default": "mdi:alert-circle" }, + "operational_state": { + "default": "mdi:play-pause" + }, "pump_control_mode": { "default": "mdi:pipe-wrench" }, @@ -134,26 +130,23 @@ }, "pump_status": { "default": "mdi:pump" - } - }, - "number": { - "cook_time": { - "default": "mdi:microwave" + }, + "tank_percentage": { + "default": "mdi:water-boiler" + }, + "tank_volume": { + "default": "mdi:water-boiler" + }, + "valve_position": { + "default": "mdi:valve" } }, "switch": { "child_lock": { "default": "mdi:lock", "state": { - "on": "mdi:lock", - "off": "mdi:lock-off" - } - }, - "speaker_mute": { - "default": "mdi:volume-high", - "state": { - "on": "mdi:volume-mute", - "off": "mdi:volume-high" + "off": "mdi:lock-off", + "on": "mdi:lock" } }, "evse_charging_switch": { @@ -161,6 +154,13 @@ }, "privacy_mode_button": { "default": "mdi:shield-lock" + }, + "speaker_mute": { + "default": "mdi:volume-high", + "state": { + "off": "mdi:volume-high", + "on": "mdi:volume-mute" + } } } }, diff --git a/homeassistant/components/matter/strings.json b/homeassistant/components/matter/strings.json index 7c5c6d63190..e6c2e6cc6d2 100644 --- a/homeassistant/components/matter/strings.json +++ b/homeassistant/components/matter/strings.json @@ -1,34 +1,5 @@ { "config": { - "flow_title": "{name}", - "step": { - "manual": { - "data": { - "url": "[%key:common::config_flow::data::url%]" - } - }, - "on_supervisor": { - "title": "Select connection method", - "description": "Do you want to use the official Matter Server Supervisor add-on?\n\nIf you are already running the Matter Server in another add-on, in a custom container, natively etc., then do not select this option.", - "data": { - "use_addon": "Use the official Matter Server Supervisor add-on" - } - }, - "install_addon": { - "title": "The add-on installation has started" - }, - "start_addon": { - "title": "Starting add-on." - }, - "hassio_confirm": { - "title": "Set up the Matter integration with the Matter Server add-on" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_server_version": "The Matter server is not the correct version", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "addon_get_discovery_info_failed": "Failed to get Matter Server add-on discovery info.", "addon_info_failed": "Failed to get Matter Server add-on info.", @@ -40,43 +11,57 @@ "not_matter_addon": "Discovered add-on is not the official Matter Server add-on.", "reconfiguration_successful": "Successfully reconfigured the Matter integration." }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_server_version": "The Matter server is not the correct version", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name}", "progress": { "install_addon": "Please wait while the Matter Server add-on installation finishes. This can take several minutes.", "start_addon": "Please wait while the Matter Server add-on starts. This add-on is what powers Matter in Home Assistant. This may take some seconds." + }, + "step": { + "hassio_confirm": { + "title": "Set up the Matter integration with the Matter Server add-on" + }, + "install_addon": { + "title": "The add-on installation has started" + }, + "manual": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + } + }, + "on_supervisor": { + "data": { + "use_addon": "Use the official Matter Server Supervisor add-on" + }, + "description": "Do you want to use the official Matter Server Supervisor add-on?\n\nIf you are already running the Matter Server in another add-on, in a custom container, natively etc., then do not select this option.", + "title": "Select connection method" + }, + "start_addon": { + "title": "Starting add-on." + } } }, "entity": { "binary_sensor": { + "alarm_door": { + "name": "Door alarm" + }, "battery_alert": { "name": "Battery alert" }, + "boost_state": { + "name": "Boost state" + }, + "dishwasher_alarm_inflow": { + "name": "Inflow alarm" + }, "end_of_service": { "name": "End of service" }, - "hardware_fault": { - "name": "Hardware fault" - }, - "interconnected_smoke_alarm": { - "name": "Interconnected smoke alarm" - }, - "interconnected_co_alarm": { - "name": "Interconnected CO alarm" - }, - "test_in_progress": { - "name": "Test in progress" - }, - "water_leak": { - "name": "Water leak" - }, - "water_freeze": { - "name": "Water freeze" - }, - "rain": { - "name": "Rain" - }, - "muted": { - "name": "Muted" - }, "evse_charging_status": { "name": "Charging status" }, @@ -86,14 +71,23 @@ "evse_supply_state": { "name": "Charger supply state" }, - "boost_state": { - "name": "Boost state" + "hardware_fault": { + "name": "Hardware fault" }, - "dishwasher_alarm_inflow": { - "name": "Inflow alarm" + "interconnected_co_alarm": { + "name": "Interconnected CO alarm" }, - "alarm_door": { - "name": "Door alarm" + "interconnected_smoke_alarm": { + "name": "Interconnected smoke alarm" + }, + "muted": { + "name": "Muted" + }, + "rain": { + "name": "Rain" + }, + "test_in_progress": { + "name": "Test in progress" }, "valve_fault_blocked": { "name": "Valve blocked" @@ -103,6 +97,12 @@ }, "valve_fault_leaking": { "name": "Valve leaking" + }, + "water_freeze": { + "name": "Water freeze" + }, + "water_leak": { + "name": "Water leak" } }, "button": { @@ -112,20 +112,20 @@ "pause": { "name": "[%key:common::action::pause%]" }, + "reset_filter_condition": { + "name": "Reset filter condition" + }, "resume": { "name": "Resume" }, + "self_test_request": { + "name": "Self-test" + }, "start": { "name": "[%key:common::action::start%]" }, "stop": { "name": "[%key:common::action::stop%]" - }, - "reset_filter_condition": { - "name": "Reset filter condition" - }, - "self_test_request": { - "name": "Self-test" } }, "climate": { @@ -144,10 +144,8 @@ "state_attributes": { "event_type": { "state": { - "switch_latched": "Switch latched", "initial_press": "Pressed", "long_press": "Held down", - "short_release": "Released after being pressed", "long_release": "Released after being held down", "multi_press_1": "Pressed once", "multi_press_2": "Pressed twice", @@ -156,7 +154,9 @@ "multi_press_5": "Pressed 5 times", "multi_press_6": "Pressed 6 times", "multi_press_7": "Pressed 7 times", - "multi_press_8": "Pressed 8 times" + "multi_press_8": "Pressed 8 times", + "short_release": "Released after being pressed", + "switch_latched": "Switch latched" } } } @@ -168,10 +168,10 @@ "state_attributes": { "preset_mode": { "state": { + "auto": "[%key:common::state::auto%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "auto": "[%key:common::state::auto%]", "natural_wind": "Natural wind", "sleep_wind": "Sleep wind" } @@ -179,56 +179,6 @@ } } }, - "number": { - "on_level": { - "name": "On level" - }, - "on_transition_time": { - "name": "On transition time" - }, - "off_transition_time": { - "name": "Off transition time" - }, - "on_off_transition_time": { - "name": "On/Off transition time" - }, - "altitude": { - "name": "Altitude above sea level" - }, - "cook_time": { - "name": "Cooking time" - }, - "pump_setpoint": { - "name": "Setpoint" - }, - "user_code_temporary_disable_time": { - "name": "User code temporary disable time" - }, - "temperature_offset": { - "name": "Temperature offset" - }, - "temperature_setpoint": { - "name": "Temperature setpoint" - }, - "hold_time": { - "name": "Hold time" - }, - "auto_relock_timer": { - "name": "Autorelock time" - }, - "led_indicator_intensity_off": { - "name": "LED off intensity" - }, - "led_indicator_intensity_on": { - "name": "LED on intensity" - }, - "valve_configuration_and_control_default_open_duration": { - "name": "Default open duration" - }, - "wrong_code_entry_limit": { - "name": "Wrong code limit" - } - }, "light": { "light": { "name": "[%key:component::light::title%]" @@ -239,54 +189,90 @@ "name": "[%key:component::lock::title%]" } }, + "number": { + "altitude": { + "name": "Altitude above sea level" + }, + "auto_relock_timer": { + "name": "Autorelock time" + }, + "cook_time": { + "name": "Cooking time" + }, + "hold_time": { + "name": "Hold time" + }, + "led_indicator_intensity_off": { + "name": "LED off intensity" + }, + "led_indicator_intensity_on": { + "name": "LED on intensity" + }, + "off_transition_time": { + "name": "Off transition time" + }, + "on_level": { + "name": "On level" + }, + "on_off_transition_time": { + "name": "On/Off transition time" + }, + "on_transition_time": { + "name": "On transition time" + }, + "pump_setpoint": { + "name": "Setpoint" + }, + "temperature_offset": { + "name": "Temperature offset" + }, + "temperature_setpoint": { + "name": "Temperature setpoint" + }, + "user_code_temporary_disable_time": { + "name": "User code temporary disable time" + }, + "valve_configuration_and_control_default_open_duration": { + "name": "Default open duration" + }, + "wrong_code_entry_limit": { + "name": "Wrong code limit" + } + }, "select": { "clean_mode": { "name": "Clean mode" }, - "mode": { - "name": "Mode" - }, "device_energy_management_mode": { "name": "Energy management mode" }, - "power_level": { - "name": "Power level (W)" - }, - "sensitivity_level": { - "name": "Sensitivity", + "door_lock_sound_volume": { + "name": "Sound volume", "state": { + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", - "standard": "Standard", - "high": "[%key:common::state::high%]" + "medium": "[%key:common::state::medium%]", + "silent": "Silent" } }, - "startup_on_off": { - "name": "Power-on behavior on startup", - "state": { - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]", - "toggle": "[%key:common::action::toggle%]", - "previous": "Previous" - } - }, - "temperature_level": { - "name": "Temperature level" - }, - "temperature_display_mode": { - "name": "Temperature display mode" - }, "laundry_washer_number_of_rinses": { "name": "Number of rinses", "state": { - "off": "[%key:common::state::off%]", - "normal": "[%key:common::state::normal%]", "extra": "Extra", - "max": "Max" + "max": "Max", + "normal": "[%key:common::state::normal%]", + "off": "[%key:common::state::off%]" } }, "laundry_washer_spin_speed": { "name": "Spin speed" }, + "mode": { + "name": "Mode" + }, + "power_level": { + "name": "Power level (W)" + }, "pump_operation_mode": { "name": "mode", "state": { @@ -296,87 +282,56 @@ "normal": "[%key:common::state::normal%]" } }, + "sensitivity_level": { + "name": "Sensitivity", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "standard": "Standard" + } + }, + "startup_on_off": { + "name": "Power-on behavior on startup", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "previous": "Previous", + "toggle": "[%key:common::action::toggle%]" + } + }, + "temperature_display_mode": { + "name": "Temperature display mode" + }, + "temperature_level": { + "name": "Temperature level" + }, "water_heater_mode": { "name": "Water heater mode" - }, - "door_lock_sound_volume": { - "name": "Sound volume", - "state": { - "silent": "Silent", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } } }, "sensor": { "activated_carbon_filter_condition": { "name": "Activated carbon filter condition" }, - "auto_close_time": { - "name": "Auto-close time" - }, - "contamination_state": { - "name": "Contamination state", - "state": { - "normal": "[%key:common::state::normal%]", - "low": "[%key:common::state::low%]", - "warning": "Warning", - "critical": "Critical" - } + "active_current": { + "name": "Active current" }, "air_quality": { "name": "Air quality", "state": { "extremely_poor": "Extremely poor", - "very_poor": "Very poor", - "poor": "Poor", "fair": "Fair", "good": "Good", - "moderate": "Moderate" + "moderate": "Moderate", + "poor": "Poor", + "very_poor": "Very poor" } }, - "expiry_date": { - "name": "Expiry date" + "apparent_current": { + "name": "Apparent current" }, - "flow": { - "name": "Flow" - }, - "hepa_filter_condition": { - "name": "HEPA filter condition" - }, - "operational_state": { - "name": "Operational state", - "state": { - "stopped": "[%key:common::state::stopped%]", - "running": "Running", - "paused": "[%key:common::state::paused%]", - "error": "[%key:common::state::error%]", - "seeking_charger": "Seeking charger", - "charging": "[%key:common::state::charging%]", - "docked": "Docked" - } - }, - "estimated_end_time": { - "name": "Estimated end time" - }, - "switch_current_position": { - "name": "Current switch position" - }, - "estimated_heat_required": { - "name": "Required heating energy" - }, - "tank_volume": { - "name": "Tank volume" - }, - "tank_percentage": { - "name": "Hot water level" - }, - "valve_position": { - "name": "Valve position" - }, - "battery_replacement_description": { - "name": "Battery type" + "auto_close_time": { + "name": "Auto-close time" }, "battery_charge_state": { "name": "Battery charge state", @@ -386,6 +341,9 @@ "not_charging": "Not charging" } }, + "battery_replacement_description": { + "name": "Battery type" + }, "battery_time_remaining": { "name": "Time remaining" }, @@ -395,135 +353,162 @@ "battery_voltage": { "name": "Battery voltage" }, + "contamination_state": { + "name": "Contamination state", + "state": { + "critical": "Critical", + "low": "[%key:common::state::low%]", + "normal": "[%key:common::state::normal%]", + "warning": "Warning" + } + }, "current_phase": { "name": "Current phase" }, "energy_exported": { "name": "Energy exported" }, - "esa_state": { - "name": "Appliance energy state", - "state": { - "offline": "Offline", - "online": "Online", - "fault": "[%key:common::state::fault%]", - "power_adjust_active": "Power adjust", - "paused": "[%key:common::state::paused%]" - } - }, "esa_opt_out_state": { "name": "Energy optimization opt-out", "state": { - "no_opt_out": "[%key:common::state::off%]", - "local_opt_out": "Local", "grid_opt_out": "Grid", + "local_opt_out": "Local", + "no_opt_out": "[%key:common::state::off%]", "opt_out": "Local and grid" } }, - "evse_fault_state": { - "name": "Fault state", + "esa_state": { + "name": "Appliance energy state", "state": { - "no_error": "OK", - "meter_failure": "Meter failure", - "over_voltage": "Overvoltage", - "under_voltage": "Undervoltage", - "over_current": "Overcurrent", - "contact_wet_failure": "Contact wet failure", - "contact_dry_failure": "Contact dry failure", - "power_loss": "Power loss", - "power_quality": "Power quality", - "pilot_short_circuit": "Pilot short circuit", - "emergency_stop": "Emergency stop", - "ev_disconnected": "EV disconnected", - "wrong_power_supply": "Wrong power supply", - "live_neutral_swap": "Live/neutral swap", - "over_temperature": "Overtemperature", - "other": "Other fault" + "fault": "[%key:common::state::fault%]", + "offline": "Offline", + "online": "Online", + "paused": "[%key:common::state::paused%]", + "power_adjust_active": "Power adjust" } }, - "evse_soc": { - "name": "State of charge" + "estimated_end_time": { + "name": "Estimated end time" }, - "operational_error": { - "name": "Operational error", - "state": { - "no_error": "No error", - "unable_to_start_or_resume": "Unable to start or resume", - "unable_to_complete_operation": "Unable to complete operation", - "command_invalid_in_state": "Command invalid in current state", - "failed_to_find_charging_dock": "Failed to find charging dock", - "stuck": "Stuck", - "dust_bin_missing": "Dust bin missing", - "dust_bin_full": "Dust bin full", - "water_tank_empty": "Water tank empty", - "water_tank_missing": "Water tank missing", - "water_tank_lid_open": "Water tank lid open", - "mop_cleaning_pad_missing": "Mop cleaning pad missing", - "low_battery": "Low battery", - "cannot_reach_target_area": "Cannot reach target area", - "dirty_water_tank_full": "Dirty water tank full", - "dirty_water_tank_missing": "Dirty water tank missing", - "wheels_jammed": "Wheels jammed", - "brush_jammed": "Brush jammed", - "navigation_sensor_obscured": "Navigation sensor obscured" - } - }, - "pi_heating_demand": { - "name": "Heating demand" - }, - "nitrogen_dioxide": { - "name": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]" - }, - "pump_control_mode": { - "name": "Control mode", - "state": { - "constant_flow": "Constant flow", - "constant_pressure": "Constant pressure", - "constant_speed": "Constant speed", - "constant_temperature": "Constant temp", - "proportional_pressure": "Proportional pressure", - "automatic": "Automatic" - } - }, - "pump_speed": { - "name": "Rotation speed" + "estimated_heat_required": { + "name": "Required heating energy" }, "eve_weather_trend": { "name": "Weather trend", "state": { "cloudy": "Cloudy", "rainy": "Rainy", - "sunny": "Sunny", - "stormy": "Stormy" + "stormy": "Stormy", + "sunny": "Sunny" } }, - "evse_circuit_capacity": { - "name": "Circuit capacity" - }, "evse_charge_current": { "name": "Charge current" }, - "evse_min_charge_current": { - "name": "Min charge current" + "evse_circuit_capacity": { + "name": "Circuit capacity" + }, + "evse_fault_state": { + "name": "Fault state", + "state": { + "contact_dry_failure": "Contact dry failure", + "contact_wet_failure": "Contact wet failure", + "emergency_stop": "Emergency stop", + "ev_disconnected": "EV disconnected", + "live_neutral_swap": "Live/neutral swap", + "meter_failure": "Meter failure", + "no_error": "OK", + "other": "Other fault", + "over_current": "Overcurrent", + "over_temperature": "Overtemperature", + "over_voltage": "Overvoltage", + "pilot_short_circuit": "Pilot short circuit", + "power_loss": "Power loss", + "power_quality": "Power quality", + "under_voltage": "Undervoltage", + "wrong_power_supply": "Wrong power supply" + } }, "evse_max_charge_current": { "name": "Max charge current" }, + "evse_min_charge_current": { + "name": "Min charge current" + }, + "evse_soc": { + "name": "State of charge" + }, "evse_user_max_charge_current": { "name": "User max charge current" }, - "window_covering_target_position": { - "name": "Target opening position" + "expiry_date": { + "name": "Expiry date" }, - "active_current": { - "name": "Active current" + "flow": { + "name": "Flow" }, - "apparent_current": { - "name": "Apparent current" + "hepa_filter_condition": { + "name": "HEPA filter condition" + }, + "nitrogen_dioxide": { + "name": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]" + }, + "operational_error": { + "name": "Operational error", + "state": { + "brush_jammed": "Brush jammed", + "cannot_reach_target_area": "Cannot reach target area", + "command_invalid_in_state": "Command invalid in current state", + "dirty_water_tank_full": "Dirty water tank full", + "dirty_water_tank_missing": "Dirty water tank missing", + "dust_bin_full": "Dust bin full", + "dust_bin_missing": "Dust bin missing", + "failed_to_find_charging_dock": "Failed to find charging dock", + "low_battery": "Low battery", + "mop_cleaning_pad_missing": "Mop cleaning pad missing", + "navigation_sensor_obscured": "Navigation sensor obscured", + "no_error": "No error", + "stuck": "Stuck", + "unable_to_complete_operation": "Unable to complete operation", + "unable_to_start_or_resume": "Unable to start or resume", + "water_tank_empty": "Water tank empty", + "water_tank_lid_open": "Water tank lid open", + "water_tank_missing": "Water tank missing", + "wheels_jammed": "Wheels jammed" + } + }, + "operational_state": { + "name": "Operational state", + "state": { + "charging": "[%key:common::state::charging%]", + "docked": "Docked", + "error": "[%key:common::state::error%]", + "paused": "[%key:common::state::paused%]", + "running": "Running", + "seeking_charger": "Seeking charger", + "stopped": "[%key:common::state::stopped%]" + } }, "outdoor_temperature": { "name": "Outdoor temperature" }, + "pi_heating_demand": { + "name": "Heating demand" + }, + "pump_control_mode": { + "name": "Control mode", + "state": { + "automatic": "Automatic", + "constant_flow": "Constant flow", + "constant_pressure": "Constant pressure", + "constant_speed": "Constant speed", + "constant_temperature": "Constant temp", + "proportional_pressure": "Proportional pressure" + } + }, + "pump_speed": { + "name": "Rotation speed" + }, "reactive_current": { "name": "Reactive current" }, @@ -533,28 +518,43 @@ "rms_voltage": { "name": "Effective voltage" }, + "switch_current_position": { + "name": "Current switch position" + }, + "tank_percentage": { + "name": "Hot water level" + }, + "tank_volume": { + "name": "Tank volume" + }, + "valve_position": { + "name": "Valve position" + }, "voltage": { "name": "Voltage" + }, + "window_covering_target_position": { + "name": "Target opening position" } }, "switch": { - "switch": { - "name": "[%key:component::switch::title%]" - }, - "power": { - "name": "Power" - }, - "speaker_mute": { - "name": "Mute" - }, "child_lock": { "name": "Child lock" }, "evse_charging_switch": { "name": "Enable charging" }, + "power": { + "name": "Power" + }, "privacy_mode_button": { "name": "Privacy mode button" + }, + "speaker_mute": { + "name": "Mute" + }, + "switch": { + "name": "[%key:component::switch::title%]" } }, "vacuum": { @@ -574,43 +574,43 @@ } }, "issues": { - "server_version_version_too_old": { - "description": "The version of the Matter Server you are currently running is too old for this version of Home Assistant. Please update the Matter Server to the latest version to fix this issue.", - "title": "Newer version of Matter Server needed" - }, "server_version_version_too_new": { "description": "The version of the Matter Server you are currently running is too new for this version of Home Assistant. Please update Home Assistant or downgrade the Matter Server to an older version to fix this issue.", "title": "Older version of Matter Server needed" + }, + "server_version_version_too_old": { + "description": "The version of the Matter Server you are currently running is too old for this version of Home Assistant. Please update the Matter Server to the latest version to fix this issue.", + "title": "Newer version of Matter Server needed" } }, "services": { "open_commissioning_window": { - "name": "Open commissioning window", "description": "Allows adding one of your devices to another Matter network by opening the commissioning window for this Matter device for 60 seconds.", "fields": { "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "The Matter device to add to the other Matter network." + "description": "The Matter device to add to the other Matter network.", + "name": "[%key:common::config_flow::data::device%]" } - } + }, + "name": "Open commissioning window" }, "water_heater_boost": { - "name": "Boost water heater", "description": "Enables water heater boost for a specific duration.", "fields": { "duration": { - "name": "Duration", - "description": "Boost duration in seconds." + "description": "Boost duration in seconds.", + "name": "Duration" }, "emergency_boost": { - "name": "Emergency boost", - "description": "Whether to enable emergency boost mode." + "description": "Whether to enable emergency boost mode.", + "name": "Emergency boost" }, "temporary_setpoint": { - "name": "Temporary setpoint", - "description": "Temporary setpoint temperature in Celsius during the boost period." + "description": "Temporary setpoint temperature in Celsius during the boost period.", + "name": "Temporary setpoint" } - } + }, + "name": "Boost water heater" } } } diff --git a/homeassistant/components/mazda/strings.json b/homeassistant/components/mazda/strings.json index 1d0fedf3e97..598229eb776 100644 --- a/homeassistant/components/mazda/strings.json +++ b/homeassistant/components/mazda/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Mazda integration has been removed", - "description": "The Mazda integration has been removed from Home Assistant.\n\nThe library that Home Assistant uses to connect with their services, [has been taken offline by Mazda]({dmca}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Mazda integration entries]({entries})." + "description": "The Mazda integration has been removed from Home Assistant.\n\nThe library that Home Assistant uses to connect with their services, [has been taken offline by Mazda]({dmca}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Mazda integration entries]({entries}).", + "title": "The Mazda integration has been removed" } } } diff --git a/homeassistant/components/mcp/strings.json b/homeassistant/components/mcp/strings.json index bb27370f137..c9d089ecd35 100644 --- a/homeassistant/components/mcp/strings.json +++ b/homeassistant/components/mcp/strings.json @@ -1,42 +1,5 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]" - }, - "data_description": { - "url": "The remote MCP server URL for the SSE endpoint, for example {example_url}" - } - }, - "credentials_choice": { - "title": "Choose how to authenticate with the MCP server", - "description": "You can either use existing credentials from another integration or set up new credentials.", - "menu_options": { - "new_credentials": "Set up new credentials", - "pick_implementation": "Use existing credentials" - }, - "menu_option_descriptions": { - "new_credentials": "You will be guided through setting up a new OAuth Client ID and secret.", - "pick_implementation": "You may use previously entered OAuth credentials." - } - }, - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "invalid_url": "Must be a valid MCP server URL" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", @@ -45,15 +8,52 @@ "missing_capabilities": "The MCP server does not support a required capability (Tools)", "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]", "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "reauth_account_mismatch": "The authenticated user does not match the MCP Server user that needed re-authentication.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "reauth_account_mismatch": "The authenticated user does not match the MCP Server user that needed re-authentication.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]", "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_url": "Must be a valid MCP server URL", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "credentials_choice": { + "description": "You can either use existing credentials from another integration or set up new credentials.", + "menu_option_descriptions": { + "new_credentials": "You will be guided through setting up a new OAuth Client ID and secret.", + "pick_implementation": "You may use previously entered OAuth credentials." + }, + "menu_options": { + "new_credentials": "Set up new credentials", + "pick_implementation": "Use existing credentials" + }, + "title": "Choose how to authenticate with the MCP server" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "user": { + "data": { + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "url": "The remote MCP server URL for the SSE endpoint, for example {example_url}" + } + } } } } diff --git a/homeassistant/components/mcp_server/strings.json b/homeassistant/components/mcp_server/strings.json index 602030475ea..44ef16f414d 100644 --- a/homeassistant/components/mcp_server/strings.json +++ b/homeassistant/components/mcp_server/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "llm_api_required": "At least one LLM API must be configured." + }, "step": { "user": { - "description": "See the [integration documentation]({more_info_url}) for setup instructions.", "data": { "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]" }, "data_description": { "llm_hass_api": "The method for controlling Home Assistant to expose with the Model Context Protocol." - } + }, + "description": "See the [integration documentation]({more_info_url}) for setup instructions." } - }, - "error": { - "llm_api_required": "At least one LLM API must be configured." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/mealie/icons.json b/homeassistant/components/mealie/icons.json index 773d70afa5f..6a2afcdba3b 100644 --- a/homeassistant/components/mealie/icons.json +++ b/homeassistant/components/mealie/icons.json @@ -1,25 +1,25 @@ { "entity": { - "todo": { - "shopping_list": { - "default": "mdi:basket" - } - }, "sensor": { - "recipes": { - "default": "mdi:food" - }, - "users": { - "default": "mdi:account-multiple" - }, "categories": { "default": "mdi:shape" }, + "recipes": { + "default": "mdi:food" + }, "tags": { "default": "mdi:tag-multiple" }, "tools": { "default": "mdi:tools" + }, + "users": { + "default": "mdi:account-multiple" + } + }, + "todo": { + "shopping_list": { + "default": "mdi:basket" } } }, @@ -36,11 +36,11 @@ "import_recipe": { "service": "mdi:map-search" }, - "set_random_mealplan": { - "service": "mdi:dice-multiple" - }, "set_mealplan": { "service": "mdi:food" + }, + "set_random_mealplan": { + "service": "mdi:dice-multiple" } } } diff --git a/homeassistant/components/mealie/strings.json b/homeassistant/components/mealie/strings.json index a8a750da0ae..653414d9132 100644 --- a/homeassistant/components/mealie/strings.json +++ b/homeassistant/components/mealie/strings.json @@ -1,69 +1,69 @@ { "common": { - "data_description_host": "The URL of your Mealie instance, for example, {example_url}.", "data_description_api_token": "The API token of your Mealie instance from your user profile within Mealie.", + "data_description_host": "The URL of your Mealie instance, for example, {example_url}.", "data_description_verify_ssl": "Should SSL certificates be verified? This should be off for self-signed certificates." }, "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::url%]", - "api_token": "[%key:common::config_flow::data::api_token%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "host": "[%key:component::mealie::common::data_description_host%]", - "api_token": "[%key:component::mealie::common::data_description_api_token%]", - "verify_ssl": "[%key:component::mealie::common::data_description_verify_ssl%]" - } - }, - "reauth_confirm": { - "description": "Please reauthenticate with Mealie.", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - }, - "data_description": { - "api_token": "[%key:component::mealie::common::data_description_api_token%]" - } - }, - "reconfigure": { - "description": "Please reconfigure with Mealie.", - "data": { - "host": "[%key:common::config_flow::data::url%]", - "api_token": "[%key:common::config_flow::data::api_token%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "host": "[%key:component::mealie::common::data_description_host%]", - "api_token": "[%key:component::mealie::common::data_description_api_token%]", - "verify_ssl": "[%key:component::mealie::common::data_description_verify_ssl%]" - } - }, - "hassio_confirm": { - "title": "Mealie via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the Mealie instance provided by the add-on: {addon}?", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - }, - "data_description": { - "api_token": "[%key:component::mealie::common::data_description_api_token%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "ingress_url": "Ingress URLs are only used for accessing the Mealie UI. Use your Home Assistant IP address and the network port within the configuration tab of the Mealie add-on.", - "unknown": "[%key:common::config_flow::error::unknown%]", - "mealie_version": "Minimum required version is v1.0.0. Please upgrade Mealie and then retry." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "wrong_account": "You have to use the same account that was used to configure the integration." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "ingress_url": "Ingress URLs are only used for accessing the Mealie UI. Use your Home Assistant IP address and the network port within the configuration tab of the Mealie add-on.", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "mealie_version": "Minimum required version is v1.0.0. Please upgrade Mealie and then retry.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "hassio_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "data_description": { + "api_token": "[%key:component::mealie::common::data_description_api_token%]" + }, + "description": "Do you want to configure Home Assistant to connect to the Mealie instance provided by the add-on: {addon}?", + "title": "Mealie via Home Assistant add-on" + }, + "reauth_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "data_description": { + "api_token": "[%key:component::mealie::common::data_description_api_token%]" + }, + "description": "Please reauthenticate with Mealie." + }, + "reconfigure": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "host": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_token": "[%key:component::mealie::common::data_description_api_token%]", + "host": "[%key:component::mealie::common::data_description_host%]", + "verify_ssl": "[%key:component::mealie::common::data_description_verify_ssl%]" + }, + "description": "Please reconfigure with Mealie." + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "host": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_token": "[%key:component::mealie::common::data_description_api_token%]", + "host": "[%key:component::mealie::common::data_description_host%]", + "verify_ssl": "[%key:component::mealie::common::data_description_verify_ssl%]" + } + } } }, "entity": { @@ -82,18 +82,14 @@ } }, "sensor": { - "recipes": { - "name": "Recipes", - "unit_of_measurement": "recipes" - }, - "users": { - "name": "Users", - "unit_of_measurement": "users" - }, "categories": { "name": "Categories", "unit_of_measurement": "categories" }, + "recipes": { + "name": "Recipes", + "unit_of_measurement": "recipes" + }, "tags": { "name": "Tags", "unit_of_measurement": "tags" @@ -101,48 +97,49 @@ "tools": { "name": "Tools", "unit_of_measurement": "tools" + }, + "users": { + "name": "Users", + "unit_of_measurement": "users" } } }, "exceptions": { - "not_loaded": { - "message": "{target} is not loaded." + "add_item_error": { + "message": "An error occurred adding an item to {shopping_list_name}." }, - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." - }, - "end_date_before_start_date": { - "message": "End date must be after start date." + "auth_failed": { + "message": "Authentication failed. Please reauthenticate." }, "connection_error": { "message": "Error connecting to Mealie instance." }, - "recipe_not_found": { - "message": "Recipe with ID or slug `{recipe_id}` not found." - }, - "no_recipes_found": { - "message": "No recipes found matching your search." - }, "could_not_import_recipe": { "message": "Mealie could not import the recipe from the URL." }, - "add_item_error": { - "message": "An error occurred adding an item to {shopping_list_name}." - }, - "update_item_error": { - "message": "An error occurred updating an item in {shopping_list_name}." - }, "delete_item_error": { "message": "An error occurred deleting an item in {shopping_list_name}." }, + "end_date_before_start_date": { + "message": "End date must be after start date." + }, + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, "item_not_found_error": { "message": "Item {shopping_list_item} not found." }, - "version_error": { - "message": "You are running {mealie_version} of Mealie. Minimum required version is {min_version}. Please upgrade Mealie and then retry." + "no_recipes_found": { + "message": "No recipes found matching your search." }, - "auth_failed": { - "message": "Authentication failed. Please reauthenticate." + "not_loaded": { + "message": "{target} is not loaded." + }, + "recipe_not_found": { + "message": "Recipe with ID or slug `{recipe_id}` not found." + }, + "setup_failed": { + "message": "Could not connect to the Mealie instance." }, "update_failed_mealplan": { "message": "Could not fetch mealplan data." @@ -153,136 +150,139 @@ "update_failed_statistics": { "message": "Could not fetch statistics data." }, - "setup_failed": { - "message": "Could not connect to the Mealie instance." - } - }, - "services": { - "get_mealplan": { - "name": "Get mealplan", - "description": "Gets a mealplan from Mealie", - "fields": { - "config_entry_id": { - "name": "Mealie instance", - "description": "The Mealie instance to use for this action." - }, - "start_date": { - "name": "Start date", - "description": "The startdate of the data to get (default: today)." - }, - "end_date": { - "name": "End date", - "description": "The enddate of the data to get (default: today)." - } - } + "update_item_error": { + "message": "An error occurred updating an item in {shopping_list_name}." }, - "get_recipe": { - "name": "Get recipe", - "description": "Gets a recipe from Mealie", - "fields": { - "config_entry_id": { - "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]", - "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]" - }, - "recipe_id": { - "name": "Recipe ID or slug", - "description": "The recipe ID or the slug of the recipe to get." - } - } - }, - "get_recipes": { - "name": "Get recipes", - "description": "Searches for recipes with any matching properties in Mealie", - "fields": { - "config_entry_id": { - "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]", - "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]" - }, - "search_terms": { - "name": "Search terms", - "description": "Terms to search for in recipe properties." - }, - "result_limit": { - "name": "Result limit", - "description": "Maximum number of recipes to return (default: 10)." - } - } - }, - "import_recipe": { - "name": "Import recipe", - "description": "Imports a recipe from an URL", - "fields": { - "config_entry_id": { - "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]", - "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]" - }, - "url": { - "name": "URL to the recipe", - "description": "The URL to the recipe to import." - }, - "include_tags": { - "name": "Include tags", - "description": "Include tags from the website to the recipe." - } - } - }, - "set_random_mealplan": { - "name": "Set random mealplan", - "description": "Sets a random mealplan for a specific date", - "fields": { - "config_entry_id": { - "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]", - "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]" - }, - "date": { - "name": "Date", - "description": "The date to set the mealplan for." - }, - "entry_type": { - "name": "Entry type", - "description": "The type of dish to randomize." - } - } - }, - "set_mealplan": { - "name": "Set a mealplan", - "description": "Sets a mealplan for a specific date", - "fields": { - "config_entry_id": { - "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]", - "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]" - }, - "date": { - "name": "[%key:component::mealie::services::set_random_mealplan::fields::date::name%]", - "description": "[%key:component::mealie::services::set_random_mealplan::fields::date::description%]" - }, - "entry_type": { - "name": "[%key:component::mealie::services::set_random_mealplan::fields::entry_type::name%]", - "description": "The type of dish to set the recipe to." - }, - "recipe_id": { - "name": "Recipe ID", - "description": "The recipe ID or the slug of the recipe to get." - }, - "note_title": { - "name": "Meal note title", - "description": "Meal note title for when planning without recipe." - }, - "note_text": { - "name": "Note text", - "description": "Meal note text for when planning without recipe." - } - } + "version_error": { + "message": "You are running {mealie_version} of Mealie. Minimum required version is {min_version}. Please upgrade Mealie and then retry." } }, "selector": { "mealplan_entry_type": { "options": { "breakfast": "[%key:component::mealie::entity::calendar::breakfast::name%]", - "lunch": "[%key:component::mealie::entity::calendar::lunch::name%]", "dinner": "[%key:component::mealie::entity::calendar::dinner::name%]", + "lunch": "[%key:component::mealie::entity::calendar::lunch::name%]", "side": "[%key:component::mealie::entity::calendar::side::name%]" } } + }, + "services": { + "get_mealplan": { + "description": "Gets a mealplan from Mealie", + "fields": { + "config_entry_id": { + "description": "The Mealie instance to use for this action.", + "name": "Mealie instance" + }, + "end_date": { + "description": "The enddate of the data to get (default: today).", + "name": "End date" + }, + "start_date": { + "description": "The startdate of the data to get (default: today).", + "name": "Start date" + } + }, + "name": "Get mealplan" + }, + "get_recipe": { + "description": "Gets a recipe from Mealie", + "fields": { + "config_entry_id": { + "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]", + "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]" + }, + "recipe_id": { + "description": "The recipe ID or the slug of the recipe to get.", + "name": "Recipe ID or slug" + } + }, + "name": "Get recipe" + }, + "get_recipes": { + "description": "Searches for recipes with any matching properties in Mealie", + "fields": { + "config_entry_id": { + "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]", + "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]" + }, + "result_limit": { + "description": "Maximum number of recipes to return (default: 10).", + "name": "Result limit" + }, + "search_terms": { + "description": "Terms to search for in recipe properties.", + "name": "Search terms" + } + }, + "name": "Get recipes" + }, + "import_recipe": { + "description": "Imports a recipe from an URL", + "fields": { + "config_entry_id": { + "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]", + "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]" + }, + "include_tags": { + "description": "Include tags from the website to the recipe.", + "name": "Include tags" + }, + "url": { + "description": "The URL to the recipe to import.", + "name": "URL to the recipe" + } + }, + "name": "Import recipe" + }, + "set_mealplan": { + "description": "Sets a mealplan for a specific date", + "fields": { + "config_entry_id": { + "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]", + "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]" + }, + "date": { + "description": "[%key:component::mealie::services::set_random_mealplan::fields::date::description%]", + "name": "[%key:component::mealie::services::set_random_mealplan::fields::date::name%]" + }, + "entry_type": { + "description": "The type of dish to set the recipe to.", + "name": "[%key:component::mealie::services::set_random_mealplan::fields::entry_type::name%]" + }, + "note_text": { + "description": "Meal note text for when planning without recipe.", + "name": "Note text" + }, + "note_title": { + "description": "Meal note title for when planning without recipe.", + "name": "Meal note title" + }, + "recipe_id": { + "description": "The recipe ID or the slug of the recipe to get.", + "name": "Recipe ID" + } + }, + "name": "Set a mealplan" + }, + "set_random_mealplan": { + "description": "Sets a random mealplan for a specific date", + "fields": { + "config_entry_id": { + "description": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::description%]", + "name": "[%key:component::mealie::services::get_mealplan::fields::config_entry_id::name%]" + }, + "date": { + "description": "The date to set the mealplan for.", + "name": "Date" + }, + "entry_type": { + "description": "The type of dish to randomize.", + "name": "Entry type" + } + }, + "name": "Set random mealplan" + } } } diff --git a/homeassistant/components/meater/strings.json b/homeassistant/components/meater/strings.json index a578f895a8c..0bd601a8b6e 100644 --- a/homeassistant/components/meater/strings.json +++ b/homeassistant/components/meater/strings.json @@ -1,31 +1,31 @@ { "config": { - "step": { - "user": { - "description": "Set up your Meater Cloud account.", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]" - }, - "data_description": { - "username": "Meater Cloud username, typically an email address." - } - }, - "reauth_confirm": { - "description": "Confirm the password for Meater Cloud account {username}.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown_auth_error": "[%key:common::config_flow::error::unknown%]", - "service_unavailable_error": "The API is currently unavailable, please try again later." + "service_unavailable_error": "The API is currently unavailable, please try again later.", + "unknown_auth_error": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Confirm the password for Meater Cloud account {username}." + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "username": "Meater Cloud username, typically an email address." + }, + "description": "Set up your Meater Cloud account." + } } }, "entity": { @@ -33,37 +33,37 @@ "ambient": { "name": "Ambient temperature" }, - "internal": { - "name": "Internal temperature" - }, "cook_name": { "name": "Cooking" }, + "cook_peak_temp": { + "name": "Peak temperature" + }, "cook_state": { "name": "Cook state", "state": { - "not_started": "Not started", "configured": "Configured", - "started": "Started", + "finished": "Finished", + "not_started": "Not started", + "overcooked": "Overcooked", "ready_for_resting": "Ready for resting", "resting": "Resting", - "slightly_underdone": "Slightly underdone", - "finished": "Finished", "slightly_overdone": "Slightly overdone", - "overcooked": "Overcooked" + "slightly_underdone": "Slightly underdone", + "started": "Started" } }, "cook_target_temp": { "name": "Target temperature" }, - "cook_peak_temp": { - "name": "Peak temperature" + "cook_time_elapsed": { + "name": "Time elapsed" }, "cook_time_remaining": { "name": "Time remaining" }, - "cook_time_elapsed": { - "name": "Time elapsed" + "internal": { + "name": "Internal temperature" } } } diff --git a/homeassistant/components/medcom_ble/strings.json b/homeassistant/components/medcom_ble/strings.json index 4f2b29b7269..76e51165886 100644 --- a/homeassistant/components/medcom_ble/strings.json +++ b/homeassistant/components/medcom_ble/strings.json @@ -1,23 +1,23 @@ { "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%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { diff --git a/homeassistant/components/media_extractor/icons.json b/homeassistant/components/media_extractor/icons.json index 611db7c944c..06da00cb221 100644 --- a/homeassistant/components/media_extractor/icons.json +++ b/homeassistant/components/media_extractor/icons.json @@ -1,10 +1,10 @@ { "services": { - "play_media": { - "service": "mdi:play" - }, "extract_media_url": { "service": "mdi:link" + }, + "play_media": { + "service": "mdi:play" } } } diff --git a/homeassistant/components/media_extractor/strings.json b/homeassistant/components/media_extractor/strings.json index 11b5a884e4d..31de125c807 100644 --- a/homeassistant/components/media_extractor/strings.json +++ b/homeassistant/components/media_extractor/strings.json @@ -7,33 +7,33 @@ } }, "services": { + "extract_media_url": { + "description": "Extract media URL from a service.", + "fields": { + "format_query": { + "description": "Youtube-dl query to select the quality of the result.", + "name": "Format query" + }, + "url": { + "description": "URL where the media can be found.", + "name": "Media URL" + } + }, + "name": "Get media URL" + }, "play_media": { - "name": "Play media", "description": "Downloads file from given URL.", "fields": { "media_content_id": { - "name": "Media content ID", - "description": "The ID of the content to play. Platform dependent." + "description": "The ID of the content to play. Platform dependent.", + "name": "Media content ID" }, "media_content_type": { - "name": "Media content type", - "description": "The type of the content to play." + "description": "The type of the content to play.", + "name": "Media content type" } - } - }, - "extract_media_url": { - "name": "Get media URL", - "description": "Extract media URL from a service.", - "fields": { - "url": { - "name": "Media URL", - "description": "URL where the media can be found." - }, - "format_query": { - "name": "Format query", - "description": "Youtube-dl query to select the quality of the result." - } - } + }, + "name": "Play media" } } } diff --git a/homeassistant/components/media_player/strings.json b/homeassistant/components/media_player/strings.json index 74cd9bc3beb..b25181edfbc 100644 --- a/homeassistant/components/media_player/strings.json +++ b/homeassistant/components/media_player/strings.json @@ -1,38 +1,37 @@ { - "title": "Media player", "device_automation": { "condition_type": { "is_buffering": "{entity_name} is buffering", - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]", "is_idle": "{entity_name} is idle", + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]", "is_paused": "{entity_name} is paused", "is_playing": "{entity_name} is playing" }, + "extra_fields": { + "for": "[%key:common::device_automation::extra_fields::for%]" + }, "trigger_type": { "buffering": "{entity_name} starts buffering", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", "idle": "{entity_name} becomes idle", "paused": "{entity_name} is paused", "playing": "{entity_name} starts playing", - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]" - }, - "extra_fields": { - "for": "[%key:common::device_automation::extra_fields::for%]" + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { "_": { "name": "[%key:component::media_player::title%]", "state": { + "buffering": "Buffering", + "idle": "[%key:common::state::idle%]", "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]", - "playing": "Playing", "paused": "[%key:common::state::paused%]", - "idle": "[%key:common::state::idle%]", - "standby": "[%key:common::state::standby%]", - "buffering": "Buffering" + "playing": "Playing", + "standby": "[%key:common::state::standby%]" }, "state_attributes": { "app_id": { @@ -50,8 +49,8 @@ "is_volume_muted": { "name": "Muted", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "media_album_artist": { @@ -109,18 +108,18 @@ "media_position_updated_at": { "name": "Position updated" }, - "media_title": { - "name": "Title" - }, - "media_track": { - "name": "Track" - }, "media_season": { "name": "Season" }, "media_series_title": { "name": "Series" }, + "media_title": { + "name": "Title" + }, + "media_track": { + "name": "Track" + }, "repeat": { "name": "Repeat", "state": { @@ -132,240 +131,241 @@ "shuffle": { "name": "Shuffle", "state": { - "true": "[%key:common::state::on%]", - "false": "[%key:common::state::off%]" + "false": "[%key:common::state::off%]", + "true": "[%key:common::state::on%]" } }, - "source": { - "name": "Source" - }, - "source_list": { - "name": "Available sources" - }, "sound_mode": { "name": "Sound mode" }, "sound_mode_list": { "name": "Available sound modes" }, + "source": { + "name": "Source" + }, + "source_list": { + "name": "Available sources" + }, "volume_level": { "name": "Volume" } } }, - "tv": { - "name": "TV" + "receiver": { + "name": "Receiver" }, "speaker": { "name": "Speaker" }, - "receiver": { - "name": "Receiver" - } - }, - "services": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns on the power of the media player." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns off the power of the media player." - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles a media player on/off." - }, - "volume_up": { - "name": "Turn up volume", - "description": "Turns up the volume." - }, - "volume_down": { - "name": "Turn down volume", - "description": "Turns down the volume." - }, - "volume_mute": { - "name": "Mute/unmute volume", - "description": "Mutes or unmutes the media player.", - "fields": { - "is_volume_muted": { - "name": "Muted", - "description": "Defines whether or not it is muted." - } - } - }, - "volume_set": { - "name": "Set volume", - "description": "Sets the volume level.", - "fields": { - "volume_level": { - "name": "Level", - "description": "The volume. 0 is inaudible, 1 is the maximum volume." - } - } - }, - "media_play_pause": { - "name": "Play/Pause", - "description": "Toggles play/pause." - }, - "media_play": { - "name": "Play", - "description": "Starts playing." - }, - "media_pause": { - "name": "[%key:common::action::pause%]", - "description": "Pauses." - }, - "media_stop": { - "name": "[%key:common::action::stop%]", - "description": "Stops playing." - }, - "media_next_track": { - "name": "Next", - "description": "Selects the next track." - }, - "media_previous_track": { - "name": "Previous", - "description": "Selects the previous track." - }, - "media_seek": { - "name": "Seek", - "description": "Allows you to go to a different part of the media that is currently playing.", - "fields": { - "seek_position": { - "name": "Position", - "description": "Target position in the currently playing media. The format is platform dependent." - } - } - }, - "play_media": { - "name": "Play media", - "description": "Starts playing specified media.", - "fields": { - "media": { - "name": "Media", - "description": "The media selected to play." - }, - "enqueue": { - "name": "Enqueue", - "description": "If the content should be played now or be added to the queue." - }, - "announce": { - "name": "Announce", - "description": "If the media should be played as an announcement." - } - } - }, - "browse_media": { - "name": "Browse media", - "description": "Browses the available media.", - "fields": { - "media_content_id": { - "name": "Content ID", - "description": "The ID of the content to browse. Integration dependent." - }, - "media_content_type": { - "name": "Content type", - "description": "The type of the content to browse, such as image, music, TV show, video, episode, channel, or playlist." - } - } - }, - "search_media": { - "name": "Search media", - "description": "Searches the available media.", - "fields": { - "media_content_id": { - "name": "[%key:component::media_player::services::browse_media::fields::media_content_id::name%]", - "description": "[%key:component::media_player::services::browse_media::fields::media_content_id::description%]" - }, - "media_content_type": { - "name": "[%key:component::media_player::services::browse_media::fields::media_content_type::name%]", - "description": "[%key:component::media_player::services::browse_media::fields::media_content_type::description%]" - }, - "search_query": { - "name": "Search query", - "description": "The term to search for." - }, - "media_filter_classes": { - "name": "Media class filter", - "description": "List of media classes to filter the search results by." - } - } - }, - "select_source": { - "name": "Select source", - "description": "Sends the media player the command to change input source.", - "fields": { - "source": { - "name": "Source", - "description": "Name of the source to switch to. Platform dependent." - } - } - }, - "select_sound_mode": { - "name": "Select sound mode", - "description": "Selects a specific sound mode.", - "fields": { - "sound_mode": { - "name": "Sound mode", - "description": "Name of the sound mode to switch to." - } - } - }, - "clear_playlist": { - "name": "Clear playlist", - "description": "Removes all items from the playlist." - }, - "shuffle_set": { - "name": "Set shuffle", - "description": "Enables or disables the shuffle mode.", - "fields": { - "shuffle": { - "name": "Shuffle mode", - "description": "Whether the media should be played in randomized order or not." - } - } - }, - "repeat_set": { - "name": "Set repeat", - "description": "Sets the repeat mode.", - "fields": { - "repeat": { - "name": "Repeat mode", - "description": "Whether the media (one or all) should be played in a loop or not." - } - } - }, - "join": { - "name": "Join", - "description": "Groups media players together for synchronous playback. Only works on supported multiroom audio systems.", - "fields": { - "group_members": { - "name": "Group members", - "description": "The players which will be synced with the playback specified in 'Targets'." - } - } - }, - "unjoin": { - "name": "Unjoin", - "description": "Removes the player from a group. Only works on platforms which support player groups." + "tv": { + "name": "TV" } }, "selector": { "enqueue": { "options": { - "play": "Play", - "next": "Play next", "add": "Add to queue", + "next": "Play next", + "play": "Play", "replace": "Play now and clear queue" } }, "repeat": { "options": { - "off": "[%key:common::state::off%]", "all": "Repeat all", + "off": "[%key:common::state::off%]", "one": "Repeat one" } } - } + }, + "services": { + "browse_media": { + "description": "Browses the available media.", + "fields": { + "media_content_id": { + "description": "The ID of the content to browse. Integration dependent.", + "name": "Content ID" + }, + "media_content_type": { + "description": "The type of the content to browse, such as image, music, TV show, video, episode, channel, or playlist.", + "name": "Content type" + } + }, + "name": "Browse media" + }, + "clear_playlist": { + "description": "Removes all items from the playlist.", + "name": "Clear playlist" + }, + "join": { + "description": "Groups media players together for synchronous playback. Only works on supported multiroom audio systems.", + "fields": { + "group_members": { + "description": "The players which will be synced with the playback specified in 'Targets'.", + "name": "Group members" + } + }, + "name": "Join" + }, + "media_next_track": { + "description": "Selects the next track.", + "name": "Next" + }, + "media_pause": { + "description": "Pauses.", + "name": "[%key:common::action::pause%]" + }, + "media_play": { + "description": "Starts playing.", + "name": "Play" + }, + "media_play_pause": { + "description": "Toggles play/pause.", + "name": "Play/Pause" + }, + "media_previous_track": { + "description": "Selects the previous track.", + "name": "Previous" + }, + "media_seek": { + "description": "Allows you to go to a different part of the media that is currently playing.", + "fields": { + "seek_position": { + "description": "Target position in the currently playing media. The format is platform dependent.", + "name": "Position" + } + }, + "name": "Seek" + }, + "media_stop": { + "description": "Stops playing.", + "name": "[%key:common::action::stop%]" + }, + "play_media": { + "description": "Starts playing specified media.", + "fields": { + "announce": { + "description": "If the media should be played as an announcement.", + "name": "Announce" + }, + "enqueue": { + "description": "If the content should be played now or be added to the queue.", + "name": "Enqueue" + }, + "media": { + "description": "The media selected to play.", + "name": "Media" + } + }, + "name": "Play media" + }, + "repeat_set": { + "description": "Sets the repeat mode.", + "fields": { + "repeat": { + "description": "Whether the media (one or all) should be played in a loop or not.", + "name": "Repeat mode" + } + }, + "name": "Set repeat" + }, + "search_media": { + "description": "Searches the available media.", + "fields": { + "media_content_id": { + "description": "[%key:component::media_player::services::browse_media::fields::media_content_id::description%]", + "name": "[%key:component::media_player::services::browse_media::fields::media_content_id::name%]" + }, + "media_content_type": { + "description": "[%key:component::media_player::services::browse_media::fields::media_content_type::description%]", + "name": "[%key:component::media_player::services::browse_media::fields::media_content_type::name%]" + }, + "media_filter_classes": { + "description": "List of media classes to filter the search results by.", + "name": "Media class filter" + }, + "search_query": { + "description": "The term to search for.", + "name": "Search query" + } + }, + "name": "Search media" + }, + "select_sound_mode": { + "description": "Selects a specific sound mode.", + "fields": { + "sound_mode": { + "description": "Name of the sound mode to switch to.", + "name": "Sound mode" + } + }, + "name": "Select sound mode" + }, + "select_source": { + "description": "Sends the media player the command to change input source.", + "fields": { + "source": { + "description": "Name of the source to switch to. Platform dependent.", + "name": "Source" + } + }, + "name": "Select source" + }, + "shuffle_set": { + "description": "Enables or disables the shuffle mode.", + "fields": { + "shuffle": { + "description": "Whether the media should be played in randomized order or not.", + "name": "Shuffle mode" + } + }, + "name": "Set shuffle" + }, + "toggle": { + "description": "Toggles a media player on/off.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Turns off the power of the media player.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Turns on the power of the media player.", + "name": "[%key:common::action::turn_on%]" + }, + "unjoin": { + "description": "Removes the player from a group. Only works on platforms which support player groups.", + "name": "Unjoin" + }, + "volume_down": { + "description": "Turns down the volume.", + "name": "Turn down volume" + }, + "volume_mute": { + "description": "Mutes or unmutes the media player.", + "fields": { + "is_volume_muted": { + "description": "Defines whether or not it is muted.", + "name": "Muted" + } + }, + "name": "Mute/unmute volume" + }, + "volume_set": { + "description": "Sets the volume level.", + "fields": { + "volume_level": { + "description": "The volume. 0 is inaudible, 1 is the maximum volume.", + "name": "Level" + } + }, + "name": "Set volume" + }, + "volume_up": { + "description": "Turns up the volume.", + "name": "Turn up volume" + } + }, + "title": "Media player" } diff --git a/homeassistant/components/media_source/strings.json b/homeassistant/components/media_source/strings.json index 12f69ad4390..607f48f6652 100644 --- a/homeassistant/components/media_source/strings.json +++ b/homeassistant/components/media_source/strings.json @@ -1,4 +1,7 @@ { + "common": { + "sources_default": "Media sources" + }, "exceptions": { "browse_media_failed": { "message": "Failed to browse media with content id {media_content_id}: {error}" @@ -9,8 +12,5 @@ "unknown_media_source": { "message": "Unknown media source: {domain}" } - }, - "common": { - "sources_default": "Media sources" } } diff --git a/homeassistant/components/melcloud/strings.json b/homeassistant/components/melcloud/strings.json index a8b76b94068..b670530283f 100644 --- a/homeassistant/components/melcloud/strings.json +++ b/homeassistant/components/melcloud/strings.json @@ -1,85 +1,85 @@ { "config": { - "step": { - "user": { - "title": "Connect to MELCloud", - "description": "Connect using your MELCloud account.", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The MELCloud integration needs to re-authenticate your connection details", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reconfigure": { - "title": "Reconfigure your MELCloud", - "description": "Reconfigure the entry to obtain a new token, for your account: `{username}`.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "Enter the (new) password for MELCloud." - } - } + "abort": { + "already_configured": "MELCloud integration already configured for this email. Access token has been refreshed.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_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%]" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "already_configured": "MELCloud integration already configured for this email. Access token has been refreshed.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - } - }, - "services": { - "set_vane_horizontal": { - "name": "Set vane horizontal", - "description": "Sets horizontal vane position.", - "fields": { - "position": { - "name": "Position", - "description": "Horizontal vane position. Possible options can be found in the vane_horizontal_positions state attribute." - } - } - }, - "set_vane_vertical": { - "name": "Set vane vertical", - "description": "Sets vertical vane position.", - "fields": { - "position": { - "name": "Position", - "description": "Vertical vane position. Possible options can be found in the vane_vertical_positions state attribute." - } + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "description": "The MELCloud integration needs to re-authenticate your connection details", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "Enter the (new) password for MELCloud." + }, + "description": "Reconfigure the entry to obtain a new token, for your account: `{username}`.", + "title": "Reconfigure your MELCloud" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "description": "Connect using your MELCloud account.", + "title": "Connect to MELCloud" } } }, "entity": { "sensor": { - "room_temperature": { - "name": "Room temperature" + "flow_temperature": { + "name": "Flow temperature" }, "outside_temperature": { "name": "Outside temperature" }, - "tank_temperature": { - "name": "Tank temperature" - }, - "flow_temperature": { - "name": "Flow temperature" - }, "return_temperature": { "name": "Flow return temperature" + }, + "room_temperature": { + "name": "Room temperature" + }, + "tank_temperature": { + "name": "Tank temperature" } } + }, + "services": { + "set_vane_horizontal": { + "description": "Sets horizontal vane position.", + "fields": { + "position": { + "description": "Horizontal vane position. Possible options can be found in the vane_horizontal_positions state attribute.", + "name": "Position" + } + }, + "name": "Set vane horizontal" + }, + "set_vane_vertical": { + "description": "Sets vertical vane position.", + "fields": { + "position": { + "description": "Vertical vane position. Possible options can be found in the vane_vertical_positions state attribute.", + "name": "Position" + } + }, + "name": "Set vane vertical" + } } } diff --git a/homeassistant/components/melnor/icons.json b/homeassistant/components/melnor/icons.json index 72e479a7d5a..70bcc37851d 100644 --- a/homeassistant/components/melnor/icons.json +++ b/homeassistant/components/melnor/icons.json @@ -1,22 +1,22 @@ { "entity": { "number": { - "manual_minutes": { - "default": "mdi:timer-cog-outline" + "frequency_duration_minutes": { + "default": "mdi:timer-outline" }, "frequency_interval_hours": { "default": "mdi:calendar-refresh-outline" }, - "frequency_duration_minutes": { - "default": "mdi:timer-outline" + "manual_minutes": { + "default": "mdi:timer-cog-outline" } }, "switch": { - "manual": { - "default": "mdi:sprinkler" - }, "frequency": { "default": "mdi:calendar-sync-outline" + }, + "manual": { + "default": "mdi:sprinkler" } } } diff --git a/homeassistant/components/melnor/strings.json b/homeassistant/components/melnor/strings.json index 51ca18b0b3d..c07cc8ef321 100644 --- a/homeassistant/components/melnor/strings.json +++ b/homeassistant/components/melnor/strings.json @@ -13,25 +13,25 @@ }, "entity": { "number": { - "manual_minutes": { - "name": "Manual duration" + "frequency_duration_minutes": { + "name": "Schedule duration" }, "frequency_interval_hours": { "name": "Schedule interval" }, - "frequency_duration_minutes": { - "name": "Schedule duration" + "manual_minutes": { + "name": "Manual duration" } }, "sensor": { - "rssi": { - "name": "RSSI" - }, "manual_cycle_end": { "name": "Manual cycle end" }, "next_cycle": { "name": "Next cycle" + }, + "rssi": { + "name": "RSSI" } }, "switch": { diff --git a/homeassistant/components/met/strings.json b/homeassistant/components/met/strings.json index 4fa9c58e4bc..6ac527775a0 100644 --- a/homeassistant/components/met/strings.json +++ b/homeassistant/components/met/strings.json @@ -1,34 +1,34 @@ { "config": { - "step": { - "user": { - "title": "[%key:common::config_flow::data::location%]", - "description": "Meteorologisk institutt", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "elevation": "[%key:common::config_flow::data::elevation%]" - } - } + "abort": { + "no_home": "No home coordinates are set in the Home Assistant configuration" }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, - "abort": { - "no_home": "No home coordinates are set in the Home Assistant configuration" + "step": { + "user": { + "data": { + "elevation": "[%key:common::config_flow::data::elevation%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "Meteorologisk institutt", + "title": "[%key:common::config_flow::data::location%]" + } } }, "options": { "step": { "init": { - "title": "[%key:common::config_flow::data::location%]", "data": { - "name": "[%key:common::config_flow::data::name%]", + "elevation": "[%key:common::config_flow::data::elevation%]", "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]", - "elevation": "[%key:common::config_flow::data::elevation%]" - } + "name": "[%key:common::config_flow::data::name%]" + }, + "title": "[%key:common::config_flow::data::location%]" } } } diff --git a/homeassistant/components/met_eireann/strings.json b/homeassistant/components/met_eireann/strings.json index d8c2918e6d3..8ee5159626b 100644 --- a/homeassistant/components/met_eireann/strings.json +++ b/homeassistant/components/met_eireann/strings.json @@ -1,22 +1,22 @@ { "config": { - "step": { - "user": { - "title": "[%key:common::config_flow::data::location%]", - "description": "Enter your location to use weather data from the Met Éireann Public Weather Forecast API", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "elevation": "[%key:common::config_flow::data::elevation%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "data": { + "elevation": "[%key:common::config_flow::data::elevation%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "Enter your location to use weather data from the Met Éireann Public Weather Forecast API", + "title": "[%key:common::config_flow::data::location%]" + } } } } diff --git a/homeassistant/components/meteo_france/strings.json b/homeassistant/components/meteo_france/strings.json index 7cb7d3efe53..958e98782de 100644 --- a/homeassistant/components/meteo_france/strings.json +++ b/homeassistant/components/meteo_france/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "description": "Enter the postal code (only for France, recommended) or city name", - "data": { - "city": "City" - } - }, - "cities": { - "description": "Choose your city from the list", - "data": { - "city": "[%key:component::meteo_france::config::step::user::data::city%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "empty": "No result in city search: please check the city field" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "step": { + "cities": { + "data": { + "city": "[%key:component::meteo_france::config::step::user::data::city%]" + }, + "description": "Choose your city from the list" + }, + "user": { + "data": { + "city": "City" + }, + "description": "Enter the postal code (only for France, recommended) or city name" + } } } } diff --git a/homeassistant/components/meteo_lt/strings.json b/homeassistant/components/meteo_lt/strings.json index 9289961f01c..ac2a1460b50 100644 --- a/homeassistant/components/meteo_lt/strings.json +++ b/homeassistant/components/meteo_lt/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "title": "Select station", - "data": { - "place_code": "Station" - }, - "data_description": { - "place_code": "Weather station to get data from" - } - } + "abort": { + "already_configured": "Station is already configured", + "cannot_connect": "Failed to connect to Meteo.lt API", + "no_places_found": "No stations found from the API" }, "error": { "cannot_connect": "Failed to connect to Meteo.lt API", "invalid_location": "Selected station is invalid", "unknown": "Unexpected error occurred" }, - "abort": { - "already_configured": "Station is already configured", - "cannot_connect": "Failed to connect to Meteo.lt API", - "no_places_found": "No stations found from the API" + "step": { + "user": { + "data": { + "place_code": "Station" + }, + "data_description": { + "place_code": "Weather station to get data from" + }, + "title": "Select station" + } } } } diff --git a/homeassistant/components/meteoclimatic/strings.json b/homeassistant/components/meteoclimatic/strings.json index 5aedf7da01a..d325d1f10c2 100644 --- a/homeassistant/components/meteoclimatic/strings.json +++ b/homeassistant/components/meteoclimatic/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "not_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "step": { "user": { "data": { @@ -9,13 +16,6 @@ "code": "Looks like ESCAT4300000043206B" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "not_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/metoffice/strings.json b/homeassistant/components/metoffice/strings.json index d13e0b89f96..3a13911b614 100644 --- a/homeassistant/components/metoffice/strings.json +++ b/homeassistant/components/metoffice/strings.json @@ -1,30 +1,30 @@ { "config": { - "step": { - "user": { - "title": "Connect to the UK Met Office", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - } - }, - "reauth_confirm": { - "title": "Reauthenticate with DataHub API", - "description": "Please re-enter your DataHub API key. If you are still using an old Datapoint API key, you need to sign up for DataHub API now, see [documentation]({docs_url}) for details.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Please re-enter your DataHub API key. If you are still using an old Datapoint API key, you need to sign up for DataHub API now, see [documentation]({docs_url}) for details.", + "title": "Reauthenticate with DataHub API" + }, + "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%]" + }, + "title": "Connect to the UK Met Office" + } } } } diff --git a/homeassistant/components/microbees/icons.json b/homeassistant/components/microbees/icons.json index b4c997c2576..94970ce7143 100644 --- a/homeassistant/components/microbees/icons.json +++ b/homeassistant/components/microbees/icons.json @@ -1,13 +1,5 @@ { "entity": { - "switch": { - "socket_eu": { - "default": "mdi:power-socket-eu" - }, - "socket_it": { - "default": "mdi:power-socket-it" - } - }, "button": { "button_gate": { "default": "mdi:gate" @@ -15,6 +7,14 @@ "button_panic": { "default": "mdi:alert-octagram" } + }, + "switch": { + "socket_eu": { + "default": "mdi:power-socket-eu" + }, + "socket_it": { + "default": "mdi:power-socket-it" + } } } } diff --git a/homeassistant/components/microbees/strings.json b/homeassistant/components/microbees/strings.json index 5337bf149b7..5fb6c9a5d20 100644 --- a/homeassistant/components/microbees/strings.json +++ b/homeassistant/components/microbees/strings.json @@ -1,38 +1,38 @@ { "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - } + "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%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "You can only reauthenticate this entry with the same microBees account." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" }, "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%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "You can only reauthenticate this entry with the same microBees account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" + "step": { + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + } } } } diff --git a/homeassistant/components/microsoft_face/strings.json b/homeassistant/components/microsoft_face/strings.json index 4357276a650..b7eac0271c7 100644 --- a/homeassistant/components/microsoft_face/strings.json +++ b/homeassistant/components/microsoft_face/strings.json @@ -1,80 +1,80 @@ { "services": { "create_group": { - "name": "Create group", "description": "Creates a new person group.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the group." + "description": "Name of the group.", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Create group" }, "create_person": { - "name": "Create person", "description": "Creates a new person in the group.", "fields": { "group": { - "name": "Group", - "description": "Name of the group." + "description": "Name of the group.", + "name": "Group" }, "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the person." + "description": "Name of the person.", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Create person" }, "delete_group": { - "name": "Delete group", "description": "Deletes a new person group.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the group." + "description": "Name of the group.", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Delete group" }, "delete_person": { - "name": "Delete person", "description": "Deletes a person in the group.", "fields": { "group": { - "name": "Group", - "description": "Name of the group." + "description": "Name of the group.", + "name": "Group" }, "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]" + "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Delete person" }, "face_person": { - "name": "Face person", "description": "Adds a new picture to a person.", "fields": { "camera_entity": { - "name": "Camera entity", - "description": "Camera to take a picture." + "description": "Camera to take a picture.", + "name": "Camera entity" }, "group": { - "name": "Group", - "description": "Name of the group." + "description": "Name of the group.", + "name": "Group" }, "person": { - "name": "Person", - "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]" + "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]", + "name": "Person" } - } + }, + "name": "Face person" }, "train_group": { - "name": "Train group", "description": "Trains a person group.", "fields": { "group": { - "name": "Group", - "description": "Name of the group." + "description": "Name of the group.", + "name": "Group" } - } + }, + "name": "Train group" } } } diff --git a/homeassistant/components/miele/icons.json b/homeassistant/components/miele/icons.json index da9816c3af8..99228bcc48a 100644 --- a/homeassistant/components/miele/icons.json +++ b/homeassistant/components/miele/icons.json @@ -1,12 +1,12 @@ { "entity": { "binary_sensor": { - "notification_active": { - "default": "mdi:information" - }, "mobile_start": { "default": "mdi:cellphone-wireless" }, + "notification_active": { + "default": "mdi:information" + }, "remote_control": { "default": "mdi:remote" }, @@ -15,58 +15,37 @@ } }, "button": { + "pause": { + "default": "mdi:pause" + }, "start": { "default": "mdi:play" }, "stop": { "default": "mdi:stop" - }, - "pause": { - "default": "mdi:pause" } }, "sensor": { - "core_temperature": { - "default": "mdi:thermometer-probe" - }, "core_target_temperature": { "default": "mdi:thermometer-probe" }, - "target_temperature": { - "default": "mdi:thermometer-check" + "core_temperature": { + "default": "mdi:thermometer-probe" }, "drying_step": { "default": "mdi:water-outline" }, - "program_id": { - "default": "mdi:selection-ellipse-arrow-inside" - }, - "program_phase": { - "default": "mdi:tray-full" - }, "elapsed_time": { "default": "mdi:timer-outline" }, - "start_time": { - "default": "mdi:clock-start" - }, - "spin_speed": { - "default": "mdi:sync" + "energy_forecast": { + "default": "mdi:lightning-bolt-outline" }, "plate": { "default": "mdi:circle-outline", "state": { "plate_step_0": "mdi:circle-outline", - "plate_step_warming": "mdi:alpha-w-circle-outline", "plate_step_1": "mdi:circle-slice-1", - "plate_step_2": "mdi:circle-slice-1", - "plate_step_3": "mdi:circle-slice-2", - "plate_step_4": "mdi:circle-slice-2", - "plate_step_5": "mdi:circle-slice-3", - "plate_step_6": "mdi:circle-slice-3", - "plate_step_7": "mdi:circle-slice-4", - "plate_step_8": "mdi:circle-slice-4", - "plate_step_9": "mdi:circle-slice-5", "plate_step_10": "mdi:circle-slice-5", "plate_step_11": "mdi:circle-slice-5", "plate_step_12": "mdi:circle-slice-6", @@ -76,18 +55,39 @@ "plate_step_16": "mdi:circle-slice-7", "plate_step_17": "mdi:circle-slice-8", "plate_step_18": "mdi:circle-slice-8", + "plate_step_2": "mdi:circle-slice-1", + "plate_step_3": "mdi:circle-slice-2", + "plate_step_4": "mdi:circle-slice-2", + "plate_step_5": "mdi:circle-slice-3", + "plate_step_6": "mdi:circle-slice-3", + "plate_step_7": "mdi:circle-slice-4", + "plate_step_8": "mdi:circle-slice-4", + "plate_step_9": "mdi:circle-slice-5", "plate_step_boost": "mdi:alpha-b-circle-outline", - "plate_step_boost_2": "mdi:alpha-b-circle" + "plate_step_boost_2": "mdi:alpha-b-circle", + "plate_step_warming": "mdi:alpha-w-circle-outline" } }, + "program_id": { + "default": "mdi:selection-ellipse-arrow-inside" + }, + "program_phase": { + "default": "mdi:tray-full" + }, "program_type": { "default": "mdi:state-machine" }, "remaining_time": { "default": "mdi:clock-end" }, - "energy_forecast": { - "default": "mdi:lightning-bolt-outline" + "spin_speed": { + "default": "mdi:sync" + }, + "start_time": { + "default": "mdi:clock-start" + }, + "target_temperature": { + "default": "mdi:thermometer-check" }, "water_forecast": { "default": "mdi:water-outline" diff --git a/homeassistant/components/miele/strings.json b/homeassistant/components/miele/strings.json index 47fdc7136d8..c94b365f2ff 100644 --- a/homeassistant/components/miele/strings.json +++ b/homeassistant/components/miele/strings.json @@ -3,32 +3,13 @@ "description": "Navigate to [\"Get involved\" at Miele developer site]({register_url}) to request credentials then enter them below." }, "config": { - "step": { - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - }, - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Miele integration needs to re-authenticate your account" - }, - "oauth_discovery": { - "description": "Home Assistant has found a Miele device on your network. Press **Submit** to continue setting up Miele." - } - }, "abort": { + "account_mismatch": "The used account does not match the original account", "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%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "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%]", @@ -36,90 +17,109 @@ "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "account_mismatch": "The used account does not match the original account", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "oauth_discovery": { + "description": "Home Assistant has found a Miele device on your network. Press **Submit** to continue setting up Miele." + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The Miele integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } } }, "device": { "coffee_system": { "name": "Coffee system" }, + "dialog_oven": { + "name": "Dialog oven" + }, "dishwasher": { "name": "Dishwasher" }, - "tumble_dryer": { - "name": "Tumble dryer" + "freezer": { + "name": "Freezer" }, "fridge_freezer": { "name": "Fridge freezer" }, + "hob_extraction": { + "name": "Hob with extraction" + }, + "hob_highlight": { + "name": "Hob highlight" + }, + "hood": { + "name": "Hood" + }, "induction_hob": { "name": "Induction hob" }, + "microwave": { + "name": "Microwave" + }, "oven": { "name": "Oven" }, "oven_microwave": { "name": "Oven microwave" }, - "hob_highlight": { - "name": "Hob highlight" - }, - "steam_oven": { - "name": "Steam oven" - }, - "microwave": { - "name": "Microwave" - }, - "hood": { - "name": "Hood" - }, - "warming_drawer": { - "name": "Warming drawer" - }, - "steam_oven_combi": { - "name": "Steam oven combi" - }, - "wine_cabinet": { - "name": "Wine cabinet" - }, - "wine_conditioning_unit": { - "name": "Wine conditioning unit" - }, - "wine_unit": { - "name": "Wine unit" - }, "refrigerator": { "name": "Refrigerator" }, - "freezer": { - "name": "Freezer" - }, "robot_vacuum_cleaner": { "name": "Robot vacuum cleaner" }, + "steam_oven": { + "name": "Steam oven" + }, + "steam_oven_combi": { + "name": "Steam oven combi" + }, "steam_oven_micro": { "name": "Steam oven micro" }, - "dialog_oven": { - "name": "Dialog oven" + "tumble_dryer": { + "name": "Tumble dryer" }, - "wine_cabinet_freezer": { - "name": "Wine cabinet freezer" - }, - "hob_extraction": { - "name": "Hob with extraction" + "warming_drawer": { + "name": "Warming drawer" }, "washer_dryer": { "name": "Washer dryer" }, "washing_machine": { "name": "Washing machine" + }, + "wine_cabinet": { + "name": "Wine cabinet" + }, + "wine_cabinet_freezer": { + "name": "Wine cabinet freezer" + }, + "wine_conditioning_unit": { + "name": "Wine conditioning unit" + }, + "wine_unit": { + "name": "Wine unit" } }, "entity": { @@ -130,12 +130,12 @@ "info": { "name": "Info" }, - "notification_active": { - "name": "Notification active" - }, "mobile_start": { "name": "Mobile start" }, + "notification_active": { + "name": "Notification active" + }, "remote_control": { "name": "Remote control" }, @@ -144,27 +144,14 @@ } }, "button": { + "pause": { + "name": "[%key:common::action::pause%]" + }, "start": { "name": "[%key:common::action::start%]" }, "stop": { "name": "[%key:common::action::stop%]" - }, - "pause": { - "name": "[%key:common::action::pause%]" - } - }, - "fan": { - "fan": { - "name": "[%key:component::fan::title%]" - } - }, - "light": { - "ambient_light": { - "name": "Ambient light" - }, - "light": { - "name": "[%key:component::light::title%]" } }, "climate": { @@ -187,33 +174,53 @@ "name": "Zone 3" } }, + "fan": { + "fan": { + "name": "[%key:component::fan::title%]" + } + }, + "light": { + "ambient_light": { + "name": "Ambient light" + }, + "light": { + "name": "[%key:component::light::title%]" + } + }, "sensor": { + "core_target_temperature": { + "name": "Core target temperature" + }, + "core_temperature": { + "name": "Core temperature" + }, + "drying_step": { + "name": "Drying step", + "state": { + "extra_dry": "Extra dry", + "hand_iron_1": "Hand iron 1", + "hand_iron_2": "Hand iron 2", + "machine_iron": "Machine iron", + "normal": "Normal", + "normal_plus": "Normal plus", + "slightly_dry": "Slightly dry", + "smoothing": "Smoothing" + } + }, "elapsed_time": { "name": "Elapsed time" }, - "remaining_time": { - "name": "Remaining time" - }, - "start_time": { - "name": "Start in" - }, "energy_consumption": { "name": "Energy consumption" }, + "energy_forecast": { + "name": "Energy forecast" + }, "plate": { "name": "Plate {plate_no}", "state": { "plate_step_0": "0", - "plate_step_warm": "Warming", "plate_step_1": "1", - "plate_step_2": "1\u2022", - "plate_step_3": "2", - "plate_step_4": "2\u2022", - "plate_step_5": "3", - "plate_step_6": "3\u2022", - "plate_step_7": "4", - "plate_step_8": "4\u2022", - "plate_step_9": "5", "plate_step_10": "5\u2022", "plate_step_11": "6", "plate_step_12": "6\u2022", @@ -223,124 +230,25 @@ "plate_step_16": "8\u2022", "plate_step_17": "9", "plate_step_18": "9\u2022", + "plate_step_2": "1\u2022", + "plate_step_3": "2", + "plate_step_4": "2\u2022", + "plate_step_5": "3", + "plate_step_6": "3\u2022", + "plate_step_7": "4", + "plate_step_8": "4\u2022", + "plate_step_9": "5", "plate_step_boost": "Boost", - "plate_step_boost_2": "Boost 2" - } - }, - "drying_step": { - "name": "Drying step", - "state": { - "extra_dry": "Extra dry", - "hand_iron_1": "Hand iron 1", - "hand_iron_2": "Hand iron 2", - "machine_iron": "Machine iron", - "normal_plus": "Normal plus", - "normal": "Normal", - "slightly_dry": "Slightly dry", - "smoothing": "Smoothing" - } - }, - "program_phase": { - "name": "Program phase", - "state": { - "2nd_espresso": "2nd espresso coffee", - "2nd_grinding": "2nd grinding", - "2nd_pre_brewing": "2nd pre-brewing", - "anti_crease": "Anti-crease", - "blocked_brushes": "Brushes blocked", - "blocked_drive_wheels": "Drive wheels blocked", - "blocked_front_wheel": "Front wheel blocked", - "cleaning": "Cleaning", - "comfort_cooling": "Comfort cooling", - "cooling_down": "Cooling down", - "dirty_sensors": "Dirty sensors", - "disinfecting": "Disinfecting", - "dispensing": "Dispensing", - "docked": "Docked", - "door_open": "Door open", - "drain": "Drain", - "drying": "Drying", - "dust_box_missing": "Missing dust box", - "energy_save": "Energy save", - "espresso": "Espresso coffee", - "extra_dry": "Extra dry", - "final_rinse": "Final rinse", - "finished": "Finished", - "freshen_up_and_moisten": "Freshen up & moisten", - "going_to_target_area": "Going to target area", - "grinding": "Grinding", - "hand_iron": "Hand iron", - "hand_iron_1": "Hand iron 1", - "hand_iron_2": "Hand iron 2", - "heating": "Heating", - "heating_up": "Heating up", - "heating_up_phase": "Heating up phase", - "hot_milk": "Hot milk", - "hygiene": "Hygiene", - "interim_rinse": "Interim rinse", - "keep_warm": "Keep warm", - "keeping_warm": "Keeping warm", - "machine_iron": "Machine iron", - "main_dishwash": "Cleaning", - "main_wash": "Main wash", - "milk_foam": "Milk foam", - "moisten": "Moisten", - "motor_overload": "Check dust box and filter", - "normal": "Normal", - "normal_plus": "Normal plus", - "not_running": "Not running", - "pre_brewing": "Pre-brewing", - "pre_dishwash": "Pre-cleaning", - "pre_heating": "Pre-heating", - "pre_wash": "Pre-wash", - "process_finished": "Process finished", - "process_running": "Process running", - "program_running": "Program running", - "reactivating": "Reactivating", - "remote_controlled": "Remote controlled", - "returning": "Returning", - "rinse": "Rinse", - "rinse_hold": "Rinse hold", - "rinse_out_lint": "Rinse out lint", - "rinses": "Rinses", - "safety_cooling": "Safety cooling", - "slightly_dry": "Slightly dry", - "slow_roasting": "Slow roasting", - "smoothing": "Smoothing", - "soak": "Soak", - "spin": "Spin", - "starch_stop": "Starch stop", - "steam_reduction": "Steam reduction", - "steam_smoothing": "Steam smoothing", - "thermo_spin": "Thermo spin", - "timed_drying": "Timed drying", - "vacuum_cleaning": "Cleaning", - "vacuum_cleaning_paused": "Cleaning paused", - "vacuum_internal_fault": "Internal fault - reboot", - "venting": "Venting", - "waiting_for_start": "Waiting for start", - "warm_air": "Warm air", - "warm_cups_glasses": "Warm cups/glasses", - "warm_dishes_plates": "Warm dishes/plates", - "wheel_lifted": "Wheel lifted" - } - }, - "program_type": { - "name": "Program type", - "state": { - "automatic_program": "Automatic program", - "cleaning_care_program": "Cleaning/care program", - "maintenance_program": "Maintenance program", - "normal_operation_mode": "Normal operation mode", - "own_program": "Own program" + "plate_step_boost_2": "Boost 2", + "plate_step_warm": "Warming" } }, "program_id": { "name": "Program", "state": { - "amaranth": "Amaranth", "almond_macaroons_1_tray": "Almond macaroons (1 tray)", "almond_macaroons_2_trays": "Almond macaroons (2 trays)", + "amaranth": "Amaranth", "apple_pie": "Apple pie", "apple_sponge": "Apple sponge", "apples_diced": "Apples (diced)", @@ -354,8 +262,6 @@ "apricots_halved_steam_cooking": "Apricots (halved, steam cooking)", "apricots_quartered": "Apricots (quartered)", "apricots_wedges": "Apricots (wedges)", - "savoury_flan_puff_pastry": "Savoury flan, puff pastry", - "savoury_flan_short_crust_pastry": "Savoury flan, short crust pastry", "artichokes_large": "Artichokes large", "artichokes_medium": "Artichokes medium", "artichokes_small": "Artichokes small", @@ -390,6 +296,8 @@ "beetroot_whole_small": "Beetroot (whole, small)", "belgian_sponge_cake": "Belgian sponge cake", "beluga_lentils": "Beluga lentils", + "biscuits_short_crust_pastry_1_tray": "Biscuits, short crust pastry (1 tray)", + "biscuits_short_crust_pastry_2_trays": "Biscuits, short crust pastry (2 trays)", "black_beans": "Black beans", "black_salsify_medium": "Black salsify (medium)", "black_salsify_thick": "Black salsify (thick)", @@ -480,15 +388,13 @@ "codfish_piece": "Codfish (piece)", "coffee": "Coffee", "coffee_pot": "Coffee pot", + "comfort_wash": "Comfort wash", + "comfort_wash_plus": "Comfort wash plus", "common_beans": "Common beans", "common_sole_fillet_1_cm": "Common sole (fillet, 1 cm)", "common_sole_fillet_2_cm": "Common sole (fillet, 2 cm)", "conventional_heat": "Conventional heat", "cook_bacon": "Cook bacon", - "biscuits_short_crust_pastry_1_tray": "Biscuits, short crust pastry (1 tray)", - "biscuits_short_crust_pastry_2_trays": "Biscuits, short crust pastry (2 trays)", - "comfort_wash": "Comfort wash", - "comfort_wash_plus": "Comfort wash plus", "cool_air": "Cool air", "corn_on_the_cob": "Corn on the cob", "cottons": "Cottons", @@ -500,14 +406,6 @@ "crevettes": "Crevettes", "curtains": "Curtains", "custom_program_1": "Custom program 1", - "custom_program_2": "Custom program 2", - "custom_program_3": "Custom program 3", - "custom_program_4": "Custom program 4", - "custom_program_5": "Custom program 5", - "custom_program_6": "Custom program 6", - "custom_program_7": "Custom program 7", - "custom_program_8": "Custom program 8", - "custom_program_9": "Custom program 9", "custom_program_10": "Custom program 10", "custom_program_11": "Custom program 11", "custom_program_12": "Custom program 12", @@ -518,9 +416,15 @@ "custom_program_17": "Custom program 17", "custom_program_18": "Custom program 18", "custom_program_19": "Custom program 19", + "custom_program_2": "Custom program 2", "custom_program_20": "Custom program 20", - "drop_cookies_1_tray": "Drop cookies (1 tray)", - "drop_cookies_2_trays": "Drop cookies (2 trays)", + "custom_program_3": "Custom program 3", + "custom_program_4": "Custom program 4", + "custom_program_5": "Custom program 5", + "custom_program_6": "Custom program 6", + "custom_program_7": "Custom program 7", + "custom_program_8": "Custom program 8", + "custom_program_9": "Custom program 9", "dark_garments": "Dark garments", "dark_mixed_grain_bread": "Dark mixed grain bread", "decrystallise_honey": "Decrystallise honey", @@ -535,6 +439,8 @@ "down_duvets": "Down duvets", "down_filled_items": "Down-filled items", "drain_spin": "Drain/spin", + "drop_cookies_1_tray": "Drop cookies (1 tray)", + "drop_cookies_2_trays": "Drop cookies (2 trays)", "duck": "Duck", "dutch_hash": "Dutch hash", "eco": "ECO", @@ -562,9 +468,9 @@ "flat_bread": "Flat bread", "flat_white": "Flat white", "freshen_up": "Freshen up", - "fruit_streusel_cake": "Fruit streusel cake", "fruit_flan_puff_pastry": "Fruit flan, puff pastry", "fruit_flan_short_crust_pastry": "Fruit flan, short crust pastry", + "fruit_streusel_cake": "Fruit streusel cake", "fruit_tea": "Fruit tea", "full_grill": "Full grill", "gentle": "Gentle", @@ -644,8 +550,8 @@ "long_grain_rice_general_rapid_steam_cooking": "Long grain rice (general, rapid steam cooking)", "long_grain_rice_general_steam_cooking": "Long grain rice (general, steam cooking)", "low_temperature_cooking": "Low temperature cooking", - "maintenance": "Maintenance program", "madeira_cake": "Madeira cake", + "maintenance": "Maintenance program", "make_yoghurt": "Make yoghurt", "mangel_cut": "Mangel (cut)", "marble_cake": "Marble cake", @@ -865,6 +771,8 @@ "salmon_steak_3_cm": "Salmon (steak, 3 cm)", "salmon_trout": "Salmon trout", "saucisson": "Saucisson", + "savoury_flan_puff_pastry": "Savoury flan, puff pastry", + "savoury_flan_short_crust_pastry": "Savoury flan, short crust pastry", "savoy_cabbage_cut": "Savoy cabbage (cut)", "scallops": "Scallops", "schupfnudeln_potato_noodels": "Schupfnudeln (potato noodels)", @@ -1006,15 +914,117 @@ } } }, + "program_phase": { + "name": "Program phase", + "state": { + "2nd_espresso": "2nd espresso coffee", + "2nd_grinding": "2nd grinding", + "2nd_pre_brewing": "2nd pre-brewing", + "anti_crease": "Anti-crease", + "blocked_brushes": "Brushes blocked", + "blocked_drive_wheels": "Drive wheels blocked", + "blocked_front_wheel": "Front wheel blocked", + "cleaning": "Cleaning", + "comfort_cooling": "Comfort cooling", + "cooling_down": "Cooling down", + "dirty_sensors": "Dirty sensors", + "disinfecting": "Disinfecting", + "dispensing": "Dispensing", + "docked": "Docked", + "door_open": "Door open", + "drain": "Drain", + "drying": "Drying", + "dust_box_missing": "Missing dust box", + "energy_save": "Energy save", + "espresso": "Espresso coffee", + "extra_dry": "Extra dry", + "final_rinse": "Final rinse", + "finished": "Finished", + "freshen_up_and_moisten": "Freshen up & moisten", + "going_to_target_area": "Going to target area", + "grinding": "Grinding", + "hand_iron": "Hand iron", + "hand_iron_1": "Hand iron 1", + "hand_iron_2": "Hand iron 2", + "heating": "Heating", + "heating_up": "Heating up", + "heating_up_phase": "Heating up phase", + "hot_milk": "Hot milk", + "hygiene": "Hygiene", + "interim_rinse": "Interim rinse", + "keep_warm": "Keep warm", + "keeping_warm": "Keeping warm", + "machine_iron": "Machine iron", + "main_dishwash": "Cleaning", + "main_wash": "Main wash", + "milk_foam": "Milk foam", + "moisten": "Moisten", + "motor_overload": "Check dust box and filter", + "normal": "Normal", + "normal_plus": "Normal plus", + "not_running": "Not running", + "pre_brewing": "Pre-brewing", + "pre_dishwash": "Pre-cleaning", + "pre_heating": "Pre-heating", + "pre_wash": "Pre-wash", + "process_finished": "Process finished", + "process_running": "Process running", + "program_running": "Program running", + "reactivating": "Reactivating", + "remote_controlled": "Remote controlled", + "returning": "Returning", + "rinse": "Rinse", + "rinse_hold": "Rinse hold", + "rinse_out_lint": "Rinse out lint", + "rinses": "Rinses", + "safety_cooling": "Safety cooling", + "slightly_dry": "Slightly dry", + "slow_roasting": "Slow roasting", + "smoothing": "Smoothing", + "soak": "Soak", + "spin": "Spin", + "starch_stop": "Starch stop", + "steam_reduction": "Steam reduction", + "steam_smoothing": "Steam smoothing", + "thermo_spin": "Thermo spin", + "timed_drying": "Timed drying", + "vacuum_cleaning": "Cleaning", + "vacuum_cleaning_paused": "Cleaning paused", + "vacuum_internal_fault": "Internal fault - reboot", + "venting": "Venting", + "waiting_for_start": "Waiting for start", + "warm_air": "Warm air", + "warm_cups_glasses": "Warm cups/glasses", + "warm_dishes_plates": "Warm dishes/plates", + "wheel_lifted": "Wheel lifted" + } + }, + "program_type": { + "name": "Program type", + "state": { + "automatic_program": "Automatic program", + "cleaning_care_program": "Cleaning/care program", + "maintenance_program": "Maintenance program", + "normal_operation_mode": "Normal operation mode", + "own_program": "Own program" + } + }, + "remaining_time": { + "name": "Remaining time" + }, "spin_speed": { "name": "Spin speed" }, + "start_time": { + "name": "Start in" + }, "status": { "name": "Status", "state": { "autocleaning": "Automatic cleaning", "failure": "Failure", "idle": "[%key:common::state::idle%]", + "in_use": "In use", "not_connected": "Not connected", "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]", @@ -1023,7 +1033,6 @@ "program_interrupted": "Program interrupted", "programmed": "Programmed", "rinse_hold": "Rinse hold", - "in_use": "In use", "service": "Service", "supercooling": "Supercooling", "supercooling_superfreezing": "Supercooling/superfreezing", @@ -1032,6 +1041,9 @@ "waiting_to_start": "Waiting to start" } }, + "target_temperature": { + "name": "Target temperature" + }, "temperature_zone_2": { "name": "Temperature zone 2" }, @@ -1041,18 +1053,6 @@ "water_consumption": { "name": "Water consumption" }, - "core_temperature": { - "name": "Core temperature" - }, - "target_temperature": { - "name": "Target temperature" - }, - "core_target_temperature": { - "name": "Core target temperature" - }, - "energy_forecast": { - "name": "Energy forecast" - }, "water_forecast": { "name": "Water forecast" } @@ -1076,12 +1076,12 @@ "config_entry_not_ready": { "message": "Error while loading the integration." }, - "invalid_target": { - "message": "Invalid device targeted." - }, "get_programs_error": { "message": "'Get programs' action failed: {status} / {message}" }, + "invalid_target": { + "message": "Invalid device targeted." + }, "set_program_error": { "message": "'Set program' action failed: {status} / {message}" }, @@ -1094,17 +1094,16 @@ }, "services": { "get_programs": { - "name": "Get programs", "description": "Returns a list of available programs.", "fields": { "device_id": { "description": "[%key:component::miele::services::set_program::fields::device_id::description%]", "name": "[%key:component::miele::services::set_program::fields::device_id::name%]" } - } + }, + "name": "Get programs" }, "set_program": { - "name": "Set program", "description": "Sets and starts a program on the appliance.", "fields": { "device_id": { @@ -1115,16 +1114,20 @@ "description": "The ID of the program to set.", "name": "Program ID" } - } + }, + "name": "Set program" }, "set_program_oven": { - "name": "Set program on oven", "description": "[%key:component::miele::services::set_program::description%]", "fields": { "device_id": { "description": "[%key:component::miele::services::set_program::fields::device_id::description%]", "name": "[%key:component::miele::services::set_program::fields::device_id::name%]" }, + "duration": { + "description": "The duration for the oven program.", + "name": "[%key:component::sensor::entity_component::duration::name%]" + }, "program_id": { "description": "[%key:component::miele::services::set_program::fields::program_id::description%]", "name": "[%key:component::miele::services::set_program::fields::program_id::name%]" @@ -1132,12 +1135,9 @@ "temperature": { "description": "The target temperature for the oven program.", "name": "[%key:component::sensor::entity_component::temperature::name%]" - }, - "duration": { - "description": "The duration for the oven program.", - "name": "[%key:component::sensor::entity_component::duration::name%]" } - } + }, + "name": "Set program on oven" } } } diff --git a/homeassistant/components/mikrotik/strings.json b/homeassistant/components/mikrotik/strings.json index 582450eca62..df1883c5bc4 100644 --- a/homeassistant/components/mikrotik/strings.json +++ b/homeassistant/components/mikrotik/strings.json @@ -1,33 +1,33 @@ { "config": { - "step": { - "user": { - "title": "Set up Mikrotik Router", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "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%]", - "verify_ssl": "[%key:common::config_flow::data::ssl%]" - } - }, - "reauth_confirm": { - "description": "The password for {username} is invalid.", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "name_exists": "Name exists", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "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%]", + "name_exists": "Name exists" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The password for {username} is invalid.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::ssl%]" + }, + "title": "Set up Mikrotik Router" + } } }, "options": { @@ -35,8 +35,8 @@ "device_tracker": { "data": { "arp_ping": "Enable ARP ping", - "force_dhcp": "Force scanning using DHCP", - "detection_time": "Consider home interval" + "detection_time": "Consider home interval", + "force_dhcp": "Force scanning using DHCP" } } } diff --git a/homeassistant/components/mill/strings.json b/homeassistant/components/mill/strings.json index 212da68c3e9..d218882e978 100644 --- a/homeassistant/components/mill/strings.json +++ b/homeassistant/components/mill/strings.json @@ -7,16 +7,10 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "step": { - "user": { - "data": { - "connection_type": "Select connection type" - }, - "description": "Select connection type. Local requires generation 3 heaters" - }, "cloud": { "data": { - "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%]" } }, "local": { @@ -24,13 +18,22 @@ "ip_address": "[%key:common::config_flow::data::ip%]" }, "description": "Local IP address of the device." + }, + "user": { + "data": { + "connection_type": "Select connection type" + }, + "description": "Select connection type. Local requires generation 3 heaters" } } }, "entity": { "sensor": { - "year_consumption": { - "name": "Year consumption" + "control_signal": { + "name": "Control signal" + }, + "current_power": { + "name": "Current power" }, "day_consumption": { "name": "Day consumption" @@ -41,39 +44,36 @@ "tvoc": { "name": "TVOC" }, - "control_signal": { - "name": "Control signal" - }, - "current_power": { - "name": "Current power" - }, "uncalibrated_temperature": { "name": "Uncalibrated temperature" + }, + "year_consumption": { + "name": "Year consumption" } } }, "services": { "set_room_temperature": { - "name": "Set room temperature", "description": "Sets Mill room temperatures.", "fields": { - "room_name": { - "name": "Room name", - "description": "Name of room to change." - }, "away_temp": { - "name": "Away temperature", - "description": "Room temperature in away mode" + "description": "Room temperature in away mode", + "name": "Away temperature" }, "comfort_temp": { - "name": "Comfort temperature", - "description": "Room temperature in comfort mode" + "description": "Room temperature in comfort mode", + "name": "Comfort temperature" + }, + "room_name": { + "description": "Name of room to change.", + "name": "Room name" }, "sleep_temp": { - "name": "Sleep temperature", - "description": "Room temperature in sleep mode" + "description": "Room temperature in sleep mode", + "name": "Sleep temperature" } - } + }, + "name": "Set room temperature" } } } diff --git a/homeassistant/components/min_max/strings.json b/homeassistant/components/min_max/strings.json index e73fac97bb7..260f277bab2 100644 --- a/homeassistant/components/min_max/strings.json +++ b/homeassistant/components/min_max/strings.json @@ -1,10 +1,7 @@ { - "title": "Combine the state of several sensors", "config": { "step": { "user": { - "title": "[%key:component::min_max::title%]", - "description": "Create a sensor that calculates a min, max, mean, median or sum from a list of input sensors.", "data": { "entity_ids": "Input entities", "name": "[%key:common::config_flow::data::name%]", @@ -13,7 +10,9 @@ }, "data_description": { "round_digits": "Controls the number of decimal digits in the output when the statistics characteristic is mean, median or sum." - } + }, + "description": "Create a sensor that calculates a min, max, mean, median or sum from a list of input sensors.", + "title": "[%key:component::min_max::title%]" } } }, @@ -34,11 +33,11 @@ "selector": { "type": { "options": { - "min": "Minimum", + "last": "Most recently updated", "max": "Maximum", "mean": "Arithmetic mean", "median": "Median", - "last": "Most recently updated", + "min": "Minimum", "range": "Statistical range", "sum": "Sum" } @@ -46,8 +45,9 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads min/max sensors from the YAML-configuration." + "description": "Reloads min/max sensors from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Combine the state of several sensors" } diff --git a/homeassistant/components/minecraft_server/icons.json b/homeassistant/components/minecraft_server/icons.json index 75719b39753..36ecaaa854b 100644 --- a/homeassistant/components/minecraft_server/icons.json +++ b/homeassistant/components/minecraft_server/icons.json @@ -4,8 +4,8 @@ "status": { "default": "mdi:lan", "state": { - "on": "mdi:lan-connect", - "off": "mdi:lan-disconnect" + "off": "mdi:lan-disconnect", + "on": "mdi:lan-connect" } } }, @@ -19,6 +19,12 @@ "latency": { "default": "mdi:signal" }, + "map_name": { + "default": "mdi:map" + }, + "motd": { + "default": "mdi:minecraft" + }, "players_max": { "default": "mdi:account-multiple" }, @@ -30,12 +36,6 @@ }, "version": { "default": "mdi:numeric" - }, - "motd": { - "default": "mdi:minecraft" - }, - "map_name": { - "default": "mdi:map" } } } diff --git a/homeassistant/components/minecraft_server/strings.json b/homeassistant/components/minecraft_server/strings.json index cb4670dcac4..0867db90bd8 100644 --- a/homeassistant/components/minecraft_server/strings.json +++ b/homeassistant/components/minecraft_server/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "Failed to connect to server. Please check the address and try again. If a port was provided, it must be within a valid range. If you are running a Minecraft Java Edition server, ensure that it is at least version 1.7." + }, "step": { "user": { "data": { @@ -8,15 +14,9 @@ "data_description": { "address": "The hostname, IP address or SRV record of your Minecraft server, optionally including the port." }, - "title": "Link your Minecraft Server", - "description": "Set up your Minecraft Server instance to allow monitoring." + "description": "Set up your Minecraft Server instance to allow monitoring.", + "title": "Link your Minecraft Server" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - }, - "error": { - "cannot_connect": "Failed to connect to server. Please check the address and try again. If a port was provided, it must be within a valid range. If you are running a Minecraft Java Edition server, ensure that it is at least version 1.7." } }, "entity": { @@ -26,32 +26,32 @@ } }, "sensor": { - "version": { - "name": "Version" - }, - "protocol_version": { - "name": "Protocol version" - }, - "latency": { - "name": "Latency" - }, - "players_online": { - "name": "Players online" - }, - "players_max": { - "name": "Players max" - }, - "motd": { - "name": "World message" + "edition": { + "name": "Edition" }, "game_mode": { "name": "Game mode" }, + "latency": { + "name": "Latency" + }, "map_name": { "name": "Map name" }, - "edition": { - "name": "Edition" + "motd": { + "name": "World message" + }, + "players_max": { + "name": "Players max" + }, + "players_online": { + "name": "Players online" + }, + "protocol_version": { + "name": "Protocol version" + }, + "version": { + "name": "Version" } } } diff --git a/homeassistant/components/minio/strings.json b/homeassistant/components/minio/strings.json index 68a4786bc63..d5f3a8069a5 100644 --- a/homeassistant/components/minio/strings.json +++ b/homeassistant/components/minio/strings.json @@ -1,54 +1,54 @@ { "services": { "get": { - "name": "Get", "description": "Downloads file from Minio.", "fields": { "bucket": { - "name": "Bucket", - "description": "Bucket to use." - }, - "key": { - "name": "Key", - "description": "Object key of the file." + "description": "Bucket to use.", + "name": "Bucket" }, "file_path": { - "name": "File path", - "description": "File path on local filesystem." + "description": "File path on local filesystem.", + "name": "File path" + }, + "key": { + "description": "Object key of the file.", + "name": "Key" } - } + }, + "name": "Get" }, "put": { - "name": "Put", "description": "Uploads file to Minio.", "fields": { "bucket": { - "name": "[%key:component::minio::services::get::fields::bucket::name%]", - "description": "[%key:component::minio::services::get::fields::bucket::description%]" - }, - "key": { - "name": "Key", - "description": "[%key:component::minio::services::get::fields::key::description%]" + "description": "[%key:component::minio::services::get::fields::bucket::description%]", + "name": "[%key:component::minio::services::get::fields::bucket::name%]" }, "file_path": { - "name": "File path", - "description": "[%key:component::minio::services::get::fields::file_path::description%]" + "description": "[%key:component::minio::services::get::fields::file_path::description%]", + "name": "File path" + }, + "key": { + "description": "[%key:component::minio::services::get::fields::key::description%]", + "name": "Key" } - } + }, + "name": "Put" }, "remove": { - "name": "Remove", "description": "Deletes file from Minio.", "fields": { "bucket": { - "name": "[%key:component::minio::services::get::fields::bucket::name%]", - "description": "[%key:component::minio::services::get::fields::bucket::description%]" + "description": "[%key:component::minio::services::get::fields::bucket::description%]", + "name": "[%key:component::minio::services::get::fields::bucket::name%]" }, "key": { - "name": "Key", - "description": "[%key:component::minio::services::get::fields::key::description%]" + "description": "[%key:component::minio::services::get::fields::key::description%]", + "name": "Key" } - } + }, + "name": "Remove" } } } diff --git a/homeassistant/components/mjpeg/strings.json b/homeassistant/components/mjpeg/strings.json index ed53f6bcdc9..fa7861a8263 100644 --- a/homeassistant/components/mjpeg/strings.json +++ b/homeassistant/components/mjpeg/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "user": { "data": { @@ -11,16 +18,14 @@ "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "options": { + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "init": { "data": { @@ -32,11 +37,6 @@ "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" } } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" } } } diff --git a/homeassistant/components/moat/manifest.json b/homeassistant/components/moat/manifest.json index 4240ae8fb8e..d23c6b11969 100644 --- a/homeassistant/components/moat/manifest.json +++ b/homeassistant/components/moat/manifest.json @@ -3,8 +3,8 @@ "name": "Moat", "bluetooth": [ { - "local_name": "Moat_S*", - "connectable": false + "connectable": false, + "local_name": "Moat_S*" } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/moat/strings.json b/homeassistant/components/moat/strings.json index 4e12a84b653..5e39fe3eab7 100644 --- a/homeassistant/components/moat/strings.json +++ b/homeassistant/components/moat/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } } } diff --git a/homeassistant/components/mobile_app/strings.json b/homeassistant/components/mobile_app/strings.json index 3d3e0767312..2d49f8e3be1 100644 --- a/homeassistant/components/mobile_app/strings.json +++ b/homeassistant/components/mobile_app/strings.json @@ -1,13 +1,12 @@ { - "title": "Mobile App", "config": { + "abort": { + "install_app": "Open the mobile app to set up the integration with Home Assistant. See [the docs]({apps_url}) for a list of compatible apps." + }, "step": { "confirm": { "description": "Do you want to set up the Mobile App component?" } - }, - "abort": { - "install_app": "Open the mobile app to set up the integration with Home Assistant. See [the docs]({apps_url}) for a list of compatible apps." } }, "device_automation": { @@ -18,5 +17,6 @@ "message": "Message", "title": "Title" } - } + }, + "title": "Mobile App" } diff --git a/homeassistant/components/modbus/icons.json b/homeassistant/components/modbus/icons.json index 05ee76fd44e..e5940203474 100644 --- a/homeassistant/components/modbus/icons.json +++ b/homeassistant/components/modbus/icons.json @@ -3,17 +3,17 @@ "reload": { "service": "mdi:reload" }, + "restart": { + "service": "mdi:restart" + }, + "stop": { + "service": "mdi:stop" + }, "write_coil": { "service": "mdi:pencil" }, "write_register": { "service": "mdi:database-edit" - }, - "stop": { - "service": "mdi:stop" - }, - "restart": { - "service": "mdi:restart" } } } diff --git a/homeassistant/components/modbus/strings.json b/homeassistant/components/modbus/strings.json index dd71785740b..d0d78d726e0 100644 --- a/homeassistant/components/modbus/strings.json +++ b/homeassistant/components/modbus/strings.json @@ -1,94 +1,94 @@ { + "issues": { + "duplicate_entity_entry": { + "description": "An address can only be associated with one entity. Please correct the entry in your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "Modbus {sub_1} address {sub_2} is duplicate, second entry not loaded." + }, + "duplicate_entity_name": { + "description": "An entity name must be unique. Please correct the entry in your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "Modbus {sub_1} is duplicate, second entry not loaded." + }, + "duplicate_modbus_entry": { + "description": "Please update {sub_2} and/or {sub_1} for the entry in your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "Modbus {sub_2} host/port {sub_1} is duplicate, second entry not loaded." + }, + "missing_modbus_name": { + "description": "Please add `{sub_1}` key to the {integration} entry with host `{sub_2}` in your configuration.yaml file and restart Home Assistant to fix this issue\n\n. `{sub_1}: {sub_3}` have been added.", + "title": "Modbus entry with host {sub_2} missing name" + }, + "no_entities": { + "description": "Please add at least one entity to Modbus {sub_1} in your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "Modbus {sub_1} contain no entities, entry not loaded." + } + }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads all Modbus entities." - }, - "write_coil": { - "name": "Write coil", - "description": "Writes to a Modbus coil.", - "fields": { - "address": { - "name": "Address", - "description": "Address of the register to write to." - }, - "state": { - "name": "State", - "description": "State to write." - }, - "slave": { - "name": "Server", - "description": "Address of the Modbus unit/server." - }, - "hub": { - "name": "Hub", - "description": "Modbus hub name." - } - } - }, - "write_register": { - "name": "Write register", - "description": "Writes to a Modbus holding register.", - "fields": { - "address": { - "name": "[%key:component::modbus::services::write_coil::fields::address::name%]", - "description": "Address of the holding register to write to." - }, - "slave": { - "name": "[%key:component::modbus::services::write_coil::fields::slave::name%]", - "description": "[%key:component::modbus::services::write_coil::fields::slave::description%]" - }, - "value": { - "name": "Value", - "description": "Value (single value or array) to write." - }, - "hub": { - "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", - "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" - } - } - }, - "stop": { - "name": "[%key:common::action::stop%]", - "description": "Stops a Modbus hub.", - "fields": { - "hub": { - "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", - "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" - } - } + "description": "Reloads all Modbus entities.", + "name": "[%key:common::action::reload%]" }, "restart": { - "name": "[%key:common::action::restart%]", "description": "Restarts a Modbus hub (if running, stops then starts).", "fields": { "hub": { - "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", - "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]", + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]" } - } - } - }, - "issues": { - "missing_modbus_name": { - "title": "Modbus entry with host {sub_2} missing name", - "description": "Please add `{sub_1}` key to the {integration} entry with host `{sub_2}` in your configuration.yaml file and restart Home Assistant to fix this issue\n\n. `{sub_1}: {sub_3}` have been added." + }, + "name": "[%key:common::action::restart%]" }, - "duplicate_modbus_entry": { - "title": "Modbus {sub_2} host/port {sub_1} is duplicate, second entry not loaded.", - "description": "Please update {sub_2} and/or {sub_1} for the entry in your configuration.yaml file and restart Home Assistant to fix this issue." + "stop": { + "description": "Stops a Modbus hub.", + "fields": { + "hub": { + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]", + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]" + } + }, + "name": "[%key:common::action::stop%]" }, - "duplicate_entity_entry": { - "title": "Modbus {sub_1} address {sub_2} is duplicate, second entry not loaded.", - "description": "An address can only be associated with one entity. Please correct the entry in your configuration.yaml file and restart Home Assistant to fix this issue." + "write_coil": { + "description": "Writes to a Modbus coil.", + "fields": { + "address": { + "description": "Address of the register to write to.", + "name": "Address" + }, + "hub": { + "description": "Modbus hub name.", + "name": "Hub" + }, + "slave": { + "description": "Address of the Modbus unit/server.", + "name": "Server" + }, + "state": { + "description": "State to write.", + "name": "State" + } + }, + "name": "Write coil" }, - "duplicate_entity_name": { - "title": "Modbus {sub_1} is duplicate, second entry not loaded.", - "description": "An entity name must be unique. Please correct the entry in your configuration.yaml file and restart Home Assistant to fix this issue." - }, - "no_entities": { - "title": "Modbus {sub_1} contain no entities, entry not loaded.", - "description": "Please add at least one entity to Modbus {sub_1} in your configuration.yaml file and restart Home Assistant to fix this issue." + "write_register": { + "description": "Writes to a Modbus holding register.", + "fields": { + "address": { + "description": "Address of the holding register to write to.", + "name": "[%key:component::modbus::services::write_coil::fields::address::name%]" + }, + "hub": { + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]", + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]" + }, + "slave": { + "description": "[%key:component::modbus::services::write_coil::fields::slave::description%]", + "name": "[%key:component::modbus::services::write_coil::fields::slave::name%]" + }, + "value": { + "description": "Value (single value or array) to write.", + "name": "Value" + } + }, + "name": "Write register" } } } diff --git a/homeassistant/components/modem_callerid/manifest.json b/homeassistant/components/modem_callerid/manifest.json index 34e5be43155..8092491de8b 100644 --- a/homeassistant/components/modem_callerid/manifest.json +++ b/homeassistant/components/modem_callerid/manifest.json @@ -11,8 +11,8 @@ "requirements": ["phone-modem==0.1.1"], "usb": [ { - "vid": "0572", - "pid": "1340" + "pid": "1340", + "vid": "0572" } ] } diff --git a/homeassistant/components/modem_callerid/strings.json b/homeassistant/components/modem_callerid/strings.json index dd0af40fac1..aad6cf69682 100644 --- a/homeassistant/components/modem_callerid/strings.json +++ b/homeassistant/components/modem_callerid/strings.json @@ -1,24 +1,24 @@ { "config": { - "step": { - "user": { - "description": "This is an integration for landline calls using a CX93001 voice modem. This can retrieve caller ID information with an option to reject an incoming call.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "usb_confirm": { - "description": "[%key:component::modem_callerid::config::step::user::description%]" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "no_devices_found": "No remaining devices found" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "usb_confirm": { + "description": "[%key:component::modem_callerid::config::step::user::description%]" + }, + "user": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "This is an integration for landline calls using a CX93001 voice modem. This can retrieve caller ID information with an option to reject an incoming call." + } } }, "entity": { diff --git a/homeassistant/components/modern_forms/icons.json b/homeassistant/components/modern_forms/icons.json index 544e48e17f1..122e5a0f313 100644 --- a/homeassistant/components/modern_forms/icons.json +++ b/homeassistant/components/modern_forms/icons.json @@ -1,33 +1,33 @@ { "entity": { "binary_sensor": { - "light_sleep_timer_active": { + "fan_sleep_timer_active": { "default": "mdi:av-timer" }, - "fan_sleep_timer_active": { + "light_sleep_timer_active": { "default": "mdi:av-timer" } }, "sensor": { - "light_timer_remaining_time": { + "fan_timer_remaining_time": { "default": "mdi:timer-outline" }, - "fan_timer_remaining_time": { + "light_timer_remaining_time": { "default": "mdi:timer-outline" } }, "switch": { - "away_mode": { - "default": "mdi:airplane-takeoff" - }, "adaptive_learning": { "default": "mdi:school-outline" + }, + "away_mode": { + "default": "mdi:airplane-takeoff" } } }, "services": { - "set_light_sleep_timer": { - "service": "mdi:timer" + "clear_fan_sleep_timer": { + "service": "mdi:timer-cancel" }, "clear_light_sleep_timer": { "service": "mdi:timer-cancel" @@ -35,8 +35,8 @@ "set_fan_sleep_timer": { "service": "mdi:timer" }, - "clear_fan_sleep_timer": { - "service": "mdi:timer-cancel" + "set_light_sleep_timer": { + "service": "mdi:timer" } } } diff --git a/homeassistant/components/modern_forms/manifest.json b/homeassistant/components/modern_forms/manifest.json index 5f77d95cbbc..5d036319f8e 100644 --- a/homeassistant/components/modern_forms/manifest.json +++ b/homeassistant/components/modern_forms/manifest.json @@ -9,8 +9,8 @@ "requirements": ["aiomodernforms==0.1.8"], "zeroconf": [ { - "type": "_easylink._tcp.local.", - "name": "wac*" + "name": "wac*", + "type": "_easylink._tcp.local." } ] } diff --git a/homeassistant/components/modern_forms/strings.json b/homeassistant/components/modern_forms/strings.json index e6d0f6a2206..b0cc228a040 100644 --- a/homeassistant/components/modern_forms/strings.json +++ b/homeassistant/components/modern_forms/strings.json @@ -1,36 +1,36 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "user": { - "description": "Set up your Modern Forms fan to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "The hostname or IP address of your Modern Forms fan." - } + }, + "description": "Set up your Modern Forms fan to integrate with Home Assistant." }, "zeroconf_confirm": { "description": "Do you want to add the Modern Forms fan named `{name}` to Home Assistant?", "title": "Discovered Modern Forms fan device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "binary_sensor": { - "light_sleep_timer_active": { - "name": "Light sleep timer active" - }, "fan_sleep_timer_active": { "name": "Fan sleep timer active" + }, + "light_sleep_timer_active": { + "name": "Light sleep timer active" } }, "fan": { @@ -44,50 +44,50 @@ } }, "sensor": { - "light_timer_remaining_time": { - "name": "Light sleep time" - }, "fan_timer_remaining_time": { "name": "Fan sleep time" + }, + "light_timer_remaining_time": { + "name": "Light sleep time" } }, "switch": { - "away_mode": { - "name": "Away mode" - }, "adaptive_learning": { "name": "Adaptive learning" + }, + "away_mode": { + "name": "Away mode" } } }, "services": { - "set_light_sleep_timer": { - "name": "Set light sleep timer", - "description": "Sets a sleep timer on a Modern Forms light.", - "fields": { - "sleep_time": { - "name": "Sleep time", - "description": "Number of minutes to set the timer." - } - } + "clear_fan_sleep_timer": { + "description": "Clears the sleep timer on a Modern Forms fan.", + "name": "Clear fan sleep timer" }, "clear_light_sleep_timer": { - "name": "Clear light sleep timer", - "description": "Clears the sleep timer on a Modern Forms light." + "description": "Clears the sleep timer on a Modern Forms light.", + "name": "Clear light sleep timer" }, "set_fan_sleep_timer": { - "name": "Set fan sleep timer", "description": "Sets a sleep timer on a Modern Forms fan.", "fields": { "sleep_time": { - "name": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::name%]", - "description": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::description%]" + "description": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::description%]", + "name": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::name%]" } - } + }, + "name": "Set fan sleep timer" }, - "clear_fan_sleep_timer": { - "name": "Clear fan sleep timer", - "description": "Clears the sleep timer on a Modern Forms fan." + "set_light_sleep_timer": { + "description": "Sets a sleep timer on a Modern Forms light.", + "fields": { + "sleep_time": { + "description": "Number of minutes to set the timer.", + "name": "Sleep time" + } + }, + "name": "Set light sleep timer" } } } diff --git a/homeassistant/components/moehlenhoff_alpha2/strings.json b/homeassistant/components/moehlenhoff_alpha2/strings.json index d15ec9f89eb..54300c22b3e 100644 --- a/homeassistant/components/moehlenhoff_alpha2/strings.json +++ b/homeassistant/components/moehlenhoff_alpha2/strings.json @@ -1,6 +1,12 @@ { - "title": "Möhlenhoff Alpha2", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -10,13 +16,7 @@ "host": "The hostname or IP address of your Möhlenhoff Alpha2 system." } } - }, - "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%]" } - } + }, + "title": "Möhlenhoff Alpha2" } diff --git a/homeassistant/components/mold_indicator/strings.json b/homeassistant/components/mold_indicator/strings.json index 74614bba139..fe51eccca4d 100644 --- a/homeassistant/components/mold_indicator/strings.json +++ b/homeassistant/components/mold_indicator/strings.json @@ -1,5 +1,4 @@ { - "title": "Mold Indicator", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" @@ -9,21 +8,21 @@ }, "step": { "user": { - "description": "Create Mold indicator helper", "data": { - "name": "[%key:common::config_flow::data::name%]", + "calibration_factor": "Calibration factor", "indoor_humidity_sensor": "Indoor humidity sensor", "indoor_temp_sensor": "Indoor temperature sensor", - "outdoor_temp_sensor": "Outdoor temperature sensor", - "calibration_factor": "Calibration factor" + "name": "[%key:common::config_flow::data::name%]", + "outdoor_temp_sensor": "Outdoor temperature sensor" }, "data_description": { - "name": "Name for the created entity.", + "calibration_factor": "Needs to be calibrated to the critical point in the room.", "indoor_humidity_sensor": "The entity ID of the indoor humidity sensor.", "indoor_temp_sensor": "The entity ID of the indoor temperature sensor.", - "outdoor_temp_sensor": "The entity ID of the outdoor temperature sensor.", - "calibration_factor": "Needs to be calibrated to the critical point in the room." - } + "name": "Name for the created entity.", + "outdoor_temp_sensor": "The entity ID of the outdoor temperature sensor." + }, + "description": "Create Mold indicator helper" } } }, @@ -36,14 +35,15 @@ }, "step": { "init": { - "description": "Adjust the calibration factor as required", "data": { "calibration_factor": "[%key:component::mold_indicator::config::step::user::data::calibration_factor%]" }, "data_description": { "calibration_factor": "[%key:component::mold_indicator::config::step::user::data_description::calibration_factor%]" - } + }, + "description": "Adjust the calibration factor as required" } } - } + }, + "title": "Mold Indicator" } diff --git a/homeassistant/components/monarch_money/icons.json b/homeassistant/components/monarch_money/icons.json index 95c5eb3cca4..6faa40ecda0 100644 --- a/homeassistant/components/monarch_money/icons.json +++ b/homeassistant/components/monarch_money/icons.json @@ -1,10 +1,10 @@ { "entity": { "sensor": { - "sum_income": { "default": "mdi:cash-plus" }, - "sum_expense": { "default": "mdi:cash-minus" }, "savings": { "default": "mdi:piggy-bank-outline" }, - "savings_rate": { "default": "mdi:cash-sync" } + "savings_rate": { "default": "mdi:cash-sync" }, + "sum_expense": { "default": "mdi:cash-minus" }, + "sum_income": { "default": "mdi:cash-plus" } } } } diff --git a/homeassistant/components/monarch_money/strings.json b/homeassistant/components/monarch_money/strings.json index d7a28940d7a..5b40d7699aa 100644 --- a/homeassistant/components/monarch_money/strings.json +++ b/homeassistant/components/monarch_money/strings.json @@ -1,46 +1,45 @@ { "config": { - "step": { - "user": { - "description": "Enter your Monarch Money email and password, if required you will also be prompted for your MFA code.", - "data": { - "mfa_secret": "Add your MFA Secret. See docs for help.", - "mfa_code": "Enter your MFA code", - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "mfa_required": "Multi-factor authentication required.", - "bad_mfa": "Your code was invalid, please try again or use a recovery token." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "bad_mfa": "Your code was invalid, please try again or use a recovery token.", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "mfa_required": "Multi-factor authentication required." + }, + "step": { + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "mfa_code": "Enter your MFA code", + "mfa_secret": "Add your MFA Secret. See docs for help.", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Enter your Monarch Money email and password, if required you will also be prompted for your MFA code." + } } }, "entity": { "sensor": { - "balance": { "name": "Balance" }, - "value": { "name": "Value" }, - "age": { "name": "Data age" }, - "sum_income": { - "name": "Income year to date" - }, - "sum_expense": { - "name": "Expense year to date" - }, + "balance": { "name": "Balance" }, "savings": { "name": "Savings year to date" }, "savings_rate": { "name": "Savings rate" - } + }, + "sum_expense": { + "name": "Expense year to date" + }, + "sum_income": { + "name": "Income year to date" + }, + "value": { "name": "Value" } } } } diff --git a/homeassistant/components/monoprice/icons.json b/homeassistant/components/monoprice/icons.json index d560c7bcfa8..d03ff5ad708 100644 --- a/homeassistant/components/monoprice/icons.json +++ b/homeassistant/components/monoprice/icons.json @@ -1,10 +1,10 @@ { "services": { - "snapshot": { - "service": "mdi:content-copy" - }, "restore": { "service": "mdi:content-paste" + }, + "snapshot": { + "service": "mdi:content-copy" } } } diff --git a/homeassistant/components/monoprice/strings.json b/homeassistant/components/monoprice/strings.json index 003531518dc..a014ed03399 100644 --- a/homeassistant/components/monoprice/strings.json +++ b/homeassistant/components/monoprice/strings.json @@ -1,8 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "title": "Connect to the device", "data": { "port": "[%key:common::config_flow::data::port%]", "source_1": "Name of source #1", @@ -11,21 +17,14 @@ "source_4": "Name of source #4", "source_5": "Name of source #5", "source_6": "Name of source #6" - } + }, + "title": "Connect to the device" } - }, - "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%]" } }, "options": { "step": { "init": { - "title": "Configure sources", "data": { "source_1": "[%key:component::monoprice::config::step::user::data::source_1%]", "source_2": "[%key:component::monoprice::config::step::user::data::source_2%]", @@ -33,18 +32,19 @@ "source_4": "[%key:component::monoprice::config::step::user::data::source_4%]", "source_5": "[%key:component::monoprice::config::step::user::data::source_5%]", "source_6": "[%key:component::monoprice::config::step::user::data::source_6%]" - } + }, + "title": "Configure sources" } } }, "services": { - "snapshot": { - "name": "Snapshot", - "description": "Takes a snapshot of the media player zone." - }, "restore": { - "name": "Restore", - "description": "Restores a snapshot of the media player zone." + "description": "Restores a snapshot of the media player zone.", + "name": "Restore" + }, + "snapshot": { + "description": "Takes a snapshot of the media player zone.", + "name": "Snapshot" } } } diff --git a/homeassistant/components/monzo/strings.json b/homeassistant/components/monzo/strings.json index fa916021138..350a98e71fa 100644 --- a/homeassistant/components/monzo/strings.json +++ b/homeassistant/components/monzo/strings.json @@ -1,40 +1,40 @@ { "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%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "Wrong account: The credentials provided do not match this Monzo account." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "await_approval_confirmation": { + "data": { + "confirm": "I've approved" + }, + "description": "Before proceeding, open your Monzo app and approve the request from Home Assistant.", + "title": "Confirm in Monzo app" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Monzo integration needs to re-authenticate your account" - }, - "await_approval_confirmation": { - "title": "Confirm in Monzo app", - "description": "Before proceeding, open your Monzo app and approve the request from Home Assistant.", - "data": { - "confirm": "I've approved" - } + "description": "The Monzo integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "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%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "Wrong account: The credentials provided do not match this Monzo account." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { @@ -42,11 +42,11 @@ "balance": { "name": "Balance" }, - "total_balance": { - "name": "Total balance" - }, "pot_balance": { "name": "[%key:component::monzo::entity::sensor::balance::name%]" + }, + "total_balance": { + "name": "Total balance" } } } diff --git a/homeassistant/components/moon/strings.json b/homeassistant/components/moon/strings.json index e0e2c9ea6f4..8048f344c7b 100644 --- a/homeassistant/components/moon/strings.json +++ b/homeassistant/components/moon/strings.json @@ -1,5 +1,4 @@ { - "title": "Moon", "config": { "step": { "user": { @@ -37,5 +36,6 @@ } } } - } + }, + "title": "Moon" } diff --git a/homeassistant/components/mopeka/manifest.json b/homeassistant/components/mopeka/manifest.json index ee644c16c15..1b4e8667a2b 100644 --- a/homeassistant/components/mopeka/manifest.json +++ b/homeassistant/components/mopeka/manifest.json @@ -3,58 +3,58 @@ "name": "Mopeka", "bluetooth": [ { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [3], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [4], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [5], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [6], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [8], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [9], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [10], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [11], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb", - "manufacturer_id": 89, + "connectable": false, "manufacturer_data_start": [12], - "connectable": false + "manufacturer_id": 89, + "service_uuid": "0000fee5-0000-1000-8000-00805f9b34fb" } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/mopeka/strings.json b/homeassistant/components/mopeka/strings.json index 23feb554772..77ce8adcc90 100644 --- a/homeassistant/components/mopeka/strings.json +++ b/homeassistant/components/mopeka/strings.json @@ -1,35 +1,35 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "step": { + "bluetooth_confirm": { + "data": { + "medium_type": "[%key:component::mopeka::config::step::user::data::medium_type%]" + }, + "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", "data": { "address": "[%key:common::config_flow::data::device%]", "medium_type": "Medium type" - } - }, - "bluetooth_confirm": { - "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]", - "data": { - "medium_type": "[%key:component::mopeka::config::step::user::data::medium_type%]" - } + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } }, "options": { "step": { "init": { - "title": "Configure Mopeka", "data": { "medium_type": "[%key:component::mopeka::config::step::user::data::medium_type%]" - } + }, + "title": "Configure Mopeka" } } } diff --git a/homeassistant/components/motion_blinds/strings.json b/homeassistant/components/motion_blinds/strings.json index 4d93dcef6c0..5235afd6003 100644 --- a/homeassistant/components/motion_blinds/strings.json +++ b/homeassistant/components/motion_blinds/strings.json @@ -1,63 +1,34 @@ { "config": { - "flow_title": "{short_mac} ({ip_address})", - "step": { - "user": { - "description": "Connect to your Motionblinds gateway. If the IP address is not set, auto-discovery is used", - "data": { - "host": "[%key:common::config_flow::data::ip%]" - } - }, - "connect": { - "description": "You will need the 16 character API key, see {documentation_url} for instructions", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "select": { - "title": "Select the Motionblinds gateway that you wish to connect", - "description": "Run the setup again if you want to connect additional Motionblinds gateways", - "data": { - "select_ip": "[%key:common::config_flow::data::ip%]" - } - } - }, - "error": { - "discovery_error": "Failed to discover a Motion Gateway" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "connection_error": "[%key:common::config_flow::error::cannot_connect%]", "not_motionblinds": "Discovered device is not a Motionblinds gateway" - } - }, - "options": { + }, + "error": { + "discovery_error": "Failed to discover a Motion Gateway" + }, + "flow_title": "{short_mac} ({ip_address})", "step": { - "init": { + "connect": { "data": { - "wait_for_push": "Wait for multicast push on update" - } - } - } - }, - "services": { - "set_absolute_position": { - "name": "Set absolute position", - "description": "Sets the absolute position of the cover.", - "fields": { - "absolute_position": { - "name": "Absolute position", - "description": "Absolute position to move to." + "api_key": "[%key:common::config_flow::data::api_key%]" }, - "tilt_position": { - "name": "Tilt position", - "description": "Tilt position to move to." + "description": "You will need the 16 character API key, see {documentation_url} for instructions" + }, + "select": { + "data": { + "select_ip": "[%key:common::config_flow::data::ip%]" }, - "width": { - "name": "Width", - "description": "Specify the width that is covered, only for TDBU Combined entities." - } + "description": "Run the setup again if you want to connect additional Motionblinds gateways", + "title": "Select the Motionblinds gateway that you wish to connect" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]" + }, + "description": "Connect to your Motionblinds gateway. If the IP address is not set, auto-discovery is used" } } }, @@ -71,23 +42,52 @@ } }, "cover": { - "top": { - "name": "Top" - }, "bottom": { "name": "Bottom" }, "combined": { "name": "Combined" + }, + "top": { + "name": "Top" } }, "sensor": { - "top_battery": { - "name": "Top battery" - }, "bottom_battery": { "name": "Bottom battery" + }, + "top_battery": { + "name": "Top battery" } } + }, + "options": { + "step": { + "init": { + "data": { + "wait_for_push": "Wait for multicast push on update" + } + } + } + }, + "services": { + "set_absolute_position": { + "description": "Sets the absolute position of the cover.", + "fields": { + "absolute_position": { + "description": "Absolute position to move to.", + "name": "Absolute position" + }, + "tilt_position": { + "description": "Tilt position to move to.", + "name": "Tilt position" + }, + "width": { + "description": "Specify the width that is covered, only for TDBU Combined entities.", + "name": "Width" + } + }, + "name": "Set absolute position" + } } } diff --git a/homeassistant/components/motionblinds_ble/manifest.json b/homeassistant/components/motionblinds_ble/manifest.json index 70cddce30a1..08c66d37a92 100644 --- a/homeassistant/components/motionblinds_ble/manifest.json +++ b/homeassistant/components/motionblinds_ble/manifest.json @@ -3,8 +3,8 @@ "name": "Motionblinds Bluetooth", "bluetooth": [ { - "local_name": "MOTION_*", - "connectable": true + "connectable": true, + "local_name": "MOTION_*" } ], "codeowners": ["@LennP", "@jerrybboy"], diff --git a/homeassistant/components/motionblinds_ble/strings.json b/homeassistant/components/motionblinds_ble/strings.json index 4589c2d873b..d09373ac00e 100644 --- a/homeassistant/components/motionblinds_ble/strings.json +++ b/homeassistant/components/motionblinds_ble/strings.json @@ -9,40 +9,14 @@ "invalid_mac_code": "Invalid MAC code" }, "step": { - "user": { - "description": "Fill in the 4-character MAC code of your motor, for example F3ED or E3A6", - "data": { - "mac_code": "MAC code" - } - }, "confirm": { "description": "What kind of blind is {display_name}?" - } - } - }, - "options": { - "step": { - "init": { - "title": "Connection options", - "description": "The default disconnect time is 15 seconds, adjustable using the slider below. You may want to adjust this if you have larger blinds or other specific needs. You can also enable a permanent connection to the motor, which disables the disconnect time and automatically reconnects when the motor is disconnected for any reason.\n**WARNING**: Changing any of the below options may significantly reduce battery life of your motor!", + }, + "user": { "data": { - "permanent_connection": "Permanent connection", - "disconnect_time": "Disconnect time (seconds)" - } - } - } - }, - "selector": { - "blind_type": { - "options": { - "roller": "Roller blind", - "honeycomb": "Honeycomb blind", - "roman": "Roman blind", - "venetian": "Venetian blind", - "venetian_tilt_only": "Venetian blind (tilt-only)", - "double_roller": "Double roller blind", - "curtain": "Curtain blind", - "vertical": "Vertical blind" + "mac_code": "MAC code" + }, + "description": "Fill in the 4-character MAC code of your motor, for example F3ED or E3A6" } } }, @@ -69,22 +43,48 @@ } }, "sensor": { - "connection": { - "name": "Connection status", - "state": { - "connected": "[%key:common::state::connected%]", - "disconnected": "[%key:common::state::disconnected%]", - "connecting": "Connecting", - "disconnecting": "Disconnecting" - } - }, "calibration": { "name": "Calibration status", "state": { "calibrated": "Calibrated", - "uncalibrated": "Uncalibrated", - "calibrating": "Calibration in progress" + "calibrating": "Calibration in progress", + "uncalibrated": "Uncalibrated" } + }, + "connection": { + "name": "Connection status", + "state": { + "connected": "[%key:common::state::connected%]", + "connecting": "Connecting", + "disconnected": "[%key:common::state::disconnected%]", + "disconnecting": "Disconnecting" + } + } + } + }, + "options": { + "step": { + "init": { + "data": { + "disconnect_time": "Disconnect time (seconds)", + "permanent_connection": "Permanent connection" + }, + "description": "The default disconnect time is 15 seconds, adjustable using the slider below. You may want to adjust this if you have larger blinds or other specific needs. You can also enable a permanent connection to the motor, which disables the disconnect time and automatically reconnects when the motor is disconnected for any reason.\n**WARNING**: Changing any of the below options may significantly reduce battery life of your motor!", + "title": "Connection options" + } + } + }, + "selector": { + "blind_type": { + "options": { + "curtain": "Curtain blind", + "double_roller": "Double roller blind", + "honeycomb": "Honeycomb blind", + "roller": "Roller blind", + "roman": "Roman blind", + "venetian": "Venetian blind", + "venetian_tilt_only": "Venetian blind (tilt-only)", + "vertical": "Vertical blind" } } } diff --git a/homeassistant/components/motioneye/icons.json b/homeassistant/components/motioneye/icons.json index 7cc93d528e8..5452051ec79 100644 --- a/homeassistant/components/motioneye/icons.json +++ b/homeassistant/components/motioneye/icons.json @@ -1,11 +1,11 @@ { "services": { - "set_text_overlay": { - "service": "mdi:text-box-outline" - }, "action": { "service": "mdi:gesture-tap-button" }, + "set_text_overlay": { + "service": "mdi:text-box-outline" + }, "snapshot": { "service": "mdi:camera" } diff --git a/homeassistant/components/motioneye/strings.json b/homeassistant/components/motioneye/strings.json index ea7901617cb..09a48a8cdf8 100644 --- a/homeassistant/components/motioneye/strings.json +++ b/homeassistant/components/motioneye/strings.json @@ -1,38 +1,27 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "admin_username": "Admin username", - "admin_password": "Admin password", - "surveillance_username": "Surveillance username", - "surveillance_password": "Surveillance password" - } - }, - "hassio_confirm": { - "title": "motionEye via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the motionEye service provided by the add-on: {addon}?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]", - "invalid_url": "Invalid URL" + "invalid_url": "Invalid URL", + "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { "step": { - "init": { + "hassio_confirm": { + "description": "Do you want to configure Home Assistant to connect to the motionEye service provided by the add-on: {addon}?", + "title": "motionEye via Home Assistant add-on" + }, + "user": { "data": { - "webhook_set": "Configure motionEye webhooks to report events to Home Assistant", - "webhook_set_overwrite": "Overwrite unrecognized webhooks", - "stream_url_template": "Stream URL template" + "admin_password": "Admin password", + "admin_username": "Admin username", + "surveillance_password": "Surveillance password", + "surveillance_username": "Surveillance username", + "url": "[%key:common::config_flow::data::url%]" } } } @@ -47,59 +36,70 @@ "motion_detection": { "name": "Motion detection" }, - "text_overlay": { - "name": "Text overlay" - }, - "video_streaming": { - "name": "Video streaming" + "movies": { + "name": "Movies" }, "still_images": { "name": "Still images" }, - "movies": { - "name": "Movies" + "text_overlay": { + "name": "Text overlay" }, "upload_enabled": { "name": "Upload enabled" + }, + "video_streaming": { + "name": "Video streaming" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "stream_url_template": "Stream URL template", + "webhook_set": "Configure motionEye webhooks to report events to Home Assistant", + "webhook_set_overwrite": "Overwrite unrecognized webhooks" + } } } }, "services": { - "set_text_overlay": { - "name": "Set text overlay", - "description": "Sets the text overlay for a camera.", - "fields": { - "left_text": { - "name": "Left text overlay", - "description": "Text to display on the left." - }, - "custom_left_text": { - "name": "Left custom text", - "description": "Custom text to display on the left." - }, - "right_text": { - "name": "Right text overlay", - "description": "Text to display on the right." - }, - "custom_right_text": { - "name": "Right custom text", - "description": "Custom text to display on the right." - } - } - }, "action": { - "name": "Action", "description": "Triggers a motionEye action.", "fields": { "action": { - "name": "Action", - "description": "Action to trigger." + "description": "Action to trigger.", + "name": "Action" } - } + }, + "name": "Action" + }, + "set_text_overlay": { + "description": "Sets the text overlay for a camera.", + "fields": { + "custom_left_text": { + "description": "Custom text to display on the left.", + "name": "Left custom text" + }, + "custom_right_text": { + "description": "Custom text to display on the right.", + "name": "Right custom text" + }, + "left_text": { + "description": "Text to display on the left.", + "name": "Left text overlay" + }, + "right_text": { + "description": "Text to display on the right.", + "name": "Right text overlay" + } + }, + "name": "Set text overlay" }, "snapshot": { - "name": "Snapshot", - "description": "Triggers a motionEye still snapshot." + "description": "Triggers a motionEye still snapshot.", + "name": "Snapshot" } } } diff --git a/homeassistant/components/motionmount/strings.json b/homeassistant/components/motionmount/strings.json index 8d079dd777d..ffc19d73063 100644 --- a/homeassistant/components/motionmount/strings.json +++ b/homeassistant/components/motionmount/strings.json @@ -3,11 +3,38 @@ "incorrect_pin": "PIN is not correct" }, "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%]", + "invalid_response": "Failed to connect due to an invalid response from the MotionMount.", + "not_connected": "Failed to connect.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "time_out": "[%key:common::config_flow::error::timeout_connect%]" + }, + "error": { + "pin": "[%key:component::motionmount::common::incorrect_pin%]" + }, "flow_title": "{name}", + "progress": { + "progress_action": "Too many incorrect PIN attempts. Please wait {timeout} s..." + }, "step": { + "auth": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "data_description": { + "pin": "The user level PIN configured on the MotionMount." + }, + "description": "Your MotionMount requires a PIN to operate.", + "title": "Authenticate to your MotionMount" + }, + "backoff": { + "description": "Too many incorrect PIN attempts.", + "title": "Authenticate to your MotionMount" + }, "user": { - "title": "Link your MotionMount", - "description": "Set up your MotionMount to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" @@ -15,41 +42,14 @@ "data_description": { "host": "The hostname or IP address of the MotionMount.", "port": "The port of the MotionMount." - } + }, + "description": "Set up your MotionMount to integrate with Home Assistant.", + "title": "Link your MotionMount" }, "zeroconf_confirm": { "description": "Do you want to set up {name}?", "title": "Discovered MotionMount" - }, - "auth": { - "title": "Authenticate to your MotionMount", - "description": "Your MotionMount requires a PIN to operate.", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - }, - "data_description": { - "pin": "The user level PIN configured on the MotionMount." - } - }, - "backoff": { - "title": "Authenticate to your MotionMount", - "description": "Too many incorrect PIN attempts." } - }, - "error": { - "pin": "[%key:component::motionmount::common::incorrect_pin%]" - }, - "progress": { - "progress_action": "Too many incorrect PIN attempts. Please wait {timeout} s..." - }, - "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%]", - "time_out": "[%key:common::config_flow::error::timeout_connect%]", - "not_connected": "Failed to connect.", - "invalid_response": "Failed to connect due to an invalid response from the MotionMount.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -66,19 +66,6 @@ "name": "Turn" } }, - "sensor": { - "motionmount_error_status": { - "name": "Error status", - "state": { - "none": "None", - "motor": "Motor", - "hdmi_cec": "HDMI CEC", - "obstruction": "Obstruction", - "tv_width_constraint": "TV width constraint", - "internal": "Internal" - } - } - }, "select": { "motionmount_preset": { "name": "Preset", @@ -86,17 +73,30 @@ "0_wall": "Wall" } } + }, + "sensor": { + "motionmount_error_status": { + "name": "Error status", + "state": { + "hdmi_cec": "HDMI CEC", + "internal": "Internal", + "motor": "Motor", + "none": "None", + "obstruction": "Obstruction", + "tv_width_constraint": "TV width constraint" + } + } } }, "exceptions": { "failed_communication": { "message": "Failed to communicate with MotionMount" }, - "no_pin_provided": { - "message": "No PIN provided" - }, "incorrect_pin": { "message": "[%key:component::motionmount::common::incorrect_pin%]" + }, + "no_pin_provided": { + "message": "No PIN provided" } } } diff --git a/homeassistant/components/mpd/strings.json b/homeassistant/components/mpd/strings.json index 44cbe8b2bb2..d28b6ac67d6 100644 --- a/homeassistant/components/mpd/strings.json +++ b/homeassistant/components/mpd/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -11,13 +18,6 @@ "host": "The hostname or IP address of your Music Player Daemon instance." } } - }, - "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%]" } } } diff --git a/homeassistant/components/mqtt/icons.json b/homeassistant/components/mqtt/icons.json index 1aa0902b77e..513c491b2c8 100644 --- a/homeassistant/components/mqtt/icons.json +++ b/homeassistant/components/mqtt/icons.json @@ -1,11 +1,11 @@ { "services": { - "publish": { - "service": "mdi:publish" - }, "dump": { "service": "mdi:database-export" }, + "publish": { + "service": "mdi:publish" + }, "reload": { "service": "mdi:reload" } diff --git a/homeassistant/components/mqtt/strings.json b/homeassistant/components/mqtt/strings.json index a9ef3907e44..21a88bb50b1 100644 --- a/homeassistant/components/mqtt/strings.json +++ b/homeassistant/components/mqtt/strings.json @@ -1,120 +1,10 @@ { - "issues": { - "deprecated_object_id": { - "title": "Deprecated option object_id used", - "description": "Entity {entity_id} uses the `object_id` option which is deprecated. To fix the issue, replace the `object_id: {object_id}` option with `default_entity_id: {domain}.{object_id}` in your \"configuration.yaml\", and restart Home Assistant." - }, - "deprecated_vacuum_battery_feature": { - "title": "Deprecated battery feature used", - "description": "Vacuum entity {entity_id} implements the battery feature which is deprecated. This will stop working in Home Assistant 2026.2. Implement a separate entity for the battery state instead. To fix the issue, remove the `battery` feature from the configured supported features, and restart Home Assistant." - }, - "invalid_platform_config": { - "title": "Invalid config found for MQTT {domain} item", - "description": "Home Assistant detected an invalid config for a manually configured item.\n\nPlatform domain: **{domain}**\nConfiguration file: **{config_file}**\nNear line: **{line}**\nConfiguration found:\n```yaml\n{config}\n```\nError: **{error}**.\n\nMake sure the configuration is valid and [reload](/developer-tools/yaml) the manually configured MQTT items or restart Home Assistant to fix this issue." - }, - "subentry_migration_discovery": { - "title": "MQTT device \"{name}\" subentry migration to MQTT discovery", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::mqtt::issues::subentry_migration_discovery::title%]", - "description": "Exported MQTT device \"{name}\" identified via MQTT discovery. Select **Submit** to confirm that the MQTT device is to be migrated to the main MQTT configuration, and to remove the existing MQTT device subentry. Make sure that the discovery is retained at the MQTT broker, or is resent after the subentry is removed, so that the MQTT device will be set up correctly. As an alternative you can change the device identifiers and entity unique ID-s in your MQTT discovery configuration payload, and cancel this repair if you want to keep the MQTT device subentry." - } - } - } - }, - "subentry_migration_yaml": { - "title": "MQTT device \"{name}\" subentry migration to YAML", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::mqtt::issues::subentry_migration_yaml::title%]", - "description": "Exported MQTT device \"{name}\" identified in YAML configuration. Select **Submit** to confirm that the MQTT device is to be migrated to main MQTT config entry, and to remove the existing MQTT device subentry. As an alternative you can change the device identifiers and entity unique ID-s in your configuration.yaml file, and cancel this repair if you want to keep the MQTT device subentry." - } - } - } - } - }, "config": { - "step": { - "user": { - "description": "Please choose how you want to connect to the MQTT broker:", - "menu_options": { - "addon": "Use the official {addon} add-on.", - "broker": "Manually enter the MQTT broker connection details" - } - }, - "broker": { - "description": "Please enter the connection information of your MQTT broker.", - "data": { - "broker": "Broker", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "advanced_options": "Advanced options", - "certificate": "Upload custom CA certificate file", - "client_id": "Client ID (leave empty to randomly generated one)", - "client_cert": "Upload client certificate file", - "client_key": "Upload private key file", - "client_key_password": "[%key:common::config_flow::data::password%]", - "keepalive": "The time between sending keep alive messages", - "tls_insecure": "Ignore broker certificate validation", - "protocol": "MQTT protocol", - "set_ca_cert": "Broker certificate validation", - "set_client_cert": "Use a client certificate", - "transport": "MQTT transport", - "ws_headers": "WebSocket headers in JSON format", - "ws_path": "WebSocket path" - }, - "data_description": { - "broker": "The hostname or IP address of your MQTT broker.", - "port": "The port your MQTT broker listens to. For example 1883.", - "username": "The username to log in to your MQTT broker.", - "password": "The password to log in to your MQTT broker.", - "advanced_options": "Enable and select **Next** to set advanced options.", - "certificate": "The custom CA certificate file to validate your MQTT brokers certificate.", - "client_id": "The unique ID to identify the Home Assistant MQTT API as MQTT client. It is recommended to leave this option blank.", - "client_cert": "The client certificate to authenticate against your MQTT broker.", - "client_key": "The private key file that belongs to your client certificate.", - "client_key_password": "The password for the private key file (if set).", - "keepalive": "A value less than 90 seconds is advised.", - "tls_insecure": "Option to ignore validation of your MQTT broker's certificate.", - "protocol": "The MQTT protocol your broker operates at. For example 3.1.1.", - "set_ca_cert": "Select **Auto** for automatic CA validation, or **Custom** and select **Next** to set a custom CA certificate, to allow validating your MQTT brokers certificate.", - "set_client_cert": "Enable and select **Next** to set a client certificate and private key to authenticate against your MQTT broker.", - "transport": "The transport to be used for the connection to your MQTT broker.", - "ws_headers": "The WebSocket headers to pass through the WebSocket-based connection to your MQTT broker.", - "ws_path": "The WebSocket path to be used for the connection to your MQTT broker." - } - }, - "install_addon": { - "title": "Installing add-on" - }, - "start_addon": { - "title": "Starting add-on" - }, - "hassio_confirm": { - "title": "MQTT broker via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the MQTT broker provided by the add-on {addon}?" - }, - "reauth_confirm": { - "title": "Re-authentication required with the MQTT broker", - "description": "The MQTT broker reported an authentication error. Please confirm the brokers correct username and password.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::mqtt::config::step::broker::data_description::username%]", - "password": "[%key:component::mqtt::config::step::broker::data_description::password%]" - } - } - }, "abort": { + "addon_connection_failed": "Failed to connect to the {addon} add-on. Check the add-on status and try again later.", "addon_info_failed": "Failed get info for the {addon} add-on.", "addon_install_failed": "Failed to install the {addon} add-on.", "addon_start_failed": "Failed to start the {addon} add-on.", - "addon_connection_failed": "Failed to connect to the {addon} add-on. Check the add-on status and try again later.", "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", @@ -122,132 +12,216 @@ }, "error": { "bad_birth": "Invalid birth topic", - "bad_will": "Invalid will topic", - "bad_discovery_prefix": "Invalid discovery prefix", "bad_certificate": "The CA certificate is invalid", "bad_client_cert": "Invalid client certificate, ensure a valid file is supplied", - "client_key_error": "Invalid private key file or invalid password supplied", "bad_client_cert_key": "Client certificate and private key are not a valid pair", + "bad_discovery_prefix": "Invalid discovery prefix", + "bad_will": "Invalid will topic", "bad_ws_headers": "Supply valid HTTP headers as a JSON object", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "client_key_error": "Invalid private key file or invalid password supplied", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_inclusion": "The client certificate and private key must be configured together" + }, + "step": { + "broker": { + "data": { + "advanced_options": "Advanced options", + "broker": "Broker", + "certificate": "Upload custom CA certificate file", + "client_cert": "Upload client certificate file", + "client_id": "Client ID (leave empty to randomly generated one)", + "client_key": "Upload private key file", + "client_key_password": "[%key:common::config_flow::data::password%]", + "keepalive": "The time between sending keep alive messages", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "protocol": "MQTT protocol", + "set_ca_cert": "Broker certificate validation", + "set_client_cert": "Use a client certificate", + "tls_insecure": "Ignore broker certificate validation", + "transport": "MQTT transport", + "username": "[%key:common::config_flow::data::username%]", + "ws_headers": "WebSocket headers in JSON format", + "ws_path": "WebSocket path" + }, + "data_description": { + "advanced_options": "Enable and select **Next** to set advanced options.", + "broker": "The hostname or IP address of your MQTT broker.", + "certificate": "The custom CA certificate file to validate your MQTT brokers certificate.", + "client_cert": "The client certificate to authenticate against your MQTT broker.", + "client_id": "The unique ID to identify the Home Assistant MQTT API as MQTT client. It is recommended to leave this option blank.", + "client_key": "The private key file that belongs to your client certificate.", + "client_key_password": "The password for the private key file (if set).", + "keepalive": "A value less than 90 seconds is advised.", + "password": "The password to log in to your MQTT broker.", + "port": "The port your MQTT broker listens to. For example 1883.", + "protocol": "The MQTT protocol your broker operates at. For example 3.1.1.", + "set_ca_cert": "Select **Auto** for automatic CA validation, or **Custom** and select **Next** to set a custom CA certificate, to allow validating your MQTT brokers certificate.", + "set_client_cert": "Enable and select **Next** to set a client certificate and private key to authenticate against your MQTT broker.", + "tls_insecure": "Option to ignore validation of your MQTT broker's certificate.", + "transport": "The transport to be used for the connection to your MQTT broker.", + "username": "The username to log in to your MQTT broker.", + "ws_headers": "The WebSocket headers to pass through the WebSocket-based connection to your MQTT broker.", + "ws_path": "The WebSocket path to be used for the connection to your MQTT broker." + }, + "description": "Please enter the connection information of your MQTT broker." + }, + "hassio_confirm": { + "description": "Do you want to configure Home Assistant to connect to the MQTT broker provided by the add-on {addon}?", + "title": "MQTT broker via Home Assistant add-on" + }, + "install_addon": { + "title": "Installing add-on" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::mqtt::config::step::broker::data_description::password%]", + "username": "[%key:component::mqtt::config::step::broker::data_description::username%]" + }, + "description": "The MQTT broker reported an authentication error. Please confirm the brokers correct username and password.", + "title": "Re-authentication required with the MQTT broker" + }, + "start_addon": { + "title": "Starting add-on" + }, + "user": { + "description": "Please choose how you want to connect to the MQTT broker:", + "menu_options": { + "addon": "Use the official {addon} add-on.", + "broker": "Manually enter the MQTT broker connection details" + } + } } }, "config_subentries": { "device": { - "initiate_flow": { - "user": "Add MQTT device", - "reconfigure": "Reconfigure MQTT device" + "abort": { + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "create_entry": { + "default": "MQTT device with {platform} entity \"{entity}\" was set up successfully.\n\nNote that you can reconfigure the MQTT device at any time, e.g. to add more entities." }, "entry_type": "MQTT device", + "error": { + "cover_get_and_set_position_must_be_set_together": "The get position and set position topic options must be set together", + "cover_get_position_template_must_be_used_with_get_position_topic": "The position value template must be used together with the position state topic", + "cover_set_position_template_must_be_used_with_set_position_topic": "The set position template must be used with the set position topic", + "cover_tilt_command_template_must_be_used_with_tilt_command_topic": "The tilt command template must be used with the tilt command topic", + "cover_tilt_status_template_must_be_used_with_tilt_status_topic": "The tilt value template must be used with the tilt status topic", + "cover_value_template_must_be_used_with_state_topic": "The value template must be used with the state topic option", + "empty_list_not_allowed": "Empty list is not allowed. Add at least one item", + "fan_preset_mode_reset_in_preset_modes_list": "Payload \"reset preset mode\" is not a valid as a preset mode", + "fan_speed_range_max_must_be_greater_than_speed_range_min": "Speed range max must be greater than speed range min", + "invalid_input": "Invalid value", + "invalid_regular_expression": "Must be a valid regular expression", + "invalid_subscribe_topic": "Invalid subscribe topic", + "invalid_supported_color_modes": "Invalid supported color modes selection", + "invalid_template": "Invalid template", + "invalid_uom": "The unit of measurement \"{unit_of_measurement}\" is not supported by the selected device class, please either remove the device class, select a device class which supports \"{unit_of_measurement}\", or pick a supported unit of measurement from the list", + "invalid_uom_for_state_class": "The unit of measurement \"{unit_of_measurement}\" is not supported by the selected state class, please either remove the state class, select a state class which supports \"{unit_of_measurement}\", or pick a supported unit of measurement from the list", + "invalid_url": "Invalid URL", + "last_reset_not_with_state_class_total": "The last reset value template option should be used with state class 'Total' only", + "max_below_min": "Max value should be greater or equal to min value", + "max_below_min_humidity": "Max humidity value should be greater than min humidity value", + "max_below_min_kelvin": "Max Kelvin value should be greater than min Kelvin value", + "max_below_min_temperature": "Max temperature value should be greater than min temperature value", + "options_device_class_enum": "The 'Options' setting must be used with the Enumeration device class. If you continue, the existing options will be reset", + "options_not_allowed_with_state_class_or_uom": "The 'Options' setting is not allowed when state class or unit of measurement are used", + "options_with_enum_device_class": "Configure options for the enumeration sensor", + "preset_mode_none_not_allowed": "Preset \"none\" is not a valid preset mode", + "uom_required_for_device_class": "The selected device class requires a unit" + }, + "initiate_flow": { + "reconfigure": "Reconfigure MQTT device", + "user": "Add MQTT device" + }, "step": { "availability": { - "title": "Availability options", - "description": "The availability feature allows a device to report its availability.", "data": { - "availability_topic": "Availability topic", "availability_template": "Availability template", + "availability_topic": "Availability topic", "payload_available": "Payload available", "payload_not_available": "Payload not available" }, "data_description": { - "availability_topic": "Topic to receive the availability payload on", "availability_template": "A [template]({value_templating_url}) to render the availability payload received on the availability topic", + "availability_topic": "Topic to receive the availability payload on", "payload_available": "The payload that indicates the device is available (defaults to 'online')", "payload_not_available": "The payload that indicates the device is not available (defaults to 'offline')" - } - }, - "device": { - "title": "Configure MQTT device details", - "description": "Enter the MQTT device details:", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "configuration_url": "Configuration URL", - "model": "Model", - "model_id": "Model ID", - "manufacturer": "Manufacturer" }, - "data_description": { - "name": "The name of the manually added MQTT device.", - "configuration_url": "A link to the webpage that can manage the configuration of this device. Can be either a 'http://', 'https://' or an internal 'homeassistant://' URL.", - "model": "E.g. 'Cleanmaster Pro'.", - "model_id": "E.g. '123NK2PRO'.", - "manufacturer": "E.g. Cleanmaster Ltd." - }, - "sections": { - "advanced_settings": { - "name": "Advanced device settings", - "data": { - "sw_version": "Software version", - "hw_version": "Hardware version" - }, - "data_description": { - "sw_version": "The software version of the device. E.g. '2025.1.0'.", - "hw_version": "The hardware version of the device. E.g. 'v1.0 rev a'." - } - }, - "mqtt_settings": { - "name": "MQTT settings", - "data": { - "qos": "QoS" - }, - "data_description": { - "qos": "The Quality of Service value the device's entities should use." - } - } - } - }, - "summary_menu": { - "title": "Reconfigure \"{mqtt_device}\"", - "description": "Entities set up:\n{mqtt_items}\n\nDecide what to do next:", - "menu_options": { - "entity": "Add another entity to \"{mqtt_device}\"", - "update_entity": "Update entity properties", - "delete_entity": "Delete an entity", - "availability": "Configure availability", - "device": "Update device properties", - "export": "Export MQTT device configuration", - "save_changes": "Save changes" - } - }, - "entity": { - "title": "Configure MQTT device \"{mqtt_device}\"", - "description": "Configure the basic {platform_label}entity settings{entity_name_label}", - "data": { - "platform": "Type of entity", - "name": "Entity name", - "entity_picture": "Entity picture" - }, - "data_description": { - "platform": "The type of the entity to configure.", - "name": "The name of the entity. Leave empty to set it to `None` to [mark it as main feature of the MQTT device]({naming_entities_url}).", - "entity_picture": "An URL to a picture to be assigned." - } + "description": "The availability feature allows a device to report its availability.", + "title": "Availability options" }, "delete_entity": { - "title": "Delete entity", - "description": "Delete an entity. The entity will be removed from the device. Removing an entity will break any automations or scripts that depend on it.", "data": { "component": "Entity" }, "data_description": { "component": "Select the entity you want to delete. Minimal one entity is required." - } + }, + "description": "Delete an entity. The entity will be removed from the device. Removing an entity will break any automations or scripts that depend on it.", + "title": "Delete entity" }, - "update_entity": { - "title": "Select entity", - "description": "Select the entity you want to update", + "device": { "data": { - "component": "Entity" + "configuration_url": "Configuration URL", + "manufacturer": "Manufacturer", + "model": "Model", + "model_id": "Model ID", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { - "component": "Select the entity you want to update." - } + "configuration_url": "A link to the webpage that can manage the configuration of this device. Can be either a 'http://', 'https://' or an internal 'homeassistant://' URL.", + "manufacturer": "E.g. Cleanmaster Ltd.", + "model": "E.g. 'Cleanmaster Pro'.", + "model_id": "E.g. '123NK2PRO'.", + "name": "The name of the manually added MQTT device." + }, + "description": "Enter the MQTT device details:", + "sections": { + "advanced_settings": { + "data": { + "hw_version": "Hardware version", + "sw_version": "Software version" + }, + "data_description": { + "hw_version": "The hardware version of the device. E.g. 'v1.0 rev a'.", + "sw_version": "The software version of the device. E.g. '2025.1.0'." + }, + "name": "Advanced device settings" + }, + "mqtt_settings": { + "data": { + "qos": "QoS" + }, + "data_description": { + "qos": "The Quality of Service value the device's entities should use." + }, + "name": "MQTT settings" + } + }, + "title": "Configure MQTT device details" + }, + "entity": { + "data": { + "entity_picture": "Entity picture", + "name": "Entity name", + "platform": "Type of entity" + }, + "data_description": { + "entity_picture": "An URL to a picture to be assigned.", + "name": "The name of the entity. Leave empty to set it to `None` to [mark it as main feature of the MQTT device]({naming_entities_url}).", + "platform": "The type of the entity to configure." + }, + "description": "Configure the basic {platform_label}entity settings{entity_name_label}", + "title": "Configure MQTT device \"{mqtt_device}\"" }, "entity_platform_config": { - "title": "Configure MQTT device \"{mqtt_device}\"", - "description": "Please configure specific details for {platform} entity \"{entity}\":", "data": { "alarm_control_panel_code_mode": "Alarm code validation mode", "climate_feature_action": "Current action support", @@ -258,14 +232,14 @@ "climate_feature_preset_modes": "[%key:component::mqtt::config_subentries::device::step::entity_platform_config::data::fan_feature_preset_modes%]", "climate_feature_swing_horizontal_modes": "Horizontal swing mode support", "climate_feature_swing_modes": "Swing mode support", - "climate_feature_target_temperature": "Target temperature support", "climate_feature_target_humidity": "Target humidity support", + "climate_feature_target_temperature": "Target temperature support", "device_class": "Device class", "entity_category": "Entity category", - "fan_feature_speed": "Speed support", - "fan_feature_preset_modes": "Preset modes support", - "fan_feature_oscillation": "Oscillation support", "fan_feature_direction": "Direction support", + "fan_feature_oscillation": "Oscillation support", + "fan_feature_preset_modes": "Preset modes support", + "fan_feature_speed": "Speed support", "image_processing_mode": "Image processing mode", "options": "Add option", "schema": "Schema", @@ -285,14 +259,14 @@ "climate_feature_preset_modes": "The climate supports preset modes.", "climate_feature_swing_horizontal_modes": "The climate supports horizontal swing modes.", "climate_feature_swing_modes": "The climate supports swing modes.", - "climate_feature_target_temperature": "The climate supports setting the target temperature.", "climate_feature_target_humidity": "The climate supports setting the target humidity.", + "climate_feature_target_temperature": "The climate supports setting the target temperature.", "device_class": "The device class of the {platform} entity. [Learn more.]({url}#device_class)", "entity_category": "Allows marking an entity as device configuration or diagnostics. An entity with a category will not be exposed to cloud, Alexa, or Google Assistant components, nor included in indirect action calls to devices or areas. Sensor entities cannot be assigned a device configuration class. [Learn more.]({registry_properties_url})", - "fan_feature_speed": "The fan supports multiple speeds.", - "fan_feature_preset_modes": "The fan supports preset modes.", - "fan_feature_oscillation": "The fan supports oscillation.", "fan_feature_direction": "The fan supports direction.", + "fan_feature_oscillation": "The fan supports oscillation.", + "fan_feature_preset_modes": "The fan supports preset modes.", + "fan_feature_speed": "The fan supports multiple speeds.", "image_processing_mode": "Select how the image data is received.", "options": "Options for allowed sensor state values. The sensor’s Device class must be set to Enumeration. The 'Options' setting cannot be used together with State class or Unit of measurement.", "schema": "The schema to use. [Learn more.]({url}#comparison-of-light-mqtt-schemas)", @@ -302,35 +276,65 @@ "temperature_unit": "This determines the native unit of measurement the MQTT climate device works with.", "unit_of_measurement": "Defines the unit of measurement, if any." }, + "description": "Please configure specific details for {platform} entity \"{entity}\":", "sections": { "advanced_settings": { - "name": "Advanced options", "data": { "suggested_display_precision": "Suggested display precision" }, "data_description": { "suggested_display_precision": "The number of decimals which should be used in the {platform} entity state after rounding. [Learn more.]({url}#suggested_display_precision)" - } + }, + "name": "Advanced options" } - } + }, + "title": "Configure MQTT device \"{mqtt_device}\"" + }, + "export": { + "description": "An export allows you to migrate the MQTT device configuration to YAML-based configuration or MQTT discovery. The configuration export can also be helpful for troubleshooting.", + "menu_options": { + "export_discovery": "Export MQTT discovery information", + "export_yaml": "Export to YAML configuration" + }, + "title": "Export MQTT device config" + }, + "export_discovery": { + "data": { + "discovery_payload": "Discovery payload:", + "discovery_topic": "Discovery topic" + }, + "data_description": { + "discovery_payload": "The JSON [discovery payload]({url}#device-discovery-payload) that contains information about the MQTT device.", + "discovery_topic": "The [discovery topic]({url}#discovery-topic) to publish the discovery payload, used to trigger MQTT discovery. An empty payload published to this topic will remove the device and discovered entities." + }, + "description": "To allow setup via MQTT [discovery]({url}#device-discovery-payload), the discovery payload needs to be published to the discovery topic. Copy the information from the fields below. Home Assistant will detect if the setup of the MQTT device was tried via MQTT discovery instead, and will offer a repair flow to clean up the redundant subentry. You can also choose to change the identifiers if you do not want to remove the subentry.", + "title": "[%key:component::mqtt::config_subentries::device::step::export::title%]" + }, + "export_yaml": { + "data": { + "yaml": "Copy the YAML configuration below:" + }, + "data_description": { + "yaml": "Place YAML configuration in your [configuration.yaml]({url}#yaml-configuration-listed-per-item)." + }, + "description": "You can copy the configuration below and place it your configuration.yaml file. Home Assistant will detect if the setup of the MQTT device was tried via YAML instead, and will offer a repair flow to clean up the redundant subentry. You can also choose to change the identifiers if you do not want to remove the subentry.", + "title": "[%key:component::mqtt::config_subentries::device::step::export::title%]" }, "mqtt_platform_config": { - "title": "Configure MQTT device \"{mqtt_device}\"", - "description": "Please configure MQTT specific details for {platform} entity \"{entity}\":", "data": { "available_tones": "Available Tones", "blue_template": "Blue template", "brightness_template": "Brightness template", "code": "Alarm code", - "code_format": "Code format", "code_arm_required": "Code arm required", "code_disarm_required": "Code disarm required", + "code_format": "Code format", "code_trigger_required": "Code trigger required", "color_temp_template": "Color temperature template", - "command_template": "Command template", - "command_topic": "Command topic", "command_off_template": "Command \"off\" template", "command_on_template": "Command \"on\" template", + "command_template": "Command template", + "command_topic": "Command topic", "content_type": "Content type", "force_update": "Force update", "green_template": "Green template", @@ -340,11 +344,11 @@ "max": "Maximum", "min": "Minimum", "mode": "Mode", - "modes": "Supported operation modes", - "mode_command_topic": "Operation mode command topic", "mode_command_template": "Operation mode command template", - "mode_state_topic": "Operation mode state topic", + "mode_command_topic": "Operation mode command topic", "mode_state_template": "Operation mode value template", + "mode_state_topic": "Operation mode state topic", + "modes": "Supported operation modes", "on_command_type": "ON command type", "optimistic": "Optimistic", "options": "Set options", @@ -373,9 +377,9 @@ "blue_template": "[Template]({value_templating_url}) to extract blue color from the state payload value. Expected result of the template is an integer from 0-255 range.", "brightness_template": "[Template]({value_templating_url}) to extract brightness from the state payload value. Expected result of the template is an integer from 0-255 range.", "code": "Specifies a code to enable or disable the alarm in the frontend. Note that this blocks sending MQTT message commands to the remote device if the code validation fails. [Learn more.]({url}#code)", - "code_format": "A regular expression to validate a supplied code when it is set during the action to open, lock or unlock the MQTT lock. [Learn more.]({url}#code_format)", "code_arm_required": "If set, the code is required to arm the alarm. If not set, the code is not validated.", "code_disarm_required": "If set, the code is required to disarm the alarm. If not set, the code is not validated.", + "code_format": "A regular expression to validate a supplied code when it is set during the action to open, lock or unlock the MQTT lock. [Learn more.]({url}#code_format)", "code_trigger_required": "If set, the code is required to manually trigger the alarm. If not set, the code is not validated.", "color_temp_template": "[Template]({value_templating_url}) to extract color temperature in Kelvin from the state payload value. Expected result of the template is an integer.", "command_off_template": "The [template]({command_templating_url}) for \"off\" state changes. Available variables are: `state` and `transition`.", @@ -391,11 +395,11 @@ "max": "Maximum value. [Learn more.]({url}#max)", "min": "Minimum value. [Learn more.]({url}#min)", "mode": "Control how the number should be displayed in the UI. [Learn more.]({url}#mode)", - "modes": "A list of supported operation modes. [Learn more.]({url}#modes)", - "mode_command_topic": "The MQTT topic to publish commands to change the climate operation mode. [Learn more.]({url}#mode_command_topic)", "mode_command_template": "[Template]({command_templating_url}) to define the operation mode to be sent to the operation mode command topic. [Learn more.]({url}#mode_command_template)", - "mode_state_topic": "The MQTT topic subscribed to receive operation mode state messages. [Learn more.]({url}#mode_state_topic)", + "mode_command_topic": "The MQTT topic to publish commands to change the climate operation mode. [Learn more.]({url}#mode_command_topic)", "mode_state_template": "Defines a [template]({value_templating_url}) to extract the operation mode state. [Learn more.]({url}#mode_state_template)", + "mode_state_topic": "The MQTT topic subscribed to receive operation mode state messages. [Learn more.]({url}#mode_state_topic)", + "modes": "A list of supported operation modes. [Learn more.]({url}#modes)", "on_command_type": "Defines when the payload \"on\" is sent. Using \"Last\" (the default) will send any style (brightness, color, etc) topics first and then a payload \"on\" to the command topic. Using \"First\" will send the payload \"on\" and then any style topics. Using \"Brightness\" will only send brightness commands instead of the payload \"on\" to turn the light on.", "optimistic": "Flag that defines if the {platform} entity works in optimistic mode. [Learn more.]({url}#optimistic)", "options": "List of options that can be selected.", @@ -418,9 +422,9 @@ "url_topic": "The MQTT topic subscribed to receive messages containing the image URL. [Learn more.]({url}#url_topic)", "value_template": "Defines a [template]({value_templating_url}) to extract the {platform} entity value. [Learn more.]({url}#value_template)" }, + "description": "Please configure MQTT specific details for {platform} entity \"{entity}\":", "sections": { "advanced_settings": { - "name": "Advanced settings", "data": { "expire_after": "Expire after", "flash": "Flash support", @@ -440,10 +444,10 @@ "min_kelvin": "The minimum color temperature in Kelvin.", "off_delay": "For sensors that only send \"on\" state updates (like PIRs), this variable sets a delay in seconds after which the sensor’s state will be updated back to \"off\".", "transition": "Enable the transition feature for this light" - } + }, + "name": "Advanced settings" }, "alarm_control_panel_payload_settings": { - "name": "Alarm control panel payload settings", "data": { "payload_arm_away": "Payload \"arm away\"", "payload_arm_custom_bypass": "Payload \"arm custom bypass\"", @@ -461,10 +465,10 @@ "payload_arm_night": "The payload sent when an \"arm night\" command is issued.", "payload_arm_vacation": "The payload sent when an \"arm vacation\" command is issued.", "payload_trigger": "The payload sent when a \"trigger alarm\" command is issued." - } + }, + "name": "Alarm control panel payload settings" }, "climate_action_settings": { - "name": "Current action settings", "data": { "action_template": "Action template", "action_topic": "Action topic" @@ -472,27 +476,27 @@ "data_description": { "action_template": "A [template]({value_templating_url}) to render the value received on the action topic with.", "action_topic": "The MQTT topic to subscribe for changes of the current action. If this is set, the climate graph uses the value received as data source. A \"None\" payload resets the current action state. An empty payload is ignored. Valid action values are: \"off\", \"heating\", \"cooling\", \"drying\", \"idle\" and \"fan\". [Learn more.]({url}#action_topic)" - } + }, + "name": "Current action settings" }, "climate_fan_mode_settings": { - "name": "Fan mode settings", "data": { - "fan_modes": "Fan modes", - "fan_mode_command_topic": "Fan mode command topic", "fan_mode_command_template": "Fan mode command template", + "fan_mode_command_topic": "Fan mode command topic", + "fan_mode_state_template": "Fan mode state template", "fan_mode_state_topic": "Fan mode state topic", - "fan_mode_state_template": "Fan mode state template" + "fan_modes": "Fan modes" }, "data_description": { - "fan_modes": "List of fan modes this climate is capable of running at. Common fan modes that offer translations are `off`, `on`, `auto`, `low`, `medium`, `high`, `middle`, `focus` and `diffuse`.", - "fan_mode_command_topic": "The MQTT topic to publish commands to change the climate fan mode. [Learn more.]({url}#fan_mode_command_topic)", "fan_mode_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the fan mode command topic.", + "fan_mode_command_topic": "The MQTT topic to publish commands to change the climate fan mode. [Learn more.]({url}#fan_mode_command_topic)", + "fan_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate fan mode value.", "fan_mode_state_topic": "The MQTT topic subscribed to receive the climate fan mode. [Learn more.]({url}#fan_mode_state_topic)", - "fan_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate fan mode value." - } + "fan_modes": "List of fan modes this climate is capable of running at. Common fan modes that offer translations are `off`, `on`, `auto`, `low`, `medium`, `high`, `middle`, `focus` and `diffuse`." + }, + "name": "Fan mode settings" }, "climate_power_settings": { - "name": "Power settings", "data": { "payload_off": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::data::payload_off%]", "payload_on": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::data::payload_on%]", @@ -504,61 +508,61 @@ "payload_on": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::data_description::payload_on%]", "power_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the power command topic. The `value` parameter is the payload set for payload \"on\" or payload \"off\".", "power_command_topic": "The MQTT topic to publish commands to change the climate power state. Sends the payload configured with payload \"on\" or payload \"off\". [Learn more.]({url}#power_command_topic)" - } + }, + "name": "Power settings" }, "climate_preset_mode_settings": { - "name": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::name%]", "data": { "preset_mode_command_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_mode_command_template%]", "preset_mode_command_topic": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_mode_command_topic%]", - "preset_mode_value_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_mode_value_template%]", "preset_mode_state_topic": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_mode_state_topic%]", + "preset_mode_value_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_mode_value_template%]", "preset_modes": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data::preset_modes%]" }, "data_description": { "preset_mode_command_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data_description::preset_mode_command_template%]", "preset_mode_command_topic": "The MQTT topic to publish commands to change the climate preset mode. [Learn more.]({url}#preset_mode_command_topic)", - "preset_mode_value_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data_description::preset_mode_value_template%]", "preset_mode_state_topic": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data_description::preset_mode_state_topic%]", + "preset_mode_value_template": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::data_description::preset_mode_value_template%]", "preset_modes": "List of preset modes this climate is capable of running at. Common preset modes that offer translations are `none`, `away`, `eco`, `boost`, `comfort`, `home`, `sleep` and `activity`." - } + }, + "name": "[%key:component::mqtt::config_subentries::device::step::mqtt_platform_config::sections::fan_preset_mode_settings::name%]" }, "climate_swing_horizontal_mode_settings": { - "name": "Horizontal swing mode settings", "data": { - "swing_horizontal_modes": "Horizontal swing modes", - "swing_horizontal_mode_command_topic": "Horizontal swing mode command topic", "swing_horizontal_mode_command_template": "Horizontal swing mode command template", + "swing_horizontal_mode_command_topic": "Horizontal swing mode command topic", + "swing_horizontal_mode_state_template": "Horizontal swing mode state template", "swing_horizontal_mode_state_topic": "Horizontal swing mode state topic", - "swing_horizontal_mode_state_template": "Horizontal swing mode state template" + "swing_horizontal_modes": "Horizontal swing modes" }, "data_description": { - "swing_horizontal_modes": "List of horizontal swing modes this climate is capable of running at. Common horizontal swing modes that offer translations are `off` and `on`.", - "swing_horizontal_mode_command_topic": "The MQTT topic to publish commands to change the climate horizontal swing mode. [Learn more.]({url}#swing_horizontal_mode_command_topic)", "swing_horizontal_mode_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the horizontal swing mode command topic.", + "swing_horizontal_mode_command_topic": "The MQTT topic to publish commands to change the climate horizontal swing mode. [Learn more.]({url}#swing_horizontal_mode_command_topic)", + "swing_horizontal_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate horizontal swing mode value.", "swing_horizontal_mode_state_topic": "The MQTT topic subscribed to receive the climate horizontal swing mode. [Learn more.]({url}#swing_horizontal_mode_state_topic)", - "swing_horizontal_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate horizontal swing mode value." - } + "swing_horizontal_modes": "List of horizontal swing modes this climate is capable of running at. Common horizontal swing modes that offer translations are `off` and `on`." + }, + "name": "Horizontal swing mode settings" }, "climate_swing_mode_settings": { - "name": "Swing mode settings", "data": { - "swing_modes": "Swing modes", - "swing_mode_command_topic": "Swing mode command topic", "swing_mode_command_template": "Swing mode command template", + "swing_mode_command_topic": "Swing mode command topic", + "swing_mode_state_template": "Swing mode state template", "swing_mode_state_topic": "Swing mode state topic", - "swing_mode_state_template": "Swing mode state template" + "swing_modes": "Swing modes" }, "data_description": { - "swing_modes": "List of swing modes this climate is capable of running at. Common swing modes that offer translations are `off`, `on`, `vertical`, `horizontal` and `both`.", - "swing_mode_command_topic": "The MQTT topic to publish commands to change the climate swing mode. [Learn more.]({url}#swing_mode_command_topic)", "swing_mode_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the swing mode command topic.", + "swing_mode_command_topic": "The MQTT topic to publish commands to change the climate swing mode. [Learn more.]({url}#swing_mode_command_topic)", + "swing_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate swing mode value.", "swing_mode_state_topic": "The MQTT topic subscribed to receive the climate swing mode. [Learn more.]({url}#swing_mode_state_topic)", - "swing_mode_state_template": "Defines a [template]({value_templating_url}) to extract the climate swing mode value." - } + "swing_modes": "List of swing modes this climate is capable of running at. Common swing modes that offer translations are `off`, `on`, `vertical`, `horizontal` and `both`." + }, + "name": "Swing mode settings" }, "cover_payload_settings": { - "name": "Payload settings", "data": { "payload_close": "Payload \"close\"", "payload_open": "Payload \"open\"", @@ -580,10 +584,10 @@ "state_open": "The payload received at the state topic that represents the \"open\" state.", "state_opening": "The payload received at the state topic that represents the \"opening\" state.", "state_stopped": "The payload received at the state topic that represents the \"stopped\" state (for covers that do not report \"open\"/\"closed\" state)." - } + }, + "name": "Payload settings" }, "cover_position_settings": { - "name": "Position settings", "data": { "position_closed": "Position \"closed\" value", "position_open": "Position \"open\" value", @@ -599,10 +603,10 @@ "position_topic": "The MQTT topic subscribed to receive cover position state messages. [Learn more.]({url}#position_topic)", "set_position_template": "[Template]({command_templating_url}) to define the position to be sent to the set position topic. Within the template the following variables are available: `value` (the scaled target position), `entity_id`, `position` (the target position percentage), `position_open`, `position_closed`, `tilt_min` and `tilt_max`. [Learn more.]({url}#set_position_template)", "set_position_topic": "The MQTT topic to publish position commands to. You need to use the set position topic as well if you want to use the position topic. Use template if position topic wants different values than within range \"position closed\" - \"position_open\". If template is not defined and position \"closed\" != 100 and position \"open\" != 0 then proper position value is calculated from percentage position. [Learn more.]({url}#set_position_topic)" - } + }, + "name": "Position settings" }, "cover_tilt_settings": { - "name": "Tilt settings", "data": { "tilt_closed_value": "Tilt \"closed\" value", "tilt_command_template": "Tilt command template", @@ -610,9 +614,9 @@ "tilt_max": "Tilt max", "tilt_min": "Tilt min", "tilt_opened_value": "Tilt \"opened\" value", + "tilt_optimistic": "Tilt optimistic", "tilt_status_template": "Tilt value template", - "tilt_status_topic": "Tilt status topic", - "tilt_optimistic": "Tilt optimistic" + "tilt_status_topic": "Tilt status topic" }, "data_description": { "tilt_closed_value": "The value that will be sent to the \"tilt command topic\" when the cover tilt is closed.", @@ -621,13 +625,13 @@ "tilt_max": "The maximum tilt value.", "tilt_min": "The minimum tilt value.", "tilt_opened_value": "The value that will be sent to the \"tilt command topic\" when the cover tilt is opened.", + "tilt_optimistic": "Flag that defines if tilt works in optimistic mode. If tilt status topic is not defined, tilt works in optimistic mode by default. [Learn more.]({url}#tilt_optimistic)", "tilt_status_template": "Defines a [template]({value_templating_url}) to extract the payload for the tilt status topic. Within the template the following variables are available: `entity_id`, `position_open`, `position_closed`, `tilt_min` and `tilt_max`. [Learn more.]({url}#tilt_status_template)", - "tilt_status_topic": "The MQTT topic subscribed to receive tilt status update values. [Learn more.]({url}#tilt_status_topic)", - "tilt_optimistic": "Flag that defines if tilt works in optimistic mode. If tilt status topic is not defined, tilt works in optimistic mode by default. [Learn more.]({url}#tilt_optimistic)" - } + "tilt_status_topic": "The MQTT topic subscribed to receive tilt status update values. [Learn more.]({url}#tilt_status_topic)" + }, + "name": "Tilt settings" }, "current_humidity_settings": { - "name": "Current humidity settings", "data": { "current_humidity_template": "Current humidity template", "current_humidity_topic": "Current humidity topic" @@ -635,10 +639,10 @@ "data_description": { "current_humidity_template": "Defines a [template]({value_templating_url}) to extract the current humidity value. [Learn more.]({url}#current_humidity_template)", "current_humidity_topic": "The MQTT topic subscribed to receive current humidity update values. [Learn more.]({url}#current_humidity_topic)" - } + }, + "name": "Current humidity settings" }, "current_temperature_settings": { - "name": "Current temperature settings", "data": { "current_temperature_template": "Current temperature template", "current_temperature_topic": "Current temperature topic" @@ -646,10 +650,84 @@ "data_description": { "current_temperature_template": "Defines a [template]({value_templating_url}) to extract the current temperature value. [Learn more.]({url}#current_temperature_template)", "current_temperature_topic": "The MQTT topic subscribed to receive current temperature update values. [Learn more.]({url}#current_temperature_topic)" - } + }, + "name": "Current temperature settings" + }, + "fan_direction_settings": { + "data": { + "direction_command_template": "Direction command template", + "direction_command_topic": "Direction command topic", + "direction_state_topic": "Direction state topic", + "direction_value_template": "Direction value template" + }, + "data_description": { + "direction_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the direction command topic. The template variable `value` will be either `forward` or `reverse`.", + "direction_command_topic": "The MQTT topic to publish commands to change the fan direction. The payload will be either `forward` or `reverse` and can be customized using the direction command template. [Learn more.]({url}#direction_command_topic)", + "direction_state_topic": "The MQTT topic subscribed to receive fan direction state. Accepted state payloads are `forward` or `reverse`. [Learn more.]({url}#direction_state_topic)", + "direction_value_template": "Defines a [template]({value_templating_url}) to extract fan direction state value. The template should return either `forward` or `reverse`. When the template returns an empty string, the direction will be ignored." + }, + "name": "Direction settings" + }, + "fan_oscillation_settings": { + "data": { + "oscillation_command_template": "Oscillation command template", + "oscillation_command_topic": "Oscillation command topic", + "oscillation_state_topic": "Oscillation state topic", + "oscillation_value_template": "Oscillation value template", + "payload_oscillation_off": "Payload \"oscillation off\"", + "payload_oscillation_on": "Payload \"oscillation on\"" + }, + "data_description": { + "oscillation_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the oscillation command topic.", + "oscillation_command_topic": "The MQTT topic to publish commands to change the fan oscillation state. [Learn more.]({url}#oscillation_command_topic)", + "oscillation_state_topic": "The MQTT topic subscribed to receive fan oscillation state. [Learn more.]({url}#oscillation_state_topic)", + "oscillation_value_template": "Defines a [template]({value_templating_url}) to extract fan oscillation state value.", + "payload_oscillation_off": "The payload that represents the oscillation \"off\" state.", + "payload_oscillation_on": "The payload that represents the oscillation \"on\" state." + }, + "name": "Oscillation settings" + }, + "fan_preset_mode_settings": { + "data": { + "payload_reset_preset_mode": "Payload \"reset preset mode\"", + "preset_mode_command_template": "Preset mode command template", + "preset_mode_command_topic": "Preset mode command topic", + "preset_mode_state_topic": "Preset mode state topic", + "preset_mode_value_template": "Preset mode value template", + "preset_modes": "Preset modes" + }, + "data_description": { + "payload_reset_preset_mode": "A special payload that resets the fan preset mode state attribute to unknown when received at the preset mode state topic.", + "preset_mode_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the preset mode command topic.", + "preset_mode_command_topic": "The MQTT topic to publish commands to change the fan preset mode. [Learn more.]({url}#preset_mode_command_topic)", + "preset_mode_state_topic": "The MQTT topic subscribed to receive fan preset mode. [Learn more.]({url}#preset_mode_state_topic)", + "preset_mode_value_template": "Defines a [template]({value_templating_url}) to extract fan preset mode value.", + "preset_modes": "List of preset modes this fan is capable of running at. Common examples include auto, smart, whoosh, eco and breeze." + }, + "name": "Preset mode settings" + }, + "fan_speed_settings": { + "data": { + "payload_reset_percentage": "Payload \"reset percentage\"", + "percentage_command_template": "Percentage command template", + "percentage_command_topic": "Percentage command topic", + "percentage_state_topic": "Percentage state topic", + "percentage_value_template": "Percentage value template", + "speed_range_max": "Speed range max", + "speed_range_min": "Speed range min" + }, + "data_description": { + "payload_reset_percentage": "A special payload that resets the fan speed percentage state attribute to unknown when received at the percentage state topic.", + "percentage_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the percentage command topic.", + "percentage_command_topic": "The MQTT topic to publish commands to change the fan speed state based on a percentage. [Learn more.]({url}#percentage_command_topic)", + "percentage_state_topic": "The MQTT topic subscribed to receive fan speed based on percentage. [Learn more.]({url}#percentage_state_topic)", + "percentage_value_template": "Defines a [template]({value_templating_url}) to extract the speed percentage value.", + "speed_range_max": "The maximum of numeric output range (representing 100 %). The percentage step is 100 / number of speeds within the \"speed range\".", + "speed_range_min": "The minimum of numeric output range (off not included, so speed_range_min - 1 represents 0 %). The percentage step is 100 / the number of speeds within the \"speed range\"." + }, + "name": "Speed settings" }, "light_brightness_settings": { - "name": "Brightness settings", "data": { "brightness": "Separate brightness", "brightness_command_template": "Brightness command template", @@ -665,10 +743,141 @@ "brightness_scale": "Defines the maximum brightness value (i.e., 100%) of the maximum brightness.", "brightness_state_topic": "The MQTT topic subscribed to receive brightness state values. [Learn more.]({url}#brightness_state_topic)", "brightness_value_template": "Defines a [template]({value_templating_url}) to extract the brightness value." - } + }, + "name": "Brightness settings" + }, + "light_color_mode_settings": { + "data": { + "color_mode_state_topic": "Color mode state topic", + "color_mode_value_template": "Color mode value template" + }, + "data_description": { + "color_mode_state_topic": "The MQTT topic subscribed to receive color mode updates. If this is not configured, the color mode will be automatically set according to the last received valid color or color temperature.", + "color_mode_value_template": "Defines a [template]({value_templating_url}) to extract the color mode value." + }, + "name": "Color mode settings" + }, + "light_color_temp_settings": { + "data": { + "color_temp_command_template": "Color temperature command template", + "color_temp_command_topic": "Color temperature command topic", + "color_temp_state_topic": "Color temperature state topic", + "color_temp_value_template": "Color temperature value template" + }, + "data_description": { + "color_temp_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the color temperature command topic.", + "color_temp_command_topic": "The publishing topic that will be used to control the color temperature. [Learn more.]({url}#color_temp_command_topic)", + "color_temp_state_topic": "The MQTT topic subscribed to receive color temperature state updates. [Learn more.]({url}#color_temp_state_topic)", + "color_temp_value_template": "Defines a [template]({value_templating_url}) to extract the color temperature value." + }, + "name": "Color temperature settings" + }, + "light_effect_settings": { + "data": { + "effect": "Effect", + "effect_command_template": "Effect command template", + "effect_command_topic": "Effect command topic", + "effect_list": "Effect list", + "effect_state_topic": "Effect state topic", + "effect_template": "Effect template", + "effect_value_template": "Effect value template" + }, + "data_description": { + "effect": "Flag that defines if the light supports effects.", + "effect_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the effect command topic.", + "effect_command_topic": "The publishing topic that will be used to control the light's effect state. [Learn more.]({url}#effect_command_topic)", + "effect_list": "The list of effects the light supports.", + "effect_state_topic": "The MQTT topic subscribed to receive effect state updates. [Learn more.]({url}#effect_state_topic)" + }, + "name": "Effect settings" + }, + "light_hs_settings": { + "data": { + "hs_command_template": "HS command template", + "hs_command_topic": "HS command topic", + "hs_state_topic": "HS state topic", + "hs_value_template": "HS value template" + }, + "data_description": { + "hs_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to HS command topic. Available variables: `hue` and `sat`.", + "hs_command_topic": "The MQTT topic to publish commands to change the light’s color state in HS format (Hue Saturation). Range for Hue: 0° .. 360°, Range of Saturation: 0..100. Note: Brightness is sent separately in the brightness command topic. [Learn more.]({url}#hs_command_topic)", + "hs_state_topic": "The MQTT topic subscribed to receive color state updates in HS format. The expected payload is the hue and saturation values separated by commas, for example, `359.5,100.0`. Note: Brightness is received separately in the brightness state topic. [Learn more.]({url}#hs_state_topic)", + "hs_value_template": "Defines a [template]({value_templating_url}) to extract the HS value." + }, + "name": "HS color mode settings" + }, + "light_rgb_settings": { + "data": { + "rgb_command_template": "RGB command template", + "rgb_command_topic": "RGB command topic", + "rgb_state_topic": "RGB state topic", + "rgb_value_template": "RGB value template" + }, + "data_description": { + "rgb_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGB command topic. Available variables: `red`, `green` and `blue`.", + "rgb_command_topic": "The MQTT topic to publish commands to change the light’s RGB state. [Learn more.]({url}#rgb_command_topic)", + "rgb_state_topic": "The MQTT topic subscribed to receive RGB state updates. The expected payload is the RGB values separated by commas, for example, `255,0,127`. [Learn more.]({url}#rgb_state_topic)", + "rgb_value_template": "Defines a [template]({value_templating_url}) to extract the RGB value." + }, + "name": "RGB color mode settings" + }, + "light_rgbw_settings": { + "data": { + "rgbw_command_template": "RGBW command template", + "rgbw_command_topic": "RGBW command topic", + "rgbw_state_topic": "RGBW state topic", + "rgbw_value_template": "RGBW value template" + }, + "data_description": { + "rgbw_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGBW command topic. Available variables: `red`, `green`, `blue` and `white`.", + "rgbw_command_topic": "The MQTT topic to publish commands to change the light’s RGBW state. [Learn more.]({url}#rgbw_command_topic)", + "rgbw_state_topic": "The MQTT topic subscribed to receive RGBW state updates. The expected payload is the RGBW values separated by commas, for example, `255,0,127,64`. [Learn more.]({url}#rgbw_state_topic)", + "rgbw_value_template": "Defines a [template]({value_templating_url}) to extract the RGBW value." + }, + "name": "RGBW color mode settings" + }, + "light_rgbww_settings": { + "data": { + "rgbww_command_template": "RGBWW command template", + "rgbww_command_topic": "RGBWW command topic", + "rgbww_state_topic": "RGBWW state topic", + "rgbww_value_template": "RGBWW value template" + }, + "data_description": { + "rgbww_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGBWW command topic. Available variables: `red`, `green`, `blue`, `cold_white` and `warm_white`.", + "rgbww_command_topic": "The MQTT topic to publish commands to change the light’s RGBWW state. [Learn more.]({url}#rgbww_command_topic)", + "rgbww_state_topic": "The MQTT topic subscribed to receive RGBWW state updates. The expected payload is the RGBWW values separated by commas, for example, `255,0,127,64,32`. [Learn more.]({url}#rgbww_state_topic)", + "rgbww_value_template": "Defines a [template]({value_templating_url}) to extract the RGBWW value." + }, + "name": "RGBWW color mode settings" + }, + "light_white_settings": { + "data": { + "white_command_topic": "White command topic", + "white_scale": "White scale" + }, + "data_description": { + "white_command_topic": "The MQTT topic to publish commands to change the light to white mode with a given brightness. [Learn more.]({url}#white_command_topic)", + "white_scale": "Defines the maximum white level (i.e., 100%) of the maximum." + }, + "name": "White color mode settings" + }, + "light_xy_settings": { + "data": { + "xy_command_template": "XY command template", + "xy_command_topic": "XY command topic", + "xy_state_topic": "XY state topic", + "xy_value_template": "XY value template" + }, + "data_description": { + "xy_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to XY command topic. Available variables: `x` and `y`.", + "xy_command_topic": "The MQTT topic to publish commands to change the light’s XY state. [Learn more.]({url}#xy_command_topic)", + "xy_state_topic": "The MQTT topic subscribed to receive XY state updates. The expected payload is the X and Y color values separated by commas, for example, `0.675,0.322`. [Learn more.]({url}#xy_state_topic)", + "xy_value_template": "Defines a [template]({value_templating_url}) to extract the XY value." + }, + "name": "XY color mode settings" }, "lock_payload_settings": { - "name": "Lock payload settings", "data": { "payload_lock": "Payload \"lock\"", "payload_open": "Payload \"open\"", @@ -690,215 +899,19 @@ "state_locking": "The payload received at the state topic that represents the \"locking\" state.", "state_unlocked": "The payload received at the state topic that represents the \"unlocked\" state.", "state_unlocking": "The payload received at the state topic that represents the \"unlocking\" state." - } + }, + "name": "Lock payload settings" }, - "fan_direction_settings": { - "name": "Direction settings", + "siren_advanced_settings": { "data": { - "direction_command_topic": "Direction command topic", - "direction_command_template": "Direction command template", - "direction_state_topic": "Direction state topic", - "direction_value_template": "Direction value template" + "command_off_template": "Command \"off\" template" }, "data_description": { - "direction_command_topic": "The MQTT topic to publish commands to change the fan direction. The payload will be either `forward` or `reverse` and can be customized using the direction command template. [Learn more.]({url}#direction_command_topic)", - "direction_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the direction command topic. The template variable `value` will be either `forward` or `reverse`.", - "direction_state_topic": "The MQTT topic subscribed to receive fan direction state. Accepted state payloads are `forward` or `reverse`. [Learn more.]({url}#direction_state_topic)", - "direction_value_template": "Defines a [template]({value_templating_url}) to extract fan direction state value. The template should return either `forward` or `reverse`. When the template returns an empty string, the direction will be ignored." - } - }, - "fan_oscillation_settings": { - "name": "Oscillation settings", - "data": { - "oscillation_command_topic": "Oscillation command topic", - "oscillation_command_template": "Oscillation command template", - "oscillation_state_topic": "Oscillation state topic", - "oscillation_value_template": "Oscillation value template", - "payload_oscillation_off": "Payload \"oscillation off\"", - "payload_oscillation_on": "Payload \"oscillation on\"" + "command_off_template": "The [template]({command_templating_url}) for \"off\" state changes. By default the \"[Command template]({url}#command_template)\" will be used. [Learn more.]({url}#command_off_template)" }, - "data_description": { - "oscillation_command_topic": "The MQTT topic to publish commands to change the fan oscillation state. [Learn more.]({url}#oscillation_command_topic)", - "oscillation_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the oscillation command topic.", - "oscillation_state_topic": "The MQTT topic subscribed to receive fan oscillation state. [Learn more.]({url}#oscillation_state_topic)", - "oscillation_value_template": "Defines a [template]({value_templating_url}) to extract fan oscillation state value.", - "payload_oscillation_off": "The payload that represents the oscillation \"off\" state.", - "payload_oscillation_on": "The payload that represents the oscillation \"on\" state." - } - }, - "fan_preset_mode_settings": { - "name": "Preset mode settings", - "data": { - "payload_reset_preset_mode": "Payload \"reset preset mode\"", - "preset_modes": "Preset modes", - "preset_mode_command_topic": "Preset mode command topic", - "preset_mode_command_template": "Preset mode command template", - "preset_mode_state_topic": "Preset mode state topic", - "preset_mode_value_template": "Preset mode value template" - }, - "data_description": { - "payload_reset_preset_mode": "A special payload that resets the fan preset mode state attribute to unknown when received at the preset mode state topic.", - "preset_modes": "List of preset modes this fan is capable of running at. Common examples include auto, smart, whoosh, eco and breeze.", - "preset_mode_command_topic": "The MQTT topic to publish commands to change the fan preset mode. [Learn more.]({url}#preset_mode_command_topic)", - "preset_mode_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the preset mode command topic.", - "preset_mode_state_topic": "The MQTT topic subscribed to receive fan preset mode. [Learn more.]({url}#preset_mode_state_topic)", - "preset_mode_value_template": "Defines a [template]({value_templating_url}) to extract fan preset mode value." - } - }, - "fan_speed_settings": { - "name": "Speed settings", - "data": { - "payload_reset_percentage": "Payload \"reset percentage\"", - "percentage_command_topic": "Percentage command topic", - "percentage_command_template": "Percentage command template", - "percentage_state_topic": "Percentage state topic", - "percentage_value_template": "Percentage value template", - "speed_range_min": "Speed range min", - "speed_range_max": "Speed range max" - }, - "data_description": { - "payload_reset_percentage": "A special payload that resets the fan speed percentage state attribute to unknown when received at the percentage state topic.", - "percentage_command_topic": "The MQTT topic to publish commands to change the fan speed state based on a percentage. [Learn more.]({url}#percentage_command_topic)", - "percentage_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the percentage command topic.", - "percentage_state_topic": "The MQTT topic subscribed to receive fan speed based on percentage. [Learn more.]({url}#percentage_state_topic)", - "percentage_value_template": "Defines a [template]({value_templating_url}) to extract the speed percentage value.", - "speed_range_min": "The minimum of numeric output range (off not included, so speed_range_min - 1 represents 0 %). The percentage step is 100 / the number of speeds within the \"speed range\".", - "speed_range_max": "The maximum of numeric output range (representing 100 %). The percentage step is 100 / number of speeds within the \"speed range\"." - } - }, - "light_color_mode_settings": { - "name": "Color mode settings", - "data": { - "color_mode_state_topic": "Color mode state topic", - "color_mode_value_template": "Color mode value template" - }, - "data_description": { - "color_mode_state_topic": "The MQTT topic subscribed to receive color mode updates. If this is not configured, the color mode will be automatically set according to the last received valid color or color temperature.", - "color_mode_value_template": "Defines a [template]({value_templating_url}) to extract the color mode value." - } - }, - "light_color_temp_settings": { - "name": "Color temperature settings", - "data": { - "color_temp_command_template": "Color temperature command template", - "color_temp_command_topic": "Color temperature command topic", - "color_temp_state_topic": "Color temperature state topic", - "color_temp_value_template": "Color temperature value template" - }, - "data_description": { - "color_temp_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the color temperature command topic.", - "color_temp_command_topic": "The publishing topic that will be used to control the color temperature. [Learn more.]({url}#color_temp_command_topic)", - "color_temp_state_topic": "The MQTT topic subscribed to receive color temperature state updates. [Learn more.]({url}#color_temp_state_topic)", - "color_temp_value_template": "Defines a [template]({value_templating_url}) to extract the color temperature value." - } - }, - "light_effect_settings": { - "name": "Effect settings", - "data": { - "effect": "Effect", - "effect_command_template": "Effect command template", - "effect_command_topic": "Effect command topic", - "effect_list": "Effect list", - "effect_state_topic": "Effect state topic", - "effect_template": "Effect template", - "effect_value_template": "Effect value template" - }, - "data_description": { - "effect": "Flag that defines if the light supports effects.", - "effect_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the effect command topic.", - "effect_command_topic": "The publishing topic that will be used to control the light's effect state. [Learn more.]({url}#effect_command_topic)", - "effect_list": "The list of effects the light supports.", - "effect_state_topic": "The MQTT topic subscribed to receive effect state updates. [Learn more.]({url}#effect_state_topic)" - } - }, - "light_hs_settings": { - "name": "HS color mode settings", - "data": { - "hs_command_template": "HS command template", - "hs_command_topic": "HS command topic", - "hs_state_topic": "HS state topic", - "hs_value_template": "HS value template" - }, - "data_description": { - "hs_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to HS command topic. Available variables: `hue` and `sat`.", - "hs_command_topic": "The MQTT topic to publish commands to change the light’s color state in HS format (Hue Saturation). Range for Hue: 0° .. 360°, Range of Saturation: 0..100. Note: Brightness is sent separately in the brightness command topic. [Learn more.]({url}#hs_command_topic)", - "hs_state_topic": "The MQTT topic subscribed to receive color state updates in HS format. The expected payload is the hue and saturation values separated by commas, for example, `359.5,100.0`. Note: Brightness is received separately in the brightness state topic. [Learn more.]({url}#hs_state_topic)", - "hs_value_template": "Defines a [template]({value_templating_url}) to extract the HS value." - } - }, - "light_rgb_settings": { - "name": "RGB color mode settings", - "data": { - "rgb_command_template": "RGB command template", - "rgb_command_topic": "RGB command topic", - "rgb_state_topic": "RGB state topic", - "rgb_value_template": "RGB value template" - }, - "data_description": { - "rgb_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGB command topic. Available variables: `red`, `green` and `blue`.", - "rgb_command_topic": "The MQTT topic to publish commands to change the light’s RGB state. [Learn more.]({url}#rgb_command_topic)", - "rgb_state_topic": "The MQTT topic subscribed to receive RGB state updates. The expected payload is the RGB values separated by commas, for example, `255,0,127`. [Learn more.]({url}#rgb_state_topic)", - "rgb_value_template": "Defines a [template]({value_templating_url}) to extract the RGB value." - } - }, - "light_rgbw_settings": { - "name": "RGBW color mode settings", - "data": { - "rgbw_command_template": "RGBW command template", - "rgbw_command_topic": "RGBW command topic", - "rgbw_state_topic": "RGBW state topic", - "rgbw_value_template": "RGBW value template" - }, - "data_description": { - "rgbw_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGBW command topic. Available variables: `red`, `green`, `blue` and `white`.", - "rgbw_command_topic": "The MQTT topic to publish commands to change the light’s RGBW state. [Learn more.]({url}#rgbw_command_topic)", - "rgbw_state_topic": "The MQTT topic subscribed to receive RGBW state updates. The expected payload is the RGBW values separated by commas, for example, `255,0,127,64`. [Learn more.]({url}#rgbw_state_topic)", - "rgbw_value_template": "Defines a [template]({value_templating_url}) to extract the RGBW value." - } - }, - "light_rgbww_settings": { - "name": "RGBWW color mode settings", - "data": { - "rgbww_command_template": "RGBWW command template", - "rgbww_command_topic": "RGBWW command topic", - "rgbww_state_topic": "RGBWW state topic", - "rgbww_value_template": "RGBWW value template" - }, - "data_description": { - "rgbww_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to RGBWW command topic. Available variables: `red`, `green`, `blue`, `cold_white` and `warm_white`.", - "rgbww_command_topic": "The MQTT topic to publish commands to change the light’s RGBWW state. [Learn more.]({url}#rgbww_command_topic)", - "rgbww_state_topic": "The MQTT topic subscribed to receive RGBWW state updates. The expected payload is the RGBWW values separated by commas, for example, `255,0,127,64,32`. [Learn more.]({url}#rgbww_state_topic)", - "rgbww_value_template": "Defines a [template]({value_templating_url}) to extract the RGBWW value." - } - }, - "light_white_settings": { - "name": "White color mode settings", - "data": { - "white_command_topic": "White command topic", - "white_scale": "White scale" - }, - "data_description": { - "white_command_topic": "The MQTT topic to publish commands to change the light to white mode with a given brightness. [Learn more.]({url}#white_command_topic)", - "white_scale": "Defines the maximum white level (i.e., 100%) of the maximum." - } - }, - "light_xy_settings": { - "name": "XY color mode settings", - "data": { - "xy_command_template": "XY command template", - "xy_command_topic": "XY command topic", - "xy_state_topic": "XY state topic", - "xy_value_template": "XY value template" - }, - "data_description": { - "xy_command_template": "Defines a [template]({command_templating_url}) to compose message which will be sent to XY command topic. Available variables: `x` and `y`.", - "xy_command_topic": "The MQTT topic to publish commands to change the light’s XY state. [Learn more.]({url}#xy_command_topic)", - "xy_state_topic": "The MQTT topic subscribed to receive XY state updates. The expected payload is the X and Y color values separated by commas, for example, `0.675,0.322`. [Learn more.]({url}#xy_state_topic)", - "xy_value_template": "Defines a [template]({value_templating_url}) to extract the XY value." - } + "name": "Advanced siren settings" }, "target_humidity_settings": { - "name": "Target humidity settings", "data": { "max_humidity": "Maximum humidity", "min_humidity": "Minimum humidity", @@ -914,19 +927,10 @@ "target_humidity_command_topic": "The MQTT topic to publish commands to change the climate target humidity. [Learn more.]({url}#humidity_command_topic)", "target_humidity_state_template": "A [template]({value_templating_url}) to render the value received on the target humidity state topic with.", "target_humidity_state_topic": "The MQTT topic to subscribe for changes of the target humidity. [Learn more.]({url}#humidity_state_topic)" - } - }, - "siren_advanced_settings": { - "name": "Advanced siren settings", - "data": { - "command_off_template": "Command \"off\" template" }, - "data_description": { - "command_off_template": "The [template]({command_templating_url}) for \"off\" state changes. By default the \"[Command template]({url}#command_template)\" will be used. [Learn more.]({url}#command_off_template)" - } + "name": "Target humidity settings" }, "target_temperature_settings": { - "name": "Target temperature settings", "data": { "initial": "Initial temperature", "max_temp": "Maximum temperature", @@ -937,14 +941,14 @@ "temperature_command_topic": "Temperature command topic", "temperature_high_command_template": "Upper temperature command template", "temperature_high_command_topic": "Upper temperature command topic", - "temperature_low_command_template": "Lower temperature command template", - "temperature_low_command_topic": "Lower temperature command topic", - "temperature_state_template": "Temperature state template", - "temperature_state_topic": "Temperature state topic", "temperature_high_state_template": "Upper temperature state template", "temperature_high_state_topic": "Upper temperature state topic", + "temperature_low_command_template": "Lower temperature command template", + "temperature_low_command_topic": "Lower temperature command topic", "temperature_low_state_template": "Lower temperature state template", - "temperature_low_state_topic": "Lower temperature state topic" + "temperature_low_state_topic": "Lower temperature state topic", + "temperature_state_template": "Temperature state template", + "temperature_state_topic": "Temperature state topic" }, "data_description": { "initial": "The climate initializes with this target temperature.", @@ -956,196 +960,224 @@ "temperature_command_topic": "The MQTT topic to publish commands to change the climate target temperature. [Learn more.]({url}#temperature_command_topic)", "temperature_high_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the upper temperature command topic.", "temperature_high_command_topic": "The MQTT topic to publish commands to change the climate upper target temperature. [Learn more.]({url}#temperature_high_command_topic)", - "temperature_low_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the lower temperature command topic.", - "temperature_low_command_topic": "The MQTT topic to publish commands to change the climate lower target temperature. [Learn more.]({url}#temperature_low_command_topic)", - "temperature_state_template": "A [template]({value_templating_url}) to render the value received on the temperature state topic with.", - "temperature_state_topic": "The MQTT topic to subscribe for changes of the target temperature. [Learn more.]({url}#temperature_state_topic)", "temperature_high_state_template": "A [template]({value_templating_url}) to render the value received on the upper temperature state topic with.", "temperature_high_state_topic": "The MQTT topic to subscribe for changes of the upper target temperature. [Learn more.]({url}#temperature_high_state_topic)", + "temperature_low_command_template": "A [template]({command_templating_url}) to compose the payload to be published at the lower temperature command topic.", + "temperature_low_command_topic": "The MQTT topic to publish commands to change the climate lower target temperature. [Learn more.]({url}#temperature_low_command_topic)", "temperature_low_state_template": "A [template]({value_templating_url}) to render the value received on the lower temperature state topic with.", - "temperature_low_state_topic": "The MQTT topic to subscribe for changes of the lower target temperature. [Learn more.]({url}#temperature_low_state_topic)" - } + "temperature_low_state_topic": "The MQTT topic to subscribe for changes of the lower target temperature. [Learn more.]({url}#temperature_low_state_topic)", + "temperature_state_template": "A [template]({value_templating_url}) to render the value received on the temperature state topic with.", + "temperature_state_topic": "The MQTT topic to subscribe for changes of the target temperature. [Learn more.]({url}#temperature_state_topic)" + }, + "name": "Target temperature settings" } - } + }, + "title": "Configure MQTT device \"{mqtt_device}\"" }, - "export": { - "title": "Export MQTT device config", - "description": "An export allows you to migrate the MQTT device configuration to YAML-based configuration or MQTT discovery. The configuration export can also be helpful for troubleshooting.", + "summary_menu": { + "description": "Entities set up:\n{mqtt_items}\n\nDecide what to do next:", "menu_options": { - "export_discovery": "Export MQTT discovery information", - "export_yaml": "Export to YAML configuration" - } + "availability": "Configure availability", + "delete_entity": "Delete an entity", + "device": "Update device properties", + "entity": "Add another entity to \"{mqtt_device}\"", + "export": "Export MQTT device configuration", + "save_changes": "Save changes", + "update_entity": "Update entity properties" + }, + "title": "Reconfigure \"{mqtt_device}\"" }, - "export_yaml": { - "title": "[%key:component::mqtt::config_subentries::device::step::export::title%]", - "description": "You can copy the configuration below and place it your configuration.yaml file. Home Assistant will detect if the setup of the MQTT device was tried via YAML instead, and will offer a repair flow to clean up the redundant subentry. You can also choose to change the identifiers if you do not want to remove the subentry.", + "update_entity": { "data": { - "yaml": "Copy the YAML configuration below:" + "component": "Entity" }, "data_description": { - "yaml": "Place YAML configuration in your [configuration.yaml]({url}#yaml-configuration-listed-per-item)." - } - }, - "export_discovery": { - "title": "[%key:component::mqtt::config_subentries::device::step::export::title%]", - "description": "To allow setup via MQTT [discovery]({url}#device-discovery-payload), the discovery payload needs to be published to the discovery topic. Copy the information from the fields below. Home Assistant will detect if the setup of the MQTT device was tried via MQTT discovery instead, and will offer a repair flow to clean up the redundant subentry. You can also choose to change the identifiers if you do not want to remove the subentry.", - "data": { - "discovery_topic": "Discovery topic", - "discovery_payload": "Discovery payload:" + "component": "Select the entity you want to update." }, - "data_description": { - "discovery_topic": "The [discovery topic]({url}#discovery-topic) to publish the discovery payload, used to trigger MQTT discovery. An empty payload published to this topic will remove the device and discovered entities.", - "discovery_payload": "The JSON [discovery payload]({url}#device-discovery-payload) that contains information about the MQTT device." - } + "description": "Select the entity you want to update", + "title": "Select entity" } - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - }, - "create_entry": { - "default": "MQTT device with {platform} entity \"{entity}\" was set up successfully.\n\nNote that you can reconfigure the MQTT device at any time, e.g. to add more entities." - }, - "error": { - "cover_get_and_set_position_must_be_set_together": "The get position and set position topic options must be set together", - "cover_get_position_template_must_be_used_with_get_position_topic": "The position value template must be used together with the position state topic", - "cover_set_position_template_must_be_used_with_set_position_topic": "The set position template must be used with the set position topic", - "cover_tilt_command_template_must_be_used_with_tilt_command_topic": "The tilt command template must be used with the tilt command topic", - "cover_tilt_status_template_must_be_used_with_tilt_status_topic": "The tilt value template must be used with the tilt status topic", - "cover_value_template_must_be_used_with_state_topic": "The value template must be used with the state topic option", - "empty_list_not_allowed": "Empty list is not allowed. Add at least one item", - "fan_speed_range_max_must_be_greater_than_speed_range_min": "Speed range max must be greater than speed range min", - "fan_preset_mode_reset_in_preset_modes_list": "Payload \"reset preset mode\" is not a valid as a preset mode", - "invalid_input": "Invalid value", - "invalid_regular_expression": "Must be a valid regular expression", - "invalid_subscribe_topic": "Invalid subscribe topic", - "invalid_template": "Invalid template", - "invalid_supported_color_modes": "Invalid supported color modes selection", - "invalid_uom": "The unit of measurement \"{unit_of_measurement}\" is not supported by the selected device class, please either remove the device class, select a device class which supports \"{unit_of_measurement}\", or pick a supported unit of measurement from the list", - "invalid_uom_for_state_class": "The unit of measurement \"{unit_of_measurement}\" is not supported by the selected state class, please either remove the state class, select a state class which supports \"{unit_of_measurement}\", or pick a supported unit of measurement from the list", - "invalid_url": "Invalid URL", - "last_reset_not_with_state_class_total": "The last reset value template option should be used with state class 'Total' only", - "max_below_min": "Max value should be greater or equal to min value", - "max_below_min_humidity": "Max humidity value should be greater than min humidity value", - "max_below_min_kelvin": "Max Kelvin value should be greater than min Kelvin value", - "max_below_min_temperature": "Max temperature value should be greater than min temperature value", - "options_not_allowed_with_state_class_or_uom": "The 'Options' setting is not allowed when state class or unit of measurement are used", - "options_device_class_enum": "The 'Options' setting must be used with the Enumeration device class. If you continue, the existing options will be reset", - "options_with_enum_device_class": "Configure options for the enumeration sensor", - "preset_mode_none_not_allowed": "Preset \"none\" is not a valid preset mode", - "uom_required_for_device_class": "The selected device class requires a unit" } } }, "device_automation": { - "trigger_type": { - "button_short_press": "\"{subtype}\" pressed", - "button_short_release": "\"{subtype}\" released", - "button_long_press": "\"{subtype}\" continuously pressed", - "button_long_release": "\"{subtype}\" released after long press", - "button_double_press": "\"{subtype}\" double clicked", - "button_triple_press": "\"{subtype}\" triple clicked", - "button_quadruple_press": "\"{subtype}\" quadruple clicked", - "button_quintuple_press": "\"{subtype}\" quintuple clicked" - }, "trigger_subtype": { - "turn_on": "[%key:common::action::turn_on%]", - "turn_off": "[%key:common::action::turn_off%]", "button_1": "First button", "button_2": "Second button", "button_3": "Third button", "button_4": "Fourth button", "button_5": "Fifth button", - "button_6": "Sixth button" + "button_6": "Sixth button", + "turn_off": "[%key:common::action::turn_off%]", + "turn_on": "[%key:common::action::turn_on%]" + }, + "trigger_type": { + "button_double_press": "\"{subtype}\" double clicked", + "button_long_press": "\"{subtype}\" continuously pressed", + "button_long_release": "\"{subtype}\" released after long press", + "button_quadruple_press": "\"{subtype}\" quadruple clicked", + "button_quintuple_press": "\"{subtype}\" quintuple clicked", + "button_short_press": "\"{subtype}\" pressed", + "button_short_release": "\"{subtype}\" released", + "button_triple_press": "\"{subtype}\" triple clicked" + } + }, + "exceptions": { + "addon_start_failed": { + "message": "Failed to correctly start {addon} add-on." + }, + "command_template_error": { + "message": "Parsing template `{command_template}` for entity `{entity_id}` failed with error: {error}." + }, + "invalid_platform_config": { + "message": "Reloading YAML config for manually configured MQTT `{domain}` item failed. See logs for more details." + }, + "invalid_publish_topic": { + "message": "Unable to publish: topic template `{topic_template}` produced an invalid topic `{topic}` after rendering ({error})" + }, + "mqtt_broker_error": { + "message": "Error talking to MQTT: {error_message}." + }, + "mqtt_not_setup_cannot_publish": { + "message": "Cannot publish to topic \"{topic}\", make sure MQTT is set up correctly." + }, + "mqtt_not_setup_cannot_subscribe": { + "message": "Cannot subscribe to topic \"{topic}\", make sure MQTT is set up correctly." + }, + "mqtt_not_setup_cannot_unsubscribe_twice": { + "message": "Cannot unsubscribe topic \"{topic}\" twice." + }, + "mqtt_topic_not_a_string": { + "message": "Topic needs to be a string! Got: {topic}." + }, + "mqtt_trigger_cannot_remove_twice": { + "message": "Can't remove trigger twice." + } + }, + "issues": { + "deprecated_object_id": { + "description": "Entity {entity_id} uses the `object_id` option which is deprecated. To fix the issue, replace the `object_id: {object_id}` option with `default_entity_id: {domain}.{object_id}` in your \"configuration.yaml\", and restart Home Assistant.", + "title": "Deprecated option object_id used" + }, + "deprecated_vacuum_battery_feature": { + "description": "Vacuum entity {entity_id} implements the battery feature which is deprecated. This will stop working in Home Assistant 2026.2. Implement a separate entity for the battery state instead. To fix the issue, remove the `battery` feature from the configured supported features, and restart Home Assistant.", + "title": "Deprecated battery feature used" + }, + "invalid_platform_config": { + "description": "Home Assistant detected an invalid config for a manually configured item.\n\nPlatform domain: **{domain}**\nConfiguration file: **{config_file}**\nNear line: **{line}**\nConfiguration found:\n```yaml\n{config}\n```\nError: **{error}**.\n\nMake sure the configuration is valid and [reload](/developer-tools/yaml) the manually configured MQTT items or restart Home Assistant to fix this issue.", + "title": "Invalid config found for MQTT {domain} item" + }, + "subentry_migration_discovery": { + "fix_flow": { + "step": { + "confirm": { + "description": "Exported MQTT device \"{name}\" identified via MQTT discovery. Select **Submit** to confirm that the MQTT device is to be migrated to the main MQTT configuration, and to remove the existing MQTT device subentry. Make sure that the discovery is retained at the MQTT broker, or is resent after the subentry is removed, so that the MQTT device will be set up correctly. As an alternative you can change the device identifiers and entity unique ID-s in your MQTT discovery configuration payload, and cancel this repair if you want to keep the MQTT device subentry.", + "title": "[%key:component::mqtt::issues::subentry_migration_discovery::title%]" + } + } + }, + "title": "MQTT device \"{name}\" subentry migration to MQTT discovery" + }, + "subentry_migration_yaml": { + "fix_flow": { + "step": { + "confirm": { + "description": "Exported MQTT device \"{name}\" identified in YAML configuration. Select **Submit** to confirm that the MQTT device is to be migrated to main MQTT config entry, and to remove the existing MQTT device subentry. As an alternative you can change the device identifiers and entity unique ID-s in your configuration.yaml file, and cancel this repair if you want to keep the MQTT device subentry.", + "title": "[%key:component::mqtt::issues::subentry_migration_yaml::title%]" + } + } + }, + "title": "MQTT device \"{name}\" subentry migration to YAML" } }, "options": { + "error": { + "bad_birth": "[%key:component::mqtt::config::error::bad_birth%]", + "bad_certificate": "[%key:component::mqtt::config::error::bad_certificate%]", + "bad_client_cert": "[%key:component::mqtt::config::error::bad_client_cert%]", + "bad_client_cert_key": "[%key:component::mqtt::config::error::bad_client_cert_key%]", + "bad_discovery_prefix": "[%key:component::mqtt::config::error::bad_discovery_prefix%]", + "bad_will": "[%key:component::mqtt::config::error::bad_will%]", + "bad_ws_headers": "[%key:component::mqtt::config::error::bad_ws_headers%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "client_key_error": "[%key:component::mqtt::config::error::client_key_error%]", + "invalid_inclusion": "[%key:component::mqtt::config::error::invalid_inclusion%]" + }, "step": { "broker": { - "title": "Broker options", - "description": "[%key:component::mqtt::config::step::broker::description%]", "data": { - "broker": "[%key:component::mqtt::config::step::broker::data::broker%]", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", "advanced_options": "[%key:component::mqtt::config::step::broker::data::advanced_options%]", + "broker": "[%key:component::mqtt::config::step::broker::data::broker%]", "certificate": "[%key:component::mqtt::config::step::broker::data::certificate%]", - "client_id": "[%key:component::mqtt::config::step::broker::data::client_id%]", "client_cert": "[%key:component::mqtt::config::step::broker::data::client_cert%]", + "client_id": "[%key:component::mqtt::config::step::broker::data::client_id%]", "client_key": "[%key:component::mqtt::config::step::broker::data::client_key%]", "keepalive": "[%key:component::mqtt::config::step::broker::data::keepalive%]", - "tls_insecure": "[%key:component::mqtt::config::step::broker::data::tls_insecure%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", "protocol": "[%key:component::mqtt::config::step::broker::data::protocol%]", "set_ca_cert": "[%key:component::mqtt::config::step::broker::data::set_ca_cert%]", "set_client_cert": "[%key:component::mqtt::config::step::broker::data::set_client_cert%]", + "tls_insecure": "[%key:component::mqtt::config::step::broker::data::tls_insecure%]", "transport": "[%key:component::mqtt::config::step::broker::data::transport%]", + "username": "[%key:common::config_flow::data::username%]", "ws_headers": "[%key:component::mqtt::config::step::broker::data::ws_headers%]", "ws_path": "[%key:component::mqtt::config::step::broker::data::ws_path%]" }, "data_description": { - "broker": "[%key:component::mqtt::config::step::broker::data_description::broker%]", - "port": "[%key:component::mqtt::config::step::broker::data_description::port%]", - "username": "[%key:component::mqtt::config::step::broker::data_description::username%]", - "password": "[%key:component::mqtt::config::step::broker::data_description::password%]", "advanced_options": "[%key:component::mqtt::config::step::broker::data_description::advanced_options%]", + "broker": "[%key:component::mqtt::config::step::broker::data_description::broker%]", "certificate": "[%key:component::mqtt::config::step::broker::data_description::certificate%]", - "client_id": "[%key:component::mqtt::config::step::broker::data_description::client_id%]", "client_cert": "[%key:component::mqtt::config::step::broker::data_description::client_cert%]", + "client_id": "[%key:component::mqtt::config::step::broker::data_description::client_id%]", "client_key": "[%key:component::mqtt::config::step::broker::data_description::client_key%]", "keepalive": "[%key:component::mqtt::config::step::broker::data_description::keepalive%]", - "tls_insecure": "[%key:component::mqtt::config::step::broker::data_description::tls_insecure%]", + "password": "[%key:component::mqtt::config::step::broker::data_description::password%]", + "port": "[%key:component::mqtt::config::step::broker::data_description::port%]", "protocol": "[%key:component::mqtt::config::step::broker::data_description::protocol%]", "set_ca_cert": "[%key:component::mqtt::config::step::broker::data_description::set_ca_cert%]", "set_client_cert": "[%key:component::mqtt::config::step::broker::data_description::set_client_cert%]", + "tls_insecure": "[%key:component::mqtt::config::step::broker::data_description::tls_insecure%]", "transport": "[%key:component::mqtt::config::step::broker::data_description::transport%]", + "username": "[%key:component::mqtt::config::step::broker::data_description::username%]", "ws_headers": "[%key:component::mqtt::config::step::broker::data_description::ws_headers%]", "ws_path": "[%key:component::mqtt::config::step::broker::data_description::ws_path%]" - } + }, + "description": "[%key:component::mqtt::config::step::broker::description%]", + "title": "Broker options" }, "options": { - "title": "MQTT options", - "description": "Discovery - If discovery is enabled (recommended), Home Assistant will automatically discover devices and entities which publish their configuration on the MQTT broker. If discovery is disabled, all configuration must be done manually.\nDiscovery prefix - The prefix a configuration topic for automatic discovery must start with.\nBirth message - The birth message will be sent each time Home Assistant (re)connects to the MQTT broker.\nWill message - The will message will be sent each time Home Assistant loses its connection to the broker, both in case of a clean (e.g. Home Assistant shutting down) and in case of an unclean (e.g. Home Assistant crashing or losing its network connection) disconnect.", "data": { - "discovery": "Enable discovery", - "discovery_prefix": "Discovery prefix", "birth_enable": "Enable birth message", - "birth_topic": "Birth message topic", "birth_payload": "Birth message payload", "birth_qos": "Birth message QoS", "birth_retain": "Birth message retain", + "birth_topic": "Birth message topic", + "discovery": "Enable discovery", + "discovery_prefix": "Discovery prefix", "will_enable": "Enable will message", - "will_topic": "Will message topic", "will_payload": "Will message payload", "will_qos": "Will message QoS", - "will_retain": "Will message retain" + "will_retain": "Will message retain", + "will_topic": "Will message topic" }, "data_description": { - "discovery": "Option to enable MQTT automatic discovery.", - "discovery_prefix": "The prefix of configuration topics the MQTT integration will subscribe to.", "birth_enable": "When set, Home Assistant will publish an online message to your MQTT broker when MQTT is ready.", - "birth_topic": "The MQTT topic where Home Assistant will publish a \"birth\" message.", "birth_payload": "The \"birth\" message that is published when MQTT is ready and connected.", "birth_qos": "The quality of service of the \"birth\" message that is published when MQTT is ready and connected", "birth_retain": "When set, Home Assistant will retain the \"birth\" message published to your MQTT broker.", + "birth_topic": "The MQTT topic where Home Assistant will publish a \"birth\" message.", + "discovery": "Option to enable MQTT automatic discovery.", + "discovery_prefix": "The prefix of configuration topics the MQTT integration will subscribe to.", "will_enable": "When set, Home Assistant will ask your broker to publish a \"will\" message when MQTT is stopped or when it loses the connection to your broker.", - "will_topic": "The MQTT topic your MQTT broker will publish a \"will\" message to.", "will_payload": "The message your MQTT broker \"will\" publish when the MQTT integration is stopped or when the connection is lost.", "will_qos": "The quality of service of the \"will\" message that is published by your MQTT broker.", - "will_retain": "When set, your MQTT broker will retain the \"will\" message." - } + "will_retain": "When set, your MQTT broker will retain the \"will\" message.", + "will_topic": "The MQTT topic your MQTT broker will publish a \"will\" message to." + }, + "description": "Discovery - If discovery is enabled (recommended), Home Assistant will automatically discover devices and entities which publish their configuration on the MQTT broker. If discovery is disabled, all configuration must be done manually.\nDiscovery prefix - The prefix a configuration topic for automatic discovery must start with.\nBirth message - The birth message will be sent each time Home Assistant (re)connects to the MQTT broker.\nWill message - The will message will be sent each time Home Assistant loses its connection to the broker, both in case of a clean (e.g. Home Assistant shutting down) and in case of an unclean (e.g. Home Assistant crashing or losing its network connection) disconnect.", + "title": "MQTT options" } - }, - "error": { - "bad_birth": "[%key:component::mqtt::config::error::bad_birth%]", - "bad_will": "[%key:component::mqtt::config::error::bad_will%]", - "bad_discovery_prefix": "[%key:component::mqtt::config::error::bad_discovery_prefix%]", - "bad_certificate": "[%key:component::mqtt::config::error::bad_certificate%]", - "bad_client_cert": "[%key:component::mqtt::config::error::bad_client_cert%]", - "client_key_error": "[%key:component::mqtt::config::error::client_key_error%]", - "bad_client_cert_key": "[%key:component::mqtt::config::error::bad_client_cert_key%]", - "bad_ws_headers": "[%key:component::mqtt::config::error::bad_ws_headers%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_inclusion": "[%key:component::mqtt::config::error::invalid_inclusion%]" } }, "selector": { @@ -1168,13 +1200,13 @@ }, "climate_modes": { "options": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", - "heat": "[%key:component::climate::entity_component::_::state::heat%]", "cool": "[%key:component::climate::entity_component::_::state::cool%]", - "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", "dry": "[%key:component::climate::entity_component::_::state::dry%]", - "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]" + "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]", + "heat": "[%key:component::climate::entity_component::_::state::heat%]", + "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", + "off": "[%key:common::state::off%]" } }, "device_class_binary_sensor": { @@ -1234,8 +1266,8 @@ "options": { "absolute_humidity": "[%key:component::sensor::entity_component::absolute_humidity::name%]", "apparent_power": "[%key:component::sensor::entity_component::apparent_power::name%]", - "area": "[%key:component::sensor::entity_component::area::name%]", "aqi": "[%key:component::sensor::entity_component::aqi::name%]", + "area": "[%key:component::sensor::entity_component::area::name%]", "atmospheric_pressure": "[%key:component::sensor::entity_component::atmospheric_pressure::name%]", "battery": "[%key:component::sensor::entity_component::battery::name%]", "blood_glucose_concentration": "[%key:component::sensor::entity_component::blood_glucose_concentration::name%]", @@ -1265,9 +1297,9 @@ "ozone": "[%key:component::sensor::entity_component::ozone::name%]", "ph": "[%key:component::sensor::entity_component::ph::name%]", "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "power": "[%key:component::sensor::entity_component::power::name%]", "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", @@ -1307,8 +1339,8 @@ }, "image_encoding": { "options": { - "raw": "Raw data", - "b64": "Base64 encoding" + "b64": "Base64 encoding", + "raw": "Raw data" } }, "image_processing_mode": { @@ -1359,9 +1391,9 @@ }, "set_ca_cert": { "options": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", - "custom": "Custom" + "custom": "Custom", + "off": "[%key:common::state::off%]" } }, "state_class": { @@ -1374,118 +1406,86 @@ }, "supported_color_modes": { "options": { - "onoff": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::onoff%]", "brightness": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::brightness%]", "color_temp": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::color_temp%]", "hs": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::hs%]", - "xy": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::xy%]", + "onoff": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::onoff%]", "rgb": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::rgb%]", "rgbw": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::rgbw%]", "rgbww": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::rgbww%]", - "white": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::white%]" + "white": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::white%]", + "xy": "[%key:component::light::entity_component::_::state_attributes::color_mode::state::xy%]" } }, "target_temperature_feature": { "options": { - "single": "Single target temperature", "high_low": "Upper/lower target temperature", - "none": "No target temperature" + "none": "No target temperature", + "single": "Single target temperature" } } }, "services": { + "dump": { + "description": "Writes all messages on a specific topic into the `mqtt_dump.txt` file in your configuration folder.", + "fields": { + "duration": { + "description": "How long we should listen for messages in seconds.", + "name": "Duration" + }, + "topic": { + "description": "Topic to listen to.", + "name": "[%key:component::mqtt::services::publish::fields::topic::name%]" + } + }, + "name": "Export" + }, "publish": { - "name": "Publish", "description": "Publishes a message to an MQTT topic.", "fields": { "evaluate_payload": { - "name": "Evaluate payload", - "description": "If 'Payload' is a Python bytes literal, evaluate the bytes literal and publish the raw data." - }, - "topic": { - "name": "Topic", - "description": "Topic to publish to." + "description": "If 'Payload' is a Python bytes literal, evaluate the bytes literal and publish the raw data.", + "name": "Evaluate payload" }, "payload": { - "name": "Payload", - "description": "The payload to publish. Publishes an empty message if not provided." + "description": "The payload to publish. Publishes an empty message if not provided.", + "name": "Payload" }, "qos": { - "name": "QoS", - "description": "Quality of Service to use. 0: At most once. 1: At least once. 2: Exactly once." + "description": "Quality of Service to use. 0: At most once. 1: At least once. 2: Exactly once.", + "name": "QoS" }, "retain": { - "name": "Retain", - "description": "If the message should have the retain flag set. If set, the broker stores the most recent message on a topic." - } - } - }, - "dump": { - "name": "Export", - "description": "Writes all messages on a specific topic into the `mqtt_dump.txt` file in your configuration folder.", - "fields": { - "topic": { - "name": "[%key:component::mqtt::services::publish::fields::topic::name%]", - "description": "Topic to listen to." + "description": "If the message should have the retain flag set. If set, the broker stores the most recent message on a topic.", + "name": "Retain" }, - "duration": { - "name": "Duration", - "description": "How long we should listen for messages in seconds." + "topic": { + "description": "Topic to publish to.", + "name": "Topic" } - } + }, + "name": "Publish" }, "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads MQTT entities from the YAML-configuration." + "description": "Reloads MQTT entities from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } }, "triggers": { "_": { - "name": "MQTT", "description": "When a specific message is received on a given MQTT topic.", "description_configured": "When an MQTT message has been received", "fields": { "payload": { - "name": "Payload", - "description": "The payload to trigger on." + "description": "The payload to trigger on.", + "name": "Payload" }, "topic": { - "name": "Topic", - "description": "MQTT topic to listen to." + "description": "MQTT topic to listen to.", + "name": "Topic" } - } - } - }, - "exceptions": { - "addon_start_failed": { - "message": "Failed to correctly start {addon} add-on." - }, - "command_template_error": { - "message": "Parsing template `{command_template}` for entity `{entity_id}` failed with error: {error}." - }, - "invalid_platform_config": { - "message": "Reloading YAML config for manually configured MQTT `{domain}` item failed. See logs for more details." - }, - "invalid_publish_topic": { - "message": "Unable to publish: topic template `{topic_template}` produced an invalid topic `{topic}` after rendering ({error})" - }, - "mqtt_broker_error": { - "message": "Error talking to MQTT: {error_message}." - }, - "mqtt_not_setup_cannot_subscribe": { - "message": "Cannot subscribe to topic \"{topic}\", make sure MQTT is set up correctly." - }, - "mqtt_not_setup_cannot_publish": { - "message": "Cannot publish to topic \"{topic}\", make sure MQTT is set up correctly." - }, - "mqtt_not_setup_cannot_unsubscribe_twice": { - "message": "Cannot unsubscribe topic \"{topic}\" twice." - }, - "mqtt_topic_not_a_string": { - "message": "Topic needs to be a string! Got: {topic}." - }, - "mqtt_trigger_cannot_remove_twice": { - "message": "Can't remove trigger twice." + }, + "name": "MQTT" } } } diff --git a/homeassistant/components/music_assistant/icons.json b/homeassistant/components/music_assistant/icons.json index 24c6eb2a202..3445828f026 100644 --- a/homeassistant/components/music_assistant/icons.json +++ b/homeassistant/components/music_assistant/icons.json @@ -7,11 +7,11 @@ } }, "services": { - "play_media": { "service": "mdi:play" }, - "play_announcement": { "service": "mdi:bullhorn" }, - "transfer_queue": { "service": "mdi:transfer" }, - "search": { "service": "mdi:magnify" }, + "get_library": { "service": "mdi:music-box-multiple" }, "get_queue": { "service": "mdi:playlist-music" }, - "get_library": { "service": "mdi:music-box-multiple" } + "play_announcement": { "service": "mdi:bullhorn" }, + "play_media": { "service": "mdi:play" }, + "search": { "service": "mdi:magnify" }, + "transfer_queue": { "service": "mdi:transfer" } } } diff --git a/homeassistant/components/music_assistant/strings.json b/homeassistant/components/music_assistant/strings.json index 37f0a8e9a85..b99548a8691 100644 --- a/homeassistant/components/music_assistant/strings.json +++ b/homeassistant/components/music_assistant/strings.json @@ -1,34 +1,34 @@ { "config": { - "step": { - "init": { - "data": { - "url": "URL of the Music Assistant server" - } - }, - "manual": { - "title": "Manually add Music Assistant server", - "description": "Enter the URL to your already running Music Assistant server. If you do not have the Music Assistant server running, you should install it first.", - "data": { - "url": "URL of the Music Assistant server" - } - }, - "discovery_confirm": { - "description": "Do you want to add the Music Assistant server `{url}` to Home Assistant?", - "title": "Discovered Music Assistant server" - } + "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%]", + "reconfiguration_successful": "Successfully reconfigured the Music Assistant integration.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_server_version": "The Music Assistant server is not the correct version", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reconfiguration_successful": "Successfully reconfigured the Music Assistant integration.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "discovery_confirm": { + "description": "Do you want to add the Music Assistant server `{url}` to Home Assistant?", + "title": "Discovered Music Assistant server" + }, + "init": { + "data": { + "url": "URL of the Music Assistant server" + } + }, + "manual": { + "data": { + "url": "URL of the Music Assistant server" + }, + "description": "Enter the URL to your already running Music Assistant server. If you do not have the Music Assistant server running, you should install it first.", + "title": "Manually add Music Assistant server" + } } }, "entity": { @@ -40,206 +40,206 @@ }, "issues": { "invalid_server_version": { - "title": "The Music Assistant server is not the correct version", - "description": "Check if there are updates available for the Music Assistant server and/or integration." - } - }, - "services": { - "play_media": { - "name": "Play media", - "description": "Plays media on a Music Assistant player with more fine-grained control options.", - "fields": { - "media_id": { - "name": "Media ID(s)", - "description": "URI or name of the item you want to play. Specify a list if you want to play/enqueue multiple items." - }, - "media_type": { - "name": "Media type", - "description": "The type of the content to play. Such as artist, album, track or playlist. Will be auto-determined if omitted." - }, - "enqueue": { - "name": "Enqueue", - "description": "If the content should be played now or added to the queue." - }, - "artist": { - "name": "Artist name", - "description": "When specifying a track or album by name in the Media ID field, you can optionally restrict results by this artist name." - }, - "album": { - "name": "Album name", - "description": "When specifying a track by name in the Media ID field, you can optionally restrict results by this album name." - }, - "radio_mode": { - "name": "Enable radio mode", - "description": "Enable radio mode to auto-generate a playlist based on the selection." - } - } - }, - "play_announcement": { - "name": "Play announcement", - "description": "Plays an announcement on a Music Assistant player with more fine-grained control options.", - "fields": { - "url": { - "name": "URL", - "description": "URL to the notification sound." - }, - "use_pre_announce": { - "name": "Use pre-announce", - "description": "Use pre-announcement sound for the announcement. Omit to use the player default." - }, - "announce_volume": { - "name": "Announce volume", - "description": "Use a forced volume level for the announcement. Omit to use player default." - } - } - }, - "transfer_queue": { - "name": "Transfer queue", - "description": "Transfers a player's queue to another player.", - "fields": { - "source_player": { - "name": "Source media player", - "description": "The source media player which has the queue you want to transfer. When omitted, the first playing player will be used." - }, - "auto_play": { - "name": "Autoplay", - "description": "Start playing the queue on the target player. Omit to use the default behavior." - } - } - }, - "get_queue": { - "name": "Get playerQueue details (advanced)", - "description": "Retrieves the details of the currently active queue of a Music Assistant player." - }, - "search": { - "name": "Search Music Assistant", - "description": "Performs a global search on the Music Assistant library and all providers.", - "fields": { - "config_entry_id": { - "name": "Music Assistant instance", - "description": "Select the Music Assistant instance to perform the search on." - }, - "name": { - "name": "Search name", - "description": "The name/title to search for." - }, - "media_type": { - "name": "Media type(s)", - "description": "The type of the content to search. Such as artist, album, track, radio, or playlist. All types if omitted." - }, - "artist": { - "name": "Artist name", - "description": "When specifying a track or album name in the name field, you can optionally restrict results by this artist name." - }, - "album": { - "name": "Album name", - "description": "When specifying a track name in the name field, you can optionally restrict results by this album name." - }, - "limit": { - "name": "Limit", - "description": "Maximum number of items to return (per media type)." - }, - "library_only": { - "name": "Only library items", - "description": "Only include results that are in the library." - } - } - }, - "get_library": { - "name": "Get library items", - "description": "Retrieves items from a Music Assistant library.", - "fields": { - "config_entry_id": { - "name": "[%key:component::music_assistant::services::search::fields::config_entry_id::name%]", - "description": "[%key:component::music_assistant::services::search::fields::config_entry_id::description%]" - }, - "media_type": { - "name": "Media type", - "description": "The media type for which to request details for." - }, - "favorite": { - "name": "Favorites only", - "description": "Filter items so only favorites items are returned." - }, - "search": { - "name": "Search", - "description": "Optional search string to search through this library." - }, - "limit": { - "name": "Limit", - "description": "Maximum number of items to return." - }, - "offset": { - "name": "Offset", - "description": "Offset to start the list from." - }, - "order_by": { - "name": "Order by", - "description": "Sort the list by this field." - }, - "album_type": { - "name": "Album type filter (albums library only)", - "description": "Filter albums by type." - }, - "album_artists_only": { - "name": "Enable album artists filter (only for artist library)", - "description": "Only return album artists when listing the artists library items." - } - } + "description": "Check if there are updates available for the Music Assistant server and/or integration.", + "title": "The Music Assistant server is not the correct version" } }, "selector": { + "album_type": { + "options": { + "album": "Album", + "compilation": "Compilation", + "ep": "EP", + "single": "Single", + "unknown": "Unknown" + } + }, "enqueue": { "options": { - "play": "Play", - "next": "Play next", "add": "Add to queue", + "next": "Play next", + "play": "Play", "replace": "Play now and clear queue", "replace_next": "Play next and clear queue" } }, "media_type": { "options": { - "artist": "Artist", "album": "Album", + "artist": "Artist", "audiobook": "Audiobook", "folder": "Folder", - "track": "Track", "playlist": "Playlist", "podcast": "Podcast", - "radio": "Radio" + "radio": "Radio", + "track": "Track" } }, "order_by": { "options": { + "artist_name": "Artist name", + "artist_name_desc": "Artist name (desc)", + "last_played": "Last played", + "last_played_desc": "Last played (desc)", "name": "Name", "name_desc": "Name (desc)", + "play_count": "Play count", + "play_count_desc": "Play count (desc)", + "position": "Position", + "position_desc": "Position (desc)", + "random": "Random", + "random_play_count": "Random + least played", "sort_name": "Sort name", "sort_name_desc": "Sort name (desc)", "timestamp_added": "Added", "timestamp_added_desc": "Added (desc)", - "last_played": "Last played", - "last_played_desc": "Last played (desc)", - "play_count": "Play count", - "play_count_desc": "Play count (desc)", "year": "Year", - "year_desc": "Year (desc)", - "position": "Position", - "position_desc": "Position (desc)", - "artist_name": "Artist name", - "artist_name_desc": "Artist name (desc)", - "random": "Random", - "random_play_count": "Random + least played" + "year_desc": "Year (desc)" } + } + }, + "services": { + "get_library": { + "description": "Retrieves items from a Music Assistant library.", + "fields": { + "album_artists_only": { + "description": "Only return album artists when listing the artists library items.", + "name": "Enable album artists filter (only for artist library)" + }, + "album_type": { + "description": "Filter albums by type.", + "name": "Album type filter (albums library only)" + }, + "config_entry_id": { + "description": "[%key:component::music_assistant::services::search::fields::config_entry_id::description%]", + "name": "[%key:component::music_assistant::services::search::fields::config_entry_id::name%]" + }, + "favorite": { + "description": "Filter items so only favorites items are returned.", + "name": "Favorites only" + }, + "limit": { + "description": "Maximum number of items to return.", + "name": "Limit" + }, + "media_type": { + "description": "The media type for which to request details for.", + "name": "Media type" + }, + "offset": { + "description": "Offset to start the list from.", + "name": "Offset" + }, + "order_by": { + "description": "Sort the list by this field.", + "name": "Order by" + }, + "search": { + "description": "Optional search string to search through this library.", + "name": "Search" + } + }, + "name": "Get library items" }, - "album_type": { - "options": { - "album": "Album", - "single": "Single", - "ep": "EP", - "compilation": "Compilation", - "unknown": "Unknown" - } + "get_queue": { + "description": "Retrieves the details of the currently active queue of a Music Assistant player.", + "name": "Get playerQueue details (advanced)" + }, + "play_announcement": { + "description": "Plays an announcement on a Music Assistant player with more fine-grained control options.", + "fields": { + "announce_volume": { + "description": "Use a forced volume level for the announcement. Omit to use player default.", + "name": "Announce volume" + }, + "url": { + "description": "URL to the notification sound.", + "name": "URL" + }, + "use_pre_announce": { + "description": "Use pre-announcement sound for the announcement. Omit to use the player default.", + "name": "Use pre-announce" + } + }, + "name": "Play announcement" + }, + "play_media": { + "description": "Plays media on a Music Assistant player with more fine-grained control options.", + "fields": { + "album": { + "description": "When specifying a track by name in the Media ID field, you can optionally restrict results by this album name.", + "name": "Album name" + }, + "artist": { + "description": "When specifying a track or album by name in the Media ID field, you can optionally restrict results by this artist name.", + "name": "Artist name" + }, + "enqueue": { + "description": "If the content should be played now or added to the queue.", + "name": "Enqueue" + }, + "media_id": { + "description": "URI or name of the item you want to play. Specify a list if you want to play/enqueue multiple items.", + "name": "Media ID(s)" + }, + "media_type": { + "description": "The type of the content to play. Such as artist, album, track or playlist. Will be auto-determined if omitted.", + "name": "Media type" + }, + "radio_mode": { + "description": "Enable radio mode to auto-generate a playlist based on the selection.", + "name": "Enable radio mode" + } + }, + "name": "Play media" + }, + "search": { + "description": "Performs a global search on the Music Assistant library and all providers.", + "fields": { + "album": { + "description": "When specifying a track name in the name field, you can optionally restrict results by this album name.", + "name": "Album name" + }, + "artist": { + "description": "When specifying a track or album name in the name field, you can optionally restrict results by this artist name.", + "name": "Artist name" + }, + "config_entry_id": { + "description": "Select the Music Assistant instance to perform the search on.", + "name": "Music Assistant instance" + }, + "library_only": { + "description": "Only include results that are in the library.", + "name": "Only library items" + }, + "limit": { + "description": "Maximum number of items to return (per media type).", + "name": "Limit" + }, + "media_type": { + "description": "The type of the content to search. Such as artist, album, track, radio, or playlist. All types if omitted.", + "name": "Media type(s)" + }, + "name": { + "description": "The name/title to search for.", + "name": "Search name" + } + }, + "name": "Search Music Assistant" + }, + "transfer_queue": { + "description": "Transfers a player's queue to another player.", + "fields": { + "auto_play": { + "description": "Start playing the queue on the target player. Omit to use the default behavior.", + "name": "Autoplay" + }, + "source_player": { + "description": "The source media player which has the queue you want to transfer. When omitted, the first playing player will be used.", + "name": "Source media player" + } + }, + "name": "Transfer queue" } } } diff --git a/homeassistant/components/mutesync/strings.json b/homeassistant/components/mutesync/strings.json index b0826384899..6cac596b48e 100644 --- a/homeassistant/components/mutesync/strings.json +++ b/homeassistant/components/mutesync/strings.json @@ -1,5 +1,10 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "Enable authentication in mütesync Preferences > Authentication", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,11 +14,6 @@ "host": "The hostname or IP address of your mutesync device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "Enable authentication in mütesync Preferences > Authentication", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { diff --git a/homeassistant/components/myq/strings.json b/homeassistant/components/myq/strings.json index 85359302c99..54d3517c721 100644 --- a/homeassistant/components/myq/strings.json +++ b/homeassistant/components/myq/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The MyQ integration has been removed", - "description": "The MyQ integration has been removed from Home Assistant.\n\nMyQ has blocked all third-party integrations. Read about it [here]({blog}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing MyQ integration entries]({entries})." + "description": "The MyQ integration has been removed from Home Assistant.\n\nMyQ has blocked all third-party integrations. Read about it [here]({blog}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing MyQ integration entries]({entries}).", + "title": "The MyQ integration has been removed" } } } diff --git a/homeassistant/components/mysensors/strings.json b/homeassistant/components/mysensors/strings.json index 1636cb076cc..289e317bcde 100644 --- a/homeassistant/components/mysensors/strings.json +++ b/homeassistant/components/mysensors/strings.json @@ -1,11 +1,72 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "duplicate_persistence_file": "[%key:component::mysensors::config::error::duplicate_persistence_file%]", + "duplicate_topic": "[%key:component::mysensors::config::error::duplicate_topic%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_device": "[%key:component::mysensors::config::error::invalid_device%]", + "invalid_ip": "Invalid IP address", + "invalid_persistence_file": "[%key:component::mysensors::config::error::invalid_persistence_file%]", + "invalid_port": "[%key:component::mysensors::config::error::invalid_port%]", + "invalid_publish_topic": "[%key:component::mysensors::config::error::invalid_publish_topic%]", + "invalid_serial": "[%key:component::mysensors::config::error::invalid_serial%]", + "invalid_subscribe_topic": "[%key:component::mysensors::config::error::invalid_subscribe_topic%]", + "invalid_version": "[%key:component::mysensors::config::error::invalid_version%]", + "mqtt_required": "The MQTT integration is not set up", + "not_a_number": "[%key:component::mysensors::config::error::not_a_number%]", + "port_out_of_range": "[%key:component::mysensors::config::error::port_out_of_range%]", + "same_topic": "[%key:component::mysensors::config::error::same_topic%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "duplicate_persistence_file": "Persistence file already in use", + "duplicate_topic": "Topic already in use", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_device": "Invalid device", + "invalid_ip": "Invalid IP address", + "invalid_persistence_file": "Invalid persistence file", + "invalid_port": "Invalid port number", + "invalid_publish_topic": "Invalid publish topic", + "invalid_serial": "Invalid serial port", + "invalid_subscribe_topic": "Invalid subscribe topic", + "invalid_version": "Invalid MySensors version", + "not_a_number": "Please enter a number", + "port_out_of_range": "Port number must be at least 1 and at most 65535", + "same_topic": "Subscribe and publish topics are the same", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { + "gw_mqtt": { "data": { - "gateway_type": "Gateway type" + "persistence_file": "[%key:component::mysensors::config::step::gw_tcp::data::persistence_file%]", + "retain": "MQTT retain", + "topic_in_prefix": "Prefix for input topics (topic_in_prefix)", + "topic_out_prefix": "Prefix for output topics (topic_out_prefix)", + "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]" }, - "description": "Choose connection method to the gateway" + "description": "MQTT gateway setup" + }, + "gw_serial": { + "data": { + "baud_rate": "Baud rate", + "device": "Serial port", + "persistence_file": "[%key:component::mysensors::config::step::gw_tcp::data::persistence_file%]", + "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]" + }, + "description": "Serial gateway setup" + }, + "gw_tcp": { + "data": { + "device": "IP address of the gateway", + "persistence_file": "Persistence file (leave empty to auto-generate)", + "tcp_port": "[%key:common::config_flow::data::port%]", + "version": "MySensors version" + }, + "description": "Ethernet gateway setup" }, "select_gateway_type": { "description": "Select which gateway to configure.", @@ -15,73 +76,12 @@ "gw_tcp": "Configure a TCP gateway" } }, - "gw_tcp": { - "description": "Ethernet gateway setup", + "user": { "data": { - "device": "IP address of the gateway", - "tcp_port": "[%key:common::config_flow::data::port%]", - "version": "MySensors version", - "persistence_file": "Persistence file (leave empty to auto-generate)" - } - }, - "gw_serial": { - "description": "Serial gateway setup", - "data": { - "device": "Serial port", - "baud_rate": "Baud rate", - "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]", - "persistence_file": "[%key:component::mysensors::config::step::gw_tcp::data::persistence_file%]" - } - }, - "gw_mqtt": { - "description": "MQTT gateway setup", - "data": { - "retain": "MQTT retain", - "topic_in_prefix": "Prefix for input topics (topic_in_prefix)", - "topic_out_prefix": "Prefix for output topics (topic_out_prefix)", - "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]", - "persistence_file": "[%key:component::mysensors::config::step::gw_tcp::data::persistence_file%]" - } + "gateway_type": "Gateway type" + }, + "description": "Choose connection method to the gateway" } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_subscribe_topic": "Invalid subscribe topic", - "invalid_publish_topic": "Invalid publish topic", - "duplicate_topic": "Topic already in use", - "same_topic": "Subscribe and publish topics are the same", - "invalid_port": "Invalid port number", - "invalid_persistence_file": "Invalid persistence file", - "duplicate_persistence_file": "Persistence file already in use", - "invalid_ip": "Invalid IP address", - "invalid_serial": "Invalid serial port", - "invalid_device": "Invalid device", - "invalid_version": "Invalid MySensors version", - "not_a_number": "Please enter a number", - "port_out_of_range": "Port number must be at least 1 and at most 65535", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_subscribe_topic": "[%key:component::mysensors::config::error::invalid_subscribe_topic%]", - "invalid_publish_topic": "[%key:component::mysensors::config::error::invalid_publish_topic%]", - "duplicate_topic": "[%key:component::mysensors::config::error::duplicate_topic%]", - "same_topic": "[%key:component::mysensors::config::error::same_topic%]", - "invalid_port": "[%key:component::mysensors::config::error::invalid_port%]", - "invalid_persistence_file": "[%key:component::mysensors::config::error::invalid_persistence_file%]", - "duplicate_persistence_file": "[%key:component::mysensors::config::error::duplicate_persistence_file%]", - "invalid_ip": "Invalid IP address", - "invalid_serial": "[%key:component::mysensors::config::error::invalid_serial%]", - "invalid_device": "[%key:component::mysensors::config::error::invalid_device%]", - "invalid_version": "[%key:component::mysensors::config::error::invalid_version%]", - "mqtt_required": "The MQTT integration is not set up", - "not_a_number": "[%key:component::mysensors::config::error::not_a_number%]", - "port_out_of_range": "[%key:component::mysensors::config::error::port_out_of_range%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/mystrom/strings.json b/homeassistant/components/mystrom/strings.json index 80d0866f6f4..6abcaa505a7 100644 --- a/homeassistant/components/mystrom/strings.json +++ b/homeassistant/components/mystrom/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "host": "[%key:common::config_flow::data::host%]" + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "host": "The hostname or IP address of your myStrom device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/myuplink/strings.json b/homeassistant/components/myuplink/strings.json index d599836b8ef..f9434b6b60a 100644 --- a/homeassistant/components/myuplink/strings.json +++ b/homeassistant/components/myuplink/strings.json @@ -3,22 +3,8 @@ "description": "Follow the [instructions]({more_info_url}) to give Home Assistant access to your myUplink account. You also need to create application credentials linked to your account:\n1. Go to [Applications at myUplink developer site]({create_creds_url}) and get credentials from an existing application or select **Create New Application**.\n1. Set appropriate Application name and Description\n1. Enter `{callback_url}` as Callback URL" }, "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The myUplink integration needs to re-authenticate your account" - } - }, "abort": { + "account_mismatch": "The used account does not match the original account", "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%]", @@ -30,11 +16,25 @@ "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "account_mismatch": "The used account does not match the original account", "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "step": { + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The myUplink integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } } }, "entity": { diff --git a/homeassistant/components/nam/manifest.json b/homeassistant/components/nam/manifest.json index 4799f657dda..95a39655c2a 100644 --- a/homeassistant/components/nam/manifest.json +++ b/homeassistant/components/nam/manifest.json @@ -10,14 +10,14 @@ "requirements": ["nettigo-air-monitor==5.0.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "nam-*" + "name": "nam-*", + "type": "_http._tcp.local." }, { - "type": "_http._tcp.local.", "properties": { "manufacturer": "nettigo" - } + }, + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/nam/strings.json b/homeassistant/components/nam/strings.json index b02eecaa41e..83913110d45 100644 --- a/homeassistant/components/nam/strings.json +++ b/homeassistant/components/nam/strings.json @@ -1,55 +1,55 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "another_device": "The IP address/hostname of another Nettigo Air Monitor was used.", + "device_unsupported": "The device is unsupported.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reauth_unsuccessful": "Re-authentication was unsuccessful, please remove the integration and set it up again.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_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%]" + }, "flow_title": "{host}", "step": { - "user": { - "description": "Set up Nettigo Air Monitor integration.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Nettigo Air Monitor to control." - } - }, - "credentials": { - "description": "Please enter the username and password.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "description": "Please enter the correct username and password for host: {host}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, "confirm_discovery": { "description": "Do you want to set up Nettigo Air Monitor at {host}?" }, + "credentials": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter the username and password." + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter the correct username and password for host: {host}" + }, "reconfigure": { - "description": "Update configuration for {device_name}.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "[%key:component::nam::config::step::user::data_description::host%]" - } + }, + "description": "Update configuration for {device_name}." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Nettigo Air Monitor to control." + }, + "description": "Set up Nettigo Air Monitor integration." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "device_unsupported": "The device is unsupported.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_unsuccessful": "Re-authentication was unsuccessful, please remove the integration and set it up again.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "another_device": "The IP address/hostname of another Nettigo Air Monitor was used." } }, "entity": { @@ -78,6 +78,12 @@ "bmp280_temperature": { "name": "BMP280 temperature" }, + "dht22_humidity": { + "name": "DHT22 humidity" + }, + "dht22_temperature": { + "name": "DHT22 temperature" + }, "ds18b20_temperature": { "name": "DS18B20 temperature" }, @@ -87,6 +93,9 @@ "heca_temperature": { "name": "HECA temperature" }, + "last_restart": { + "name": "Last restart" + }, "mhz14a_carbon_dioxide": { "name": "MH-Z14A carbon dioxide" }, @@ -96,20 +105,20 @@ "pmsx003_caqi_level": { "name": "PMSx003 common air quality index level", "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" }, "state_attributes": { "options": { "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" } } } @@ -129,20 +138,20 @@ "sds011_caqi_level": { "name": "SDS011 common air quality index level", "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" }, "state_attributes": { "options": { "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" } } } @@ -165,20 +174,20 @@ "sps30_caqi_level": { "name": "SPS30 common air quality index level", "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" }, "state_attributes": { "options": { "state": { - "very_low": "[%key:common::state::very_low%]", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" } } } @@ -194,15 +203,6 @@ }, "sps30_pm4": { "name": "SPS30 PM4" - }, - "dht22_humidity": { - "name": "DHT22 humidity" - }, - "dht22_temperature": { - "name": "DHT22 temperature" - }, - "last_restart": { - "name": "Last restart" } } }, @@ -210,12 +210,12 @@ "auth_error": { "message": "Authentication failed for {device}, please update your credentials" }, - "device_communication_error": { - "message": "An error occurred while communicating with {device}" - }, "device_communication_action_error": { "message": "An error occurred while calling action for {entity} for {device}" }, + "device_communication_error": { + "message": "An error occurred while communicating with {device}" + }, "update_error": { "message": "An error occurred while retrieving data from {device}" } diff --git a/homeassistant/components/nanoleaf/strings.json b/homeassistant/components/nanoleaf/strings.json index ecc511d658f..0ca694ad572 100644 --- a/homeassistant/components/nanoleaf/strings.json +++ b/homeassistant/components/nanoleaf/strings.json @@ -1,7 +1,23 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_token": "[%key:common::config_flow::error::invalid_access_token%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "not_allowing_new_tokens": "Nanoleaf is not allowing new tokens, follow the instructions above.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { + "link": { + "description": "Press and hold the power button on your Nanoleaf for 5 seconds until the button LEDs start flashing, then select **Submit** within 30 seconds.", + "title": "Link Nanoleaf" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -9,31 +25,15 @@ "data_description": { "host": "The hostname or IP address of your Nanoleaf device." } - }, - "link": { - "title": "Link Nanoleaf", - "description": "Press and hold the power button on your Nanoleaf for 5 seconds until the button LEDs start flashing, then select **Submit** within 30 seconds." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "not_allowing_new_tokens": "Nanoleaf is not allowing new tokens, follow the instructions above.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_token": "[%key:common::config_flow::error::invalid_access_token%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "device_automation": { "trigger_type": { - "swipe_up": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_up%]", "swipe_down": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_down%]", "swipe_left": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_left%]", - "swipe_right": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_right%]" + "swipe_right": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_right%]", + "swipe_up": "[%key:component::nanoleaf::entity::event::touch::state_attributes::event_type::state::swipe_up%]" } }, "entity": { @@ -43,10 +43,10 @@ "state_attributes": { "event_type": { "state": { - "swipe_up": "Swipe up", "swipe_down": "Swipe down", "swipe_left": "Swipe left", - "swipe_right": "Swipe right" + "swipe_right": "Swipe right", + "swipe_up": "Swipe up" } } } @@ -55,8 +55,8 @@ }, "issues": { "deprecated_device_trigger": { - "title": "Nanoleaf device trigger is deprecated", - "description": "The Nanoleaf device trigger is deprecated and will be removed in a future release. You can now use the gesture event entity to build automations." + "description": "The Nanoleaf device trigger is deprecated and will be removed in a future release. You can now use the gesture event entity to build automations.", + "title": "Nanoleaf device trigger is deprecated" } } } diff --git a/homeassistant/components/nasweb/icons.json b/homeassistant/components/nasweb/icons.json index 0055bf2296a..19db36609b7 100644 --- a/homeassistant/components/nasweb/icons.json +++ b/homeassistant/components/nasweb/icons.json @@ -4,10 +4,10 @@ "sensor_input": { "default": "mdi:help-circle-outline", "state": { - "tamper": "mdi:lock-alert", "active": "mdi:alert", "normal": "mdi:shield-check-outline", - "problem": "mdi:alert-circle" + "problem": "mdi:alert-circle", + "tamper": "mdi:lock-alert" } } } diff --git a/homeassistant/components/nasweb/strings.json b/homeassistant/components/nasweb/strings.json index 73b91768374..1c9740cd330 100644 --- a/homeassistant/components/nasweb/strings.json +++ b/homeassistant/components/nasweb/strings.json @@ -1,15 +1,7 @@ { "config": { - "step": { - "user": { - "title": "Add NASweb device", - "description": "{nasweb_schema_img}NASweb combines the functions of a control panel and the ability to manage building automation. The device monitors the flow of information from sensors and programmable switches and stores settings, definitions and configured actions.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -19,44 +11,52 @@ "missing_status": "Did not receive any status updates within the expected time window. Make sure the Home Assistant internal URL is reachable from the NASweb device.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "exceptions": { - "config_entry_error_invalid_authentication": { - "message": "Invalid username/password. Most likely the user has changed their password or has been removed. Delete this entry and create a new one with the correct username/password." - }, - "config_entry_error_internal_error": { - "message": "Something isn't right with the device's internal configuration. Try restarting the device and Home Assistant. If the issue persists contact support at {support_email}" - }, - "config_entry_error_no_status_update": { - "message": "Did not receive any status updates within the expected time window. Make sure the Home Assistant internal URL is reachable from the NASweb device. If the issue persists contact support at {support_email}" - }, - "config_entry_error_missing_internal_url": { - "message": "[%key:component::nasweb::config::error::missing_internal_url%]" - }, - "serial_mismatch": { - "message": "Connected to different NASweb device (serial number mismatch)." + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "{nasweb_schema_img}NASweb combines the functions of a control panel and the ability to manage building automation. The device monitors the flow of information from sensors and programmable switches and stores settings, definitions and configured actions.", + "title": "Add NASweb device" + } } }, "entity": { - "switch": { - "switch_output": { - "name": "Relay switch {index}" - } - }, "sensor": { "sensor_input": { "name": "Input {index}", "state": { - "undefined": "Undefined", - "tamper": "Tamper", "active": "[%key:common::state::active%]", "normal": "[%key:common::state::normal%]", - "problem": "Problem" + "problem": "Problem", + "tamper": "Tamper", + "undefined": "Undefined" } } + }, + "switch": { + "switch_output": { + "name": "Relay switch {index}" + } + } + }, + "exceptions": { + "config_entry_error_internal_error": { + "message": "Something isn't right with the device's internal configuration. Try restarting the device and Home Assistant. If the issue persists contact support at {support_email}" + }, + "config_entry_error_invalid_authentication": { + "message": "Invalid username/password. Most likely the user has changed their password or has been removed. Delete this entry and create a new one with the correct username/password." + }, + "config_entry_error_missing_internal_url": { + "message": "[%key:component::nasweb::config::error::missing_internal_url%]" + }, + "config_entry_error_no_status_update": { + "message": "Did not receive any status updates within the expected time window. Make sure the Home Assistant internal URL is reachable from the NASweb device. If the issue persists contact support at {support_email}" + }, + "serial_mismatch": { + "message": "Connected to different NASweb device (serial number mismatch)." } } } diff --git a/homeassistant/components/neato/strings.json b/homeassistant/components/neato/strings.json index c16b7bc1903..328f50b798b 100644 --- a/homeassistant/components/neato/strings.json +++ b/homeassistant/components/neato/strings.json @@ -1,32 +1,32 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { "title": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "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%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { @@ -48,26 +48,26 @@ }, "services": { "custom_cleaning": { - "name": "Custom cleaning", "description": "Starts a custom cleaning of your house.", "fields": { + "category": { + "description": "Whether to use a persistent map or not for cleaning (i.e. No go lines): 2 for no map, 4 for map. Default to using map if not set (and fallback to no map if no map is found).", + "name": "Use cleaning map" + }, "mode": { - "name": "Cleaning mode", - "description": "Sets the cleaning mode: 1 for eco and 2 for turbo. Defaults to turbo if not set." + "description": "Sets the cleaning mode: 1 for eco and 2 for turbo. Defaults to turbo if not set.", + "name": "Cleaning mode" }, "navigation": { - "name": "Navigation mode", - "description": "Sets the navigation mode: 1 for normal, 2 for extra care, 3 for deep. Defaults to normal if not set." - }, - "category": { - "name": "Use cleaning map", - "description": "Whether to use a persistent map or not for cleaning (i.e. No go lines): 2 for no map, 4 for map. Default to using map if not set (and fallback to no map if no map is found)." + "description": "Sets the navigation mode: 1 for normal, 2 for extra care, 3 for deep. Defaults to normal if not set.", + "name": "Navigation mode" }, "zone": { - "name": "Zone", - "description": "Name of the zone to clean (only supported on the Botvac D7). Defaults to no zone i.e. complete house cleanup." + "description": "Name of the zone to clean (only supported on the Botvac D7). Defaults to no zone i.e. complete house cleanup.", + "name": "Zone" } - } + }, + "name": "Custom cleaning" } } } diff --git a/homeassistant/components/nederlandse_spoorwegen/strings.json b/homeassistant/components/nederlandse_spoorwegen/strings.json index 0da1fd1ccc2..1f06c537a7f 100644 --- a/homeassistant/components/nederlandse_spoorwegen/strings.json +++ b/homeassistant/components/nederlandse_spoorwegen/strings.json @@ -1,74 +1,74 @@ { "config": { - "step": { - "user": { - "description": "Set up your Nederlandse Spoorwegen integration.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "Your NS API key." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "Could not connect to NS API. Check your API key.", "invalid_auth": "[%key:common::config_flow::error::invalid_api_key%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "Your NS API key." + }, + "description": "Set up your Nederlandse Spoorwegen integration." + } } }, "config_subentries": { "route": { - "step": { - "user": { - "description": "Select your departure and destination stations from the dropdown lists.", - "data": { - "name": "Route name", - "from": "Departure station", - "to": "Destination station", - "via": "Via station", - "time": "Departure time" - }, - "data_description": { - "name": "A name for this route", - "from": "The station to depart from", - "to": "The station to arrive at", - "via": "An optional intermediate station", - "time": "Optional planned departure time" - } - } - }, - "error": { + "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { + "entry_type": "Route", + "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "initiate_flow": { "user": "Add route" }, - "entry_type": "Route" + "step": { + "user": { + "data": { + "from": "Departure station", + "name": "Route name", + "time": "Departure time", + "to": "Destination station", + "via": "Via station" + }, + "data_description": { + "from": "The station to depart from", + "name": "A name for this route", + "time": "Optional planned departure time", + "to": "The station to arrive at", + "via": "An optional intermediate station" + }, + "description": "Select your departure and destination stations from the dropdown lists." + } + } } }, "issues": { - "deprecated_yaml_import_issue_invalid_auth": { - "title": "Nederlandse Spoorwegen YAML configuration deprecated", - "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an invalid API key was found. Please update your YAML configuration, or remove the existing YAML configuration and set the integration up via the UI." - }, "deprecated_yaml_import_issue_cannot_connect": { - "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]", - "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, Home Assistant could not connect to the NS API. Please check your internet connection and the status of the NS API, then restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI." + "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, Home Assistant could not connect to the NS API. Please check your internet connection and the status of the NS API, then restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI.", + "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]" }, - "deprecated_yaml_import_issue_unknown": { - "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]", - "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an unknown error occurred. Please restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI." + "deprecated_yaml_import_issue_invalid_auth": { + "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an invalid API key was found. Please update your YAML configuration, or remove the existing YAML configuration and set the integration up via the UI.", + "title": "Nederlandse Spoorwegen YAML configuration deprecated" }, "deprecated_yaml_import_issue_invalid_station": { - "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]", - "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration an invalid station was found. Please update your YAML configuration, or remove the existing YAML configuration and set the integration up via the UI." + "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration an invalid station was found. Please update your YAML configuration, or remove the existing YAML configuration and set the integration up via the UI.", + "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]" + }, + "deprecated_yaml_import_issue_unknown": { + "description": "Configuring Nederlandse Spoorwegen using YAML sensor platform is deprecated.\n\nWhile importing your configuration, an unknown error occurred. Please restart Home Assistant to try again, or remove the existing YAML configuration and set the integration up via the UI.", + "title": "[%key:component::nederlandse_spoorwegen::issues::deprecated_yaml_import_issue_invalid_auth::title%]" } } } diff --git a/homeassistant/components/ness_alarm/strings.json b/homeassistant/components/ness_alarm/strings.json index f4490ac98db..94e1cd9a560 100644 --- a/homeassistant/components/ness_alarm/strings.json +++ b/homeassistant/components/ness_alarm/strings.json @@ -1,28 +1,28 @@ { "services": { "aux": { - "name": "Aux", "description": "Changes the state of an aux output.", "fields": { "output_id": { - "name": "Output ID", - "description": "The aux output you wish to change." + "description": "The aux output you wish to change.", + "name": "Output ID" }, "state": { - "name": "State", - "description": "The on/off state of the output. If P14xE 8E is enabled then turning on will pulse the output for the time specified in P14(x+4)E." + "description": "The on/off state of the output. If P14xE 8E is enabled then turning on will pulse the output for the time specified in P14(x+4)E.", + "name": "State" } - } + }, + "name": "Aux" }, "panic": { - "name": "Panic", "description": "Triggers a panic alarm.", "fields": { "code": { - "name": "Code", - "description": "The user code to use to trigger the panic alarm." + "description": "The user code to use to trigger the panic alarm.", + "name": "Code" } - } + }, + "name": "Panic" } } } diff --git a/homeassistant/components/nest/strings.json b/homeassistant/components/nest/strings.json index 636a3a0d294..8c50664e70c 100644 --- a/homeassistant/components/nest/strings.json +++ b/homeassistant/components/nest/strings.json @@ -3,92 +3,92 @@ "description": "Follow the [instructions]({more_info_url}) to configure the Cloud Console:\n\n1. Go to the [OAuth consent screen]({oauth_consent_url}) and configure\n1. Go to [Credentials]({oauth_creds_url}) and select **Create Credentials**.\n1. From the drop-down list select **OAuth client ID**.\n1. Select **Web Application** for the Application Type.\n1. Add `{redirect_url}` under *Authorized redirect URI*." }, "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%]", + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "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%]", + "pubsub_api_error": "[%key:component::nest::config::error::pubsub_api_error%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "error": { + "bad_project_id": "Please enter a valid Cloud Project ID (check Cloud Console)", + "no_pubsub_topics": "No eligible Pub/Sub topics found, please ensure Device Access Console has a Pub/Sub topic.", + "pubsub_api_error": "Unknown error talking to Cloud Pub/Sub, see logs", + "subscriber_error": "Unknown subscriber error, see logs", + "wrong_project_id": "Please enter a valid Cloud Project ID (was same as Device Access Project ID)" + }, "step": { - "create_cloud_project": { - "title": "Nest: Create and configure Cloud Project", - "description": "The Nest integration allows you to integrate your Nest Thermostats, Cameras, and Doorbells using the Smart Device Management API. The SDM API **requires a US $5** one-time setup fee. See documentation for [more info]({more_info_url}).\n\n1. Go to the [Google Cloud Console]({cloud_console_url}).\n1. If this is your first project, select **Create Project** then **New Project**.\n1. Give your Cloud Project a name and then select **Create**.\n1. Save the Cloud Project ID e.g. *example-project-12345* as you will need it later\n1. Go to API Library for [Smart Device Management API]({sdm_api_url}) and select **Enable**.\n1. Go to API Library for [Cloud Pub/Sub API]({pubsub_api_url}) and select **Enable**.\n\nProceed when your Cloud Project is set up." - }, "cloud_project": { - "title": "Nest: Enter Cloud Project ID", - "description": "Enter the Cloud Project ID below e.g. *example-project-12345*. See the [Google Cloud Console]({cloud_console_url}) or the documentation for [more info]({more_info_url}).", "data": { "cloud_project_id": "Google Cloud Project ID" - } + }, + "description": "Enter the Cloud Project ID below e.g. *example-project-12345*. See the [Google Cloud Console]({cloud_console_url}) or the documentation for [more info]({more_info_url}).", + "title": "Nest: Enter Cloud Project ID" + }, + "create_cloud_project": { + "description": "The Nest integration allows you to integrate your Nest Thermostats, Cameras, and Doorbells using the Smart Device Management API. The SDM API **requires a US $5** one-time setup fee. See documentation for [more info]({more_info_url}).\n\n1. Go to the [Google Cloud Console]({cloud_console_url}).\n1. If this is your first project, select **Create Project** then **New Project**.\n1. Give your Cloud Project a name and then select **Create**.\n1. Save the Cloud Project ID e.g. *example-project-12345* as you will need it later\n1. Go to API Library for [Smart Device Management API]({sdm_api_url}) and select **Enable**.\n1. Go to API Library for [Cloud Pub/Sub API]({pubsub_api_url}) and select **Enable**.\n\nProceed when your Cloud Project is set up.", + "title": "Nest: Create and configure Cloud Project" }, "device_project": { - "title": "Nest: Create a Device Access Project", - "description": "Create a Nest Device Access project which **requires paying Google a US $5 fee** to set up.\n1. Go to the [Device Access Console]({device_access_console_url}), and through the payment flow.\n1. Select on **Create project**\n1. Give your Device Access project a name and select **Next**.\n1. Enter your OAuth Client ID\n1. Skip enabling events for now and select **Create project**.\n\nEnter your Device Access Project ID below ([more info]({more_info_url})).", "data": { "project_id": "Device Access Project ID" - } + }, + "description": "Create a Nest Device Access project which **requires paying Google a US $5 fee** to set up.\n1. Go to the [Device Access Console]({device_access_console_url}), and through the payment flow.\n1. Select on **Create project**\n1. Give your Device Access project a name and select **Next**.\n1. Enter your OAuth Client ID\n1. Skip enabling events for now and select **Create project**.\n\nEnter your Device Access Project ID below ([more info]({more_info_url})).", + "title": "Nest: Create a Device Access Project" + }, + "oauth_discovery": { + "description": "Home Assistant has found a Google Nest device on your network. Be aware that the setup of Google Nest is more complicated than most other integrations and requires setting up a Nest Device Access project which **requires paying Google a US $5 fee**. Press **Submit** to continue setting up Google Nest." }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "pubsub_topic": { - "title": "Configure Cloud Pub/Sub topic", - "description": "Nest devices publish updates on a Cloud Pub/Sub topic. You can select an existing topic if one exists, or choose to create a new topic and the next step will create it for you with the necessary permissions. See the integration documentation for [more info]({more_info_url}).", - "data": { - "topic_name": "Pub/Sub topic name" - } - }, - "pubsub_topic_confirm": { - "title": "Enable events", - "description": "The Nest Device Access Console needs to be configured to publish device events to your Pub/Sub topic.\n\n1. Visit the [Device Access Console]({device_access_console_url}).\n2. Open the project.\n3. Enable *Events* and set the Pub/Sub topic name to `{topic_name}`\n4. Click *Add & Validate* to verify the topic is configured correctly.\n\nSee the integration documentation for [more info]({more_info_url}).", - "submit": "Confirm" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "pubsub_subscription": { - "title": "Configure Cloud Pub/Sub subscription", - "description": "Home Assistant receives realtime Nest device updates with a Cloud Pub/Sub subscription for topic `{topic}`.\n\nSelect an existing subscription below if one already exists, or the next step will create a new one for you. See the integration documentation for [more info]({more_info_url}).", "data": { "subscription_name": "Pub/Sub subscription name" - } + }, + "description": "Home Assistant receives realtime Nest device updates with a Cloud Pub/Sub subscription for topic `{topic}`.\n\nSelect an existing subscription below if one already exists, or the next step will create a new one for you. See the integration documentation for [more info]({more_info_url}).", + "title": "Configure Cloud Pub/Sub subscription" + }, + "pubsub_topic": { + "data": { + "topic_name": "Pub/Sub topic name" + }, + "description": "Nest devices publish updates on a Cloud Pub/Sub topic. You can select an existing topic if one exists, or choose to create a new topic and the next step will create it for you with the necessary permissions. See the integration documentation for [more info]({more_info_url}).", + "title": "Configure Cloud Pub/Sub topic" + }, + "pubsub_topic_confirm": { + "description": "The Nest Device Access Console needs to be configured to publish device events to your Pub/Sub topic.\n\n1. Visit the [Device Access Console]({device_access_console_url}).\n2. Open the project.\n3. Enable *Events* and set the Pub/Sub topic name to `{topic_name}`\n4. Click *Add & Validate* to verify the topic is configured correctly.\n\nSee the integration documentation for [more info]({more_info_url}).", + "submit": "Confirm", + "title": "Enable events" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Nest integration needs to re-authenticate your account" - }, - "oauth_discovery": { - "description": "Home Assistant has found a Google Nest device on your network. Be aware that the setup of Google Nest is more complicated than most other integrations and requires setting up a Nest Device Access project which **requires paying Google a US $5 fee**. Press **Submit** to continue setting up Google Nest." + "description": "The Nest integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "error": { - "bad_project_id": "Please enter a valid Cloud Project ID (check Cloud Console)", - "wrong_project_id": "Please enter a valid Cloud Project ID (was same as Device Access Project ID)", - "subscriber_error": "Unknown subscriber error, see logs", - "no_pubsub_topics": "No eligible Pub/Sub topics found, please ensure Device Access Console has a Pub/Sub topic.", - "pubsub_api_error": "Unknown error talking to Cloud Pub/Sub, see logs" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "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%]", - "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]", - "pubsub_api_error": "[%key:component::nest::config::error::pubsub_api_error%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "device_automation": { "trigger_type": { - "camera_person": "Person detected", "camera_motion": "Motion detected", + "camera_person": "Person detected", "camera_sound": "Sound detected", "doorbell_chime": "Doorbell pressed" } @@ -120,15 +120,15 @@ } }, "selector": { - "topic_name": { - "options": { - "create_new_topic": "Create new topic" - } - }, "subscription_name": { "options": { "create_new_subscription": "Create new subscription" } + }, + "topic_name": { + "options": { + "create_new_topic": "Create new topic" + } } } } diff --git a/homeassistant/components/netatmo/icons.json b/homeassistant/components/netatmo/icons.json index 099c6aa1784..8290b3c91ad 100644 --- a/homeassistant/components/netatmo/icons.json +++ b/homeassistant/components/netatmo/icons.json @@ -1,41 +1,35 @@ { "entity": { + "button": { + "preferred_position": { + "default": "mdi:window-shutter-auto" + } + }, "climate": { "thermostat": { "state_attributes": { "preset_mode": { "state": { "frost_guard": "mdi:snowflake-thermometer", - "schedule": "mdi:clock-outline", - "manual": "mdi:gesture-tap" + "manual": "mdi:gesture-tap", + "schedule": "mdi:clock-outline" } } } } }, - "button": { - "preferred_position": { - "default": "mdi:window-shutter-auto" - } - }, "sensor": { - "temp_trend": { - "default": "mdi:trending-up" - }, - "pressure_trend": { - "default": "mdi:trending-up" - }, - "wind_direction": { - "default": "mdi:compass-outline" - }, - "wind_angle": { + "gust_angle": { "default": "mdi:compass-outline" }, "gust_direction": { "default": "mdi:compass-outline" }, - "gust_angle": { - "default": "mdi:compass-outline" + "health_idx": { + "default": "mdi:cloud" + }, + "pressure_trend": { + "default": "mdi:trending-up" }, "reachable": { "default": "mdi:signal" @@ -43,42 +37,48 @@ "rf_strength": { "default": "mdi:signal" }, + "temp_trend": { + "default": "mdi:trending-up" + }, "wifi_strength": { "default": "mdi:wifi" }, - "health_idx": { - "default": "mdi:cloud" + "wind_angle": { + "default": "mdi:compass-outline" + }, + "wind_direction": { + "default": "mdi:compass-outline" } } }, "services": { + "clear_temperature_setting": { + "service": "mdi:thermometer" + }, + "register_webhook": { + "service": "mdi:link-variant" + }, "set_camera_light": { "service": "mdi:led-on" }, - "set_schedule": { - "service": "mdi:calendar-clock" + "set_person_away": { + "service": "mdi:walk" + }, + "set_persons_home": { + "service": "mdi:home" }, "set_preset_mode_with_end_datetime": { "service": "mdi:calendar-clock" }, + "set_schedule": { + "service": "mdi:calendar-clock" + }, "set_temperature_with_end_datetime": { "service": "mdi:thermometer" }, "set_temperature_with_time_period": { "service": "mdi:thermometer" }, - "clear_temperature_setting": { - "service": "mdi:thermometer" - }, - "set_persons_home": { - "service": "mdi:home" - }, - "set_person_away": { - "service": "mdi:walk" - }, - "register_webhook": { - "service": "mdi:link-variant" - }, "unregister_webhook": { "service": "mdi:link-variant-off" } diff --git a/homeassistant/components/netatmo/strings.json b/homeassistant/components/netatmo/strings.json index f47b9e993aa..befc9ea843d 100644 --- a/homeassistant/components/netatmo/strings.json +++ b/homeassistant/components/netatmo/strings.json @@ -1,33 +1,146 @@ { "config": { + "abort": { + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Netatmo integration needs to re-authenticate your account" + "description": "The Netatmo integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } + } + }, + "device_automation": { + "trigger_subtype": { + "away": "[%key:common::state::not_home%]", + "hg": "Frost guard", + "schedule": "Schedule" + }, + "trigger_type": { + "alarm_started": "{entity_name} detected an alarm", + "animal": "{entity_name} detected an animal", + "cancel_set_point": "{entity_name} has resumed its schedule", + "human": "{entity_name} detected a human", + "movement": "{entity_name} detected movement", + "outdoor": "{entity_name} detected an outdoor event", + "person": "{entity_name} detected a person", + "person_away": "{entity_name} detected a person has left", + "set_point": "Target temperature {entity_name} set manually", + "therm_mode": "{entity_name} switched to \"{subtype}\"", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", + "vehicle": "{entity_name} detected a vehicle" + } + }, + "entity": { + "button": { + "preferred_position": { + "name": "Preferred position" } }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]" + "climate": { + "thermostat": { + "state_attributes": { + "preset_mode": { + "state": { + "frost_guard": "Frost guard", + "manual": "[%key:common::state::manual%]", + "schedule": "Schedule" + } + } + } + } }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" + "sensor": { + "gust_angle": { + "name": "Gust angle" + }, + "gust_direction": { + "name": "Gust direction", + "state": { + "e": "[%key:component::netatmo::entity::sensor::wind_direction::state::e%]", + "n": "[%key:component::netatmo::entity::sensor::wind_direction::state::n%]", + "ne": "[%key:component::netatmo::entity::sensor::wind_direction::state::ne%]", + "nw": "[%key:component::netatmo::entity::sensor::wind_direction::state::nw%]", + "s": "[%key:component::netatmo::entity::sensor::wind_direction::state::s%]", + "se": "[%key:component::netatmo::entity::sensor::wind_direction::state::se%]", + "sw": "[%key:component::netatmo::entity::sensor::wind_direction::state::sw%]", + "w": "[%key:component::netatmo::entity::sensor::wind_direction::state::w%]" + } + }, + "gust_strength": { + "name": "Gust strength" + }, + "health_idx": { + "name": "Health index", + "state": { + "fair": "Fair", + "fine": "Fine", + "healthy": "Healthy", + "poor": "Poor", + "unhealthy": "Unhealthy" + } + }, + "noise": { + "name": "Noise" + }, + "pressure_trend": { + "name": "Pressure trend" + }, + "reachable": { + "name": "Reachability" + }, + "rf_strength": { + "name": "RF strength" + }, + "sum_rain_1": { + "name": "Precipitation last hour" + }, + "sum_rain_24": { + "name": "Precipitation today" + }, + "temp_trend": { + "name": "Temperature trend" + }, + "wifi_strength": { + "name": "Wi-Fi strength" + }, + "wind_angle": { + "name": "Wind angle" + }, + "wind_direction": { + "name": "Wind direction", + "state": { + "e": "East", + "n": "North", + "ne": "Northeast", + "nw": "Northwest", + "s": "South", + "se": "Southeast", + "sw": "Southwest", + "w": "West" + } + } } }, "options": { @@ -36,8 +149,8 @@ "data": { "area_name": "Name of the area", "lat_ne": "Northeast corner latitude", - "lon_ne": "Northeast corner longitude", "lat_sw": "Southwest corner latitude", + "lon_ne": "Northeast corner longitude", "lon_sw": "Southwest corner longitude", "mode": "Calculation", "show_on_map": "Show on map" @@ -55,213 +168,100 @@ } } }, - "device_automation": { - "trigger_subtype": { - "away": "[%key:common::state::not_home%]", - "schedule": "Schedule", - "hg": "Frost guard" - }, - "trigger_type": { - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "human": "{entity_name} detected a human", - "movement": "{entity_name} detected movement", - "person": "{entity_name} detected a person", - "person_away": "{entity_name} detected a person has left", - "animal": "{entity_name} detected an animal", - "outdoor": "{entity_name} detected an outdoor event", - "vehicle": "{entity_name} detected a vehicle", - "alarm_started": "{entity_name} detected an alarm", - "set_point": "Target temperature {entity_name} set manually", - "cancel_set_point": "{entity_name} has resumed its schedule", - "therm_mode": "{entity_name} switched to \"{subtype}\"" - } - }, "services": { + "clear_temperature_setting": { + "description": "Clears any temperature setting for a Netatmo climate device reverting it to the current preset or schedule.", + "name": "Clear temperature setting" + }, + "register_webhook": { + "description": "Registers the webhook to the Netatmo backend.", + "name": "Register webhook" + }, "set_camera_light": { - "name": "Set camera light mode", "description": "Sets the light mode for a Netatmo Outdoor camera light.", "fields": { "camera_light_mode": { - "name": "Camera light mode", - "description": "Outdoor camera light mode." + "description": "Outdoor camera light mode.", + "name": "Camera light mode" } - } - }, - "set_schedule": { - "name": "Set heating schedule", - "description": "Sets the heating schedule for Netatmo climate device. The schedule name must match a schedule configured at Netatmo.", - "fields": { - "schedule_name": { - "name": "[%key:component::netatmo::device_automation::trigger_subtype::schedule%]", - "description": "Schedule name." - } - } - }, - "set_persons_home": { - "name": "Set persons at home", - "description": "Sets a list of persons as at home. Person's name must match a name known by the Netatmo Indoor (Welcome) Camera.", - "fields": { - "persons": { - "name": "Persons", - "description": "List of names." - } - } + }, + "name": "Set camera light mode" }, "set_person_away": { - "name": "Set person away", "description": "Sets a person as away. If no person is set the home will be marked as empty. Person's name must match a name known by the Netatmo Indoor (Welcome) Camera.", "fields": { "person": { - "name": "Person", - "description": "Person's name." + "description": "Person's name.", + "name": "Person" } - } + }, + "name": "Set person away" }, - "register_webhook": { - "name": "Register webhook", - "description": "Registers the webhook to the Netatmo backend." - }, - "unregister_webhook": { - "name": "Unregister webhook", - "description": "Unregisters the webhook from the Netatmo backend." + "set_persons_home": { + "description": "Sets a list of persons as at home. Person's name must match a name known by the Netatmo Indoor (Welcome) Camera.", + "fields": { + "persons": { + "description": "List of names.", + "name": "Persons" + } + }, + "name": "Set persons at home" }, "set_preset_mode_with_end_datetime": { - "name": "Set preset mode with end date & time", "description": "Sets the preset mode for a Netatmo climate device. The preset mode must match a preset mode configured at Netatmo.", "fields": { - "preset_mode": { - "name": "Preset mode", - "description": "Climate preset mode such as Schedule, Away or Frost Guard." - }, "end_datetime": { - "name": "End date & time", - "description": "Date & time the preset will be active until." + "description": "Date & time the preset will be active until.", + "name": "End date & time" + }, + "preset_mode": { + "description": "Climate preset mode such as Schedule, Away or Frost Guard.", + "name": "Preset mode" } - } + }, + "name": "Set preset mode with end date & time" + }, + "set_schedule": { + "description": "Sets the heating schedule for Netatmo climate device. The schedule name must match a schedule configured at Netatmo.", + "fields": { + "schedule_name": { + "description": "Schedule name.", + "name": "[%key:component::netatmo::device_automation::trigger_subtype::schedule%]" + } + }, + "name": "Set heating schedule" }, "set_temperature_with_end_datetime": { - "name": "Set temperature with end date & time", "description": "Sets the target temperature for a Netatmo climate device with an end date & time.", "fields": { - "target_temperature": { - "name": "Target temperature", - "description": "The target temperature for the device." - }, "end_datetime": { - "name": "[%key:component::netatmo::services::set_preset_mode_with_end_datetime::fields::end_datetime::name%]", - "description": "Date & time the target temperature will be active until." + "description": "Date & time the target temperature will be active until.", + "name": "[%key:component::netatmo::services::set_preset_mode_with_end_datetime::fields::end_datetime::name%]" + }, + "target_temperature": { + "description": "The target temperature for the device.", + "name": "Target temperature" } - } + }, + "name": "Set temperature with end date & time" }, "set_temperature_with_time_period": { - "name": "Set temperature with time period", "description": "Sets the target temperature for a Netatmo climate device with time period.", "fields": { "target_temperature": { - "name": "[%key:component::netatmo::services::set_temperature_with_end_datetime::fields::target_temperature::name%]", - "description": "[%key:component::netatmo::services::set_temperature_with_end_datetime::fields::target_temperature::description%]" + "description": "[%key:component::netatmo::services::set_temperature_with_end_datetime::fields::target_temperature::description%]", + "name": "[%key:component::netatmo::services::set_temperature_with_end_datetime::fields::target_temperature::name%]" }, "time_period": { - "name": "Time period", - "description": "The time period which the temperature setting will be active for." + "description": "The time period which the temperature setting will be active for.", + "name": "Time period" } - } + }, + "name": "Set temperature with time period" }, - "clear_temperature_setting": { - "name": "Clear temperature setting", - "description": "Clears any temperature setting for a Netatmo climate device reverting it to the current preset or schedule." - } - }, - "entity": { - "climate": { - "thermostat": { - "state_attributes": { - "preset_mode": { - "state": { - "frost_guard": "Frost guard", - "schedule": "Schedule", - "manual": "[%key:common::state::manual%]" - } - } - } - } - }, - "button": { - "preferred_position": { - "name": "Preferred position" - } - }, - "sensor": { - "temp_trend": { - "name": "Temperature trend" - }, - "pressure_trend": { - "name": "Pressure trend" - }, - "noise": { - "name": "Noise" - }, - "sum_rain_1": { - "name": "Precipitation last hour" - }, - "sum_rain_24": { - "name": "Precipitation today" - }, - "wind_direction": { - "name": "Wind direction", - "state": { - "n": "North", - "ne": "Northeast", - "e": "East", - "se": "Southeast", - "s": "South", - "sw": "Southwest", - "w": "West", - "nw": "Northwest" - } - }, - "wind_angle": { - "name": "Wind angle" - }, - "gust_direction": { - "name": "Gust direction", - "state": { - "n": "[%key:component::netatmo::entity::sensor::wind_direction::state::n%]", - "ne": "[%key:component::netatmo::entity::sensor::wind_direction::state::ne%]", - "e": "[%key:component::netatmo::entity::sensor::wind_direction::state::e%]", - "se": "[%key:component::netatmo::entity::sensor::wind_direction::state::se%]", - "s": "[%key:component::netatmo::entity::sensor::wind_direction::state::s%]", - "sw": "[%key:component::netatmo::entity::sensor::wind_direction::state::sw%]", - "w": "[%key:component::netatmo::entity::sensor::wind_direction::state::w%]", - "nw": "[%key:component::netatmo::entity::sensor::wind_direction::state::nw%]" - } - }, - "gust_angle": { - "name": "Gust angle" - }, - "gust_strength": { - "name": "Gust strength" - }, - "reachable": { - "name": "Reachability" - }, - "rf_strength": { - "name": "RF strength" - }, - "wifi_strength": { - "name": "Wi-Fi strength" - }, - "health_idx": { - "name": "Health index", - "state": { - "healthy": "Healthy", - "fine": "Fine", - "fair": "Fair", - "poor": "Poor", - "unhealthy": "Unhealthy" - } - } + "unregister_webhook": { + "description": "Unregisters the webhook from the Netatmo backend.", + "name": "Unregister webhook" } } } diff --git a/homeassistant/components/netgear/icons.json b/homeassistant/components/netgear/icons.json index c1688b56692..0053811f6fa 100644 --- a/homeassistant/components/netgear/icons.json +++ b/homeassistant/components/netgear/icons.json @@ -1,97 +1,100 @@ { "entity": { "sensor": { - "link_type": { - "default": "mdi:lan" - }, - "link_rate": { - "default": "mdi:speedometer" - }, - "signal_strength": { - "default": "mdi:wifi" - }, - "ssid": { - "default": "mdi:wifi-marker" - }, "access_point_mac": { "default": "mdi:router-network" }, - "upload_today": { - "default": "mdi:upload" - }, - "download_today": { - "default": "mdi:download" - }, - "upload_yesterday": { - "default": "mdi:upload" - }, - "download_yesterday": { - "default": "mdi:download" - }, - "upload_week": { - "default": "mdi:upload" - }, - "upload_week_average": { - "default": "mdi:upload" - }, - "download_week": { - "default": "mdi:download" - }, - "download_week_average": { - "default": "mdi:download" - }, - "upload_month": { - "default": "mdi:upload" - }, - "upload_month_average": { - "default": "mdi:upload" - }, - "download_month": { - "default": "mdi:download" - }, - "download_month_average": { - "default": "mdi:download" - }, - "upload_last_month": { - "default": "mdi:upload" - }, - "upload_last_month_average": { - "default": "mdi:upload" - }, - "download_last_month": { - "default": "mdi:download" - }, - "download_last_month_average": { - "default": "mdi:download" - }, - "uplink_bandwidth": { - "default": "mdi:upload" - }, - "downlink_bandwidth": { - "default": "mdi:download" - }, "average_ping": { "default": "mdi:wan" }, "cpu_utilization": { "default": "mdi:cpu-64-bit" }, - "memory_utilization": { - "default": "mdi:memory" + "downlink_bandwidth": { + "default": "mdi:download" + }, + "download_last_month": { + "default": "mdi:download" + }, + "download_last_month_average": { + "default": "mdi:download" + }, + "download_month": { + "default": "mdi:download" + }, + "download_month_average": { + "default": "mdi:download" + }, + "download_today": { + "default": "mdi:download" + }, + "download_week": { + "default": "mdi:download" + }, + "download_week_average": { + "default": "mdi:download" + }, + "download_yesterday": { + "default": "mdi:download" }, "ethernet_link_status": { "default": "mdi:ethernet" + }, + "link_rate": { + "default": "mdi:speedometer" + }, + "link_type": { + "default": "mdi:lan" + }, + "memory_utilization": { + "default": "mdi:memory" + }, + "signal_strength": { + "default": "mdi:wifi" + }, + "ssid": { + "default": "mdi:wifi-marker" + }, + "uplink_bandwidth": { + "default": "mdi:upload" + }, + "upload_last_month": { + "default": "mdi:upload" + }, + "upload_last_month_average": { + "default": "mdi:upload" + }, + "upload_month": { + "default": "mdi:upload" + }, + "upload_month_average": { + "default": "mdi:upload" + }, + "upload_today": { + "default": "mdi:upload" + }, + "upload_week": { + "default": "mdi:upload" + }, + "upload_week_average": { + "default": "mdi:upload" + }, + "upload_yesterday": { + "default": "mdi:upload" } }, "switch": { - "allowed_on_network": { - "default": "mdi:block-helper" + "2g_guest_wifi": { + "default": "mdi:wifi" + }, + "5g_guest_wifi": { + "default": "mdi:wifi" }, "access_control": { "default": "mdi:block-helper" }, - "traffic_meter": { - "default": "mdi:wifi-arrow-up-down" + "allowed_on_network": { + "default": "mdi:block-helper" }, "parental_control": { "default": "mdi:account-child-outline" @@ -99,14 +102,11 @@ "quality_of_service": { "default": "mdi:wifi-star" }, - "2g_guest_wifi": { - "default": "mdi:wifi" - }, - "5g_guest_wifi": { - "default": "mdi:wifi" - }, "smart_connect": { "default": "mdi:wifi" + }, + "traffic_meter": { + "default": "mdi:wifi-arrow-up-down" } } } diff --git a/homeassistant/components/netgear/manifest.json b/homeassistant/components/netgear/manifest.json index 59a41542d7c..4fecc14ba41 100644 --- a/homeassistant/components/netgear/manifest.json +++ b/homeassistant/components/netgear/manifest.json @@ -9,8 +9,8 @@ "requirements": ["pynetgear==0.10.10"], "ssdp": [ { - "manufacturer": "NETGEAR, Inc.", - "deviceType": "urn:schemas-upnp-org:device:InternetGatewayDevice:1" + "deviceType": "urn:schemas-upnp-org:device:InternetGatewayDevice:1", + "manufacturer": "NETGEAR, Inc." } ] } diff --git a/homeassistant/components/netgear/strings.json b/homeassistant/components/netgear/strings.json index 4d4e72c156f..1092cccaa83 100644 --- a/homeassistant/components/netgear/strings.json +++ b/homeassistant/components/netgear/strings.json @@ -1,131 +1,124 @@ { "config": { - "step": { - "user": { - "description": "Default host: {host}\nDefault username: {username}", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Netgear device. For example: '192.168.1.1'." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_serial": "No serial number in SSDP discovery information", + "not_ipv4_address": "No IPv4 address in SSDP discovery information" }, "error": { "config": "Connection or login error: please check your configuration", "info": "Failed to get info from router" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "not_ipv4_address": "No IPv4 address in SSDP discovery information", - "no_serial": "No serial number in SSDP discovery information" - } - }, - "options": { "step": { - "init": { - "description": "Specify optional settings", + "user": { "data": { - "consider_home": "Consider home time (seconds)" - } + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Netgear device. For example: '192.168.1.1'." + }, + "description": "Default host: {host}\nDefault username: {username}" } } }, "entity": { "sensor": { - "link_type": { - "name": "Link type" - }, - "link_rate": { - "name": "Link rate" - }, - "signal_strength": { - "name": "[%key:component::sensor::entity_component::signal_strength::name%]" - }, - "ssid": { - "name": "SSID" - }, "access_point_mac": { "name": "Access point MAC" }, - "upload_today": { - "name": "Upload today" - }, - "download_today": { - "name": "Download today" - }, - "upload_yesterday": { - "name": "Upload yesterday" - }, - "download_yesterday": { - "name": "Download yesterday" - }, - "upload_week": { - "name": "Upload this week" - }, - "upload_week_average": { - "name": "Upload this week average" - }, - "download_week": { - "name": "Download this week" - }, - "download_week_average": { - "name": "Download this week average" - }, - "upload_month": { - "name": "Upload this month" - }, - "upload_month_average": { - "name": "Upload this month average" - }, - "download_month": { - "name": "Download this month" - }, - "download_month_average": { - "name": "Download this month average" - }, - "upload_last_month": { - "name": "Upload last month" - }, - "upload_last_month_average": { - "name": "Upload last month average" - }, - "download_last_month": { - "name": "Download last month" - }, - "download_last_month_average": { - "name": "Download last month average" - }, - "uplink_bandwidth": { - "name": "Uplink bandwidth" - }, - "downlink_bandwidth": { - "name": "Downlink bandwidth" - }, "average_ping": { "name": "Average ping" }, "cpu_utilization": { "name": "CPU utilization" }, - "memory_utilization": { - "name": "Memory utilization" + "downlink_bandwidth": { + "name": "Downlink bandwidth" + }, + "download_last_month": { + "name": "Download last month" + }, + "download_last_month_average": { + "name": "Download last month average" + }, + "download_month": { + "name": "Download this month" + }, + "download_month_average": { + "name": "Download this month average" + }, + "download_today": { + "name": "Download today" + }, + "download_week": { + "name": "Download this week" + }, + "download_week_average": { + "name": "Download this week average" + }, + "download_yesterday": { + "name": "Download yesterday" }, "ethernet_link_status": { "name": "Ethernet link status" + }, + "link_rate": { + "name": "Link rate" + }, + "link_type": { + "name": "Link type" + }, + "memory_utilization": { + "name": "Memory utilization" + }, + "signal_strength": { + "name": "[%key:component::sensor::entity_component::signal_strength::name%]" + }, + "ssid": { + "name": "SSID" + }, + "uplink_bandwidth": { + "name": "Uplink bandwidth" + }, + "upload_last_month": { + "name": "Upload last month" + }, + "upload_last_month_average": { + "name": "Upload last month average" + }, + "upload_month": { + "name": "Upload this month" + }, + "upload_month_average": { + "name": "Upload this month average" + }, + "upload_today": { + "name": "Upload today" + }, + "upload_week": { + "name": "Upload this week" + }, + "upload_week_average": { + "name": "Upload this week average" + }, + "upload_yesterday": { + "name": "Upload yesterday" } }, "switch": { - "allowed_on_network": { - "name": "Allowed on network" + "2g_guest_wifi": { + "name": "2.4GHz guest Wi-Fi" + }, + "5g_guest_wifi": { + "name": "5GHz guest Wi-Fi" }, "access_control": { "name": "Access control" }, - "traffic_meter": { - "name": "Traffic meter" + "allowed_on_network": { + "name": "Allowed on network" }, "parental_control": { "name": "Parental control" @@ -133,14 +126,21 @@ "quality_of_service": { "name": "Quality of service" }, - "2g_guest_wifi": { - "name": "2.4GHz guest Wi-Fi" - }, - "5g_guest_wifi": { - "name": "5GHz guest Wi-Fi" - }, "smart_connect": { "name": "Smart connect" + }, + "traffic_meter": { + "name": "Traffic meter" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "consider_home": "Consider home time (seconds)" + }, + "description": "Specify optional settings" } } } diff --git a/homeassistant/components/netgear_lte/icons.json b/homeassistant/components/netgear_lte/icons.json index 703d330512b..43201060a97 100644 --- a/homeassistant/components/netgear_lte/icons.json +++ b/homeassistant/components/netgear_lte/icons.json @@ -1,6 +1,24 @@ { "entity": { "sensor": { + "band": { + "default": "mdi:radio-tower" + }, + "cell_id": { + "default": "mdi:radio-tower" + }, + "connection_text": { + "default": "mdi:radio-tower" + }, + "connection_type": { + "default": "mdi:ip" + }, + "register_network_display": { + "default": "mdi:web" + }, + "service_type": { + "default": "mdi:radio-tower" + }, "sms": { "default": "mdi:message-processing" }, @@ -9,39 +27,21 @@ }, "upstream": { "default": "mdi:ip-network" - }, - "connection_text": { - "default": "mdi:radio-tower" - }, - "connection_type": { - "default": "mdi:ip" - }, - "service_type": { - "default": "mdi:radio-tower" - }, - "register_network_display": { - "default": "mdi:web" - }, - "band": { - "default": "mdi:radio-tower" - }, - "cell_id": { - "default": "mdi:radio-tower" } } }, "services": { - "delete_sms": { - "service": "mdi:delete" - }, - "set_option": { - "service": "mdi:cog" - }, "connect_lte": { "service": "mdi:wifi" }, + "delete_sms": { + "service": "mdi:delete" + }, "disconnect_lte": { "service": "mdi:wifi-off" + }, + "set_option": { + "service": "mdi:cog" } } } diff --git a/homeassistant/components/netgear_lte/strings.json b/homeassistant/components/netgear_lte/strings.json index 0b1446b33ca..7db66f6fab6 100644 --- a/homeassistant/components/netgear_lte/strings.json +++ b/homeassistant/components/netgear_lte/strings.json @@ -1,72 +1,18 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "services": { - "delete_sms": { - "name": "Delete SMS", - "description": "Deletes messages from the modem inbox.", - "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "The modem that should have a message deleted." - }, - "sms_id": { - "name": "SMS ID", - "description": "Integer or list of integers with inbox IDs of messages to delete." - } - } - }, - "set_option": { - "name": "Set option", - "description": "Sets options on the modem.", - "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "The modem to set options on." - }, - "failover": { - "name": "Failover", - "description": "Failover mode." - }, - "autoconnect": { - "name": "Auto-connect", - "description": "Auto-connect mode." - } - } - }, - "connect_lte": { - "name": "Connect LTE", - "description": "Asks the modem to establish the LTE connection.", - "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "The modem that should connect." - } - } - }, - "disconnect_lte": { - "name": "Disconnect LTE", - "description": "Asks the modem to close the LTE connection.", - "fields": { - "host": { - "name": "[%key:common::config_flow::data::host%]", - "description": "The modem that should disconnect." + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]" } } } @@ -124,5 +70,59 @@ "name": "Usage" } } + }, + "services": { + "connect_lte": { + "description": "Asks the modem to establish the LTE connection.", + "fields": { + "host": { + "description": "The modem that should connect.", + "name": "[%key:common::config_flow::data::host%]" + } + }, + "name": "Connect LTE" + }, + "delete_sms": { + "description": "Deletes messages from the modem inbox.", + "fields": { + "host": { + "description": "The modem that should have a message deleted.", + "name": "[%key:common::config_flow::data::host%]" + }, + "sms_id": { + "description": "Integer or list of integers with inbox IDs of messages to delete.", + "name": "SMS ID" + } + }, + "name": "Delete SMS" + }, + "disconnect_lte": { + "description": "Asks the modem to close the LTE connection.", + "fields": { + "host": { + "description": "The modem that should disconnect.", + "name": "[%key:common::config_flow::data::host%]" + } + }, + "name": "Disconnect LTE" + }, + "set_option": { + "description": "Sets options on the modem.", + "fields": { + "autoconnect": { + "description": "Auto-connect mode.", + "name": "Auto-connect" + }, + "failover": { + "description": "Failover mode.", + "name": "Failover" + }, + "host": { + "description": "The modem to set options on.", + "name": "[%key:common::config_flow::data::host%]" + } + }, + "name": "Set option" + } } } diff --git a/homeassistant/components/network/strings.json b/homeassistant/components/network/strings.json index 3e135fff60b..877beb3a73a 100644 --- a/homeassistant/components/network/strings.json +++ b/homeassistant/components/network/strings.json @@ -1,16 +1,16 @@ { + "issues": { + "docker_host_network": { + "description": "Home Assistant is running in a container without host networking mode. This can cause networking issues with device discovery, multicast, broadcast, other network features, and incorrectly detecting its own URL and IP addresses, causing issues with media players and sending audio responses to voice assistants.\n\nIt is recommended to run Home Assistant with host networking by adding the `--network host` flag to your Docker run command or setting `network_mode: host` in your `docker-compose.yml` file.\n\nSee the [Docker documentation]({docs_url}) for more information about Docker host networking and refer to the [Home Assistant installation guide]({install_url}) for our recommended and supported setup.", + "title": "Home Assistant is not using host networking" + } + }, "system_health": { "info": { "adapters": "Adapters", + "announce_addresses": "Announce addresses", "ipv4_addresses": "IPv4 addresses", - "ipv6_addresses": "IPv6 addresses", - "announce_addresses": "Announce addresses" - } - }, - "issues": { - "docker_host_network": { - "title": "Home Assistant is not using host networking", - "description": "Home Assistant is running in a container without host networking mode. This can cause networking issues with device discovery, multicast, broadcast, other network features, and incorrectly detecting its own URL and IP addresses, causing issues with media players and sending audio responses to voice assistants.\n\nIt is recommended to run Home Assistant with host networking by adding the `--network host` flag to your Docker run command or setting `network_mode: host` in your `docker-compose.yml` file.\n\nSee the [Docker documentation]({docs_url}) for more information about Docker host networking and refer to the [Home Assistant installation guide]({install_url}) for our recommended and supported setup." + "ipv6_addresses": "IPv6 addresses" } } } diff --git a/homeassistant/components/nexia/icons.json b/homeassistant/components/nexia/icons.json index c9434a332df..753176ea7de 100644 --- a/homeassistant/components/nexia/icons.json +++ b/homeassistant/components/nexia/icons.json @@ -23,10 +23,10 @@ "set_aircleaner_mode": { "service": "mdi:air-filter" }, - "set_humidify_setpoint": { + "set_dehumidify_setpoint": { "service": "mdi:water-percent" }, - "set_dehumidify_setpoint": { + "set_humidify_setpoint": { "service": "mdi:water-percent" }, "set_hvac_run_mode": { diff --git a/homeassistant/components/nexia/strings.json b/homeassistant/components/nexia/strings.json index d8ec2112fe4..0543e802c0c 100644 --- a/homeassistant/components/nexia/strings.json +++ b/homeassistant/components/nexia/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "data": { - "brand": "Brand", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "brand": "Brand", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { @@ -33,90 +33,90 @@ } }, "sensor": { - "system_status": { - "name": "System status" - }, "air_cleaner_mode": { "name": "Air cleaner mode" }, "current_compressor_speed": { "name": "Current compressor speed" }, - "requested_compressor_speed": { - "name": "Requested compressor speed" - }, - "outdoor_temperature": { - "name": "Outdoor temperature" - }, - "zone_status": { - "name": "Zone status" - }, - "zone_setpoint_status": { - "name": "Zone setpoint status" + "get_dehumidify_setpoint": { + "name": "Cooling dehumidify setpoint" }, "get_humidify_setpoint": { "name": "Heating humidify setpoint" }, - "get_dehumidify_setpoint": { - "name": "Cooling dehumidify setpoint" + "outdoor_temperature": { + "name": "Outdoor temperature" + }, + "requested_compressor_speed": { + "name": "Requested compressor speed" + }, + "system_status": { + "name": "System status" + }, + "zone_setpoint_status": { + "name": "Zone setpoint status" + }, + "zone_status": { + "name": "Zone status" } }, "switch": { + "emergency_heat": { + "name": "Emergency heat" + }, "hold": { "name": "Hold" }, "room_iq_sensor": { "name": "Include {sensor_name}" - }, - "emergency_heat": { - "name": "Emergency heat" } } }, "services": { "set_aircleaner_mode": { - "name": "Set air cleaner mode", "description": "Sets the air cleaner mode.", "fields": { "aircleaner_mode": { - "name": "Air cleaner mode", - "description": "The air cleaner mode to set." + "description": "The air cleaner mode to set.", + "name": "Air cleaner mode" } - } - }, - "set_humidify_setpoint": { - "name": "Set humidify setpoint", - "description": "Sets the target humidity for heating.", - "fields": { - "humidity": { - "name": "Humidity", - "description": "The setpoint for humidification when heating." - } - } + }, + "name": "Set air cleaner mode" }, "set_dehumidify_setpoint": { - "name": "Set dehumidify setpoint", "description": "Sets the target humidity for cooling.", "fields": { "humidity": { - "name": "Humidity", - "description": "The setpoint for dehumidification when cooling." + "description": "The setpoint for dehumidification when cooling.", + "name": "Humidity" } - } + }, + "name": "Set dehumidify setpoint" + }, + "set_humidify_setpoint": { + "description": "Sets the target humidity for heating.", + "fields": { + "humidity": { + "description": "The setpoint for humidification when heating.", + "name": "Humidity" + } + }, + "name": "Set humidify setpoint" }, "set_hvac_run_mode": { - "name": "Set HVAC run mode", "description": "Sets the run and/or operation mode of the HVAC system.", "fields": { - "run_mode": { - "name": "Run mode", - "description": "Run the schedule or hold. If not specified, the current run mode will be used." - }, "hvac_mode": { - "name": "HVAC mode", - "description": "The HVAC mode to use for the schedule or hold. If not specified, the current HVAC mode will be used." + "description": "The HVAC mode to use for the schedule or hold. If not specified, the current HVAC mode will be used.", + "name": "HVAC mode" + }, + "run_mode": { + "description": "Run the schedule or hold. If not specified, the current run mode will be used.", + "name": "Run mode" } - } + }, + "name": "Set HVAC run mode" } } } diff --git a/homeassistant/components/nextbus/strings.json b/homeassistant/components/nextbus/strings.json index 4f54ebf1656..949e1456a7a 100644 --- a/homeassistant/components/nextbus/strings.json +++ b/homeassistant/components/nextbus/strings.json @@ -1,33 +1,33 @@ { - "title": "NextBus predictions", "config": { - "step": { - "agency": { - "title": "Select metro agency", - "data": { - "agency": "Metro agency" - } - }, - "route": { - "title": "Select route", - "data": { - "route": "Route" - } - }, - "stop": { - "title": "Select stop", - "data": { - "stop": "Stop" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "invalid_agency": "The agency value selected is not valid", "invalid_route": "The route value selected is not valid", "invalid_stop": "The stop value selected is not valid" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "agency": { + "data": { + "agency": "Metro agency" + }, + "title": "Select metro agency" + }, + "route": { + "data": { + "route": "Route" + }, + "title": "Select route" + }, + "stop": { + "data": { + "stop": "Stop" + }, + "title": "Select stop" + } } - } + }, + "title": "NextBus predictions" } diff --git a/homeassistant/components/nextcloud/icons.json b/homeassistant/components/nextcloud/icons.json index 7fc2e13cd50..430abcd871a 100644 --- a/homeassistant/components/nextcloud/icons.json +++ b/homeassistant/components/nextcloud/icons.json @@ -19,6 +19,12 @@ "nextcloud_database_version": { "default": "mdi:database" }, + "nextcloud_server_php_max_execution_time": { + "default": "mdi:language-php" + }, + "nextcloud_server_php_memory_limit": { + "default": "mdi:language-php" + }, "nextcloud_server_php_opcache_memory_usage_current_wasted_percentage": { "default": "mdi:language-php" }, @@ -31,12 +37,6 @@ "nextcloud_server_php_opcache_memory_usage_wasted_memory": { "default": "mdi:language-php" }, - "nextcloud_server_php_max_execution_time": { - "default": "mdi:language-php" - }, - "nextcloud_server_php_memory_limit": { - "default": "mdi:language-php" - }, "nextcloud_server_php_upload_max_filesize": { "default": "mdi:language-php" }, @@ -49,10 +49,10 @@ "nextcloud_system_cpuload_1": { "default": "mdi:chip" }, - "nextcloud_system_cpuload_5": { + "nextcloud_system_cpuload_15": { "default": "mdi:chip" }, - "nextcloud_system_cpuload_15": { + "nextcloud_system_cpuload_5": { "default": "mdi:chip" }, "nextcloud_system_freespace": { @@ -64,10 +64,10 @@ "nextcloud_system_mem_total": { "default": "mdi:memory" }, - "nextcloud_system_swap_total": { + "nextcloud_system_swap_free": { "default": "mdi:memory" }, - "nextcloud_system_swap_free": { + "nextcloud_system_swap_total": { "default": "mdi:memory" } } diff --git a/homeassistant/components/nextcloud/strings.json b/homeassistant/components/nextcloud/strings.json index 75950e94211..373bd86b4f4 100644 --- a/homeassistant/components/nextcloud/strings.json +++ b/homeassistant/components/nextcloud/strings.json @@ -1,24 +1,5 @@ { "config": { - "flow_title": "Nextcloud", - "step": { - "user": { - "description": "Enter your Nextcloud information.", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "reauth_confirm": { - "description": "Update your login information for {url}.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "connection_error_during_import": "Connection error occurred during yaml configuration import", @@ -27,6 +8,25 @@ "error": { "connection_error": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "flow_title": "Nextcloud", + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Update your login information for {url}." + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "Enter your Nextcloud information." + } } }, "entity": { diff --git a/homeassistant/components/nextdns/icons.json b/homeassistant/components/nextdns/icons.json index b62629d3dc9..95141681f21 100644 --- a/homeassistant/components/nextdns/icons.json +++ b/homeassistant/components/nextdns/icons.json @@ -10,18 +10,18 @@ "blocked_queries_ratio": { "default": "mdi:dns" }, - "doh_queries": { - "default": "mdi:dns" - }, - "doh_queries_ratio": { - "default": "mdi:dns" - }, "doh3_queries": { "default": "mdi:dns" }, "doh3_queries_ratio": { "default": "mdi:dns" }, + "doh_queries": { + "default": "mdi:dns" + }, + "doh_queries_ratio": { + "default": "mdi:dns" + }, "doq_queries": { "default": "mdi:dns" }, @@ -49,12 +49,12 @@ "ipv6_queries_ratio": { "default": "mdi:ip" }, - "relayed_queries": { - "default": "mdi:dns" - }, "not_validated_queries": { "default": "mdi:lock-alert" }, + "relayed_queries": { + "default": "mdi:dns" + }, "tcp_queries": { "default": "mdi:dns" }, @@ -78,39 +78,9 @@ } }, "switch": { - "block_page": { - "default": "mdi:web-cancel" - }, - "cache_boost": { - "default": "mdi:memory" - }, - "cname_flattening": { - "default": "mdi:tournament" - }, "anonymized_ecs": { "default": "mdi:incognito" }, - "logs": { - "default": "mdi:file-document-outline" - }, - "web3": { - "default": "mdi:web" - }, - "dns_rebinding_protection": { - "default": "mdi:dns" - }, - "google_safe_browsing": { - "default": "mdi:google" - }, - "typosquatting_protection": { - "default": "mdi:keyboard-outline" - }, - "safesearch": { - "default": "mdi:search-web" - }, - "youtube_restricted_mode": { - "default": "mdi:youtube" - }, "block_9gag": { "default": "mdi:file-gif-box" }, @@ -129,6 +99,9 @@ "block_dailymotion": { "default": "mdi:movie-search-outline" }, + "block_dating": { + "default": "mdi:candelabra" + }, "block_discord": { "default": "mdi:message-text" }, @@ -144,6 +117,9 @@ "block_fortnite": { "default": "mdi:tank" }, + "block_gambling": { + "default": "mdi:slot-machine" + }, "block_google_chat": { "default": "mdi:forum" }, @@ -174,12 +150,24 @@ "block_netflix": { "default": "mdi:netflix" }, + "block_online_gaming": { + "default": "mdi:gamepad-variant" + }, + "block_page": { + "default": "mdi:web-cancel" + }, "block_pinterest": { "default": "mdi:pinterest" }, + "block_piracy": { + "default": "mdi:pirate" + }, "block_playstation_network": { "default": "mdi:sony-playstation" }, + "block_porn": { + "default": "mdi:movie-off" + }, "block_primevideo": { "default": "mdi:filmstrip" }, @@ -198,6 +186,9 @@ "block_snapchat": { "default": "mdi:snapchat" }, + "block_social_networks": { + "default": "mdi:facebook" + }, "block_spotify": { "default": "mdi:spotify" }, @@ -222,6 +213,9 @@ "block_twitter": { "default": "mdi:twitter" }, + "block_video_streaming": { + "default": "mdi:video-wireless-outline" + }, "block_vimeo": { "default": "mdi:vimeo" }, @@ -240,26 +234,32 @@ "block_zoom": { "default": "mdi:video" }, - "block_dating": { - "default": "mdi:candelabra" + "cache_boost": { + "default": "mdi:memory" }, - "block_gambling": { - "default": "mdi:slot-machine" + "cname_flattening": { + "default": "mdi:tournament" }, - "block_online_gaming": { - "default": "mdi:gamepad-variant" + "dns_rebinding_protection": { + "default": "mdi:dns" }, - "block_piracy": { - "default": "mdi:pirate" + "google_safe_browsing": { + "default": "mdi:google" }, - "block_porn": { - "default": "mdi:movie-off" + "logs": { + "default": "mdi:file-document-outline" }, - "block_social_networks": { - "default": "mdi:facebook" + "safesearch": { + "default": "mdi:search-web" }, - "block_video_streaming": { - "default": "mdi:video-wireless-outline" + "typosquatting_protection": { + "default": "mdi:keyboard-outline" + }, + "web3": { + "default": "mdi:web" + }, + "youtube_restricted_mode": { + "default": "mdi:youtube" } } } diff --git a/homeassistant/components/nextdns/strings.json b/homeassistant/components/nextdns/strings.json index 700e7a889f4..18341c938a2 100644 --- a/homeassistant/components/nextdns/strings.json +++ b/homeassistant/components/nextdns/strings.json @@ -1,14 +1,17 @@ { "config": { + "abort": { + "already_configured": "This NextDNS profile is already configured.", + "profile_not_available": "The configured NextDNS profile is no longer available in your account. Remove the configuration and configure the integration again.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "The API key for your NextDNS account" - } - }, "profiles": { "data": { "profile_name": "Profile" @@ -32,23 +35,15 @@ "data_description": { "api_key": "[%key:component::nextdns::config::step::user::data_description::api_key%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "The API key for your NextDNS account" + } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "This NextDNS profile is already configured.", - "profile_not_available": "The configured NextDNS profile is no longer available in your account. Remove the configuration and configure the integration again.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "system_health": { - "info": { - "can_reach_server": "Reach server" } }, "entity": { @@ -395,5 +390,10 @@ "update_error": { "message": "An error occurred while retrieving data from the NextDNS API for {entry}: {error}" } + }, + "system_health": { + "info": { + "can_reach_server": "Reach server" + } } } diff --git a/homeassistant/components/nfandroidtv/strings.json b/homeassistant/components/nfandroidtv/strings.json index e73fc68d66a..531a6af1617 100644 --- a/homeassistant/components/nfandroidtv/strings.json +++ b/homeassistant/components/nfandroidtv/strings.json @@ -1,4 +1,25 @@ { + "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "host": "The hostname or IP address of your TV." + }, + "description": "Please refer to the documentation to make sure all requirements are met." + } + } + }, "exceptions": { "invalid_notification_icon": { "message": "Invalid icon data provided. Got {type}" @@ -6,26 +27,5 @@ "invalid_notification_image": { "message": "Invalid image data provided. Got {type}" } - }, - "config": { - "step": { - "user": { - "description": "Please refer to the documentation to make sure all requirements are met.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "host": "The hostname or IP address of your TV." - } - } - }, - "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%]" - } } } diff --git a/homeassistant/components/nibe_heatpump/strings.json b/homeassistant/components/nibe_heatpump/strings.json index c07edbbf70d..eb5ae7d83ff 100644 --- a/homeassistant/components/nibe_heatpump/strings.json +++ b/homeassistant/components/nibe_heatpump/strings.json @@ -1,57 +1,57 @@ { "config": { - "step": { - "user": { - "menu_options": { - "nibegw": "NibeGW", - "modbus": "Modbus" - }, - "description": "Pick the connection method to your pump. In general, F-series pumps require a NibeGW custom accessory, while an S-series pump has Modbus support built-in." - }, - "modbus": { - "data": { - "model": "Model of heat pump", - "modbus_url": "Modbus URL", - "modbus_unit": "Modbus unit identifier" - }, - "data_description": { - "modbus_url": "Modbus URL that describes the connection to your heat pump or MODBUS40 unit. It should be in the form:\n - `{tcp}` for Modbus TCP connection\n - `{serial}` for a local Modbus RTU connection\n - `{rfc2217}` for a remote Telnet-based Modbus RTU connection.", - "modbus_unit": "Unit identification for your heat pump. Can usually be left at 0." - } - }, - "nibegw": { - "description": "Before attempting to configure the integration, verify that:\n - The NibeGW unit is connected to a heat pump.\n - The MODBUS40 accessory has been enabled in the heat pump configuration.\n - The pump has not gone into an alarm state about missing MODBUS40 accessory.", - "data": { - "model": "[%key:component::nibe_heatpump::config::step::modbus::data::model%]", - "ip_address": "Remote address", - "remote_read_port": "Remote read port", - "remote_write_port": "Remote write port", - "listening_port": "Local listening port" - }, - "data_description": { - "ip_address": "The address of the NibeGW unit. The device should have been configured with a static address.", - "remote_read_port": "The port the NibeGW unit is listening for read requests on.", - "remote_write_port": "The port the NibeGW unit is listening for write requests on.", - "listening_port": "The local port on this system, that the NibeGW unit is configured to send data to." - } - } - }, "error": { - "write": "Error on write request to pump. Verify your `Remote write port` or `Remote address`.", - "read": "Error on read request from pump. Verify your `Remote read port` or `Remote address`.", "address": "Invalid remote address specified. Address must be an IP address or a resolvable hostname.", "address_in_use": "The selected listening port is already in use on this system.", "model": "The selected model doesn't seem to support MODBUS40", + "read": "Error on read request from pump. Verify your `Remote read port` or `Remote address`.", "unknown": "[%key:common::config_flow::error::unknown%]", - "url": "The specified URL is not well formed nor supported" + "url": "The specified URL is not well formed nor supported", + "write": "Error on write request to pump. Verify your `Remote write port` or `Remote address`." + }, + "step": { + "modbus": { + "data": { + "modbus_unit": "Modbus unit identifier", + "modbus_url": "Modbus URL", + "model": "Model of heat pump" + }, + "data_description": { + "modbus_unit": "Unit identification for your heat pump. Can usually be left at 0.", + "modbus_url": "Modbus URL that describes the connection to your heat pump or MODBUS40 unit. It should be in the form:\n - `{tcp}` for Modbus TCP connection\n - `{serial}` for a local Modbus RTU connection\n - `{rfc2217}` for a remote Telnet-based Modbus RTU connection." + } + }, + "nibegw": { + "data": { + "ip_address": "Remote address", + "listening_port": "Local listening port", + "model": "[%key:component::nibe_heatpump::config::step::modbus::data::model%]", + "remote_read_port": "Remote read port", + "remote_write_port": "Remote write port" + }, + "data_description": { + "ip_address": "The address of the NibeGW unit. The device should have been configured with a static address.", + "listening_port": "The local port on this system, that the NibeGW unit is configured to send data to.", + "remote_read_port": "The port the NibeGW unit is listening for read requests on.", + "remote_write_port": "The port the NibeGW unit is listening for write requests on." + }, + "description": "Before attempting to configure the integration, verify that:\n - The NibeGW unit is connected to a heat pump.\n - The MODBUS40 accessory has been enabled in the heat pump configuration.\n - The pump has not gone into an alarm state about missing MODBUS40 accessory." + }, + "user": { + "description": "Pick the connection method to your pump. In general, F-series pumps require a NibeGW custom accessory, while an S-series pump has Modbus support built-in.", + "menu_options": { + "modbus": "Modbus", + "nibegw": "NibeGW" + } + } } }, "exceptions": { - "write_timeout": { - "message": "Timeout while writing coil {address}" - }, "write_failed": { "message": "Writing of coil {address} with value `{value}` failed with error `{error}`" + }, + "write_timeout": { + "message": "Timeout while writing coil {address}" } } } diff --git a/homeassistant/components/nice_go/icons.json b/homeassistant/components/nice_go/icons.json index 61e36c9eb3a..0e9d9a45377 100644 --- a/homeassistant/components/nice_go/icons.json +++ b/homeassistant/components/nice_go/icons.json @@ -1,14 +1,14 @@ { "entity": { - "switch": { - "vacation_mode": { - "default": "mdi:beach" - } - }, "event": { "barrier_obstructed": { "default": "mdi:garage-alert" } + }, + "switch": { + "vacation_mode": { + "default": "mdi:beach" + } } } } diff --git a/homeassistant/components/nice_go/strings.json b/homeassistant/components/nice_go/strings.json index 224996e6408..60f74ce66c5 100644 --- a/homeassistant/components/nice_go/strings.json +++ b/homeassistant/components/nice_go/strings.json @@ -1,8 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -10,7 +17,8 @@ "data_description": { "email": "[%key:component::nice_go::config::step::user::data_description::email%]", "password": "[%key:component::nice_go::config::step::user::data_description::password%]" - } + }, + "title": "[%key:common::config_flow::title::reauth%]" }, "user": { "data": { @@ -22,27 +30,9 @@ "password": "The password used to log in to the Nice G.O. app" } } - }, - "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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { - "light": { - "light": { - "name": "[%key:component::light::title%]" - } - }, - "switch": { - "vacation_mode": { - "name": "Vacation mode" - } - }, "event": { "barrier_obstructed": { "name": "Barrier obstructed", @@ -54,32 +44,42 @@ } } } - } - }, - "issues": { - "firmware_update_required": { - "title": "Firmware update required", - "description": "Your device ({device_name}) requires a firmware update on the Nice G.O. app in order to work with this integration. Please update the firmware on the Nice G.O. app and reconfigure this integration." + }, + "light": { + "light": { + "name": "[%key:component::light::title%]" + } + }, + "switch": { + "vacation_mode": { + "name": "Vacation mode" + } } }, "exceptions": { "close_cover_error": { "message": "Error closing the barrier: {exception}" }, - "open_cover_error": { - "message": "Error opening the barrier: {exception}" + "light_off_error": { + "message": "Error while turning off the light: {exception}" }, "light_on_error": { "message": "Error while turning on the light: {exception}" }, - "light_off_error": { - "message": "Error while turning off the light: {exception}" - }, - "switch_on_error": { - "message": "Error while turning on the switch: {exception}" + "open_cover_error": { + "message": "Error opening the barrier: {exception}" }, "switch_off_error": { "message": "Error while turning off the switch: {exception}" + }, + "switch_on_error": { + "message": "Error while turning on the switch: {exception}" + } + }, + "issues": { + "firmware_update_required": { + "description": "Your device ({device_name}) requires a firmware update on the Nice G.O. app in order to work with this integration. Please update the firmware on the Nice G.O. app and reconfigure this integration.", + "title": "Firmware update required" } } } diff --git a/homeassistant/components/nightscout/strings.json b/homeassistant/components/nightscout/strings.json index 1f13ed17054..1643871f807 100644 --- a/homeassistant/components/nightscout/strings.json +++ b/homeassistant/components/nightscout/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "title": "Enter your Nightscout server information.", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "url": "The address of your Nightscout instance. For example: {example_url}.", - "api_key": "Optional; only use it if your instance is protected (auth_default_roles != readable)." - } - } - }, - "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%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "api_key": "Optional; only use it if your instance is protected (auth_default_roles != readable).", + "url": "The address of your Nightscout instance. For example: {example_url}." + }, + "title": "Enter your Nightscout server information." + } } } } diff --git a/homeassistant/components/niko_home_control/strings.json b/homeassistant/components/niko_home_control/strings.json index 2abb5b71f46..135c59eada5 100644 --- a/homeassistant/components/niko_home_control/strings.json +++ b/homeassistant/components/niko_home_control/strings.json @@ -1,15 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { - "user": { - "description": "Set up your Niko Home Control instance.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Niko Home Control controller." - } - }, "reconfigure": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -17,14 +15,16 @@ "data_description": { "host": "[%key:component::niko_home_control::config::step::user::data_description::host%]" } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the Niko Home Control controller." + }, + "description": "Set up your Niko Home Control instance." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } } } diff --git a/homeassistant/components/nina/strings.json b/homeassistant/components/nina/strings.json index 1616005bc40..97bbd85250a 100644 --- a/homeassistant/components/nina/strings.json +++ b/homeassistant/components/nina/strings.json @@ -1,8 +1,12 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_selection": "Please select at least one city/county", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "title": "Select city/county", "data": { "_a_to_d": "City/county (A-D)", "_e_to_h": "City/county (E-H)", @@ -23,30 +27,30 @@ }, "sections": { "filters": { - "name": "Filters", - "description": "Filter warnings based on their attributes", "data": { - "headline_filter": "Headline blocklist", - "area_filter": "Affected area filter" + "area_filter": "Affected area filter", + "headline_filter": "Headline blocklist" }, "data_description": { - "headline_filter": "Blacklist regex to filter warning based on headlines", - "area_filter": "Whitelist regex to filter warnings based on affected areas" - } + "area_filter": "Whitelist regex to filter warnings based on affected areas", + "headline_filter": "Blacklist regex to filter warning based on headlines" + }, + "description": "Filter warnings based on their attributes", + "name": "Filters" } - } + }, + "title": "Select city/county" } - }, - "error": { - "no_selection": "Please select at least one city/county", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "options": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_selection": "[%key:component::nina::config::error::no_selection%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "init": { - "title": "Options", "data": { "_a_to_d": "[%key:component::nina::config::step::user::data::_a_to_d%]", "_e_to_h": "[%key:component::nina::config::step::user::data::_e_to_h%]", @@ -67,24 +71,20 @@ }, "sections": { "filters": { - "name": "[%key:component::nina::config::step::user::sections::filters::name%]", - "description": "[%key:component::nina::config::step::user::sections::filters::description%]", "data": { - "headline_filter": "[%key:component::nina::config::step::user::sections::filters::data::headline_filter%]", - "area_filter": "[%key:component::nina::config::step::user::sections::filters::data::area_filter%]" + "area_filter": "[%key:component::nina::config::step::user::sections::filters::data::area_filter%]", + "headline_filter": "[%key:component::nina::config::step::user::sections::filters::data::headline_filter%]" }, "data_description": { - "headline_filter": "[%key:component::nina::config::step::user::sections::filters::data_description::headline_filter%]", - "area_filter": "[%key:component::nina::config::step::user::sections::filters::data_description::area_filter%]" - } + "area_filter": "[%key:component::nina::config::step::user::sections::filters::data_description::area_filter%]", + "headline_filter": "[%key:component::nina::config::step::user::sections::filters::data_description::headline_filter%]" + }, + "description": "[%key:component::nina::config::step::user::sections::filters::description%]", + "name": "[%key:component::nina::config::step::user::sections::filters::name%]" } - } + }, + "title": "Options" } - }, - "error": { - "no_selection": "[%key:component::nina::config::error::no_selection%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/nintendo_parental_controls/strings.json b/homeassistant/components/nintendo_parental_controls/strings.json index 42801a7f373..f64e432c347 100644 --- a/homeassistant/components/nintendo_parental_controls/strings.json +++ b/homeassistant/components/nintendo_parental_controls/strings.json @@ -1,36 +1,41 @@ { "config": { - "step": { - "user": { - "description": "To obtain your access token, click [Nintendo Login]({link}) to sign in to your Nintendo account. Then, for the account you want to link, right-click on the red **Select this person** button and choose **Copy Link Address**.", - "data": { - "api_token": "Access token" - }, - "data_description": { - "api_token": "The link copied from the Nintendo website" - } - }, - "reauth_confirm": { - "description": "To obtain your access token, click [Nintendo Login]({link}) to sign in to your Nintendo account. Then, for the account you want to link, right-click on the red **Select this person** button and choose **Copy Link Address**.", - "data": { - "api_token": "Access token" - }, - "data_description": { - "api_token": "The link copied from the Nintendo website" - } - } + "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%]", "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%]" + "step": { + "reauth_confirm": { + "data": { + "api_token": "Access token" + }, + "data_description": { + "api_token": "The link copied from the Nintendo website" + }, + "description": "To obtain your access token, click [Nintendo Login]({link}) to sign in to your Nintendo account. Then, for the account you want to link, right-click on the red **Select this person** button and choose **Copy Link Address**." + }, + "user": { + "data": { + "api_token": "Access token" + }, + "data_description": { + "api_token": "The link copied from the Nintendo website" + }, + "description": "To obtain your access token, click [Nintendo Login]({link}) to sign in to your Nintendo account. Then, for the account you want to link, right-click on the red **Select this person** button and choose **Copy Link Address**." + } } }, "entity": { + "number": { + "today_max_screentime": { + "name": "Max screentime today" + } + }, "sensor": { "playing_time": { "name": "Used screen time" @@ -39,19 +44,14 @@ "name": "Screen time remaining" } }, - "time": { - "bedtime_alarm": { - "name": "Bedtime alarm" - } - }, "switch": { "suspend_software": { "name": "Suspend software" } }, - "number": { - "today_max_screentime": { - "name": "Max screentime today" + "time": { + "bedtime_alarm": { + "name": "Bedtime alarm" } } }, diff --git a/homeassistant/components/nissan_leaf/strings.json b/homeassistant/components/nissan_leaf/strings.json index 78335ab4c14..54e74191481 100644 --- a/homeassistant/components/nissan_leaf/strings.json +++ b/homeassistant/components/nissan_leaf/strings.json @@ -1,24 +1,24 @@ { "services": { "start_charge": { - "name": "Start charge", "description": "Starts the vehicle charging. It must be plugged in first!", "fields": { "vin": { - "name": "VIN", - "description": "The vehicle identification number (VIN) of the vehicle, 17 characters." + "description": "The vehicle identification number (VIN) of the vehicle, 17 characters.", + "name": "VIN" } - } + }, + "name": "Start charge" }, "update": { - "name": "Update", "description": "Fetches the last state of the vehicle of all your accounts, requesting an update from of the state from the car if possible.", "fields": { "vin": { - "name": "[%key:component::nissan_leaf::services::start_charge::fields::vin::name%]", - "description": "[%key:component::nissan_leaf::services::start_charge::fields::vin::description%]" + "description": "[%key:component::nissan_leaf::services::start_charge::fields::vin::description%]", + "name": "[%key:component::nissan_leaf::services::start_charge::fields::vin::name%]" } - } + }, + "name": "Update" } } } diff --git a/homeassistant/components/nmap_tracker/strings.json b/homeassistant/components/nmap_tracker/strings.json index 7e87d9f73dd..eab6fb19da4 100644 --- a/homeassistant/components/nmap_tracker/strings.json +++ b/homeassistant/components/nmap_tracker/strings.json @@ -1,42 +1,42 @@ { - "title": "Nmap Tracker", - "options": { - "step": { - "init": { - "description": "[%key:component::nmap_tracker::config::step::user::description%]", - "data": { - "hosts": "[%key:component::nmap_tracker::config::step::user::data::hosts%]", - "home_interval": "[%key:component::nmap_tracker::config::step::user::data::home_interval%]", - "consider_home": "Seconds to wait till marking a device tracker as not home after not being seen.", - "exclude": "[%key:component::nmap_tracker::config::step::user::data::exclude%]", - "mac_exclude": "[%key:component::nmap_tracker::config::step::user::data::mac_exclude%]", - "scan_options": "[%key:component::nmap_tracker::config::step::user::data::scan_options%]", - "interval_seconds": "Scan interval" - } - } - }, - "error": { - "invalid_hosts": "[%key:component::nmap_tracker::config::error::invalid_hosts%]" - } - }, "config": { - "step": { - "user": { - "description": "Configure hosts to be scanned by Nmap. IP address and excludes can be addresses (192.168.1.1), networks (192.168.0.0/24) or ranges (192.168.1.0-32).", - "data": { - "hosts": "IP address or range to scan", - "home_interval": "Minimum number of minutes between scans of active devices (preserve battery)", - "exclude": "IP address to exclude from tracking", - "mac_exclude": "MAC address to exclude from tracking", - "scan_options": "Raw configurable scan options for Nmap" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" }, "error": { "invalid_hosts": "Invalid hosts" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" + "step": { + "user": { + "data": { + "exclude": "IP address to exclude from tracking", + "home_interval": "Minimum number of minutes between scans of active devices (preserve battery)", + "hosts": "IP address or range to scan", + "mac_exclude": "MAC address to exclude from tracking", + "scan_options": "Raw configurable scan options for Nmap" + }, + "description": "Configure hosts to be scanned by Nmap. IP address and excludes can be addresses (192.168.1.1), networks (192.168.0.0/24) or ranges (192.168.1.0-32)." + } } - } + }, + "options": { + "error": { + "invalid_hosts": "[%key:component::nmap_tracker::config::error::invalid_hosts%]" + }, + "step": { + "init": { + "data": { + "consider_home": "Seconds to wait till marking a device tracker as not home after not being seen.", + "exclude": "[%key:component::nmap_tracker::config::step::user::data::exclude%]", + "home_interval": "[%key:component::nmap_tracker::config::step::user::data::home_interval%]", + "hosts": "[%key:component::nmap_tracker::config::step::user::data::hosts%]", + "interval_seconds": "Scan interval", + "mac_exclude": "[%key:component::nmap_tracker::config::step::user::data::mac_exclude%]", + "scan_options": "[%key:component::nmap_tracker::config::step::user::data::scan_options%]" + }, + "description": "[%key:component::nmap_tracker::config::step::user::description%]" + } + } + }, + "title": "Nmap Tracker" } diff --git a/homeassistant/components/nmbs/strings.json b/homeassistant/components/nmbs/strings.json index 4ee4ee797c7..918087b8d33 100644 --- a/homeassistant/components/nmbs/strings.json +++ b/homeassistant/components/nmbs/strings.json @@ -3,8 +3,8 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", "api_unavailable": "The API is currently unavailable.", - "same_station": "[%key:component::nmbs::config::error::same_station%]", - "invalid_station": "Invalid station." + "invalid_station": "Invalid station.", + "same_station": "[%key:component::nmbs::config::error::same_station%]" }, "error": { "same_station": "Departure and arrival station can not be the same." @@ -12,16 +12,16 @@ "step": { "user": { "data": { - "station_from": "Departure station", - "station_to": "Arrival station", "exclude_vias": "Direct connections only", - "show_on_map": "Display on map" + "show_on_map": "Display on map", + "station_from": "Departure station", + "station_to": "Arrival station" }, "data_description": { - "station_from": "Station where the train departs", - "station_to": "Station where the train arrives", "exclude_vias": "Exclude connections with transfers", - "show_on_map": "Show the station on the map" + "show_on_map": "Show the station on the map", + "station_from": "Station where the train departs", + "station_to": "Station where the train arrives" } } } diff --git a/homeassistant/components/nobo_hub/strings.json b/homeassistant/components/nobo_hub/strings.json index 5d1b8350edf..5323ee23965 100644 --- a/homeassistant/components/nobo_hub/strings.json +++ b/homeassistant/components/nobo_hub/strings.json @@ -1,43 +1,33 @@ { "config": { - "step": { - "user": { - "description": "Select Nobø Ecohub to configure.", - "data": { - "device": "Discovered hubs" - } - }, - "selected": { - "description": "Configuring {hub}.\r\rTo connect to the hub, you need to enter the last 3 digits of the hub's serial number.", - "data": { - "serial_suffix": "Serial number suffix (3 digits)" - } - }, - "manual": { - "description": "Configure a Nobø Ecohub not discovered on your local network. If your hub is on another network, you can still connect to it by entering the complete serial number (12 digits) and its IP address.", - "data": { - "serial": "Serial number (12 digits)", - "ip_address": "[%key:common::config_flow::data::ip%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "Failed to connect - check serial number", - "invalid_serial": "Invalid serial number", "invalid_ip": "Invalid IP address", + "invalid_serial": "Invalid serial number", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { "step": { - "init": { + "manual": { "data": { - "override_type": "Override type" + "ip_address": "[%key:common::config_flow::data::ip%]", + "serial": "Serial number (12 digits)" }, - "description": "Select override type \"Now\" to end override on next week profile change." + "description": "Configure a Nobø Ecohub not discovered on your local network. If your hub is on another network, you can still connect to it by entering the complete serial number (12 digits) and its IP address." + }, + "selected": { + "data": { + "serial_suffix": "Serial number suffix (3 digits)" + }, + "description": "Configuring {hub}.\r\rTo connect to the hub, you need to enter the last 3 digits of the hub's serial number." + }, + "user": { + "data": { + "device": "Discovered hubs" + }, + "description": "Select Nobø Ecohub to configure." } } }, @@ -56,5 +46,15 @@ "name": "Week profile" } } + }, + "options": { + "step": { + "init": { + "data": { + "override_type": "Override type" + }, + "description": "Select override type \"Now\" to end override on next week profile change." + } + } } } diff --git a/homeassistant/components/nordpool/icons.json b/homeassistant/components/nordpool/icons.json index 42449b7a1a5..bb371be7919 100644 --- a/homeassistant/components/nordpool/icons.json +++ b/homeassistant/components/nordpool/icons.json @@ -1,49 +1,49 @@ { "entity": { "sensor": { - "updated_at": { - "default": "mdi:clock-outline" + "block_average": { + "default": "mdi:cash-multiple" + }, + "block_end_time": { + "default": "mdi:clock-time-two-outline" + }, + "block_max": { + "default": "mdi:cash-multiple" + }, + "block_min": { + "default": "mdi:cash-multiple" + }, + "block_start_time": { + "default": "mdi:clock-time-twelve-outline" }, "currency": { "default": "mdi:currency-usd" }, - "exchange_rate": { - "default": "mdi:currency-usd" - }, "current_price": { "default": "mdi:cash" }, + "daily_average": { + "default": "mdi:cash-multiple" + }, + "exchange_rate": { + "default": "mdi:currency-usd" + }, "last_price": { "default": "mdi:cash" }, "next_price": { "default": "mdi:cash" }, - "block_average": { - "default": "mdi:cash-multiple" - }, - "block_min": { - "default": "mdi:cash-multiple" - }, - "block_max": { - "default": "mdi:cash-multiple" - }, - "block_start_time": { - "default": "mdi:clock-time-twelve-outline" - }, - "block_end_time": { - "default": "mdi:clock-time-two-outline" - }, - "daily_average": { - "default": "mdi:cash-multiple" + "updated_at": { + "default": "mdi:clock-outline" } } }, "services": { - "get_prices_for_date": { + "get_price_indices_for_date": { "service": "mdi:cash-multiple" }, - "get_price_indices_for_date": { + "get_prices_for_date": { "service": "mdi:cash-multiple" } } diff --git a/homeassistant/components/nordpool/strings.json b/homeassistant/components/nordpool/strings.json index 18e019ee90a..9a95224ddb0 100644 --- a/homeassistant/components/nordpool/strings.json +++ b/homeassistant/components/nordpool/strings.json @@ -8,143 +8,99 @@ "no_data": "API connected but the response was empty" }, "step": { - "user": { - "data": { - "currency": "Currency", - "areas": "Areas" - }, - "data_description": { - "currency": "Select currency to display prices in, EUR is the base currency.", - "areas": "Areas to display prices for according to Nord Pool market areas." - } - }, "reconfigure": { "data": { - "currency": "[%key:component::nordpool::config::step::user::data::currency%]", - "areas": "[%key:component::nordpool::config::step::user::data::areas%]" + "areas": "[%key:component::nordpool::config::step::user::data::areas%]", + "currency": "[%key:component::nordpool::config::step::user::data::currency%]" }, "data_description": { - "currency": "[%key:component::nordpool::config::step::user::data_description::currency%]", - "areas": "[%key:component::nordpool::config::step::user::data_description::areas%]" + "areas": "[%key:component::nordpool::config::step::user::data_description::areas%]", + "currency": "[%key:component::nordpool::config::step::user::data_description::currency%]" + } + }, + "user": { + "data": { + "areas": "Areas", + "currency": "Currency" + }, + "data_description": { + "areas": "Areas to display prices for according to Nord Pool market areas.", + "currency": "Select currency to display prices in, EUR is the base currency." } } } }, "entity": { "sensor": { - "updated_at": { - "name": "Last updated" - }, - "currency": { - "name": "Currency" - }, - "exchange_rate": { - "name": "Exchange rate" - }, - "current_price": { - "name": "Current price" - }, - "last_price": { - "name": "Previous price" - }, - "next_price": { - "name": "Next price" - }, - "lowest_price": { - "name": "Lowest price", - "state_attributes": { - "start": { - "name": "Start time" - }, - "end": { - "name": "End time" - } - } - }, - "highest_price": { - "name": "Highest price", - "state_attributes": { - "start": { - "name": "[%key:component::nordpool::entity::sensor::lowest_price::state_attributes::start::name%]" - }, - "end": { - "name": "[%key:component::nordpool::entity::sensor::lowest_price::state_attributes::end::name%]" - } - } - }, "block_average": { "name": "{block} average" }, - "block_min": { - "name": "{block} lowest price" - }, - "block_max": { - "name": "{block} highest price" - }, - "block_start_time": { - "name": "{block} time from" - }, "block_end_time": { "name": "{block} time until" }, + "block_max": { + "name": "{block} highest price" + }, + "block_min": { + "name": "{block} lowest price" + }, + "block_start_time": { + "name": "{block} time from" + }, + "currency": { + "name": "Currency" + }, + "current_price": { + "name": "Current price" + }, "daily_average": { "name": "Daily average" - } - } - }, - "services": { - "get_prices_for_date": { - "name": "Get prices for date", - "description": "Retrieves the prices for a specific date.", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The Nord Pool configuration entry for this action." - }, - "date": { - "name": "Date", - "description": "Only dates in the range from two months in the past to one day in the future are allowed." - }, - "areas": { - "name": "Areas", - "description": "One or multiple areas to get prices for. If left empty it will use the areas already configured." - }, - "currency": { - "name": "Currency", - "description": "Currency to get prices in. If left empty it will use the currency already configured." + }, + "exchange_rate": { + "name": "Exchange rate" + }, + "highest_price": { + "name": "Highest price", + "state_attributes": { + "end": { + "name": "[%key:component::nordpool::entity::sensor::lowest_price::state_attributes::end::name%]" + }, + "start": { + "name": "[%key:component::nordpool::entity::sensor::lowest_price::state_attributes::start::name%]" + } } - } - }, - "get_price_indices_for_date": { - "name": "Get price indices for date", - "description": "Retrieves the price indices for a specific date.", - "fields": { - "config_entry": { - "name": "[%key:component::nordpool::services::get_prices_for_date::fields::config_entry::name%]", - "description": "[%key:component::nordpool::services::get_prices_for_date::fields::config_entry::description%]" - }, - "date": { - "name": "[%key:component::nordpool::services::get_prices_for_date::fields::date::name%]", - "description": "[%key:component::nordpool::services::get_prices_for_date::fields::date::description%]" - }, - "areas": { - "name": "[%key:component::nordpool::services::get_prices_for_date::fields::areas::name%]", - "description": "[%key:component::nordpool::services::get_prices_for_date::fields::areas::description%]" - }, - "currency": { - "name": "[%key:component::nordpool::services::get_prices_for_date::fields::currency::name%]", - "description": "[%key:component::nordpool::services::get_prices_for_date::fields::currency::description%]" - }, - "resolution": { - "name": "Resolution", - "description": "Resolution time for the prices, can be any of 15, 30 and 60 minutes." + }, + "last_price": { + "name": "Previous price" + }, + "lowest_price": { + "name": "Lowest price", + "state_attributes": { + "end": { + "name": "End time" + }, + "start": { + "name": "Start time" + } } + }, + "next_price": { + "name": "Next price" + }, + "updated_at": { + "name": "Last updated" } } }, "exceptions": { - "initial_update_failed": { - "message": "Initial update failed on startup with error {error}" + "authentication_error": { + "message": "There was an authentication error as you tried to retrieve data too far in the past." + }, + "connection_error": { + "message": "There was a connection error connecting to the API. Try again later." + }, + "could_not_fetch_data": { + "message": "Data could not be retrieved: {error}" }, "entry_not_found": { "message": "The Nord Pool integration is not configured in Home Assistant." @@ -152,17 +108,61 @@ "entry_not_loaded": { "message": "The Nord Pool integration is currently not loaded or disabled in Home Assistant." }, - "authentication_error": { - "message": "There was an authentication error as you tried to retrieve data too far in the past." - }, - "connection_error": { - "message": "There was a connection error connecting to the API. Try again later." + "initial_update_failed": { + "message": "Initial update failed on startup with error {error}" }, "no_day_data": { "message": "Data for current day is missing" + } + }, + "services": { + "get_price_indices_for_date": { + "description": "Retrieves the price indices for a specific date.", + "fields": { + "areas": { + "description": "[%key:component::nordpool::services::get_prices_for_date::fields::areas::description%]", + "name": "[%key:component::nordpool::services::get_prices_for_date::fields::areas::name%]" + }, + "config_entry": { + "description": "[%key:component::nordpool::services::get_prices_for_date::fields::config_entry::description%]", + "name": "[%key:component::nordpool::services::get_prices_for_date::fields::config_entry::name%]" + }, + "currency": { + "description": "[%key:component::nordpool::services::get_prices_for_date::fields::currency::description%]", + "name": "[%key:component::nordpool::services::get_prices_for_date::fields::currency::name%]" + }, + "date": { + "description": "[%key:component::nordpool::services::get_prices_for_date::fields::date::description%]", + "name": "[%key:component::nordpool::services::get_prices_for_date::fields::date::name%]" + }, + "resolution": { + "description": "Resolution time for the prices, can be any of 15, 30 and 60 minutes.", + "name": "Resolution" + } + }, + "name": "Get price indices for date" }, - "could_not_fetch_data": { - "message": "Data could not be retrieved: {error}" + "get_prices_for_date": { + "description": "Retrieves the prices for a specific date.", + "fields": { + "areas": { + "description": "One or multiple areas to get prices for. If left empty it will use the areas already configured.", + "name": "Areas" + }, + "config_entry": { + "description": "The Nord Pool configuration entry for this action.", + "name": "Config entry" + }, + "currency": { + "description": "Currency to get prices in. If left empty it will use the currency already configured.", + "name": "Currency" + }, + "date": { + "description": "Only dates in the range from two months in the past to one day in the future are allowed.", + "name": "Date" + } + }, + "name": "Get prices for date" } } } diff --git a/homeassistant/components/notify/strings.json b/homeassistant/components/notify/strings.json index b33af360448..285a8998f81 100644 --- a/homeassistant/components/notify/strings.json +++ b/homeassistant/components/notify/strings.json @@ -1,69 +1,11 @@ { - "title": "Notifications", "entity_component": { "_": { "name": "[%key:component::notify::title%]" } }, - "services": { - "notify": { - "name": "Send a notification", - "description": "Sends a notification message to selected targets.", - "fields": { - "message": { - "name": "Message", - "description": "Message body of the notification." - }, - "title": { - "name": "Title", - "description": "Title for your notification." - }, - "target": { - "name": "Target", - "description": "Some integrations allow you to specify the targets that receive the notification. For more information, refer to the integration documentation." - }, - "data": { - "name": "Data", - "description": "Some integrations provide extended functionality via this field. For more information, refer to the integration documentation." - } - } - }, - "send_message": { - "name": "Send a notification message", - "description": "Sends a notification message.", - "fields": { - "message": { - "name": "Message", - "description": "Your notification message." - }, - "title": { - "name": "Title", - "description": "Title for your notification message." - } - } - }, - "persistent_notification": { - "name": "Send a persistent notification", - "description": "Sends a notification that is visible in the notifications panel.", - "fields": { - "message": { - "name": "Message", - "description": "Message body of the notification." - }, - "title": { - "name": "Title", - "description": "Title of the notification." - }, - "data": { - "name": "Data", - "description": "Some integrations provide extended functionality via this field. For more information, refer to the integration documentation." - } - } - } - }, "issues": { "migrate_notify": { - "title": "Migration of {integration_title} notify action", "fix_flow": { "step": { "confirm": { @@ -71,10 +13,10 @@ "title": "Migrate legacy {integration_title} notify action for domain `{domain}`" } } - } + }, + "title": "Migration of {integration_title} notify action" }, "migrate_notify_service": { - "title": "Legacy action notify.{service_name} still being used", "fix_flow": { "step": { "confirm": { @@ -82,7 +24,65 @@ "title": "Migrate legacy {integration_title} notify action for domain `{domain}`" } } - } + }, + "title": "Legacy action notify.{service_name} still being used" } - } + }, + "services": { + "notify": { + "description": "Sends a notification message to selected targets.", + "fields": { + "data": { + "description": "Some integrations provide extended functionality via this field. For more information, refer to the integration documentation.", + "name": "Data" + }, + "message": { + "description": "Message body of the notification.", + "name": "Message" + }, + "target": { + "description": "Some integrations allow you to specify the targets that receive the notification. For more information, refer to the integration documentation.", + "name": "Target" + }, + "title": { + "description": "Title for your notification.", + "name": "Title" + } + }, + "name": "Send a notification" + }, + "persistent_notification": { + "description": "Sends a notification that is visible in the notifications panel.", + "fields": { + "data": { + "description": "Some integrations provide extended functionality via this field. For more information, refer to the integration documentation.", + "name": "Data" + }, + "message": { + "description": "Message body of the notification.", + "name": "Message" + }, + "title": { + "description": "Title of the notification.", + "name": "Title" + } + }, + "name": "Send a persistent notification" + }, + "send_message": { + "description": "Sends a notification message.", + "fields": { + "message": { + "description": "Your notification message.", + "name": "Message" + }, + "title": { + "description": "Title for your notification message.", + "name": "Title" + } + }, + "name": "Send a notification message" + } + }, + "title": "Notifications" } diff --git a/homeassistant/components/notion/strings.json b/homeassistant/components/notion/strings.json index 24a06d7ee71..8018b9b112f 100644 --- a/homeassistant/components/notion/strings.json +++ b/homeassistant/components/notion/strings.json @@ -1,32 +1,35 @@ { "config": { - "step": { - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please re-enter the password for {username}.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "title": "Fill in your information", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please re-enter the password for {username}.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Fill in your information" + } } }, "entity": { "binary_sensor": { + "hinged_window": { + "name": "Hinged window" + }, "safe": { "name": "Safe" }, @@ -35,9 +38,6 @@ }, "smoke_carbon_monoxide_detector": { "name": "Smoke/Carbon monoxide detector" - }, - "hinged_window": { - "name": "Hinged window" } }, "sensor": { diff --git a/homeassistant/components/ntfy/icons.json b/homeassistant/components/ntfy/icons.json index 4b04a16f69f..57a1c69ac97 100644 --- a/homeassistant/components/ntfy/icons.json +++ b/homeassistant/components/ntfy/icons.json @@ -1,63 +1,18 @@ { "entity": { - "notify": { - "publish": { - "default": "mdi:console-line" - } - }, "event": { "subscribe": { "default": "mdi:message-outline" } }, + "notify": { + "publish": { + "default": "mdi:console-line" + } + }, "sensor": { - "messages": { - "default": "mdi:message-arrow-right-outline" - }, - "messages_remaining": { - "default": "mdi:message-plus-outline" - }, - "messages_limit": { - "default": "mdi:message-alert-outline" - }, - "messages_expiry_duration": { - "default": "mdi:message-text-clock" - }, - "emails": { - "default": "mdi:email-arrow-right-outline" - }, - "emails_remaining": { - "default": "mdi:email-plus-outline" - }, - "emails_limit": { - "default": "mdi:email-alert-outline" - }, - "calls": { - "default": "mdi:phone-outgoing" - }, - "calls_remaining": { - "default": "mdi:phone-plus" - }, - "calls_limit": { - "default": "mdi:phone-alert" - }, - "reservations": { - "default": "mdi:lock" - }, - "reservations_remaining": { - "default": "mdi:lock-plus" - }, - "reservations_limit": { - "default": "mdi:lock-alert" - }, - "attachment_total_size": { - "default": "mdi:database-arrow-right" - }, - "attachment_total_size_remaining": { - "default": "mdi:database-plus" - }, - "attachment_total_size_limit": { - "default": "mdi:database-alert" + "attachment_bandwidth": { + "default": "mdi:cloud-upload" }, "attachment_expiry_duration": { "default": "mdi:cloud-clock" @@ -65,8 +20,53 @@ "attachment_file_size": { "default": "mdi:file-alert" }, - "attachment_bandwidth": { - "default": "mdi:cloud-upload" + "attachment_total_size": { + "default": "mdi:database-arrow-right" + }, + "attachment_total_size_limit": { + "default": "mdi:database-alert" + }, + "attachment_total_size_remaining": { + "default": "mdi:database-plus" + }, + "calls": { + "default": "mdi:phone-outgoing" + }, + "calls_limit": { + "default": "mdi:phone-alert" + }, + "calls_remaining": { + "default": "mdi:phone-plus" + }, + "emails": { + "default": "mdi:email-arrow-right-outline" + }, + "emails_limit": { + "default": "mdi:email-alert-outline" + }, + "emails_remaining": { + "default": "mdi:email-plus-outline" + }, + "messages": { + "default": "mdi:message-arrow-right-outline" + }, + "messages_expiry_duration": { + "default": "mdi:message-text-clock" + }, + "messages_limit": { + "default": "mdi:message-alert-outline" + }, + "messages_remaining": { + "default": "mdi:message-plus-outline" + }, + "reservations": { + "default": "mdi:lock" + }, + "reservations_limit": { + "default": "mdi:lock-alert" + }, + "reservations_remaining": { + "default": "mdi:lock-plus" }, "tier": { "default": "mdi:star" diff --git a/homeassistant/components/ntfy/strings.json b/homeassistant/components/ntfy/strings.json index 86d59e0dc6c..760f6153017 100644 --- a/homeassistant/components/ntfy/strings.json +++ b/homeassistant/components/ntfy/strings.json @@ -1,12 +1,60 @@ { "common": { - "topic": "Topic", - "add_topic_description": "Set up a topic for notifications." + "add_topic_description": "Set up a topic for notifications.", + "topic": "Topic" }, "config": { + "abort": { + "account_mismatch": "The provided access token corresponds to the account {wrong_username}. Please re-authenticate with the account **{username}**", + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "token": "[%key:common::config_flow::data::access_token%]" + }, + "data_description": { + "password": "Enter the password corresponding to the aforementioned username to automatically create an access token", + "token": "Enter a new access token. To create a new access token navigate to Account → Access tokens and select 'Create access token'" + }, + "description": "The access token for **{username}** is invalid. To re-authenticate with the ntfy service, you can either log in with your password (a new access token will be created automatically) or you can directly provide a valid access token", + "title": "Re-authenticate with ntfy ({name})" + }, + "reconfigure": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "token": "[%key:common::config_flow::data::access_token%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::ntfy::config::step::user::sections::auth::data_description::password%]", + "token": "Enter a new or existing access token. To create a new access token navigate to Account → Access tokens and select 'Create access token'", + "username": "[%key:component::ntfy::config::step::user::sections::auth::data_description::username%]" + }, + "description": "You can either log in with your **ntfy** username and password, and Home Assistant will automatically create an access token to authenticate with **ntfy**, or you can provide an access token directly", + "title": "Configuration for {name}" + }, + "reconfigure_user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "token": "[%key:common::config_flow::data::access_token%]" + }, + "data_description": { + "password": "[%key:component::ntfy::config::step::reauth_confirm::data_description::password%]", + "token": "[%key:component::ntfy::config::step::reconfigure::data_description::token%]" + }, + "description": "Enter the password for **{username}** below. Home Assistant will automatically create a new access token to authenticate with **ntfy**. You can also directly provide a valid access token", + "title": "[%key:component::ntfy::config::step::reconfigure::title%]" + }, "user": { - "description": "Set up **ntfy** push notification service", "data": { "url": "Service URL", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" @@ -15,143 +63,95 @@ "url": "Address of the ntfy service. Modify this if you want to use a different server", "verify_ssl": "Enable SSL certificate verification for secure connections. Disable only if connecting to a ntfy instance using a self-signed certificate" }, + "description": "Set up **ntfy** push notification service", "sections": { "auth": { - "name": "Authentication", - "description": "Depending on whether the server is configured to support access control, some topics may be read/write protected so that only users with the correct credentials can subscribe or publish to them. To publish/subscribe to protected topics, you can provide a username and password. Home Assistant will automatically generate an access token to authenticate with ntfy.", "data": { - "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": { - "username": "Enter the username required to authenticate with protected ntfy topics", - "password": "Enter the password corresponding to the provided username for authentication" - } + "password": "Enter the password corresponding to the provided username for authentication", + "username": "Enter the username required to authenticate with protected ntfy topics" + }, + "description": "Depending on whether the server is configured to support access control, some topics may be read/write protected so that only users with the correct credentials can subscribe or publish to them. To publish/subscribe to protected topics, you can provide a username and password. Home Assistant will automatically generate an access token to authenticate with ntfy.", + "name": "Authentication" } } - }, - "reauth_confirm": { - "title": "Re-authenticate with ntfy ({name})", - "description": "The access token for **{username}** is invalid. To re-authenticate with the ntfy service, you can either log in with your password (a new access token will be created automatically) or you can directly provide a valid access token", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "password": "Enter the password corresponding to the aforementioned username to automatically create an access token", - "token": "Enter a new access token. To create a new access token navigate to Account → Access tokens and select 'Create access token'" - } - }, - "reconfigure": { - "title": "Configuration for {name}", - "description": "You can either log in with your **ntfy** username and password, and Home Assistant will automatically create an access token to authenticate with **ntfy**, or you can provide an access token directly", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "username": "[%key:component::ntfy::config::step::user::sections::auth::data_description::username%]", - "password": "[%key:component::ntfy::config::step::user::sections::auth::data_description::password%]", - "token": "Enter a new or existing access token. To create a new access token navigate to Account → Access tokens and select 'Create access token'" - } - }, - "reconfigure_user": { - "title": "[%key:component::ntfy::config::step::reconfigure::title%]", - "description": "Enter the password for **{username}** below. Home Assistant will automatically create a new access token to authenticate with **ntfy**. You can also directly provide a valid access token", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "password": "[%key:component::ntfy::config::step::reauth_confirm::data_description::password%]", - "token": "[%key:component::ntfy::config::step::reconfigure::data_description::token%]" - } } - }, - "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_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "account_mismatch": "The provided access token corresponds to the account {wrong_username}. Please re-authenticate with the account **{username}**", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "config_subentries": { "topic": { - "step": { - "user": { - "title": "[%key:component::ntfy::common::topic%]", - "description": "[%key:component::ntfy::common::add_topic_description%]", - "menu_options": { - "add_topic": "Enter topic", - "generate_topic": "Generate topic name" - } - }, - "add_topic": { - "title": "[%key:component::ntfy::common::topic%]", - "description": "[%key:component::ntfy::common::add_topic_description%]", - "data": { - "topic": "[%key:component::ntfy::common::topic%]", - "name": "Display name" - }, - "data_description": { - "topic": "Enter the name of the topic you want to use for notifications. Topics may not be password-protected, so choose a name that's not easy to guess.", - "name": "Set an alternative name to display instead of the topic name. This helps identify topics with complex or hard-to-read names more easily." - }, - "sections": { - "filter": { - "data": { - "filter_priority": "Filter by priority", - "filter_tags": "Filter by tags", - "filter_title": "Filter by title", - "filter_message": "Filter by message content" - }, - "data_description": { - "filter_priority": "Include messages that match any of the selected priority levels. If no priority is selected, all messages are included by default", - "filter_tags": "Only include messages that have all selected tags", - "filter_title": "Include messages with a title that exactly matches the specified text", - "filter_message": "Include messages with content that exactly matches the specified text" - }, - "name": "Message filters (optional)", - "description": "Apply filters to narrow down the messages received when Home Assistant subscribes to the topic. Filters apply only to the event entity." - } - } - }, - "reconfigure": { - "title": "Message filters for {topic}", - "description": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::description%]", - "data": { - "filter_priority": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_priority%]", - "filter_tags": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_tags%]", - "filter_title": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_title%]", - "filter_message": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_message%]" - }, - "data_description": { - "filter_priority": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_priority%]", - "filter_tags": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_tags%]", - "filter_title": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_title%]", - "filter_message": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_message%]" - } - } + "abort": { + "already_configured": "Topic is already configured", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "entry_type": "[%key:component::ntfy::common::topic%]", + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_topic": "Invalid topic. Only letters, numbers, underscores, or dashes allowed.", + "publish_forbidden": "Publishing to this topic is forbidden", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "initiate_flow": { "user": "Add topic" }, - "entry_type": "[%key:component::ntfy::common::topic%]", - "error": { - "publish_forbidden": "Publishing to this topic is forbidden", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_topic": "Invalid topic. Only letters, numbers, underscores, or dashes allowed." - }, - "abort": { - "already_configured": "Topic is already configured", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "add_topic": { + "data": { + "name": "Display name", + "topic": "[%key:component::ntfy::common::topic%]" + }, + "data_description": { + "name": "Set an alternative name to display instead of the topic name. This helps identify topics with complex or hard-to-read names more easily.", + "topic": "Enter the name of the topic you want to use for notifications. Topics may not be password-protected, so choose a name that's not easy to guess." + }, + "description": "[%key:component::ntfy::common::add_topic_description%]", + "sections": { + "filter": { + "data": { + "filter_message": "Filter by message content", + "filter_priority": "Filter by priority", + "filter_tags": "Filter by tags", + "filter_title": "Filter by title" + }, + "data_description": { + "filter_message": "Include messages with content that exactly matches the specified text", + "filter_priority": "Include messages that match any of the selected priority levels. If no priority is selected, all messages are included by default", + "filter_tags": "Only include messages that have all selected tags", + "filter_title": "Include messages with a title that exactly matches the specified text" + }, + "description": "Apply filters to narrow down the messages received when Home Assistant subscribes to the topic. Filters apply only to the event entity.", + "name": "Message filters (optional)" + } + }, + "title": "[%key:component::ntfy::common::topic%]" + }, + "reconfigure": { + "data": { + "filter_message": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_message%]", + "filter_priority": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_priority%]", + "filter_tags": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_tags%]", + "filter_title": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data::filter_title%]" + }, + "data_description": { + "filter_message": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_message%]", + "filter_priority": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_priority%]", + "filter_tags": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_tags%]", + "filter_title": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::data_description::filter_title%]" + }, + "description": "[%key:component::ntfy::config_subentries::topic::step::add_topic::sections::filter::description%]", + "title": "Message filters for {topic}" + }, + "user": { + "description": "[%key:component::ntfy::common::add_topic_description%]", + "menu_options": { + "add_topic": "Enter topic", + "generate_topic": "Generate topic name" + }, + "title": "[%key:component::ntfy::common::topic%]" + } } } }, @@ -159,85 +159,28 @@ "event": { "subscribe": { "state_attributes": { + "actions": { "name": "Actions" }, + "attachment": { "name": "Attachment" }, + "click": { "name": "Click" }, "event_type": { "state": { "triggered": "Triggered" } }, - "time": { "name": "Time" }, "expires": { "name": "Expires" }, - "topic": { "name": "[%key:component::ntfy::common::topic%]" }, - "message": { "name": "Message" }, - "title": { "name": "Title" }, - "tags": { "name": "Tags" }, - "priority": { "name": "Priority" }, - "click": { "name": "Click" }, "icon": { "name": "Icon" }, - "actions": { "name": "Actions" }, - "attachment": { "name": "Attachment" } + "message": { "name": "Message" }, + "priority": { "name": "Priority" }, + "tags": { "name": "Tags" }, + "time": { "name": "Time" }, + "title": { "name": "Title" }, + "topic": { "name": "[%key:component::ntfy::common::topic%]" } } } }, "sensor": { - "messages": { - "name": "Messages published", - "unit_of_measurement": "messages" - }, - "messages_remaining": { - "name": "Messages remaining", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::messages::unit_of_measurement%]" - }, - "messages_limit": { - "name": "Messages usage limit", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::messages::unit_of_measurement%]" - }, - "messages_expiry_duration": { - "name": "Messages expiry duration" - }, - "emails": { - "name": "Emails sent", - "unit_of_measurement": "emails" - }, - "emails_remaining": { - "name": "Emails remaining", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::emails::unit_of_measurement%]" - }, - "emails_limit": { - "name": "Email usage limit", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::emails::unit_of_measurement%]" - }, - "calls": { - "name": "Phone calls made", - "unit_of_measurement": "calls" - }, - "calls_remaining": { - "name": "Phone calls remaining", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::calls::unit_of_measurement%]" - }, - "calls_limit": { - "name": "Phone calls usage limit", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::calls::unit_of_measurement%]" - }, - "reservations": { - "name": "Reserved topics", - "unit_of_measurement": "topics" - }, - "reservations_remaining": { - "name": "Reserved topics remaining", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::reservations::unit_of_measurement%]" - }, - "reservations_limit": { - "name": "Reserved topics limit", - "unit_of_measurement": "[%key:component::ntfy::entity::sensor::reservations::unit_of_measurement%]" - }, - "attachment_total_size": { - "name": "Attachment storage" - }, - "attachment_total_size_remaining": { - "name": "Attachment storage remaining" - }, - "attachment_total_size_limit": { - "name": "Attachment storage limit" + "attachment_bandwidth": { + "name": "Attachment bandwidth limit" }, "attachment_expiry_duration": { "name": "Attachment expiry duration" @@ -245,39 +188,89 @@ "attachment_file_size": { "name": "Attachment file size limit" }, - "attachment_bandwidth": { - "name": "Attachment bandwidth limit" + "attachment_total_size": { + "name": "Attachment storage" + }, + "attachment_total_size_limit": { + "name": "Attachment storage limit" + }, + "attachment_total_size_remaining": { + "name": "Attachment storage remaining" + }, + "calls": { + "name": "Phone calls made", + "unit_of_measurement": "calls" + }, + "calls_limit": { + "name": "Phone calls usage limit", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::calls::unit_of_measurement%]" + }, + "calls_remaining": { + "name": "Phone calls remaining", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::calls::unit_of_measurement%]" + }, + "emails": { + "name": "Emails sent", + "unit_of_measurement": "emails" + }, + "emails_limit": { + "name": "Email usage limit", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::emails::unit_of_measurement%]" + }, + "emails_remaining": { + "name": "Emails remaining", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::emails::unit_of_measurement%]" + }, + "messages": { + "name": "Messages published", + "unit_of_measurement": "messages" + }, + "messages_expiry_duration": { + "name": "Messages expiry duration" + }, + "messages_limit": { + "name": "Messages usage limit", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::messages::unit_of_measurement%]" + }, + "messages_remaining": { + "name": "Messages remaining", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::messages::unit_of_measurement%]" + }, + "reservations": { + "name": "Reserved topics", + "unit_of_measurement": "topics" + }, + "reservations_limit": { + "name": "Reserved topics limit", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::reservations::unit_of_measurement%]" + }, + "reservations_remaining": { + "name": "Reserved topics remaining", + "unit_of_measurement": "[%key:component::ntfy::entity::sensor::reservations::unit_of_measurement%]" }, "tier": { "name": "Subscription tier", "state": { + "business": "Business", "free": "Free", - "supporter": "Supporter", "pro": "Pro", - "business": "Business" + "supporter": "Supporter" } } } }, "exceptions": { - "publish_failed_request_error": { - "message": "Failed to publish notification: {error_msg}" - }, - - "publish_failed_exception": { - "message": "Failed to publish notification due to a connection error" - }, "authentication_error": { "message": "Failed to authenticate with ntfy service. Please verify your credentials" }, - "server_error": { - "message": "Failed to connect to ntfy service due to a server error: {error_msg}" - }, "connection_error": { "message": "Failed to connect to ntfy service due to a connection error" }, - "timeout_error": { - "message": "Failed to connect to ntfy service due to a connection timeout" + "delay_no_call": { + "message": "Delayed call notifications are not supported" + }, + "delay_no_email": { + "message": "Delayed email notifications are not supported" }, "entity_not_found": { "message": "The selected ntfy entity could not be found." @@ -285,63 +278,31 @@ "entry_not_loaded": { "message": "The selected ntfy service is currently not loaded or disabled in Home Assistant." }, - "delay_no_email": { - "message": "Delayed email notifications are not supported" + "publish_failed_exception": { + "message": "Failed to publish notification due to a connection error" }, - "delay_no_call": { - "message": "Delayed call notifications are not supported" + "publish_failed_request_error": { + "message": "Failed to publish notification: {error_msg}" + }, + + "server_error": { + "message": "Failed to connect to ntfy service due to a server error: {error_msg}" + }, + "timeout_error": { + "message": "Failed to connect to ntfy service due to a connection timeout" } }, - "services": { - "publish": { - "name": "Publish notification", - "description": "Publishes a notification message to a ntfy topic", - "fields": { - "title": { - "name": "[%key:component::notify::services::send_message::fields::title::name%]", - "description": "[%key:component::notify::services::send_message::fields::title::description%]" - }, - "message": { - "name": "[%key:component::notify::services::send_message::fields::message::name%]", - "description": "[%key:component::notify::services::send_message::fields::message::description%]" - }, - "markdown": { - "name": "Format as Markdown", - "description": "Enable Markdown formatting for the message body. See the Markdown guide for syntax details: https://www.markdownguide.org/basic-syntax/." - }, - "tags": { - "name": "Tags/Emojis", - "description": "Add tags or emojis to the notification. Emojis (using shortcodes like smile) will appear in the notification title or message. Other tags will be displayed below the notification content." - }, - "priority": { - "name": "Message priority", - "description": "All messages have a priority that defines how urgently your phone notifies you, depending on the configured vibration patterns, notification sounds, and visibility in the notification drawer or pop-over." - }, - "click": { - "name": "Click URL", - "description": "URL that is opened when notification is clicked." - }, - "delay": { - "name": "Delay delivery", - "description": "Set a delay for message delivery. Minimum delay is 10 seconds, maximum is 3 days." - }, - "attach": { - "name": "Attachment URL", - "description": "Attach images or other files by URL." - }, - "email": { - "name": "Forward to email", - "description": "Specify the address to forward the notification to, for example mail@example.com" - }, - "call": { - "name": "Phone call", - "description": "Phone number to call and read the message out loud using text-to-speech. Requires ntfy Pro and prior phone number verification." - }, - "icon": { - "name": "Icon URL", - "description": "Include an icon that will appear next to the text of the notification. Only JPEG and PNG images are supported." + "issues": { + "topic_protected": { + "fix_flow": { + "step": { + "confirm": { + "description": "The topic **{topic}** is protected and requires authentication to subscribe.\n\nTo resolve this issue, you have two options:\n\n1. **Reconfigure the ntfy integration**\nAdd a username and password that has permission to access this topic.\n\n2. **Deactivate the event entity**\nThis will stop Home Assistant from subscribing to the topic.\nClick **Submit** to deactivate the entity.", + "title": "Topic {topic} is protected" + } } - } + }, + "title": "Subscription failed: Topic {topic} is protected" } }, "selector": { @@ -355,17 +316,56 @@ } } }, - "issues": { - "topic_protected": { - "title": "Subscription failed: Topic {topic} is protected", - "fix_flow": { - "step": { - "confirm": { - "title": "Topic {topic} is protected", - "description": "The topic **{topic}** is protected and requires authentication to subscribe.\n\nTo resolve this issue, you have two options:\n\n1. **Reconfigure the ntfy integration**\nAdd a username and password that has permission to access this topic.\n\n2. **Deactivate the event entity**\nThis will stop Home Assistant from subscribing to the topic.\nClick **Submit** to deactivate the entity." - } + "services": { + "publish": { + "description": "Publishes a notification message to a ntfy topic", + "fields": { + "attach": { + "description": "Attach images or other files by URL.", + "name": "Attachment URL" + }, + "call": { + "description": "Phone number to call and read the message out loud using text-to-speech. Requires ntfy Pro and prior phone number verification.", + "name": "Phone call" + }, + "click": { + "description": "URL that is opened when notification is clicked.", + "name": "Click URL" + }, + "delay": { + "description": "Set a delay for message delivery. Minimum delay is 10 seconds, maximum is 3 days.", + "name": "Delay delivery" + }, + "email": { + "description": "Specify the address to forward the notification to, for example mail@example.com", + "name": "Forward to email" + }, + "icon": { + "description": "Include an icon that will appear next to the text of the notification. Only JPEG and PNG images are supported.", + "name": "Icon URL" + }, + "markdown": { + "description": "Enable Markdown formatting for the message body. See the Markdown guide for syntax details: https://www.markdownguide.org/basic-syntax/.", + "name": "Format as Markdown" + }, + "message": { + "description": "[%key:component::notify::services::send_message::fields::message::description%]", + "name": "[%key:component::notify::services::send_message::fields::message::name%]" + }, + "priority": { + "description": "All messages have a priority that defines how urgently your phone notifies you, depending on the configured vibration patterns, notification sounds, and visibility in the notification drawer or pop-over.", + "name": "Message priority" + }, + "tags": { + "description": "Add tags or emojis to the notification. Emojis (using shortcodes like smile) will appear in the notification title or message. Other tags will be displayed below the notification content.", + "name": "Tags/Emojis" + }, + "title": { + "description": "[%key:component::notify::services::send_message::fields::title::description%]", + "name": "[%key:component::notify::services::send_message::fields::title::name%]" } - } + }, + "name": "Publish notification" } } } diff --git a/homeassistant/components/nuheat/strings.json b/homeassistant/components/nuheat/strings.json index c6e7d24921e..9cf3761d939 100644 --- a/homeassistant/components/nuheat/strings.json +++ b/homeassistant/components/nuheat/strings.json @@ -1,23 +1,23 @@ { "config": { - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_thermostat": "The thermostat serial number is invalid." - }, "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%]", + "invalid_thermostat": "The thermostat serial number is invalid.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "title": "Connect to the NuHeat", - "description": "You will need to obtain your thermostat\u2019s numeric serial number or ID by logging into {nuheat_url} and selecting your thermostat(s).", "data": { - "username": "[%key:common::config_flow::data::username%]", "password": "[%key:common::config_flow::data::password%]", - "serial_number": "Serial number of the thermostat." - } + "serial_number": "Serial number of the thermostat.", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "You will need to obtain your thermostat\u2019s numeric serial number or ID by logging into {nuheat_url} and selecting your thermostat(s).", + "title": "Connect to the NuHeat" } } } diff --git a/homeassistant/components/nuki/strings.json b/homeassistant/components/nuki/strings.json index ecd5872aadd..aabbba40271 100644 --- a/homeassistant/components/nuki/strings.json +++ b/homeassistant/components/nuki/strings.json @@ -1,40 +1,34 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "token": "[%key:common::config_flow::data::access_token%]", - "encrypt_token": "Use an encrypted token for authentication." - }, - "data_description": { - "host": "The hostname or IP address of your Nuki bridge. For example: {sample_ip}." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Nuki integration needs to re-authenticate with your bridge.", - "data": { - "token": "[%key:common::config_flow::data::access_token%]", - "encrypt_token": "[%key:component::nuki::config::step::user::data::encrypt_token%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "issues": { - "https_webhook": { - "title": "Nuki webhook URL uses HTTPS (SSL)", - "description": "The Nuki bridge cannot push events to an HTTPS address (SSL), please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}). The current (local) address is: `{base_url}`, a valid address could, for example, be `{sample_url}` where `{sample_ip}` is the IP of the Home Assistant device" + "step": { + "reauth_confirm": { + "data": { + "encrypt_token": "[%key:component::nuki::config::step::user::data::encrypt_token%]", + "token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "The Nuki integration needs to re-authenticate with your bridge.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "encrypt_token": "Use an encrypted token for authentication.", + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]", + "token": "[%key:common::config_flow::data::access_token%]" + }, + "data_description": { + "host": "The hostname or IP address of your Nuki bridge. For example: {sample_ip}." + } + } } }, "entity": { @@ -48,34 +42,40 @@ "state_attributes": { "battery_critical": { "state": { - "on": "[%key:common::state::low%]", - "off": "[%key:common::state::normal%]" + "off": "[%key:common::state::normal%]", + "on": "[%key:common::state::low%]" } } } } } }, + "issues": { + "https_webhook": { + "description": "The Nuki bridge cannot push events to an HTTPS address (SSL), please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}). The current (local) address is: `{base_url}`, a valid address could, for example, be `{sample_url}` where `{sample_ip}` is the IP of the Home Assistant device", + "title": "Nuki webhook URL uses HTTPS (SSL)" + } + }, "services": { "lock_n_go": { - "name": "Lock 'n' Go", "description": "Unlocks the door, waits a few seconds then re-locks. The wait period can be customized through the app.", "fields": { "unlatch": { - "name": "Unlatch", - "description": "Whether to also unlatch the door when unlocking it." + "description": "Whether to also unlatch the door when unlocking it.", + "name": "Unlatch" } - } + }, + "name": "Lock 'n' Go" }, "set_continuous_mode": { - "name": "Set continuous mode", "description": "Enables or disables continuous mode on Nuki Opener.", "fields": { "enable": { - "name": "[%key:common::action::enable%]", - "description": "Whether to enable or disable the feature." + "description": "Whether to enable or disable the feature.", + "name": "[%key:common::action::enable%]" } - } + }, + "name": "Set continuous mode" } } } diff --git a/homeassistant/components/number/strings.json b/homeassistant/components/number/strings.json index e9e313b1bba..597c096ed23 100644 --- a/homeassistant/components/number/strings.json +++ b/homeassistant/components/number/strings.json @@ -1,5 +1,4 @@ { - "title": "Number", "device_automation": { "action_type": { "set_value": "Set value for {entity_name}" @@ -112,21 +111,21 @@ "pm1": { "name": "[%key:component::sensor::entity_component::pm1::name%]" }, - "pm4": { - "name": "[%key:component::sensor::entity_component::pm4::name%]" - }, "pm10": { "name": "[%key:component::sensor::entity_component::pm10::name%]" }, "pm25": { "name": "[%key:component::sensor::entity_component::pm25::name%]" }, - "power_factor": { - "name": "[%key:component::sensor::entity_component::power_factor::name%]" + "pm4": { + "name": "[%key:component::sensor::entity_component::pm4::name%]" }, "power": { "name": "[%key:component::sensor::entity_component::power::name%]" }, + "power_factor": { + "name": "[%key:component::sensor::entity_component::power_factor::name%]" + }, "precipitation": { "name": "[%key:component::sensor::entity_component::precipitation::name%]" }, @@ -169,12 +168,12 @@ "volume": { "name": "[%key:component::sensor::entity_component::volume::name%]" }, - "volume_storage": { - "name": "[%key:component::sensor::entity_component::volume_storage::name%]" - }, "volume_flow_rate": { "name": "[%key:component::sensor::entity_component::volume_flow_rate::name%]" }, + "volume_storage": { + "name": "[%key:component::sensor::entity_component::volume_storage::name%]" + }, "water": { "name": "[%key:component::sensor::entity_component::water::name%]" }, @@ -195,14 +194,15 @@ }, "services": { "set_value": { - "name": "Set", "description": "Sets the value of a number.", "fields": { "value": { - "name": "Value", - "description": "The target value to set." + "description": "The target value to set.", + "name": "Value" } - } + }, + "name": "Set" } - } + }, + "title": "Number" } diff --git a/homeassistant/components/nut/strings.json b/homeassistant/components/nut/strings.json index 560fc463fa6..7da18653016 100644 --- a/homeassistant/components/nut/strings.json +++ b/homeassistant/components/nut/strings.json @@ -1,77 +1,77 @@ { "config": { - "step": { - "user": { - "description": "Connect to the NUT server", - "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 or hostname of your NUT server.", - "port": "The network port of your NUT server. The NUT server's default port is '3493'.", - "username": "The username to sign in to your NUT server. The username is optional.", - "password": "The password to sign in to your NUT server. The password is optional." - } - }, - "ups": { - "title": "Choose the NUT server UPS to monitor", - "data": { - "alias": "NUT server UPS name" - }, - "data_description": { - "alias": "The UPS name configured on the NUT server." - } - }, - "reauth_confirm": { - "description": "Re-authenticate NUT server at {host}:{port}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::nut::config::step::user::data_description::username%]", - "password": "[%key:component::nut::config::step::user::data_description::password%]" - } - }, - "reconfigure": { - "description": "[%key:component::nut::config::step::user::description%]", - "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": "[%key:component::nut::config::step::user::data_description::host%]", - "port": "[%key:component::nut::config::step::user::data_description::port%]", - "username": "[%key:component::nut::config::step::user::data_description::username%]", - "password": "[%key:component::nut::config::step::user::data_description::password%]" - } - }, - "reconfigure_ups": { - "title": "[%key:component::nut::config::step::ups::title%]", - "data": { - "alias": "[%key:component::nut::config::step::ups::data::alias%]" - }, - "data_description": { - "alias": "[%key:component::nut::config::step::ups::data_description::alias%]" - } - } - }, - "error": { - "cannot_connect": "Connection error: {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_device%]", "no_ups_found": "There are no UPS devices available on the NUT server.", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "unique_id_mismatch": "The device's manufacturer, model and serial number identifier does not match the previous identifier." + }, + "error": { + "cannot_connect": "Connection error: {error}", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::nut::config::step::user::data_description::password%]", + "username": "[%key:component::nut::config::step::user::data_description::username%]" + }, + "description": "Re-authenticate NUT server at {host}:{port}" + }, + "reconfigure": { + "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": "[%key:component::nut::config::step::user::data_description::host%]", + "password": "[%key:component::nut::config::step::user::data_description::password%]", + "port": "[%key:component::nut::config::step::user::data_description::port%]", + "username": "[%key:component::nut::config::step::user::data_description::username%]" + }, + "description": "[%key:component::nut::config::step::user::description%]" + }, + "reconfigure_ups": { + "data": { + "alias": "[%key:component::nut::config::step::ups::data::alias%]" + }, + "data_description": { + "alias": "[%key:component::nut::config::step::ups::data_description::alias%]" + }, + "title": "[%key:component::nut::config::step::ups::title%]" + }, + "ups": { + "data": { + "alias": "NUT server UPS name" + }, + "data_description": { + "alias": "The UPS name configured on the NUT server." + }, + "title": "Choose the NUT server UPS to monitor" + }, + "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 or hostname of your NUT server.", + "password": "The password to sign in to your NUT server. The password is optional.", + "port": "The network port of your NUT server. The NUT server's default port is '3493'.", + "username": "The username to sign in to your NUT server. The username is optional." + }, + "description": "Connect to the NUT server" + } } }, "device_automation": { @@ -113,22 +113,22 @@ "ambient_humidity_status": { "name": "Ambient humidity status", "state": { - "good": "Good", - "warning-low": "Warning low", + "critical-high": "Critical high", "critical-low": "Critical low", + "good": "Good", "warning-high": "Warning high", - "critical-high": "Critical high" + "warning-low": "Warning low" } }, "ambient_temperature": { "name": "Ambient temperature" }, "ambient_temperature_status": { "name": "Ambient temperature status", "state": { - "good": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::good%]", - "warning-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-low%]", + "critical-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-high%]", "critical-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-low%]", + "good": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::good%]", "warning-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-high%]", - "critical-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-high%]" + "warning-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-low%]" } }, "battery_alarm_threshold": { "name": "Battery alarm threshold" }, @@ -141,12 +141,12 @@ "name": "Charging status", "state": { "charging": "[%key:common::state::charging%]", + "disabled": "[%key:common::state::disabled%]", "discharging": "[%key:common::state::discharging%]", "floating": "Floating", + "off": "[%key:common::state::off%]", "resting": "Resting", - "unknown": "Unknown", - "disabled": "[%key:common::state::disabled%]", - "off": "[%key:common::state::off%]" + "unknown": "Unknown" } }, "battery_current": { "name": "Battery current" }, @@ -191,11 +191,11 @@ "input_current_status": { "name": "Input current status", "state": { - "good": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::good%]", - "warning-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-low%]", + "critical-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-high%]", "critical-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-low%]", + "good": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::good%]", "warning-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-high%]", - "critical-high": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::critical-high%]" + "warning-low": "[%key:component::nut::entity::sensor::ambient_humidity_status::state::warning-low%]" } }, "input_frequency": { "name": "Input frequency" }, @@ -233,6 +233,7 @@ "input_voltage": { "name": "Input voltage" }, "input_voltage_nominal": { "name": "Nominal input voltage" }, "input_voltage_status": { "name": "Input voltage status" }, + "outlet_current": { "name": "Outlet current" }, "outlet_number_current": { "name": "Outlet {outlet_name} current" }, "outlet_number_current_status": { "name": "Outlet {outlet_name} current status" @@ -240,7 +241,6 @@ "outlet_number_desc": { "name": "Outlet {outlet_name} description" }, "outlet_number_power": { "name": "Outlet {outlet_name} power" }, "outlet_number_realpower": { "name": "Outlet {outlet_name} real power" }, - "outlet_current": { "name": "Outlet current" }, "outlet_power": { "name": "Outlet apparent power" }, "outlet_realpower": { "name": "Outlet real power" }, "outlet_voltage": { "name": "Outlet voltage" }, @@ -274,8 +274,8 @@ "ups_beeper_status": { "name": "Beeper status", "state": { - "enabled": "[%key:common::state::enabled%]", "disabled": "[%key:common::state::disabled%]", + "enabled": "[%key:common::state::enabled%]", "muted": "Muted" } }, diff --git a/homeassistant/components/nws/strings.json b/homeassistant/components/nws/strings.json index 72b6a2c86b6..f8d618917c1 100644 --- a/homeassistant/components/nws/strings.json +++ b/homeassistant/components/nws/strings.json @@ -1,23 +1,23 @@ { "config": { - "step": { - "user": { - "description": "If a METAR station code is not specified, the latitude and longitude will be used to find the closest station. For now, the API key can be anything. It is recommended to use a valid email address.", - "title": "Connect to the National Weather Service", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "station": "METAR station code" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]", + "station": "METAR station code" + }, + "description": "If a METAR station code is not specified, the latitude and longitude will be used to find the closest station. For now, the API key can be anything. It is recommended to use a valid email address.", + "title": "Connect to the National Weather Service" + } } }, "selector": { @@ -30,14 +30,14 @@ }, "services": { "get_forecasts_extra": { - "name": "Get extra forecasts data", "description": "Retrieves extra data for weather forecasts.", "fields": { "type": { - "name": "Forecast type", - "description": "The scope of the weather forecast." + "description": "The scope of the weather forecast.", + "name": "Forecast type" } - } + }, + "name": "Get extra forecasts data" } } } diff --git a/homeassistant/components/nx584/strings.json b/homeassistant/components/nx584/strings.json index b3d03815278..868a3ecb785 100644 --- a/homeassistant/components/nx584/strings.json +++ b/homeassistant/components/nx584/strings.json @@ -1,24 +1,24 @@ { "services": { "bypass_zone": { - "name": "Bypass zone", "description": "Bypasses a zone.", "fields": { "zone": { - "name": "Zone", - "description": "The number of the zone to be bypassed." + "description": "The number of the zone to be bypassed.", + "name": "Zone" } - } + }, + "name": "Bypass zone" }, "unbypass_zone": { - "name": "Un-bypass zone", "description": "Un-Bypasses a zone.", "fields": { "zone": { - "name": "[%key:component::nx584::services::bypass_zone::fields::zone::name%]", - "description": "The number of the zone to be un-bypassed." + "description": "The number of the zone to be un-bypassed.", + "name": "[%key:component::nx584::services::bypass_zone::fields::zone::name%]" } - } + }, + "name": "Un-bypass zone" } } } diff --git a/homeassistant/components/nyt_games/icons.json b/homeassistant/components/nyt_games/icons.json index 2b839c1d218..dd83a3983e0 100644 --- a/homeassistant/components/nyt_games/icons.json +++ b/homeassistant/components/nyt_games/icons.json @@ -1,14 +1,11 @@ { "entity": { "sensor": { - "wordles_played": { - "default": "mdi:text-long" + "connections_played": { + "default": "mdi:table-large" }, - "won": { - "default": "mdi:trophy-award" - }, - "streak": { - "default": "mdi:calendar-range" + "last_played": { + "default": "mdi:calendar" }, "max_streak": { "default": "mdi:calendar-month" @@ -16,17 +13,20 @@ "spelling_bees_played": { "default": "mdi:beehive-outline" }, - "total_words": { - "default": "mdi:beehive-outline" + "streak": { + "default": "mdi:calendar-range" }, "total_pangrams": { "default": "mdi:beehive-outline" }, - "connections_played": { - "default": "mdi:table-large" + "total_words": { + "default": "mdi:beehive-outline" }, - "last_played": { - "default": "mdi:calendar" + "won": { + "default": "mdi:trophy-award" + }, + "wordles_played": { + "default": "mdi:text-long" } } } diff --git a/homeassistant/components/nyt_games/strings.json b/homeassistant/components/nyt_games/strings.json index 9a3771aebd9..008e3c4612d 100644 --- a/homeassistant/components/nyt_games/strings.json +++ b/homeassistant/components/nyt_games/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,26 +17,15 @@ "token": "The NYT Games NYT-S cookie value." } } - }, - "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%]" } }, "entity": { "sensor": { - "wordles_played": { - "name": "Played" + "connections_played": { + "name": "[%key:component::nyt_games::entity::sensor::wordles_played::name%]" }, - "won": { - "name": "Won" - }, - "streak": { - "name": "Current streak" + "last_played": { + "name": "Last played" }, "max_streak": { "name": "Highest streak" @@ -36,17 +33,20 @@ "spelling_bees_played": { "name": "[%key:component::nyt_games::entity::sensor::wordles_played::name%]" }, - "total_words": { - "name": "Total words found" + "streak": { + "name": "Current streak" }, "total_pangrams": { "name": "Total pangrams found" }, - "connections_played": { - "name": "[%key:component::nyt_games::entity::sensor::wordles_played::name%]" + "total_words": { + "name": "Total words found" }, - "last_played": { - "name": "Last played" + "won": { + "name": "Won" + }, + "wordles_played": { + "name": "Played" } } } diff --git a/homeassistant/components/nzbget/strings.json b/homeassistant/components/nzbget/strings.json index 358be131c93..83b1c8a7ec0 100644 --- a/homeassistant/components/nzbget/strings.json +++ b/homeassistant/components/nzbget/strings.json @@ -1,25 +1,25 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "title": "Connect to NZBGet", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "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%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - } + "abort": { + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "unknown": "[%key:common::config_flow::error::unknown%]" + "flow_title": "{name}", + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "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%]" + }, + "title": "Connect to NZBGet" + } } }, "entity": { @@ -30,18 +30,12 @@ "average_speed": { "name": "Average speed" }, - "download_paused": { - "name": "Download paused" - }, - "speed": { - "name": "Speed" - }, - "size": { - "name": "Size" - }, "disk_free": { "name": "Disk free" }, + "download_paused": { + "name": "Download paused" + }, "post_processing_jobs": { "name": "Post-processing jobs" }, @@ -51,11 +45,17 @@ "queue_size": { "name": "Queue size" }, - "uptime": { - "name": "Uptime" + "size": { + "name": "Size" + }, + "speed": { + "name": "Speed" }, "speed_limit": { "name": "Speed limit" + }, + "uptime": { + "name": "Uptime" } }, "switch": { @@ -71,22 +71,22 @@ }, "services": { "pause": { - "name": "[%key:common::action::pause%]", - "description": "Pauses download queue." + "description": "Pauses download queue.", + "name": "[%key:common::action::pause%]" }, "resume": { - "name": "Resume", - "description": "Resumes download queue." + "description": "Resumes download queue.", + "name": "Resume" }, "set_speed": { - "name": "Set speed", "description": "Sets download speed limit.", "fields": { "speed": { - "name": "Speed", - "description": "Speed limit. 0 is unlimited." + "description": "Speed limit. 0 is unlimited.", + "name": "Speed" } - } + }, + "name": "Set speed" } } } diff --git a/homeassistant/components/obihai/strings.json b/homeassistant/components/obihai/strings.json index f21b4b3706d..4fe8b21df8d 100644 --- a/homeassistant/components/obihai/strings.json +++ b/homeassistant/components/obihai/strings.json @@ -1,6 +1,24 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { + "dhcp_confirm": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "[%key:component::obihai::config::step::user::data_description::host%]" + }, + "description": "Do you want to set up {host}?" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -10,25 +28,7 @@ "data_description": { "host": "The hostname or IP address of your Obihai device." } - }, - "dhcp_confirm": { - "description": "Do you want to set up {host}?", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]", - "username": "[%key:common::config_flow::data::username%]" - }, - "data_description": { - "host": "[%key:component::obihai::config::step::user::data_description::host%]" - } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/octoprint/manifest.json b/homeassistant/components/octoprint/manifest.json index 25e4062373c..9d7cef3661b 100644 --- a/homeassistant/components/octoprint/manifest.json +++ b/homeassistant/components/octoprint/manifest.json @@ -9,8 +9,8 @@ "requirements": ["pyoctoprintapi==0.1.14"], "ssdp": [ { - "manufacturer": "The OctoPrint Project", - "deviceType": "urn:schemas-upnp-org:device:Basic:1" + "deviceType": "urn:schemas-upnp-org:device:Basic:1", + "manufacturer": "The OctoPrint Project" } ], "zeroconf": ["_octoprint._tcp.local."] diff --git a/homeassistant/components/octoprint/strings.json b/homeassistant/components/octoprint/strings.json index a516977efd2..89df5290ce7 100644 --- a/homeassistant/components/octoprint/strings.json +++ b/homeassistant/components/octoprint/strings.json @@ -1,39 +1,39 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "auth_failed": "Failed to retrieve API key", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "OctoPrint printer: {host}", + "progress": { + "get_api_key": "Open the OctoPrint UI and select **Allow** on the Access Request for **Home Assistant**." + }, "step": { + "reauth_confirm": { + "data": { + "username": "[%key:common::config_flow::data::username%]" + } + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", "path": "Application path", "port": "[%key:common::config_flow::data::port%]", "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "username": "[%key:common::config_flow::data::username%]" + "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 your printer." } - }, - "reauth_confirm": { - "data": { - "username": "[%key:common::config_flow::data::username%]" - } } - }, - "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%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "auth_failed": "Failed to retrieve API key", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - }, - "progress": { - "get_api_key": "Open the OctoPrint UI and select **Allow** on the Access Request for **Home Assistant**." } }, "entity": { @@ -41,11 +41,11 @@ "bed_temperature": { "name": "Bed temperature" }, - "extruder_temperature": { - "name": "Extruder temperature" - }, "extruder_n_temperature": { "name": "Extruder {n} temperature" + }, + "extruder_temperature": { + "name": "Extruder temperature" } } }, @@ -59,26 +59,26 @@ }, "services": { "printer_connect": { - "name": "Connect to a printer", "description": "Instructs the OctoPrint server to connect to a printer.", "fields": { - "device_id": { - "name": "Server", - "description": "The server that should connect." + "baudrate": { + "description": "Baud rate.", + "name": "Baudrate" }, - "profile_name": { - "name": "Profile name", - "description": "Printer profile to connect with." + "device_id": { + "description": "The server that should connect.", + "name": "Server" }, "port": { - "name": "Serial port", - "description": "Port name to connect on." + "description": "Port name to connect on.", + "name": "Serial port" }, - "baudrate": { - "name": "Baudrate", - "description": "Baud rate." + "profile_name": { + "description": "Printer profile to connect with.", + "name": "Profile name" } - } + }, + "name": "Connect to a printer" } } } diff --git a/homeassistant/components/ohme/icons.json b/homeassistant/components/ohme/icons.json index 8613f2542c4..6982f1ef46c 100644 --- a/homeassistant/components/ohme/icons.json +++ b/homeassistant/components/ohme/icons.json @@ -22,21 +22,21 @@ } }, "sensor": { - "status": { - "default": "mdi:car", - "state": { - "unplugged": "mdi:power-plug-off", - "plugged_in": "mdi:power-plug", - "charging": "mdi:battery-charging-100", - "paused": "mdi:pause", - "pending_approval": "mdi:alert-decagram" - } - }, "ct_current": { "default": "mdi:gauge" }, "slot_list": { "default": "mdi:calendar-clock" + }, + "status": { + "default": "mdi:car", + "state": { + "charging": "mdi:battery-charging-100", + "paused": "mdi:pause", + "pending_approval": "mdi:alert-decagram", + "plugged_in": "mdi:power-plug", + "unplugged": "mdi:power-plug-off" + } } }, "switch": { @@ -46,6 +46,9 @@ "off": "mdi:lock-open" } }, + "price_cap": { + "default": "mdi:car-speed-limiter" + }, "require_approval": { "default": "mdi:check-decagram" }, @@ -54,9 +57,6 @@ "state": { "off": "mdi:sleep-off" } - }, - "price_cap": { - "default": "mdi:car-speed-limiter" } }, "time": { diff --git a/homeassistant/components/ohme/strings.json b/homeassistant/components/ohme/strings.json index bcd9cfd17fe..4ab9c851082 100644 --- a/homeassistant/components/ohme/strings.json +++ b/homeassistant/components/ohme/strings.json @@ -1,8 +1,36 @@ { "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%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "Enter the password for your Ohme account" + }, + "description": "Please update your password for {email}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "Enter the password for your Ohme account" + }, + "description": "Update your password for {email}", + "title": "Reconfigure Ohme Account" + }, "user": { - "description": "Configure your Ohme account. If you signed up to Ohme with a third party account like Google, please reset your password via Ohme before configuring this integration.", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -10,62 +38,8 @@ "data_description": { "email": "Enter the email address associated with your Ohme account.", "password": "Enter the password for your Ohme account" - } - }, - "reauth_confirm": { - "description": "Please update your password for {email}", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "password": "Enter the password for your Ohme account" - } - }, - "reconfigure": { - "description": "Update your password for {email}", - "title": "Reconfigure Ohme Account", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "Enter the password for your Ohme account" - } - } - }, - "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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" - } - }, - "services": { - "list_charge_slots": { - "name": "List charge slots", - "description": "Return a list of charge slots.", - "fields": { - "config_entry": { - "name": "Ohme account", - "description": "The Ohme config entry for which to return charge slots." - } - } - }, - "set_price_cap": { - "name": "Set price cap", - "description": "Prevents charging when the electricity price exceeds a defined threshold.", - "fields": { - "config_entry": { - "name": "Ohme account", - "description": "The Ohme config entry for which to return charge slots." - }, - "price_cap": { - "name": "Price cap", - "description": "Threshold in 1/100ths of your local currency." - } + "description": "Configure your Ohme account. If you signed up to Ohme with a third party account like Google, please reset your password via Ohme before configuring this integration." } } }, @@ -87,9 +61,9 @@ "charge_mode": { "name": "Charge mode", "state": { - "smart_charge": "Smart charge", "max_charge": "Max charge", - "paused": "[%key:common::state::paused%]" + "paused": "[%key:common::state::paused%]", + "smart_charge": "Smart charge" } }, "vehicle": { @@ -97,39 +71,39 @@ } }, "sensor": { - "status": { - "name": "Status", - "state": { - "unplugged": "[%key:component::binary_sensor::entity_component::plug::state::off%]", - "plugged_in": "[%key:component::binary_sensor::entity_component::plug::state::on%]", - "charging": "[%key:common::state::charging%]", - "paused": "[%key:common::state::paused%]", - "pending_approval": "Pending approval", - "finished": "Finished charging" - } - }, "ct_current": { "name": "CT current" }, - "vehicle_battery": { - "name": "Vehicle battery" - }, "slot_list": { "name": "Charge slots" + }, + "status": { + "name": "Status", + "state": { + "charging": "[%key:common::state::charging%]", + "finished": "Finished charging", + "paused": "[%key:common::state::paused%]", + "pending_approval": "Pending approval", + "plugged_in": "[%key:component::binary_sensor::entity_component::plug::state::on%]", + "unplugged": "[%key:component::binary_sensor::entity_component::plug::state::off%]" + } + }, + "vehicle_battery": { + "name": "Vehicle battery" } }, "switch": { "lock_buttons": { "name": "Lock buttons" }, + "price_cap": { + "name": "Price cap" + }, "require_approval": { "name": "Require approval" }, "sleep_when_inactive": { "name": "Sleep when inactive" - }, - "price_cap": { - "name": "Price cap" } }, "time": { @@ -139,20 +113,46 @@ } }, "exceptions": { + "api_failed": { + "message": "Error communicating with Ohme API" + }, "auth_failed": { "message": "Unable to log in to Ohme" }, "device_info_failed": { "message": "Unable to get Ohme device information" }, - "api_failed": { - "message": "Error communicating with Ohme API" - }, "invalid_config_entry": { "message": "Invalid config entry provided. Got {config_entry}" }, "unloaded_config_entry": { "message": "Invalid config entry provided. {config_entry} is not loaded." } + }, + "services": { + "list_charge_slots": { + "description": "Return a list of charge slots.", + "fields": { + "config_entry": { + "description": "The Ohme config entry for which to return charge slots.", + "name": "Ohme account" + } + }, + "name": "List charge slots" + }, + "set_price_cap": { + "description": "Prevents charging when the electricity price exceeds a defined threshold.", + "fields": { + "config_entry": { + "description": "The Ohme config entry for which to return charge slots.", + "name": "Ohme account" + }, + "price_cap": { + "description": "Threshold in 1/100ths of your local currency.", + "name": "Price cap" + } + }, + "name": "Set price cap" + } } } diff --git a/homeassistant/components/ollama/strings.json b/homeassistant/components/ollama/strings.json index 9ec03cef69a..f8388fb5dd0 100644 --- a/homeassistant/components/ollama/strings.json +++ b/homeassistant/components/ollama/strings.json @@ -1,97 +1,97 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_url": "[%key:common::config_flow::error::invalid_host%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "url": "[%key:common::config_flow::data::url%]" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - }, - "error": { - "invalid_url": "[%key:common::config_flow::error::invalid_host%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "config_subentries": { - "conversation": { - "initiate_flow": { - "user": "Add conversation agent", - "reconfigure": "Reconfigure conversation agent" - }, - "entry_type": "Conversation agent", - "step": { - "set_options": { - "data": { - "model": "Model", - "name": "[%key:common::config_flow::data::name%]", - "prompt": "[%key:common::config_flow::data::prompt%]", - "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", - "max_history": "Max history messages", - "num_ctx": "Context window size", - "keep_alive": "Keep alive", - "think": "Think before responding" - }, - "data_description": { - "prompt": "Instruct how the LLM should respond. This can be a template.", - "keep_alive": "Duration in seconds for Ollama to keep model in memory. -1 = indefinite, 0 = never.", - "num_ctx": "Maximum number of text tokens the model can process. Lower to reduce Ollama RAM, or increase for a large number of exposed entities.", - "think": "If enabled, the LLM will think before responding. This can improve response quality but may increase latency." - } - }, - "download": { - "title": "Downloading model" - } - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "entry_not_loaded": "Failed to add agent. The configuration is disabled.", - "download_failed": "Model downloading failed", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "progress": { - "download": "Please wait while the model is downloaded, which may take a very long time. Check your Ollama server logs for more details." - } - }, "ai_task_data": { - "initiate_flow": { - "user": "Add AI task", - "reconfigure": "Reconfigure AI task" + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "download_failed": "[%key:component::ollama::config_subentries::conversation::abort::download_failed%]", + "entry_not_loaded": "[%key:component::ollama::config_subentries::conversation::abort::entry_not_loaded%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "entry_type": "AI task", - "step": { - "set_options": { - "data": { - "model": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::model%]", - "name": "[%key:common::config_flow::data::name%]", - "prompt": "[%key:common::config_flow::data::prompt%]", - "max_history": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::max_history%]", - "num_ctx": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::num_ctx%]", - "keep_alive": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::keep_alive%]", - "think": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::think%]" - }, - "data_description": { - "prompt": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::prompt%]", - "keep_alive": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::keep_alive%]", - "num_ctx": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::num_ctx%]", - "think": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::think%]" - } - }, - "download": { - "title": "[%key:component::ollama::config_subentries::conversation::step::download::title%]" - } - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "entry_not_loaded": "[%key:component::ollama::config_subentries::conversation::abort::entry_not_loaded%]", - "download_failed": "[%key:component::ollama::config_subentries::conversation::abort::download_failed%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "initiate_flow": { + "reconfigure": "Reconfigure AI task", + "user": "Add AI task" }, "progress": { "download": "[%key:component::ollama::config_subentries::conversation::progress::download%]" + }, + "step": { + "download": { + "title": "[%key:component::ollama::config_subentries::conversation::step::download::title%]" + }, + "set_options": { + "data": { + "keep_alive": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::keep_alive%]", + "max_history": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::max_history%]", + "model": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::model%]", + "name": "[%key:common::config_flow::data::name%]", + "num_ctx": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::num_ctx%]", + "prompt": "[%key:common::config_flow::data::prompt%]", + "think": "[%key:component::ollama::config_subentries::conversation::step::set_options::data::think%]" + }, + "data_description": { + "keep_alive": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::keep_alive%]", + "num_ctx": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::num_ctx%]", + "prompt": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::prompt%]", + "think": "[%key:component::ollama::config_subentries::conversation::step::set_options::data_description::think%]" + } + } + } + }, + "conversation": { + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "download_failed": "Model downloading failed", + "entry_not_loaded": "Failed to add agent. The configuration is disabled.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "entry_type": "Conversation agent", + "initiate_flow": { + "reconfigure": "Reconfigure conversation agent", + "user": "Add conversation agent" + }, + "progress": { + "download": "Please wait while the model is downloaded, which may take a very long time. Check your Ollama server logs for more details." + }, + "step": { + "download": { + "title": "Downloading model" + }, + "set_options": { + "data": { + "keep_alive": "Keep alive", + "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", + "max_history": "Max history messages", + "model": "Model", + "name": "[%key:common::config_flow::data::name%]", + "num_ctx": "Context window size", + "prompt": "[%key:common::config_flow::data::prompt%]", + "think": "Think before responding" + }, + "data_description": { + "keep_alive": "Duration in seconds for Ollama to keep model in memory. -1 = indefinite, 0 = never.", + "num_ctx": "Maximum number of text tokens the model can process. Lower to reduce Ollama RAM, or increase for a large number of exposed entities.", + "prompt": "Instruct how the LLM should respond. This can be a template.", + "think": "If enabled, the LLM will think before responding. This can improve response quality but may increase latency." + } + } } } }, diff --git a/homeassistant/components/ombi/icons.json b/homeassistant/components/ombi/icons.json index 15b8af56188..e43fe47690e 100644 --- a/homeassistant/components/ombi/icons.json +++ b/homeassistant/components/ombi/icons.json @@ -3,11 +3,11 @@ "submit_movie_request": { "service": "mdi:movie-roll" }, - "submit_tv_request": { - "service": "mdi:television-classic" - }, "submit_music_request": { "service": "mdi:music" + }, + "submit_tv_request": { + "service": "mdi:television-classic" } } } diff --git a/homeassistant/components/ombi/strings.json b/homeassistant/components/ombi/strings.json index 764eb5ff1b5..13dfe41879b 100644 --- a/homeassistant/components/ombi/strings.json +++ b/homeassistant/components/ombi/strings.json @@ -1,38 +1,38 @@ { "services": { "submit_movie_request": { - "name": "Submit movie request", "description": "Searches for a movie and requests the first result.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Search parameter." + "description": "Search parameter.", + "name": "[%key:common::config_flow::data::name%]" } - } - }, - "submit_tv_request": { - "name": "Submit TV request", - "description": "Searches for a TV show and requests the first result.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]" - }, - "season": { - "name": "Season", - "description": "Which season(s) to request." - } - } + }, + "name": "Submit movie request" }, "submit_music_request": { - "name": "Submit music request", "description": "Searches for a music album and requests the first result.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]" + "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Submit music request" + }, + "submit_tv_request": { + "description": "Searches for a TV show and requests the first result.", + "fields": { + "name": { + "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "season": { + "description": "Which season(s) to request.", + "name": "Season" + } + }, + "name": "Submit TV request" } } } diff --git a/homeassistant/components/omnilogic/strings.json b/homeassistant/components/omnilogic/strings.json index 6f207337789..e9437afce1f 100644 --- a/homeassistant/components/omnilogic/strings.json +++ b/homeassistant/components/omnilogic/strings.json @@ -1,42 +1,42 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "options": { "step": { "init": { "data": { - "polling_interval": "Polling interval (in seconds)", - "ph_offset": "pH offset (positive or negative)" + "ph_offset": "pH offset (positive or negative)", + "polling_interval": "Polling interval (in seconds)" } } } }, "services": { "set_pump_speed": { - "name": "Set pump speed", "description": "Sets the run speed of a variable speed pump.", "fields": { "speed": { - "name": "Speed", - "description": "Speed for the pump between min and max speed." + "description": "Speed for the pump between min and max speed.", + "name": "Speed" } - } + }, + "name": "Set pump speed" } } } diff --git a/homeassistant/components/onboarding/strings.json b/homeassistant/components/onboarding/strings.json index bc8bb6e54ff..cd354827065 100644 --- a/homeassistant/components/onboarding/strings.json +++ b/homeassistant/components/onboarding/strings.json @@ -1,8 +1,8 @@ { "area": { - "living_room": "Living Room", "bedroom": "Bedroom", - "kitchen": "Kitchen" + "kitchen": "Kitchen", + "living_room": "Living Room" }, "dashboard": { "map": { "title": "Map" } diff --git a/homeassistant/components/oncue/strings.json b/homeassistant/components/oncue/strings.json index 6581555ff9e..a9482d49117 100644 --- a/homeassistant/components/oncue/strings.json +++ b/homeassistant/components/oncue/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Oncue integration has been removed", - "description": "The Oncue integration has been removed from Home Assistant.\n\nThe Oncue service has been discontinued and [Rehlko]({rehlko}) is the integration to keep using it.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Oncue integration entries]({entries})." + "description": "The Oncue integration has been removed from Home Assistant.\n\nThe Oncue service has been discontinued and [Rehlko]({rehlko}) is the integration to keep using it.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Oncue integration entries]({entries}).", + "title": "The Oncue integration has been removed" } } } diff --git a/homeassistant/components/ondilo_ico/icons.json b/homeassistant/components/ondilo_ico/icons.json index 20ef842ed4d..c737b85198a 100644 --- a/homeassistant/components/ondilo_ico/icons.json +++ b/homeassistant/components/ondilo_ico/icons.json @@ -4,14 +4,14 @@ "oxydo_reduction_potential": { "default": "mdi:pool" }, - "tds": { - "default": "mdi:pool" - }, "rssi": { "default": "mdi:wifi" }, "salt": { "default": "mdi:pool" + }, + "tds": { + "default": "mdi:pool" } } } diff --git a/homeassistant/components/ondilo_ico/strings.json b/homeassistant/components/ondilo_ico/strings.json index 3a5e7445a0c..70769c120fc 100644 --- a/homeassistant/components/ondilo_ico/strings.json +++ b/homeassistant/components/ondilo_ico/strings.json @@ -1,26 +1,26 @@ { "config": { + "abort": { + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "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%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { @@ -28,14 +28,14 @@ "oxydo_reduction_potential": { "name": "Oxydo reduction potential" }, - "tds": { - "name": "TDS" - }, "rssi": { "name": "RSSI" }, "salt": { "name": "Salt" + }, + "tds": { + "name": "TDS" } } } diff --git a/homeassistant/components/onedrive/icons.json b/homeassistant/components/onedrive/icons.json index 2ac4921439c..66f510b8e82 100644 --- a/homeassistant/components/onedrive/icons.json +++ b/homeassistant/components/onedrive/icons.json @@ -1,23 +1,23 @@ { "entity": { "sensor": { + "drive_state": { + "default": "mdi:harddisk", + "state": { + "critical": "mdi:alert", + "exceeded": "mdi:alert-octagon", + "nearing": "mdi:alert-circle-outline", + "normal": "mdi:harddisk" + } + }, + "remaining_size": { + "default": "mdi:database" + }, "total_size": { "default": "mdi:database" }, "used_size": { "default": "mdi:database" - }, - "remaining_size": { - "default": "mdi:database" - }, - "drive_state": { - "default": "mdi:harddisk", - "state": { - "normal": "mdi:harddisk", - "nearing": "mdi:alert-circle-outline", - "critical": "mdi:alert", - "exceeded": "mdi:alert-octagon" - } } } }, diff --git a/homeassistant/components/onedrive/strings.json b/homeassistant/components/onedrive/strings.json index 8c01ad85d4a..2df4804186e 100644 --- a/homeassistant/components/onedrive/strings.json +++ b/homeassistant/components/onedrive/strings.json @@ -1,101 +1,106 @@ { "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The OneDrive integration needs to re-authenticate your account" - }, - "folder_name": { - "title": "Pick a folder name", - "description": "This name will be used to create a folder that is specific for this Home Assistant instance. This folder will be created inside `{apps_folder}/{approot}`", - "data": { - "folder_name": "Folder name" - }, - "data_description": { - "folder_name": "Name of the folder" - } - }, - "reconfigure_folder": { - "title": "Change the folder name", - "description": "Rename the instance specific folder inside `{apps_folder}/{approot}`. This will only rename the folder (and does not select another folder), so make sure the new name is not already in use.", - "data": { - "folder_name": "[%key:component::onedrive::config::step::folder_name::data::folder_name%]" - }, - "data_description": { - "folder_name": "[%key:component::onedrive::config::step::folder_name::data_description::folder_name%]" - } - } - }, "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%]", + "connection_error": "Failed to connect to OneDrive.", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "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%]", - "connection_error": "Failed to connect to OneDrive.", - "wrong_drive": "New account does not contain previously configured OneDrive.", - "unknown": "[%key:common::config_flow::error::unknown%]", "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_drive": "New account does not contain previously configured OneDrive." }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" }, "error": { - "folder_rename_error": "Failed to rename folder", + "folder_already_in_use": "Folder already used for backups from another Home Assistant instance", "folder_creation_error": "Failed to create folder", - "folder_already_in_use": "Folder already used for backups from another Home Assistant instance" - } - }, - "options": { + "folder_rename_error": "Failed to rename folder" + }, "step": { - "init": { - "description": "By default, files are put into the Recycle Bin when deleted, where they remain available for another 30 days. If you enable this option, files will be deleted immediately when they are cleaned up by the backup system.", + "folder_name": { "data": { - "delete_permanently": "Delete files permanently" + "folder_name": "Folder name" }, "data_description": { - "delete_permanently": "Delete files without moving them to the Recycle Bin" - } + "folder_name": "Name of the folder" + }, + "description": "This name will be used to create a folder that is specific for this Home Assistant instance. This folder will be created inside `{apps_folder}/{approot}`", + "title": "Pick a folder name" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The OneDrive integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure_folder": { + "data": { + "folder_name": "[%key:component::onedrive::config::step::folder_name::data::folder_name%]" + }, + "data_description": { + "folder_name": "[%key:component::onedrive::config::step::folder_name::data_description::folder_name%]" + }, + "description": "Rename the instance specific folder inside `{apps_folder}/{approot}`. This will only rename the folder (and does not select another folder), so make sure the new name is not already in use.", + "title": "Change the folder name" } } }, - "issues": { - "drive_full": { - "title": "OneDrive data cap exceeded", - "description": "Your OneDrive has exceeded your quota limit. This means your next backup will fail. Please free up some space or upgrade your OneDrive plan. Currently using {used} GiB of {total} GiB." - }, - "drive_almost_full": { - "title": "OneDrive near data cap", - "description": "Your OneDrive is near your quota limit. If you go over this limit your drive will be temporarily frozen and your backups will start failing. Please free up some space or upgrade your OneDrive plan. Currently using {used} GiB of {total} GiB." + "entity": { + "sensor": { + "drive_state": { + "name": "Drive state", + "state": { + "critical": "Critical", + "exceeded": "Exceeded", + "nearing": "Nearing limit", + "normal": "[%key:common::state::normal%]" + } + }, + "remaining_size": { + "name": "Remaining storage" + }, + "total_size": { + "name": "Total available storage" + }, + "used_size": { + "name": "Used storage" + } } }, "exceptions": { "authentication_failed": { "message": "Authentication failed" }, + "create_folder_error": { + "message": "Failed to create folder: {message}" + }, "failed_to_get_folder": { "message": "Failed to get {folder} folder" }, "failed_to_migrate_files": { "message": "Failed to migrate metadata to separate files" }, - "update_failed": { - "message": "Failed to update drive state" + "file_too_large": { + "message": "`{filename}` is too large ({size} > {limit})" + }, + "filename_does_not_exist": { + "message": "`{filename}` does not exist" }, "integration_not_found": { "message": "Integration \"{target}\" not found in registry." @@ -103,61 +108,56 @@ "no_access_to_path": { "message": "Cannot read {filename}, no access to path; `allowlist_external_dirs` may need to be adjusted in `configuration.yaml`" }, - "filename_does_not_exist": { - "message": "`{filename}` does not exist" - }, - "file_too_large": { - "message": "`{filename}` is too large ({size} > {limit})" + "update_failed": { + "message": "Failed to update drive state" }, "upload_error": { "message": "Failed to upload content: {message}" - }, - "create_folder_error": { - "message": "Failed to create folder: {message}" } }, - "entity": { - "sensor": { - "total_size": { - "name": "Total available storage" - }, - "used_size": { - "name": "Used storage" - }, - "remaining_size": { - "name": "Remaining storage" - }, - "drive_state": { - "name": "Drive state", - "state": { - "normal": "[%key:common::state::normal%]", - "nearing": "Nearing limit", - "critical": "Critical", - "exceeded": "Exceeded" - } + "issues": { + "drive_almost_full": { + "description": "Your OneDrive is near your quota limit. If you go over this limit your drive will be temporarily frozen and your backups will start failing. Please free up some space or upgrade your OneDrive plan. Currently using {used} GiB of {total} GiB.", + "title": "OneDrive near data cap" + }, + "drive_full": { + "description": "Your OneDrive has exceeded your quota limit. This means your next backup will fail. Please free up some space or upgrade your OneDrive plan. Currently using {used} GiB of {total} GiB.", + "title": "OneDrive data cap exceeded" + } + }, + "options": { + "step": { + "init": { + "data": { + "delete_permanently": "Delete files permanently" + }, + "data_description": { + "delete_permanently": "Delete files without moving them to the Recycle Bin" + }, + "description": "By default, files are put into the Recycle Bin when deleted, where they remain available for another 30 days. If you enable this option, files will be deleted immediately when they are cleaned up by the backup system." } } }, "services": { "upload": { - "name": "Upload file", "description": "Uploads files to OneDrive.", "fields": { "config_entry_id": { - "name": "Config entry ID", - "description": "The config entry representing the OneDrive you want to upload to." - }, - "filename": { - "name": "Filename", - "description": "Path to the file to upload.", - "example": "/config/www/image.jpg" + "description": "The config entry representing the OneDrive you want to upload to.", + "name": "Config entry ID" }, "destination_folder": { - "name": "Destination folder", "description": "Folder inside the Home Assistant app folder (Apps/Home Assistant) you want to upload the file to. Will be created if it does not exist.", - "example": "photos/snapshots" + "example": "photos/snapshots", + "name": "Destination folder" + }, + "filename": { + "description": "Path to the file to upload.", + "example": "/config/www/image.jpg", + "name": "Filename" } - } + }, + "name": "Upload file" } } } diff --git a/homeassistant/components/onewire/strings.json b/homeassistant/components/onewire/strings.json index e1dfd8617f8..0cde527cb9f 100644 --- a/homeassistant/components/onewire/strings.json +++ b/homeassistant/components/onewire/strings.json @@ -37,14 +37,14 @@ }, "entity": { "binary_sensor": { + "hub_short_id": { + "name": "Hub short on branch {id}" + }, "sensed": { "name": "Sensed" }, "sensed_id": { "name": "Sensed {id}" - }, - "hub_short_id": { - "name": "Hub short on branch {id}" } }, "select": { @@ -137,6 +137,16 @@ "device_not_selected": "Select devices to configure" }, "step": { + "configure_device": { + "data": { + "precision": "Sensor precision" + }, + "data_description": { + "precision": "The lower the precision, the faster the sensor will respond, but with less accuracy." + }, + "description": "Select sensor precision for {sensor_id}", + "title": "1-Wire sensor precision" + }, "device_selection": { "data": { "clear_device_options": "Reset all device customizations", @@ -148,16 +158,6 @@ }, "description": "Select what configuration steps to process", "title": "1-Wire device options" - }, - "configure_device": { - "data": { - "precision": "Sensor precision" - }, - "data_description": { - "precision": "The lower the precision, the faster the sensor will respond, but with less accuracy." - }, - "description": "Select sensor precision for {sensor_id}", - "title": "1-Wire sensor precision" } } } diff --git a/homeassistant/components/onkyo/manifest.json b/homeassistant/components/onkyo/manifest.json index 6102f8f2495..7d30203eaf9 100644 --- a/homeassistant/components/onkyo/manifest.json +++ b/homeassistant/components/onkyo/manifest.json @@ -12,40 +12,40 @@ "requirements": ["aioonkyo==0.3.0"], "ssdp": [ { - "manufacturer": "ONKYO", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "ONKYO" }, { - "manufacturer": "ONKYO", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2", + "manufacturer": "ONKYO" }, { - "manufacturer": "ONKYO", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3", + "manufacturer": "ONKYO" }, { - "manufacturer": "Onkyo & Pioneer Corporation", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "Onkyo & Pioneer Corporation" }, { - "manufacturer": "Onkyo & Pioneer Corporation", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2", + "manufacturer": "Onkyo & Pioneer Corporation" }, { - "manufacturer": "Onkyo & Pioneer Corporation", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3", + "manufacturer": "Onkyo & Pioneer Corporation" }, { - "manufacturer": "Pioneer", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "Pioneer" }, { - "manufacturer": "Pioneer", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:2", + "manufacturer": "Pioneer" }, { - "manufacturer": "Pioneer", - "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3" + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:3", + "manufacturer": "Pioneer" } ] } diff --git a/homeassistant/components/onkyo/strings.json b/homeassistant/components/onkyo/strings.json index 3e5520c79f7..254d69e6f64 100644 --- a/homeassistant/components/onkyo/strings.json +++ b/homeassistant/components/onkyo/strings.json @@ -1,10 +1,38 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "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", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "empty_input_source_list": "[%key:component::onkyo::options::error::empty_input_source_list%]", + "empty_listening_mode_list": "[%key:component::onkyo::options::error::empty_listening_mode_list%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "menu_options": { - "manual": "Manual entry", - "eiscp_discovery": "Onkyo discovery" + "configure_receiver": { + "data": { + "input_sources": "[%key:component::onkyo::options::step::init::data::input_sources%]", + "listening_modes": "[%key:component::onkyo::options::step::init::data::listening_modes%]", + "volume_resolution": "Volume resolution" + }, + "data_description": { + "input_sources": "[%key:component::onkyo::options::step::init::data_description::input_sources%]", + "listening_modes": "[%key:component::onkyo::options::step::init::data_description::listening_modes%]", + "volume_resolution": "Number of steps it takes for the receiver to go from the lowest to the highest possible volume." + }, + "description": "Configure {name}" + }, + "eiscp_discovery": { + "data": { + "device": "[%key:common::config_flow::data::device%]" + }, + "data_description": { + "device": "Select the receiver to configure." } }, "manual": { @@ -15,72 +43,12 @@ "host": "Hostname or IP address of the receiver." } }, - "eiscp_discovery": { - "data": { - "device": "[%key:common::config_flow::data::device%]" - }, - "data_description": { - "device": "Select the receiver to configure." - } - }, - "configure_receiver": { - "description": "Configure {name}", - "data": { - "volume_resolution": "Volume resolution", - "input_sources": "[%key:component::onkyo::options::step::init::data::input_sources%]", - "listening_modes": "[%key:component::onkyo::options::step::init::data::listening_modes%]" - }, - "data_description": { - "volume_resolution": "Number of steps it takes for the receiver to go from the lowest to the highest possible volume.", - "input_sources": "[%key:component::onkyo::options::step::init::data_description::input_sources%]", - "listening_modes": "[%key:component::onkyo::options::step::init::data_description::listening_modes%]" + "user": { + "menu_options": { + "eiscp_discovery": "Onkyo discovery", + "manual": "Manual entry" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "empty_input_source_list": "[%key:component::onkyo::options::error::empty_input_source_list%]", - "empty_listening_mode_list": "[%key:component::onkyo::options::error::empty_listening_mode_list%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "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", - "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "max_volume": "Maximum volume limit (%)", - "input_sources": "Input sources", - "listening_modes": "Listening modes" - }, - "data_description": { - "max_volume": "Maximum volume limit as a percentage. This will associate Home Assistant's maximum volume to this value on the receiver, i.e., if you set this to 50%, then setting the volume to 100% in Home Assistant will cause the volume on the receiver to be set to 50% of its maximum value.", - "input_sources": "List of input sources supported by the receiver.", - "listening_modes": "List of listening modes supported by the receiver." - } - }, - "names": { - "sections": { - "input_sources": { - "name": "Input source names", - "description": "Mappings of receiver's input sources to their names." - }, - "listening_modes": { - "name": "Listening mode names", - "description": "Mappings of receiver's listening modes to their names." - } - } - } - }, - "error": { - "empty_input_source_list": "Input source list cannot be empty", - "empty_listening_mode_list": "Listening mode list cannot be empty" } }, "exceptions": { @@ -90,5 +58,37 @@ "invalid_source": { "message": "Cannot select input source \"{invalid_source}\" for entity: {entity_id}." } + }, + "options": { + "error": { + "empty_input_source_list": "Input source list cannot be empty", + "empty_listening_mode_list": "Listening mode list cannot be empty" + }, + "step": { + "init": { + "data": { + "input_sources": "Input sources", + "listening_modes": "Listening modes", + "max_volume": "Maximum volume limit (%)" + }, + "data_description": { + "input_sources": "List of input sources supported by the receiver.", + "listening_modes": "List of listening modes supported by the receiver.", + "max_volume": "Maximum volume limit as a percentage. This will associate Home Assistant's maximum volume to this value on the receiver, i.e., if you set this to 50%, then setting the volume to 100% in Home Assistant will cause the volume on the receiver to be set to 50% of its maximum value." + } + }, + "names": { + "sections": { + "input_sources": { + "description": "Mappings of receiver's input sources to their names.", + "name": "Input source names" + }, + "listening_modes": { + "description": "Mappings of receiver's listening modes to their names.", + "name": "Listening mode names" + } + } + } + } } } diff --git a/homeassistant/components/onvif/strings.json b/homeassistant/components/onvif/strings.json index b9b9150a887..e115a72705d 100644 --- a/homeassistant/components/onvif/strings.json +++ b/homeassistant/components/onvif/strings.json @@ -2,39 +2,26 @@ "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "no_h264": "There were no H.264 streams available. Check the profile configuration on your device.", "no_mac": "Could not configure unique ID for ONVIF device.", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { - "onvif_error": "Error setting up ONVIF device: {error}. Check logs for more information.", "auth_failed": "Could not authenticate: {error}", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_onvif_service": "No ONVIF service found. Check that the port number is correct.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "onvif_error": "Error setting up ONVIF device: {error}. Check logs for more information." }, "step": { - "user": { - "data": { - "auto": "Search automatically" - }, - "title": "ONVIF device setup", - "description": "By selecting **Submit**, we will search your network for ONVIF devices that support Profile S.\n\nSome manufacturers have started to disable ONVIF by default. Please ensure ONVIF is enabled in your camera's configuration." - }, - "device": { - "data": { - "host": "Select discovered ONVIF device" - }, - "title": "Select ONVIF device" - }, "configure": { "data": { - "name": "[%key:common::config_flow::data::name%]", "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "password": "[%key:common::config_flow::data::password%]", "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "host": "The hostname or IP address of your ONVIF device." @@ -42,32 +29,32 @@ "title": "Configure ONVIF device" }, "configure_profile": { - "description": "Create camera entity for {profile} at {resolution} resolution?", - "title": "Configure profiles", "data": { "include": "Create camera entity" - } + }, + "description": "Create camera entity for {profile} at {resolution} resolution?", + "title": "Configure profiles" + }, + "device": { + "data": { + "host": "Select discovered ONVIF device" + }, + "title": "Select ONVIF device" }, "reauth_confirm": { - "title": "Reauthenticate the ONVIF device", - "description": "Some devices will reject authentication if the time is out of sync by more than 5 seconds. If authentication is unsuccessful, verify the time on the device is correct and try again.", "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - } - }, - "options": { - "step": { - "onvif_devices": { - "data": { - "extra_arguments": "Extra FFmpeg arguments", - "rtsp_transport": "RTSP transport mechanism", - "use_wallclock_as_timestamps": "Use wall clock as timestamps", - "enable_webhooks": "Enable webhooks" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, - "title": "ONVIF device options" + "description": "Some devices will reject authentication if the time is out of sync by more than 5 seconds. If authentication is unsuccessful, verify the time on the device is correct and try again.", + "title": "Reauthenticate the ONVIF device" + }, + "user": { + "data": { + "auto": "Search automatically" + }, + "description": "By selecting **Submit**, we will search your network for ONVIF devices that support Profile S.\n\nSome manufacturers have started to disable ONVIF by default. Please ensure ONVIF is enabled in your camera's configuration.", + "title": "ONVIF device setup" } } }, @@ -84,44 +71,57 @@ } } }, + "options": { + "step": { + "onvif_devices": { + "data": { + "enable_webhooks": "Enable webhooks", + "extra_arguments": "Extra FFmpeg arguments", + "rtsp_transport": "RTSP transport mechanism", + "use_wallclock_as_timestamps": "Use wall clock as timestamps" + }, + "title": "ONVIF device options" + } + } + }, "services": { "ptz": { - "name": "PTZ", "description": "If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your camera.", "fields": { - "tilt": { - "name": "Tilt", - "description": "Tilt direction." - }, - "pan": { - "name": "Pan", - "description": "Pan direction." - }, - "zoom": { - "name": "Zoom", - "description": "Zoom." + "continuous_duration": { + "description": "Set ContinuousMove delay in seconds before stopping the move.", + "name": "Continuous duration" }, "distance": { - "name": "Distance", - "description": "Distance coefficient. Sets how much PTZ should be executed in one request." - }, - "speed": { - "name": "Speed", - "description": "Speed coefficient. Sets how fast PTZ will be executed." - }, - "continuous_duration": { - "name": "Continuous duration", - "description": "Set ContinuousMove delay in seconds before stopping the move." - }, - "preset": { - "name": "Preset", - "description": "PTZ preset profile token. Sets the preset profile token which is executed with GotoPreset." + "description": "Distance coefficient. Sets how much PTZ should be executed in one request.", + "name": "Distance" }, "move_mode": { - "name": "Move Mode", - "description": "PTZ moving mode." + "description": "PTZ moving mode.", + "name": "Move Mode" + }, + "pan": { + "description": "Pan direction.", + "name": "Pan" + }, + "preset": { + "description": "PTZ preset profile token. Sets the preset profile token which is executed with GotoPreset.", + "name": "Preset" + }, + "speed": { + "description": "Speed coefficient. Sets how fast PTZ will be executed.", + "name": "Speed" + }, + "tilt": { + "description": "Tilt direction.", + "name": "Tilt" + }, + "zoom": { + "description": "Zoom.", + "name": "Zoom" } - } + }, + "name": "PTZ" } } } diff --git a/homeassistant/components/open_meteo/strings.json b/homeassistant/components/open_meteo/strings.json index 4dd0270376b..7fc13713ed9 100644 --- a/homeassistant/components/open_meteo/strings.json +++ b/homeassistant/components/open_meteo/strings.json @@ -1,15 +1,15 @@ { "config": { - "step": { - "user": { - "description": "Select location to use for weather forecasting", - "data": { - "zone": "Zone" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "step": { + "user": { + "data": { + "zone": "Zone" + }, + "description": "Select location to use for weather forecasting" + } } } } diff --git a/homeassistant/components/open_router/strings.json b/homeassistant/components/open_router/strings.json index 43a27a91959..0ed125926fe 100644 --- a/homeassistant/components/open_router/strings.json +++ b/homeassistant/components/open_router/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,55 +16,48 @@ "api_key": "An OpenRouter API key" } } - }, - "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_service%]" } }, "config_subentries": { - "conversation": { - "step": { - "user": { - "description": "Configure the new conversation agent", - "data": { - "model": "Model", - "prompt": "[%key:common::config_flow::data::prompt%]", - "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]" - }, - "data_description": { - "model": "The model to use for the conversation agent", - "prompt": "Instruct how the LLM should respond. This can be a template." - } - } - }, - "initiate_flow": { - "user": "Add conversation agent" - }, - "entry_type": "Conversation agent", + "ai_task_data": { "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "ai_task_data": { + }, + "entry_type": "AI task", + "initiate_flow": { + "user": "Add AI task" + }, "step": { "user": { "data": { "model": "[%key:component::open_router::config_subentries::conversation::step::user::data::model%]" } } - }, - "initiate_flow": { - "user": "Add AI task" - }, - "entry_type": "AI task", + } + }, + "conversation": { "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "entry_type": "Conversation agent", + "initiate_flow": { + "user": "Add conversation agent" + }, + "step": { + "user": { + "data": { + "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", + "model": "Model", + "prompt": "[%key:common::config_flow::data::prompt%]" + }, + "data_description": { + "model": "The model to use for the conversation agent", + "prompt": "Instruct how the LLM should respond. This can be a template." + }, + "description": "Configure the new conversation agent" + } } } } diff --git a/homeassistant/components/openai_conversation/icons.json b/homeassistant/components/openai_conversation/icons.json index f0ece31c304..23cdc26ed71 100644 --- a/homeassistant/components/openai_conversation/icons.json +++ b/homeassistant/components/openai_conversation/icons.json @@ -1,10 +1,10 @@ { "services": { - "generate_image": { - "service": "mdi:image-sync" - }, "generate_content": { "service": "mdi:receipt-text" + }, + "generate_image": { + "service": "mdi:image-sync" } } } diff --git a/homeassistant/components/openai_conversation/strings.json b/homeassistant/components/openai_conversation/strings.json index acfe1475f5d..90e4af8989a 100644 --- a/homeassistant/components/openai_conversation/strings.json +++ b/homeassistant/components/openai_conversation/strings.json @@ -1,211 +1,211 @@ { "config": { - "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "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_service%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + } + } } }, "config_subentries": { - "conversation": { - "initiate_flow": { - "user": "Add conversation agent", - "reconfigure": "Reconfigure conversation agent" - }, - "entry_type": "Conversation agent", - - "step": { - "init": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "prompt": "[%key:common::config_flow::data::prompt%]", - "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", - "recommended": "Recommended model settings" - }, - "data_description": { - "prompt": "Instruct how the LLM should respond. This can be a template." - } - }, - "advanced": { - "title": "Advanced settings", - "data": { - "chat_model": "[%key:common::generic::model%]", - "max_tokens": "Maximum tokens to return in response", - "temperature": "Temperature", - "top_p": "Top P" - } - }, - "model": { - "title": "Model-specific options", - "data": { - "code_interpreter": "Enable code interpreter tool", - "reasoning_effort": "Reasoning effort", - "image_model": "Image generation model", - "web_search": "Enable web search", - "search_context_size": "Search context size", - "user_location": "Include home location" - }, - "data_description": { - "code_interpreter": "This tool, also known as the python tool to the model, allows it to run code to answer questions", - "reasoning_effort": "How many reasoning tokens the model should generate before creating a response to the prompt", - "image_model": "The model to use when generating images", - "web_search": "Allow the model to search the web for the latest information before generating a response", - "search_context_size": "High level guidance for the amount of context window space to use for the search", - "user_location": "Refine search results based on geography" - } - } - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "entry_not_loaded": "Cannot add things while the configuration is disabled." - }, - "error": { - "model_not_supported": "This model is not supported, please select a different model", - "web_search_minimal_reasoning": "Web search is currently not supported with minimal reasoning effort" - } - }, "ai_task_data": { - "initiate_flow": { - "user": "Add AI task", - "reconfigure": "Reconfigure AI task" + "abort": { + "entry_not_loaded": "[%key:component::openai_conversation::config_subentries::conversation::abort::entry_not_loaded%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "entry_type": "AI task", + "error": { + "model_not_supported": "[%key:component::openai_conversation::config_subentries::conversation::error::model_not_supported%]", + "web_search_minimal_reasoning": "[%key:component::openai_conversation::config_subentries::conversation::error::web_search_minimal_reasoning%]" + }, + "initiate_flow": { + "reconfigure": "Reconfigure AI task", + "user": "Add AI task" + }, "step": { + "advanced": { + "data": { + "chat_model": "[%key:common::generic::model%]", + "max_tokens": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::max_tokens%]", + "temperature": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::temperature%]", + "top_p": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::top_p%]" + }, + "title": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::title%]" + }, "init": { "data": { "name": "[%key:common::config_flow::data::name%]", "recommended": "[%key:component::openai_conversation::config_subentries::conversation::step::init::data::recommended%]" } }, - "advanced": { - "title": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::title%]", - "data": { - "chat_model": "[%key:common::generic::model%]", - "max_tokens": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::max_tokens%]", - "temperature": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::temperature%]", - "top_p": "[%key:component::openai_conversation::config_subentries::conversation::step::advanced::data::top_p%]" - } - }, "model": { - "title": "[%key:component::openai_conversation::config_subentries::conversation::step::model::title%]", "data": { "code_interpreter": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::code_interpreter%]", - "reasoning_effort": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::reasoning_effort%]", "image_model": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::image_model%]", - "web_search": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::web_search%]", + "reasoning_effort": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::reasoning_effort%]", "search_context_size": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::search_context_size%]", - "user_location": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::user_location%]" + "user_location": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::user_location%]", + "web_search": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data::web_search%]" }, "data_description": { "code_interpreter": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::code_interpreter%]", - "reasoning_effort": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::reasoning_effort%]", "image_model": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::image_model%]", - "web_search": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::web_search%]", + "reasoning_effort": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::reasoning_effort%]", "search_context_size": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::search_context_size%]", - "user_location": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::user_location%]" - } + "user_location": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::user_location%]", + "web_search": "[%key:component::openai_conversation::config_subentries::conversation::step::model::data_description::web_search%]" + }, + "title": "[%key:component::openai_conversation::config_subentries::conversation::step::model::title%]" } - }, + } + }, + "conversation": { "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "entry_not_loaded": "[%key:component::openai_conversation::config_subentries::conversation::abort::entry_not_loaded%]" + "entry_not_loaded": "Cannot add things while the configuration is disabled.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, + "entry_type": "Conversation agent", + "error": { - "model_not_supported": "[%key:component::openai_conversation::config_subentries::conversation::error::model_not_supported%]", - "web_search_minimal_reasoning": "[%key:component::openai_conversation::config_subentries::conversation::error::web_search_minimal_reasoning%]" - } - } - }, - "selector": { - "reasoning_effort": { - "options": { - "minimal": "Minimal", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "search_context_size": { - "options": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "verbosity": { - "options": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - } - }, - "services": { - "generate_image": { - "name": "Generate image", - "description": "Turns a prompt into an image", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The config entry to use for this action" + "model_not_supported": "This model is not supported, please select a different model", + "web_search_minimal_reasoning": "Web search is currently not supported with minimal reasoning effort" + }, + "initiate_flow": { + "reconfigure": "Reconfigure conversation agent", + "user": "Add conversation agent" + }, + "step": { + "advanced": { + "data": { + "chat_model": "[%key:common::generic::model%]", + "max_tokens": "Maximum tokens to return in response", + "temperature": "Temperature", + "top_p": "Top P" + }, + "title": "Advanced settings" }, - "prompt": { - "name": "Prompt", - "description": "The text to turn into an image", - "example": "A photo of a dog" + "init": { + "data": { + "llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]", + "name": "[%key:common::config_flow::data::name%]", + "prompt": "[%key:common::config_flow::data::prompt%]", + "recommended": "Recommended model settings" + }, + "data_description": { + "prompt": "Instruct how the LLM should respond. This can be a template." + } }, - "size": { - "name": "Size", - "description": "The size of the image to generate" - }, - "quality": { - "name": "Quality", - "description": "The quality of the image that will be generated" - }, - "style": { - "name": "Style", - "description": "The style of the generated image" + "model": { + "data": { + "code_interpreter": "Enable code interpreter tool", + "image_model": "Image generation model", + "reasoning_effort": "Reasoning effort", + "search_context_size": "Search context size", + "user_location": "Include home location", + "web_search": "Enable web search" + }, + "data_description": { + "code_interpreter": "This tool, also known as the python tool to the model, allows it to run code to answer questions", + "image_model": "The model to use when generating images", + "reasoning_effort": "How many reasoning tokens the model should generate before creating a response to the prompt", + "search_context_size": "High level guidance for the amount of context window space to use for the search", + "user_location": "Refine search results based on geography", + "web_search": "Allow the model to search the web for the latest information before generating a response" + }, + "title": "Model-specific options" } } - }, - "generate_content": { - "name": "Generate content", - "description": "Sends a conversational query to ChatGPT including any attached image or PDF files", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The config entry to use for this action" - }, - "prompt": { - "name": "Prompt", - "description": "The prompt to send" - }, - "filenames": { - "name": "Files", - "description": "List of files to upload" - } - } - } - }, - "issues": { - "organization_verification_required": { - "title": "Organization verification required", - "description": "Your organization must be verified to use this model. Please go to {platform_settings} and select Verify Organization. If you just verified, it can take up to 15 minutes for access to propagate." } }, "exceptions": { "invalid_config_entry": { "message": "Invalid config entry provided. Got {config_entry}" } + }, + "issues": { + "organization_verification_required": { + "description": "Your organization must be verified to use this model. Please go to {platform_settings} and select Verify Organization. If you just verified, it can take up to 15 minutes for access to propagate.", + "title": "Organization verification required" + } + }, + "selector": { + "reasoning_effort": { + "options": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "minimal": "Minimal" + } + }, + "search_context_size": { + "options": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } + }, + "verbosity": { + "options": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } + } + }, + "services": { + "generate_content": { + "description": "Sends a conversational query to ChatGPT including any attached image or PDF files", + "fields": { + "config_entry": { + "description": "The config entry to use for this action", + "name": "Config entry" + }, + "filenames": { + "description": "List of files to upload", + "name": "Files" + }, + "prompt": { + "description": "The prompt to send", + "name": "Prompt" + } + }, + "name": "Generate content" + }, + "generate_image": { + "description": "Turns a prompt into an image", + "fields": { + "config_entry": { + "description": "The config entry to use for this action", + "name": "Config entry" + }, + "prompt": { + "description": "The text to turn into an image", + "example": "A photo of a dog", + "name": "Prompt" + }, + "quality": { + "description": "The quality of the image that will be generated", + "name": "Quality" + }, + "size": { + "description": "The size of the image to generate", + "name": "Size" + }, + "style": { + "description": "The style of the generated image", + "name": "Style" + } + }, + "name": "Generate image" + } } } diff --git a/homeassistant/components/openexchangerates/strings.json b/homeassistant/components/openexchangerates/strings.json index d8837f468a4..be10ba62e08 100644 --- a/homeassistant/components/openexchangerates/strings.json +++ b/homeassistant/components/openexchangerates/strings.json @@ -1,5 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -10,18 +22,6 @@ "base": "Using another base currency than USD requires a [paid plan]({signup})." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" } } } diff --git a/homeassistant/components/opengarage/strings.json b/homeassistant/components/opengarage/strings.json index f19b458cd0f..db1ab68dd2a 100644 --- a/homeassistant/components/opengarage/strings.json +++ b/homeassistant/components/opengarage/strings.json @@ -1,5 +1,13 @@ { "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": { "user": { "data": { @@ -12,14 +20,6 @@ "host": "The hostname or IP address of your OpenGarage 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%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/openhome/strings.json b/homeassistant/components/openhome/strings.json index f4b15e52e7c..38e3de28605 100644 --- a/homeassistant/components/openhome/strings.json +++ b/homeassistant/components/openhome/strings.json @@ -1,14 +1,14 @@ { "services": { "invoke_pin": { - "name": "Play pin", "description": "Starts playing content pinned on the specified device.", "fields": { "pin": { - "name": "Pin ID", - "description": "ID of the pinned content." + "description": "ID of the pinned content.", + "name": "Pin ID" } - } + }, + "name": "Play pin" } } } diff --git a/homeassistant/components/openrgb/strings.json b/homeassistant/components/openrgb/strings.json index d6211191afb..ac989cf10bb 100644 --- a/homeassistant/components/openrgb/strings.json +++ b/homeassistant/components/openrgb/strings.json @@ -1,23 +1,16 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "title": "Set up OpenRGB SDK server", - "description": "Set up your OpenRGB SDK server to allow control from within Home Assistant.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "name": "A name for this integration entry, like the name of the computer running the OpenRGB SDK server.", - "host": "The IP address or hostname of the computer running the OpenRGB SDK server.", - "port": "The port number that the OpenRGB SDK server is running on." - } - }, "reconfigure": { - "title": "Reconfigure OpenRGB SDK server", - "description": "Update the connection settings for your OpenRGB SDK server.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" @@ -25,17 +18,24 @@ "data_description": { "host": "[%key:component::openrgb::config::step::user::data_description::host%]", "port": "[%key:component::openrgb::config::step::user::data_description::port%]" - } + }, + "description": "Update the connection settings for your OpenRGB SDK server.", + "title": "Reconfigure OpenRGB SDK server" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "The IP address or hostname of the computer running the OpenRGB SDK server.", + "name": "A name for this integration entry, like the name of the computer running the OpenRGB SDK server.", + "port": "The port number that the OpenRGB SDK server is running on." + }, + "description": "Set up your OpenRGB SDK server to allow control from within Home Assistant.", + "title": "Set up OpenRGB SDK server" } - }, - "error": { - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -71,14 +71,14 @@ "communication_error": { "message": "Failed to communicate with OpenRGB SDK server {server_address}: {error}" }, + "effect_no_color_support": { + "message": "Effect `{effect}` does not support color control on {device_name}" + }, "openrgb_error": { "message": "An OpenRGB error occurred: {error}" }, "unsupported_effect": { "message": "Effect `{effect}` is not supported by {device_name}" - }, - "effect_no_color_support": { - "message": "Effect `{effect}` does not support color control on {device_name}" } } } diff --git a/homeassistant/components/opensky/strings.json b/homeassistant/components/opensky/strings.json index c699783551f..f4ddc59997d 100644 --- a/homeassistant/components/opensky/strings.json +++ b/homeassistant/components/opensky/strings.json @@ -2,34 +2,34 @@ "config": { "step": { "user": { - "description": "Fill in the location to track.", "data": { - "radius": "Radius", + "altitude": "Altitude", "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]", - "altitude": "Altitude" - } + "radius": "Radius" + }, + "description": "Fill in the location to track." } } }, "options": { + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_authentication": "You need to authenticate to be contributing", + "password_missing": "Password is missing", + "username_missing": "Username is missing" + }, "step": { "init": { - "description": "You can log in to your OpenSky account to increase the update frequency.", "data": { - "radius": "[%key:component::opensky::config::step::user::data::radius%]", "altitude": "[%key:component::opensky::config::step::user::data::altitude%]", - "username": "[%key:common::config_flow::data::username%]", + "contributing_user": "I'm contributing to OpenSky", "password": "[%key:common::config_flow::data::password%]", - "contributing_user": "I'm contributing to OpenSky" - } + "radius": "[%key:component::opensky::config::step::user::data::radius%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "You can log in to your OpenSky account to increase the update frequency." } - }, - "error": { - "username_missing": "Username is missing", - "password_missing": "Password is missing", - "no_authentication": "You need to authenticate to be contributing", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" } } } diff --git a/homeassistant/components/opentherm_gw/icons.json b/homeassistant/components/opentherm_gw/icons.json index 37942aa0e63..2452acf04a5 100644 --- a/homeassistant/components/opentherm_gw/icons.json +++ b/homeassistant/components/opentherm_gw/icons.json @@ -3,6 +3,9 @@ "reset_gateway": { "service": "mdi:reload" }, + "send_transparent_command": { + "service": "mdi:console" + }, "set_central_heating_ovrd": { "service": "mdi:heat-wave" }, @@ -12,15 +15,15 @@ "set_control_setpoint": { "service": "mdi:thermometer-lines" }, + "set_gpio_mode": { + "service": "mdi:cable-data" + }, "set_hot_water_ovrd": { "service": "mdi:thermometer-lines" }, "set_hot_water_setpoint": { "service": "mdi:thermometer-lines" }, - "set_gpio_mode": { - "service": "mdi:cable-data" - }, "set_led_mode": { "service": "mdi:led-on" }, @@ -32,9 +35,6 @@ }, "set_setback_temperature": { "service": "mdi:thermometer-lines" - }, - "send_transparent_command": { - "service": "mdi:console" } } } diff --git a/homeassistant/components/opentherm_gw/strings.json b/homeassistant/components/opentherm_gw/strings.json index f3938c81e7e..f285095908d 100644 --- a/homeassistant/components/opentherm_gw/strings.json +++ b/homeassistant/components/opentherm_gw/strings.json @@ -4,20 +4,20 @@ "state_supported": "Supported" }, "config": { + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "id_exists": "Gateway ID already exists", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" + }, "step": { "init": { "data": { - "name": "[%key:common::config_flow::data::name%]", "device": "Path or URL", - "id": "ID" + "id": "ID", + "name": "[%key:common::config_flow::data::name%]" } } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "id_exists": "Gateway ID already exists", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" } }, "device": { @@ -33,40 +33,35 @@ }, "entity": { "binary_sensor": { - "fault_indication": { - "name": "Fault indication" + "air_pressure_fault": { + "name": "Air pressure fault" }, "central_heating_n": { "name": "Central heating {circuit_number}" }, + "control_type": { + "name": "Control type" + }, "cooling": { "name": "Cooling" }, - "flame": { - "name": "Flame" - }, - "hot_water": { - "name": "Hot water" - }, "diagnostic_indication": { "name": "Diagnostic indication" }, - "supports_hot_water": { - "name": "Hot water support", - "state": { - "off": "[%key:component::opentherm_gw::common::state_not_supported%]", - "on": "[%key:component::opentherm_gw::common::state_supported%]" - } + "fault_indication": { + "name": "Fault indication" }, - "control_type": { - "name": "Control type" + "flame": { + "name": "Flame" }, - "supports_cooling": { - "name": "Cooling support", - "state": { - "off": "[%key:component::opentherm_gw::common::state_not_supported%]", - "on": "[%key:component::opentherm_gw::common::state_supported%]" - } + "gas_fault": { + "name": "Gas fault" + }, + "gpio_state_n": { + "name": "GPIO {gpio_id} state" + }, + "hot_water": { + "name": "Hot water" }, "hot_water_config": { "name": "Hot water system type", @@ -75,8 +70,36 @@ "on": "Storage tank" } }, - "supports_pump_control": { - "name": "Pump control support", + "ignore_transitions": { + "name": "Ignore transitions" + }, + "low_water_pressure": { + "name": "Low water pressure" + }, + "outside_temp_correction": { + "name": "Outside temperature correction" + }, + "override_high_byte": { + "name": "Override high byte" + }, + "override_manual_change_prio": { + "name": "Manual change has priority over override" + }, + "override_program_change_prio": { + "name": "Programmed change has priority over override" + }, + "service_required": { + "name": "Service required" + }, + "supports_central_heating_setpoint_transfer": { + "name": "Central heating setpoint transfer support", + "state": { + "off": "[%key:component::opentherm_gw::common::state_not_supported%]", + "on": "[%key:component::opentherm_gw::common::state_supported%]" + } + }, + "supports_central_heating_setpoint_writing": { + "name": "Central heating setpoint write support", "state": { "off": "[%key:component::opentherm_gw::common::state_not_supported%]", "on": "[%key:component::opentherm_gw::common::state_supported%]" @@ -89,37 +112,15 @@ "on": "[%key:component::opentherm_gw::common::state_supported%]" } }, - "service_required": { - "name": "Service required" - }, - "supports_remote_reset": { - "name": "Remote reset support", + "supports_cooling": { + "name": "Cooling support", "state": { "off": "[%key:component::opentherm_gw::common::state_not_supported%]", "on": "[%key:component::opentherm_gw::common::state_supported%]" } }, - "low_water_pressure": { - "name": "Low water pressure" - }, - "gas_fault": { - "name": "Gas fault" - }, - "air_pressure_fault": { - "name": "Air pressure fault" - }, - "water_overtemperature": { - "name": "Water overtemperature" - }, - "supports_central_heating_setpoint_transfer": { - "name": "Central heating setpoint transfer support", - "state": { - "off": "[%key:component::opentherm_gw::common::state_not_supported%]", - "on": "[%key:component::opentherm_gw::common::state_supported%]" - } - }, - "supports_central_heating_setpoint_writing": { - "name": "Central heating setpoint write support", + "supports_hot_water": { + "name": "Hot water support", "state": { "off": "[%key:component::opentherm_gw::common::state_not_supported%]", "on": "[%key:component::opentherm_gw::common::state_supported%]" @@ -139,23 +140,22 @@ "on": "[%key:component::opentherm_gw::common::state_supported%]" } }, - "gpio_state_n": { - "name": "GPIO {gpio_id} state" + "supports_pump_control": { + "name": "Pump control support", + "state": { + "off": "[%key:component::opentherm_gw::common::state_not_supported%]", + "on": "[%key:component::opentherm_gw::common::state_supported%]" + } }, - "ignore_transitions": { - "name": "Ignore transitions" + "supports_remote_reset": { + "name": "Remote reset support", + "state": { + "off": "[%key:component::opentherm_gw::common::state_not_supported%]", + "on": "[%key:component::opentherm_gw::common::state_supported%]" + } }, - "override_high_byte": { - "name": "Override high byte" - }, - "outside_temp_correction": { - "name": "Outside temperature correction" - }, - "override_manual_change_prio": { - "name": "Manual change has priority over override" - }, - "override_program_change_prio": { - "name": "Programmed change has priority over override" + "water_overtemperature": { + "name": "Water overtemperature" } }, "button": { @@ -167,185 +167,185 @@ "gpio_mode_n": { "name": "GPIO {gpio_id} mode", "state": { - "input": "Input", + "away": "[%key:common::state::not_home%]", + "dhw_block": "Block hot water", + "ds1820": "DS1820", "ground": "Ground", - "vcc": "Vcc (5V)", + "home": "[%key:common::state::home%]", + "input": "Input", "led_e": "LED E", "led_f": "LED F", - "home": "[%key:common::state::home%]", - "away": "[%key:common::state::not_home%]", - "ds1820": "DS1820", - "dhw_block": "Block hot water" + "vcc": "Vcc (5V)" } }, "led_mode_n": { "name": "LED {led_id} mode", "state": { - "receive_any": "Receiving on any interface", - "transmit_any": "Transmitting on any interface", - "thermostat_traffic": "Traffic on the thermostat interface", - "boiler_traffic": "Traffic on the boiler interface", - "setpoint_override_active": "Setpoint override is active", - "flame_on": "Boiler flame is on", - "central_heating_on": "Central heating is on", - "hot_water_on": "Hot water is on", - "comfort_mode_on": "Comfort mode is on", - "transmit_error_detected": "Transmit error detected", "boiler_maintenance_required": "Boiler maintenance required", - "raised_power_mode_active": "Raised power mode active" + "boiler_traffic": "Traffic on the boiler interface", + "central_heating_on": "Central heating is on", + "comfort_mode_on": "Comfort mode is on", + "flame_on": "Boiler flame is on", + "hot_water_on": "Hot water is on", + "raised_power_mode_active": "Raised power mode active", + "receive_any": "Receiving on any interface", + "setpoint_override_active": "Setpoint override is active", + "thermostat_traffic": "Traffic on the thermostat interface", + "transmit_any": "Transmitting on any interface", + "transmit_error_detected": "Transmit error detected" } } }, "sensor": { - "control_setpoint_n": { - "name": "Control setpoint {circuit_number}" - }, - "manufacturer_id": { - "name": "Manufacturer ID" - }, - "oem_fault_code": { - "name": "Manufacturer-specific fault code" - }, - "cooling_control": { - "name": "Cooling control signal" - }, - "max_relative_mod_level": { - "name": "Maximum relative modulation level" - }, - "max_capacity": { - "name": "Maximum capacity" - }, - "min_mod_level": { - "name": "Minimum modulation level" - }, - "relative_mod_level": { - "name": "Relative modulation level" - }, "central_heating_pressure": { "name": "Central heating water pressure" }, - "hot_water_flow_rate": { - "name": "Hot water flow rate" - }, - "central_heating_temperature_n": { - "name": "Central heating {circuit_number} water temperature" - }, - "hot_water_temperature_n": { - "name": "Hot water {circuit_number} temperature" - }, - "return_water_temperature": { - "name": "Return water temperature" - }, - "solar_storage_temperature": { - "name": "Solar storage temperature" - }, - "solar_collector_temperature": { - "name": "Solar collector temperature" - }, - "exhaust_temperature": { - "name": "Exhaust temperature" - }, - "max_hot_water_setpoint_upper": { - "name": "Maximum hot water setpoint upper bound" - }, - "max_hot_water_setpoint_lower": { - "name": "Maximum hot water setpoint lower bound" - }, - "max_central_heating_setpoint_upper": { - "name": "Maximum central heating setpoint upper bound" - }, - "max_central_heating_setpoint_lower": { - "name": "Maximum central heating setpoint lower bound" - }, - "hot_water_setpoint": { - "name": "Hot water setpoint" - }, - "max_central_heating_setpoint": { - "name": "Maximum central heating setpoint" - }, - "oem_diagnostic_code": { - "name": "Manufacturer-specific diagnostic code" - }, - "total_burner_starts": { - "name": "Burner start count" - }, - "central_heating_pump_starts": { - "name": "Central heating pump start count" - }, - "hot_water_pump_starts": { - "name": "Hot water pump start count" - }, - "hot_water_burner_starts": { - "name": "Hot water burner start count" - }, - "total_burner_hours": { - "name": "Burner running time" - }, "central_heating_pump_hours": { "name": "Central heating pump running time" }, - "hot_water_pump_hours": { - "name": "Hot water pump running time" + "central_heating_pump_starts": { + "name": "Central heating pump start count" + }, + "central_heating_temperature_n": { + "name": "Central heating {circuit_number} water temperature" + }, + "clock_speed": { + "name": "Clock speed" + }, + "control_setpoint_n": { + "name": "Control setpoint {circuit_number}" + }, + "cooling_control": { + "name": "Cooling control signal" + }, + "exhaust_temperature": { + "name": "Exhaust temperature" + }, + "firmware_build": { + "name": "Firmware build" + }, + "firmware_version": { + "name": "Firmware version" + }, + "gpio_mode_n": { + "name": "GPIO {gpio_id} mode" }, "hot_water_burner_hours": { "name": "Hot water burner running time" }, + "hot_water_burner_starts": { + "name": "Hot water burner start count" + }, + "hot_water_flow_rate": { + "name": "Hot water flow rate" + }, + "hot_water_override_mode": { + "name": "Hot water override mode" + }, + "hot_water_pump_hours": { + "name": "Hot water pump running time" + }, + "hot_water_pump_starts": { + "name": "Hot water pump start count" + }, + "hot_water_setpoint": { + "name": "Hot water setpoint" + }, + "hot_water_temperature_n": { + "name": "Hot water {circuit_number} temperature" + }, + "led_mode_n": { + "name": "LED {led_id} mode" + }, + "manufacturer_id": { + "name": "Manufacturer ID" + }, + "max_capacity": { + "name": "Maximum capacity" + }, + "max_central_heating_setpoint": { + "name": "Maximum central heating setpoint" + }, + "max_central_heating_setpoint_lower": { + "name": "Maximum central heating setpoint lower bound" + }, + "max_central_heating_setpoint_upper": { + "name": "Maximum central heating setpoint upper bound" + }, + "max_hot_water_setpoint_lower": { + "name": "Maximum hot water setpoint lower bound" + }, + "max_hot_water_setpoint_upper": { + "name": "Maximum hot water setpoint upper bound" + }, + "max_relative_mod_level": { + "name": "Maximum relative modulation level" + }, + "min_mod_level": { + "name": "Minimum modulation level" + }, + "oem_diagnostic_code": { + "name": "Manufacturer-specific diagnostic code" + }, + "oem_fault_code": { + "name": "Manufacturer-specific fault code" + }, "opentherm_version": { "name": "OpenTherm protocol version" }, + "operating_mode": { + "name": "Operating mode" + }, + "outside_temperature": { + "name": "Outside temperature" + }, "product_type": { "name": "Product type" }, "product_version": { "name": "Product version" }, - "operating_mode": { - "name": "Operating mode" - }, - "hot_water_override_mode": { - "name": "Hot water override mode" - }, - "firmware_version": { - "name": "Firmware version" - }, - "firmware_build": { - "name": "Firmware build" - }, - "clock_speed": { - "name": "Clock speed" - }, - "led_mode_n": { - "name": "LED {led_id} mode" - }, - "gpio_mode_n": { - "name": "GPIO {gpio_id} mode" - }, - "setback_temperature": { - "name": "Setback temperature" - }, - "room_setpoint_override_mode": { - "name": "Room setpoint override mode" - }, - "smart_power_mode": { - "name": "Smart power mode" - }, - "thermostat_detection_mode": { - "name": "Thermostat detection mode" - }, "reference_voltage": { "name": "Reference voltage setting" }, - "room_setpoint_override": { - "name": "Room setpoint override" + "relative_mod_level": { + "name": "Relative modulation level" + }, + "return_water_temperature": { + "name": "Return water temperature" }, "room_setpoint_n": { "name": "Room setpoint {setpoint_id}" }, + "room_setpoint_override": { + "name": "Room setpoint override" + }, + "room_setpoint_override_mode": { + "name": "Room setpoint override mode" + }, "room_temperature": { "name": "Room temperature" }, - "outside_temperature": { - "name": "Outside temperature" + "setback_temperature": { + "name": "Setback temperature" + }, + "smart_power_mode": { + "name": "Smart power mode" + }, + "solar_collector_temperature": { + "name": "Solar collector temperature" + }, + "solar_storage_temperature": { + "name": "Solar storage temperature" + }, + "thermostat_detection_mode": { + "name": "Thermostat detection mode" + }, + "total_burner_hours": { + "name": "Burner running time" + }, + "total_burner_starts": { + "name": "Burner start count" } }, "switch": { @@ -376,184 +376,184 @@ }, "services": { "reset_gateway": { - "name": "Reset gateway", "description": "Resets the OpenTherm Gateway.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The ID of the OpenTherm Gateway." + "description": "The ID of the OpenTherm Gateway.", + "name": "Gateway ID" } - } - }, - "set_central_heating_ovrd": { - "name": "Set central heating override", - "description": "Sets the central heating override option on the gateway. When overriding the control setpoint (via a 'Set control setpoint' action with a value other than 0), the gateway automatically enables the central heating override to start heating. This action can then be used to control the central heating override status. To return control of the central heating to the thermostat, use the 'Set control setpoint' action with temperature value 0. You will only need this if you are writing your own software thermostat.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "ch_override": { - "name": "Central heating override", - "description": "Whether to enable or disable the override." - } - } - }, - "set_clock": { - "name": "Set clock", - "description": "Sets the clock and day of the week on the connected thermostat.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "date": { - "name": "Date", - "description": "Optional date from which the day of the week will be extracted. Defaults to today." - }, - "time": { - "name": "Time", - "description": "Optional time in 24h format which will be provided to the thermostat. Defaults to the current time." - } - } - }, - "set_control_setpoint": { - "name": "Set control setpoint", - "description": "Sets the central heating control setpoint override on the gateway. You will only need this if you are writing your own software thermostat.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "temperature": { - "name": "Temperature", - "description": "The central heating setpoint to set on the gateway. Values between 0 and 90 are accepted, but not all boilers support this range. A value of 0 disables the central heating setpoint override." - } - } - }, - "set_hot_water_ovrd": { - "name": "Set hot water override", - "description": "Sets the domestic hot water enable option on the gateway.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "dhw_override": { - "name": "Domestic hot water override", - "description": "Control the domestic hot water enable option. If the boiler has been configured to let the room unit control when to keep a small amount of water preheated, this command can influence that. Value should be 0 or 1 to enable the override in off or on state, or \"A\" to disable the override." - } - } - }, - "set_hot_water_setpoint": { - "name": "Set hot water setpoint", - "description": "Sets the domestic hot water setpoint on the gateway.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "temperature": { - "name": "Temperature", - "description": "The domestic hot water setpoint to set on the gateway. Not all boilers support this feature. Values between 0 and 90 are accepted, but not all boilers support this range. Check the values of the slave_dhw_min_setp and slave_dhw_max_setp sensors to see the supported range on your boiler." - } - } - }, - "set_gpio_mode": { - "name": "Set gpio mode", - "description": "Changes the function of the GPIO pins of the gateway.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "id": { - "name": "ID", - "description": "The ID of the GPIO pin." - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Mode to set on the GPIO pin. Values 0 through 6 are accepted for both GPIOs, 7 is only accepted for GPIO \"B\". See https://www.home-assistant.io/integrations/opentherm_gw/#gpio-modes for an explanation of the values." - } - } - }, - "set_led_mode": { - "name": "Set LED mode", - "description": "Changes the function of the LEDs of the gateway.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "id": { - "name": "ID", - "description": "The ID of the LED." - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The function to assign to the LED. See https://www.home-assistant.io/integrations/opentherm_gw/#led-modes for an explanation of the values." - } - } - }, - "set_max_modulation": { - "name": "Set max modulation", - "description": "Overrides the maximum relative modulation level. You will only need this if you are writing your own software thermostat.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "level": { - "name": "Level", - "description": "The modulation level to provide to the gateway. Provide a value of -1 to clear the override and forward the value from the thermostat again." - } - } - }, - "set_outside_temperature": { - "name": "Set outside temperature", - "description": "Provides an outside temperature to the thermostat. If your thermostat is unable to display an outside temperature and does not support OTC (Outside Temperature Correction), this has no effect.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "temperature": { - "name": "Temperature", - "description": "The temperature to provide to the thermostat. Values between -40.0 and 64.0 will be accepted, but not all thermostats can display the full range. Any value above 64.0 will clear a previously configured value (suggestion: 99)." - } - } - }, - "set_setback_temperature": { - "name": "Set setback temperature", - "description": "Configures the setback temperature to be used with the GPIO away mode function.", - "fields": { - "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "temperature": { - "name": "Temperature", - "description": "The setback temperature to configure on the gateway." - } - } + }, + "name": "Reset gateway" }, "send_transparent_command": { - "name": "Send transparent command", "description": "Sends custom otgw commands (https://otgw.tclcode.com/firmware.html) through a transparent interface.", "fields": { "gateway_id": { - "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", - "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" - }, - "transp_cmd": { - "name": "Command", - "description": "The command to be sent to the OpenTherm Gateway." + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" }, "transp_arg": { - "name": "Argument", - "description": "The argument of the command to be sent to the OpenTherm Gateway." + "description": "The argument of the command to be sent to the OpenTherm Gateway.", + "name": "Argument" + }, + "transp_cmd": { + "description": "The command to be sent to the OpenTherm Gateway.", + "name": "Command" } - } + }, + "name": "Send transparent command" + }, + "set_central_heating_ovrd": { + "description": "Sets the central heating override option on the gateway. When overriding the control setpoint (via a 'Set control setpoint' action with a value other than 0), the gateway automatically enables the central heating override to start heating. This action can then be used to control the central heating override status. To return control of the central heating to the thermostat, use the 'Set control setpoint' action with temperature value 0. You will only need this if you are writing your own software thermostat.", + "fields": { + "ch_override": { + "description": "Whether to enable or disable the override.", + "name": "Central heating override" + }, + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + } + }, + "name": "Set central heating override" + }, + "set_clock": { + "description": "Sets the clock and day of the week on the connected thermostat.", + "fields": { + "date": { + "description": "Optional date from which the day of the week will be extracted. Defaults to today.", + "name": "Date" + }, + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "time": { + "description": "Optional time in 24h format which will be provided to the thermostat. Defaults to the current time.", + "name": "Time" + } + }, + "name": "Set clock" + }, + "set_control_setpoint": { + "description": "Sets the central heating control setpoint override on the gateway. You will only need this if you are writing your own software thermostat.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "temperature": { + "description": "The central heating setpoint to set on the gateway. Values between 0 and 90 are accepted, but not all boilers support this range. A value of 0 disables the central heating setpoint override.", + "name": "Temperature" + } + }, + "name": "Set control setpoint" + }, + "set_gpio_mode": { + "description": "Changes the function of the GPIO pins of the gateway.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "id": { + "description": "The ID of the GPIO pin.", + "name": "ID" + }, + "mode": { + "description": "Mode to set on the GPIO pin. Values 0 through 6 are accepted for both GPIOs, 7 is only accepted for GPIO \"B\". See https://www.home-assistant.io/integrations/opentherm_gw/#gpio-modes for an explanation of the values.", + "name": "[%key:common::config_flow::data::mode%]" + } + }, + "name": "Set gpio mode" + }, + "set_hot_water_ovrd": { + "description": "Sets the domestic hot water enable option on the gateway.", + "fields": { + "dhw_override": { + "description": "Control the domestic hot water enable option. If the boiler has been configured to let the room unit control when to keep a small amount of water preheated, this command can influence that. Value should be 0 or 1 to enable the override in off or on state, or \"A\" to disable the override.", + "name": "Domestic hot water override" + }, + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + } + }, + "name": "Set hot water override" + }, + "set_hot_water_setpoint": { + "description": "Sets the domestic hot water setpoint on the gateway.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "temperature": { + "description": "The domestic hot water setpoint to set on the gateway. Not all boilers support this feature. Values between 0 and 90 are accepted, but not all boilers support this range. Check the values of the slave_dhw_min_setp and slave_dhw_max_setp sensors to see the supported range on your boiler.", + "name": "Temperature" + } + }, + "name": "Set hot water setpoint" + }, + "set_led_mode": { + "description": "Changes the function of the LEDs of the gateway.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "id": { + "description": "The ID of the LED.", + "name": "ID" + }, + "mode": { + "description": "The function to assign to the LED. See https://www.home-assistant.io/integrations/opentherm_gw/#led-modes for an explanation of the values.", + "name": "[%key:common::config_flow::data::mode%]" + } + }, + "name": "Set LED mode" + }, + "set_max_modulation": { + "description": "Overrides the maximum relative modulation level. You will only need this if you are writing your own software thermostat.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "level": { + "description": "The modulation level to provide to the gateway. Provide a value of -1 to clear the override and forward the value from the thermostat again.", + "name": "Level" + } + }, + "name": "Set max modulation" + }, + "set_outside_temperature": { + "description": "Provides an outside temperature to the thermostat. If your thermostat is unable to display an outside temperature and does not support OTC (Outside Temperature Correction), this has no effect.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "temperature": { + "description": "The temperature to provide to the thermostat. Values between -40.0 and 64.0 will be accepted, but not all thermostats can display the full range. Any value above 64.0 will clear a previously configured value (suggestion: 99).", + "name": "Temperature" + } + }, + "name": "Set outside temperature" + }, + "set_setback_temperature": { + "description": "Configures the setback temperature to be used with the GPIO away mode function.", + "fields": { + "gateway_id": { + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]", + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]" + }, + "temperature": { + "description": "The setback temperature to configure on the gateway.", + "name": "Temperature" + } + }, + "name": "Set setback temperature" } } } diff --git a/homeassistant/components/openuv/strings.json b/homeassistant/components/openuv/strings.json index f3b9aa686d5..ef529ba6526 100644 --- a/homeassistant/components/openuv/strings.json +++ b/homeassistant/components/openuv/strings.json @@ -1,39 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" + }, "step": { "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please re-enter the API key for {latitude}, {longitude}.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]" - } + }, + "description": "Please re-enter the API key for {latitude}, {longitude}.", + "title": "[%key:common::config_flow::title::reauth%]" }, "user": { - "title": "Fill in your information", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "elevation": "[%key:common::config_flow::data::elevation%]", "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]" - } - } - }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { - "title": "Configure OpenUV", - "data": { - "from_window": "Starting UV index for the protection window", - "to_window": "Ending UV index for the protection window" - } + }, + "title": "Fill in your information" } } }, @@ -82,5 +71,16 @@ "name": "Skin type 6 safe exposure time" } } + }, + "options": { + "step": { + "init": { + "data": { + "from_window": "Starting UV index for the protection window", + "to_window": "Ending UV index for the protection window" + }, + "title": "Configure OpenUV" + } + } } } diff --git a/homeassistant/components/openweathermap/strings.json b/homeassistant/components/openweathermap/strings.json index 03feba33717..37419d82b8f 100644 --- a/homeassistant/components/openweathermap/strings.json +++ b/homeassistant/components/openweathermap/strings.json @@ -4,8 +4,8 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" }, "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "cannot_connect": "Failed to connect: {error}" + "cannot_connect": "Failed to connect: {error}", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" }, "step": { "user": { @@ -27,6 +27,68 @@ } } }, + "entity": { + "sensor": { + "clouds": { + "name": "[%key:component::weather::entity_component::_::state_attributes::cloud_coverage::name%]" + }, + "condition": { + "name": "Condition" + }, + "dew_point": { + "name": "[%key:component::weather::entity_component::_::state_attributes::dew_point::name%]" + }, + "feels_like_temperature": { + "name": "[%key:component::weather::entity_component::_::state_attributes::apparent_temperature::name%]" + }, + "precipitation_kind": { + "name": "Precipitation kind" + }, + "rain": { + "name": "Rain intensity" + }, + "snow": { + "name": "Snow intensity" + }, + "uv_index": { + "name": "[%key:component::weather::entity_component::_::state_attributes::uv_index::name%]" + }, + "visibility_distance": { + "name": "[%key:component::weather::entity_component::_::state_attributes::visibility::name%]" + }, + "weather": { + "name": "[%key:component::weather::title%]" + }, + "weather_code": { + "name": "Weather code" + }, + "wind_gust": { + "name": "[%key:component::weather::entity_component::_::state_attributes::wind_gust_speed::name%]" + } + } + }, + "exceptions": { + "service_minute_forecast_mode": { + "message": "Minute forecast is available only when {name} mode is set to v3.0" + } + }, + "issues": { + "deprecated_v25": { + "fix_flow": { + "error": { + "cannot_connect": "Failed to connect: {error}", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" + }, + "step": { + "migrate": { + "description": "OWM API v2.5 will be closed in June 2024.\nYou need to migrate all your OpenWeatherMap integrations to v3.0.\n\nBefore the migration, you must have an active subscription (be aware that subscription activation can take up to 2h). After your subscription is activated, select **Submit** to migrate the integration to API V3.0. Read the documentation for more information.", + "title": "OpenWeatherMap API V2.5 deprecated" + } + } + }, + "title": "OpenWeatherMap API V2.5 deprecated" + } + }, "options": { "step": { "init": { @@ -41,72 +103,10 @@ } } }, - "entity": { - "sensor": { - "dew_point": { - "name": "[%key:component::weather::entity_component::_::state_attributes::dew_point::name%]" - }, - "feels_like_temperature": { - "name": "[%key:component::weather::entity_component::_::state_attributes::apparent_temperature::name%]" - }, - "wind_gust": { - "name": "[%key:component::weather::entity_component::_::state_attributes::wind_gust_speed::name%]" - }, - "clouds": { - "name": "[%key:component::weather::entity_component::_::state_attributes::cloud_coverage::name%]" - }, - "rain": { - "name": "Rain intensity" - }, - "snow": { - "name": "Snow intensity" - }, - "precipitation_kind": { - "name": "Precipitation kind" - }, - "uv_index": { - "name": "[%key:component::weather::entity_component::_::state_attributes::uv_index::name%]" - }, - "visibility_distance": { - "name": "[%key:component::weather::entity_component::_::state_attributes::visibility::name%]" - }, - "condition": { - "name": "Condition" - }, - "weather": { - "name": "[%key:component::weather::title%]" - }, - "weather_code": { - "name": "Weather code" - } - } - }, - "issues": { - "deprecated_v25": { - "title": "OpenWeatherMap API V2.5 deprecated", - "fix_flow": { - "step": { - "migrate": { - "title": "OpenWeatherMap API V2.5 deprecated", - "description": "OWM API v2.5 will be closed in June 2024.\nYou need to migrate all your OpenWeatherMap integrations to v3.0.\n\nBefore the migration, you must have an active subscription (be aware that subscription activation can take up to 2h). After your subscription is activated, select **Submit** to migrate the integration to API V3.0. Read the documentation for more information." - } - }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "cannot_connect": "Failed to connect: {error}" - } - } - } - }, "services": { "get_minute_forecast": { - "name": "Get minute forecast", - "description": "Retrieves a minute-by-minute weather forecast for one hour." - } - }, - "exceptions": { - "service_minute_forecast_mode": { - "message": "Minute forecast is available only when {name} mode is set to v3.0" + "description": "Retrieves a minute-by-minute weather forecast for one hour.", + "name": "Get minute forecast" } } } diff --git a/homeassistant/components/opower/strings.json b/homeassistant/components/opower/strings.json index 813e1185467..0ac866574da 100644 --- a/homeassistant/components/opower/strings.json +++ b/homeassistant/components/opower/strings.json @@ -1,6 +1,61 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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": "The security code is incorrect. Please try again." + }, "step": { + "credentials": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "totp_secret": "TOTP secret", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password for your utility account", + "totp_secret": "This is not a 6-digit code. It is a string of around 16 characters containing the shared secret that enables your authenticator app to generate the correct time-based code at the appropriate time. See the documentation.", + "username": "The username for your utility account" + }, + "title": "Enter credentials" + }, + "mfa_code": { + "data": { + "mfa_code": "Security code" + }, + "data_description": { + "mfa_code": "Typically a 6-digit code" + }, + "description": "Please enter the security code below to complete login.", + "title": "Enter security code" + }, + "mfa_options": { + "data": { + "mfa_method": "MFA method" + }, + "data_description": { + "mfa_method": "How to receive your security code" + }, + "description": "Your account requires multi-factor authentication (MFA). Select a method to receive your security code.", + "title": "Multi-factor authentication" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "totp_secret": "[%key:component::opower::config::step::credentials::data::totp_secret%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::opower::config::step::credentials::data_description::password%]", + "totp_secret": "[%key:component::opower::config::step::credentials::data_description::totp_secret%]", + "username": "[%key:component::opower::config::step::credentials::data_description::username%]" + }, + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { "data": { "utility": "Utility name" @@ -8,131 +63,76 @@ "data_description": { "utility": "The name of your utility provider" } - }, - "credentials": { - "title": "Enter credentials", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "totp_secret": "TOTP secret" - }, - "data_description": { - "username": "The username for your utility account", - "password": "The password for your utility account", - "totp_secret": "This is not a 6-digit code. It is a string of around 16 characters containing the shared secret that enables your authenticator app to generate the correct time-based code at the appropriate time. See the documentation." - } - }, - "mfa_options": { - "title": "Multi-factor authentication", - "description": "Your account requires multi-factor authentication (MFA). Select a method to receive your security code.", - "data": { - "mfa_method": "MFA method" - }, - "data_description": { - "mfa_method": "How to receive your security code" - } - }, - "mfa_code": { - "title": "Enter security code", - "description": "Please enter the security code below to complete login.", - "data": { - "mfa_code": "Security code" - }, - "data_description": { - "mfa_code": "Typically a 6-digit code" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "totp_secret": "[%key:component::opower::config::step::credentials::data::totp_secret%]" - }, - "data_description": { - "username": "[%key:component::opower::config::step::credentials::data_description::username%]", - "password": "[%key:component::opower::config::step::credentials::data_description::password%]", - "totp_secret": "[%key:component::opower::config::step::credentials::data_description::totp_secret%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_mfa_code": "The security code is incorrect. Please try again." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "issues": { - "return_to_grid_migration": { - "title": "Return to grid statistics for account: {utility_account_id}", - "description": "We found negative values in your existing consumption statistics, likely because you have solar. We split those in separate return statistics for a better experience in the Energy dashboard.\n\nPlease visit the [Energy configuration page]({energy_settings}) to add the following statistics in the **Return to grid** section:\n\n{target_ids}\n\nOnce you have added them, ignore this issue." - }, - "unsupported_utility": { - "title": "Unsupported utility: {utility}", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::opower::issues::unsupported_utility::title%]", - "description": "The utility `{utility}` used by entry `{title}` is no longer supported by the Opower integration. Select **Submit** to remove this integration entry now." - } - } } } }, "entity": { "sensor": { - "elec_usage_to_date": { - "name": "Current bill electric usage to date" - }, - "elec_forecasted_usage": { - "name": "Current bill electric forecasted usage" - }, - "elec_typical_usage": { - "name": "Typical monthly electric usage" - }, "elec_cost_to_date": { "name": "Current bill electric cost to date" }, - "elec_forecasted_cost": { - "name": "Current bill electric forecasted cost" - }, - "elec_typical_cost": { - "name": "Typical monthly electric cost" - }, - "elec_start_date": { - "name": "Current bill electric start date" - }, "elec_end_date": { "name": "Current bill electric end date" }, - "gas_usage_to_date": { - "name": "Current bill gas usage to date" + "elec_forecasted_cost": { + "name": "Current bill electric forecasted cost" }, - "gas_forecasted_usage": { - "name": "Current bill gas forecasted usage" + "elec_forecasted_usage": { + "name": "Current bill electric forecasted usage" }, - "gas_typical_usage": { - "name": "Typical monthly gas usage" + "elec_start_date": { + "name": "Current bill electric start date" + }, + "elec_typical_cost": { + "name": "Typical monthly electric cost" + }, + "elec_typical_usage": { + "name": "Typical monthly electric usage" + }, + "elec_usage_to_date": { + "name": "Current bill electric usage to date" }, "gas_cost_to_date": { "name": "Current bill gas cost to date" }, + "gas_end_date": { + "name": "Current bill gas end date" + }, "gas_forecasted_cost": { "name": "Current bill gas forecasted cost" }, - "gas_typical_cost": { - "name": "Typical monthly gas cost" + "gas_forecasted_usage": { + "name": "Current bill gas forecasted usage" }, "gas_start_date": { "name": "Current bill gas start date" }, - "gas_end_date": { - "name": "Current bill gas end date" + "gas_typical_cost": { + "name": "Typical monthly gas cost" + }, + "gas_typical_usage": { + "name": "Typical monthly gas usage" + }, + "gas_usage_to_date": { + "name": "Current bill gas usage to date" } } + }, + "issues": { + "return_to_grid_migration": { + "description": "We found negative values in your existing consumption statistics, likely because you have solar. We split those in separate return statistics for a better experience in the Energy dashboard.\n\nPlease visit the [Energy configuration page]({energy_settings}) to add the following statistics in the **Return to grid** section:\n\n{target_ids}\n\nOnce you have added them, ignore this issue.", + "title": "Return to grid statistics for account: {utility_account_id}" + }, + "unsupported_utility": { + "fix_flow": { + "step": { + "confirm": { + "description": "The utility `{utility}` used by entry `{title}` is no longer supported by the Opower integration. Select **Submit** to remove this integration entry now.", + "title": "[%key:component::opower::issues::unsupported_utility::title%]" + } + } + }, + "title": "Unsupported utility: {utility}" + } } } diff --git a/homeassistant/components/oralb/icons.json b/homeassistant/components/oralb/icons.json index ec8426d28a0..7f28dede4ae 100644 --- a/homeassistant/components/oralb/icons.json +++ b/homeassistant/components/oralb/icons.json @@ -1,13 +1,34 @@ { "entity": { "sensor": { + "mode": { + "default": "mdi:toothbrush-paste", + "state": { + "daily_clean": "mdi:repeat-once", + "deep_clean": "mdi:water", + "gum_care": "mdi:tooth-outline", + "intense": "mdi:shape-circle-plus", + "massage": "mdi:spa", + "off": "mdi:power", + "sensitive": "mdi:feather", + "settings": "mdi:cog-outline", + "super_sensitive": "mdi:feather", + "tongue_cleaning": "mdi:gate-and", + "turbo": "mdi:car-turbocharger", + "whiten": "mdi:shimmer", + "whitening": "mdi:shimmer" + } + }, + "number_of_sectors": { + "default": "mdi:chart-pie" + }, "pressure": { "default": "mdi:tooth-outline", "state": { + "button_pressed": "mdi:radiobox-marked", "high": "mdi:tooth", "low": "mdi:alert", - "power_button_pressed": "mdi:power", - "button_pressed": "mdi:radiobox-marked" + "power_button_pressed": "mdi:power" } }, "sector": { @@ -23,38 +44,17 @@ "toothbrush_state": { "default": "mdi:toothbrush-electric", "state": { - "initializing": "mdi:sync", - "idle": "mdi:toothbrush-electric", - "running": "mdi:waveform", "charging": "mdi:battery-charging", - "setup": "mdi:wrench", "flight_menu": "mdi:airplane", - "selection_menu": "mdi:menu", + "idle": "mdi:toothbrush-electric", + "initializing": "mdi:sync", "off": "mdi:power", + "running": "mdi:waveform", + "selection_menu": "mdi:menu", + "setup": "mdi:wrench", "sleeping": "mdi:sleep", "transport": "mdi:dolly" } - }, - "number_of_sectors": { - "default": "mdi:chart-pie" - }, - "mode": { - "default": "mdi:toothbrush-paste", - "state": { - "daily_clean": "mdi:repeat-once", - "sensitive": "mdi:feather", - "gum_care": "mdi:tooth-outline", - "intense": "mdi:shape-circle-plus", - "whitening": "mdi:shimmer", - "whiten": "mdi:shimmer", - "tongue_cleaning": "mdi:gate-and", - "super_sensitive": "mdi:feather", - "massage": "mdi:spa", - "deep_clean": "mdi:water", - "turbo": "mdi:car-turbocharger", - "off": "mdi:power", - "settings": "mdi:cog-outline" - } } } } diff --git a/homeassistant/components/oralb/strings.json b/homeassistant/components/oralb/strings.json index bb5331f0caa..2aa29d12f13 100644 --- a/homeassistant/components/oralb/strings.json +++ b/homeassistant/components/oralb/strings.json @@ -1,26 +1,57 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "No devices found", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "no_devices_found": "No devices found", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "sensor": { + "mode": { + "name": "Brushing mode", + "state": { + "daily_clean": "Daily clean", + "deep_clean": "Deep clean", + "gum_care": "Gum care", + "intense": "Intense", + "massage": "Massage", + "off": "[%key:common::state::off%]", + "sensitive": "Sensitive", + "settings": "Settings", + "super_sensitive": "Super sensitive", + "tongue_cleaning": "Tongue clean", + "turbo": "Turbo", + "whiten": "[%key:component::oralb::entity::sensor::mode::state::whitening%]", + "whitening": "Whiten" + } + }, + "number_of_sectors": { + "name": "Number of sectors" + }, + "pressure": { + "name": "Pressure", + "state": { + "button_pressed": "Button pressed", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "normal": "[%key:common::state::normal%]", + "power_button_pressed": "Power button pressed" + } + }, "sector": { "name": "Sector", "state": { @@ -32,54 +63,23 @@ "success": "Success" } }, - "number_of_sectors": { - "name": "Number of sectors" - }, "sector_timer": { "name": "Sector timer" }, - "pressure": { - "name": "Pressure", - "state": { - "normal": "[%key:common::state::normal%]", - "high": "[%key:common::state::high%]", - "low": "[%key:common::state::low%]", - "power_button_pressed": "Power button pressed", - "button_pressed": "Button pressed" - } - }, - "mode": { - "name": "Brushing mode", - "state": { - "daily_clean": "Daily clean", - "sensitive": "Sensitive", - "gum_care": "Gum care", - "intense": "Intense", - "whitening": "Whiten", - "whiten": "[%key:component::oralb::entity::sensor::mode::state::whitening%]", - "tongue_cleaning": "Tongue clean", - "super_sensitive": "Super sensitive", - "massage": "Massage", - "deep_clean": "Deep clean", - "turbo": "Turbo", - "off": "[%key:common::state::off%]", - "settings": "Settings" - } - }, "toothbrush_state": { "state": { - "initializing": "Initializing", - "idle": "[%key:common::state::idle%]", - "running": "Running", "charging": "[%key:common::state::charging%]", - "setup": "Setup", - "flight_menu": "Flight menu", - "selection_menu": "Selection menu", - "off": "[%key:common::state::off%]", - "sleeping": "Sleeping", - "transport": "Transport", "final_test": "Final test", - "pcb_test": "PCB test" + "flight_menu": "Flight menu", + "idle": "[%key:common::state::idle%]", + "initializing": "Initializing", + "off": "[%key:common::state::off%]", + "pcb_test": "PCB test", + "running": "Running", + "selection_menu": "Selection menu", + "setup": "Setup", + "sleeping": "Sleeping", + "transport": "Transport" } } } diff --git a/homeassistant/components/osoenergy/icons.json b/homeassistant/components/osoenergy/icons.json index be1bf0534db..1ec68ff370a 100644 --- a/homeassistant/components/osoenergy/icons.json +++ b/homeassistant/components/osoenergy/icons.json @@ -1,14 +1,14 @@ { "entity": { "binary_sensor": { - "power_save": { - "default": "mdi:power-sleep" - }, "extra_energy": { "default": "mdi:white-balance-sunny" }, "heating": { "default": "mdi:water-boiler" + }, + "power_save": { + "default": "mdi:power-sleep" } } }, diff --git a/homeassistant/components/osoenergy/strings.json b/homeassistant/components/osoenergy/strings.json index 27129579e2e..b463c1d4d3f 100644 --- a/homeassistant/components/osoenergy/strings.json +++ b/homeassistant/components/osoenergy/strings.json @@ -1,66 +1,54 @@ { "config": { - "step": { - "user": { - "title": "OSO Energy auth", - "description": "Enter the 'Subscription key' for your account generated at {portal_url}", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "reauth": { - "title": "OSO Energy auth", - "description": "Enter a new 'Subscription key' for your account generated at {portal_url}", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Enter a new 'Subscription key' for your account generated at {portal_url}", + "title": "OSO Energy auth" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Enter the 'Subscription key' for your account generated at {portal_url}", + "title": "OSO Energy auth" + } } }, "entity": { "binary_sensor": { - "power_save": { - "name": "Power save" - }, "extra_energy": { "name": "Extra energy" }, "heating": { "name": "Heating" + }, + "power_save": { + "name": "Power save" } }, "sensor": { - "tapping_capacity": { - "name": "Tapping capacity" - }, "capacity_mixed_water_40": { "name": "Capacity mixed water 40°C" }, - "v40_min": { - "name": "Mixed water at 40°C" - }, - "v40_level_min": { - "name": "Minimum level of mixed water at 40°C" - }, - "v40_level_max": { - "name": "Maximum level of mixed water at 40°C" - }, "heater_mode": { "name": "Heater mode", "state": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", - "manual": "[%key:common::state::manual%]", "extraenergy": "Extra energy", "ffr": "Fast frequency reserve", "legionella": "Legionella", + "manual": "[%key:common::state::manual%]", + "off": "[%key:common::state::off%]", "powersave": "Power save", "voltage": "Voltage" } @@ -78,166 +66,178 @@ "profile": { "name": "Profile local" }, - "temperature_top": { - "name": "Temperature top" - }, - "temperature_mid": { - "name": "Temperature middle" + "tapping_capacity": { + "name": "Tapping capacity" }, "temperature_low": { "name": "Temperature bottom" }, + "temperature_mid": { + "name": "Temperature middle" + }, "temperature_one": { "name": "Temperature one" + }, + "temperature_top": { + "name": "Temperature top" + }, + "v40_level_max": { + "name": "Maximum level of mixed water at 40°C" + }, + "v40_level_min": { + "name": "Minimum level of mixed water at 40°C" + }, + "v40_min": { + "name": "Mixed water at 40°C" } } }, "services": { "get_profile": { - "name": "Get heater profile", - "description": "Gets the temperature profile for water heater" + "description": "Gets the temperature profile for water heater", + "name": "Get heater profile" }, "set_profile": { - "name": "Set heater profile", "description": "Sets the temperature profile for water heater", "fields": { "hour_00": { - "name": "00:00", - "description": "00:00 hour" + "description": "00:00 hour", + "name": "00:00" }, "hour_01": { - "name": "01:00", - "description": "01:00 hour" + "description": "01:00 hour", + "name": "01:00" }, "hour_02": { - "name": "02:00", - "description": "02:00 hour" + "description": "02:00 hour", + "name": "02:00" }, "hour_03": { - "name": "03:00", - "description": "03:00 hour" + "description": "03:00 hour", + "name": "03:00" }, "hour_04": { - "name": "04:00", - "description": "04:00 hour" + "description": "04:00 hour", + "name": "04:00" }, "hour_05": { - "name": "05:00", - "description": "05:00 hour" + "description": "05:00 hour", + "name": "05:00" }, "hour_06": { - "name": "06:00", - "description": "06:00 hour" + "description": "06:00 hour", + "name": "06:00" }, "hour_07": { - "name": "07:00", - "description": "07:00 hour" + "description": "07:00 hour", + "name": "07:00" }, "hour_08": { - "name": "08:00", - "description": "08:00 hour" + "description": "08:00 hour", + "name": "08:00" }, "hour_09": { - "name": "09:00", - "description": "09:00 hour" + "description": "09:00 hour", + "name": "09:00" }, "hour_10": { - "name": "10:00", - "description": "10:00 hour" + "description": "10:00 hour", + "name": "10:00" }, "hour_11": { - "name": "11:00", - "description": "11:00 hour" + "description": "11:00 hour", + "name": "11:00" }, "hour_12": { - "name": "12:00", - "description": "12:00 hour" + "description": "12:00 hour", + "name": "12:00" }, "hour_13": { - "name": "13:00", - "description": "13:00 hour" + "description": "13:00 hour", + "name": "13:00" }, "hour_14": { - "name": "14:00", - "description": "14:00 hour" + "description": "14:00 hour", + "name": "14:00" }, "hour_15": { - "name": "15:00", - "description": "15:00 hour" + "description": "15:00 hour", + "name": "15:00" }, "hour_16": { - "name": "16:00", - "description": "16:00 hour" + "description": "16:00 hour", + "name": "16:00" }, "hour_17": { - "name": "17:00", - "description": "17:00 hour" + "description": "17:00 hour", + "name": "17:00" }, "hour_18": { - "name": "18:00", - "description": "18:00 hour" + "description": "18:00 hour", + "name": "18:00" }, "hour_19": { - "name": "19:00", - "description": "19:00 hour" + "description": "19:00 hour", + "name": "19:00" }, "hour_20": { - "name": "20:00", - "description": "20:00 hour" + "description": "20:00 hour", + "name": "20:00" }, "hour_21": { - "name": "21:00", - "description": "21:00 hour" + "description": "21:00 hour", + "name": "21:00" }, "hour_22": { - "name": "22:00", - "description": "22:00 hour" + "description": "22:00 hour", + "name": "22:00" }, "hour_23": { - "name": "23:00", - "description": "23:00 hour" + "description": "23:00 hour", + "name": "23:00" } - } + }, + "name": "Set heater profile" }, "set_v40_min": { - "name": "Set v40 min", "description": "Sets the minimum quantity of water at 40°C for a heater", "fields": { "v40_min": { - "name": "V40 Min", - "description": "Minimum quantity of water at 40°C (200-350 for SAGA S200, 300-550 for SAGA S300)" + "description": "Minimum quantity of water at 40°C (200-350 for SAGA S200, 300-550 for SAGA S300)", + "name": "V40 Min" } - } + }, + "name": "Set v40 min" }, "turn_away_mode_on": { - "name": "Set away mode", "description": "Turns on away mode for the water heater", "fields": { "duration_days": { - "name": "Duration in days", - "description": "Number of days to keep away mode active (1-365)" + "description": "Number of days to keep away mode active (1-365)", + "name": "Duration in days" } - } + }, + "name": "Set away mode" }, "turn_off": { - "name": "Turn off heating", "description": "Turns off heating for one hour or until min temperature is reached", "fields": { "until_temp_limit": { - "name": "Until temperature limit", - "description": "Whether heating should be off until the minimum temperature is reached instead of for one hour." + "description": "Whether heating should be off until the minimum temperature is reached instead of for one hour.", + "name": "Until temperature limit" } - } + }, + "name": "Turn off heating" }, "turn_on": { - "name": "Turn on heating", "description": "Turns on heating for one hour or until max temperature is reached", "fields": { "until_temp_limit": { - "name": "Until temperature limit", - "description": "Whether heating should be on until the maximum temperature is reached instead of for one hour." + "description": "Whether heating should be on until the maximum temperature is reached instead of for one hour.", + "name": "Until temperature limit" } - } + }, + "name": "Turn on heating" } } } diff --git a/homeassistant/components/otbr/strings.json b/homeassistant/components/otbr/strings.json index 3a9661c454d..8f310702a7d 100644 --- a/homeassistant/components/otbr/strings.json +++ b/homeassistant/components/otbr/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "The Thread border router is already configured", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "already_configured": "The Thread border router is already configured", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { @@ -7,29 +16,20 @@ }, "description": "Provide URL for the OpenThread Border Router's REST API" } - }, - "error": { - "already_configured": "The Thread border router is already configured", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "The Thread border router is already configured", - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "issues": { "get_get_border_agent_id_unsupported": { - "title": "The OTBR does not support Border Agent ID", - "description": "Your OTBR does not support Border Agent ID.\n\nTo fix this issue, update the OTBR to the latest version and restart Home Assistant.\nIf you are using an OTBR integrated in Home Assistant, update either the OpenThread Border Router add-on or the Silicon Labs Multiprotocol add-on. Otherwise update your self-managed OTBR." + "description": "Your OTBR does not support Border Agent ID.\n\nTo fix this issue, update the OTBR to the latest version and restart Home Assistant.\nIf you are using an OTBR integrated in Home Assistant, update either the OpenThread Border Router add-on or the Silicon Labs Multiprotocol add-on. Otherwise update your self-managed OTBR.", + "title": "The OTBR does not support Border Agent ID" }, "insecure_thread_network": { - "title": "Insecure Thread network settings detected", - "description": "Your Thread network is using a default network key or pass phrase.\n\nThis is a security risk, please create a new Thread network." + "description": "Your Thread network is using a default network key or pass phrase.\n\nThis is a security risk, please create a new Thread network.", + "title": "Insecure Thread network settings detected" }, "otbr_zha_channel_collision": { - "title": "OTBR and ZHA share the same radio but use different channels", - "description": "When OTBR and ZHA share the radio, they must use the same network channel.\n\nIf OTBR and ZHA attempt to connect to networks on different channels, neither Thread/Matter nor Zigbee will work.\n\nOTBR is configured with a Thread network on channel {otbr_channel}, ZHA is configured with a Zigbee network on channel {zha_channel}." + "description": "When OTBR and ZHA share the radio, they must use the same network channel.\n\nIf OTBR and ZHA attempt to connect to networks on different channels, neither Thread/Matter nor Zigbee will work.\n\nOTBR is configured with a Thread network on channel {otbr_channel}, ZHA is configured with a Zigbee network on channel {zha_channel}.", + "title": "OTBR and ZHA share the same radio but use different channels" } } } diff --git a/homeassistant/components/otp/strings.json b/homeassistant/components/otp/strings.json index 9152aeaa89e..af811a8ab2c 100644 --- a/homeassistant/components/otp/strings.json +++ b/homeassistant/components/otp/strings.json @@ -1,28 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "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.", + "invalid_token": "Invalid token", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "confirm": { + "data": { + "code": "Verification code (OTP)" + }, + "description": "Before completing the setup of One-Time Password (OTP), confirm with a verification code. Scan the QR code with your authentication app. If you don't have one, we recommend either {auth_app1} or {auth_app2}.\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": "Verify One-Time Password (OTP)" + }, "user": { "data": { "name": "[%key:common::config_flow::data::name%]", - "token": "Authenticator token (OTP)", - "new_token": "Generate a new token?" - } - }, - "confirm": { - "title": "Verify One-Time Password (OTP)", - "description": "Before completing the setup of One-Time Password (OTP), confirm with a verification code. Scan the QR code with your authentication app. If you don't have one, we recommend either {auth_app1} or {auth_app2}.\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}`**.", - "data": { - "code": "Verification code (OTP)" + "new_token": "Generate a new token?", + "token": "Authenticator token (OTP)" } } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_token": "Invalid token", - "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." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/ourgroceries/strings.json b/homeassistant/components/ourgroceries/strings.json index 78a46954183..24826028435 100644 --- a/homeassistant/components/ourgroceries/strings.json +++ b/homeassistant/components/ourgroceries/strings.json @@ -1,17 +1,17 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } } } diff --git a/homeassistant/components/overkiz/icons.json b/homeassistant/components/overkiz/icons.json index 3347750063e..6e5db404e17 100644 --- a/homeassistant/components/overkiz/icons.json +++ b/homeassistant/components/overkiz/icons.json @@ -9,20 +9,17 @@ "comfort-1": "mdi:thermometer", "comfort-2": "mdi:thermometer-low", "drying": "mdi:hair-dryer", + "external": "mdi:remote", "frost_protection": "mdi:snowflake", - "prog": "mdi:clock-outline", - "external": "mdi:remote" + "prog": "mdi:clock-outline" } } } } }, "select": { - "open_closed_pedestrian": { - "default": "mdi:content-save-cog" - }, - "open_closed_partial": { - "default": "mdi:content-save-cog" + "active_zones": { + "default": "mdi:shield-lock" }, "memorized_simple_volume": { "default": "mdi:volume-medium", @@ -31,15 +28,18 @@ "standard": "mdi:volume-medium" } }, + "open_closed_partial": { + "default": "mdi:content-save-cog" + }, + "open_closed_pedestrian": { + "default": "mdi:content-save-cog" + }, "operating_mode": { "default": "mdi:sun-snowflake", "state": { - "heating": "mdi:heat-wave", - "cooling": "mdi:snowflake" + "cooling": "mdi:snowflake", + "heating": "mdi:heat-wave" } - }, - "active_zones": { - "default": "mdi:shield-lock" } } } diff --git a/homeassistant/components/overkiz/manifest.json b/homeassistant/components/overkiz/manifest.json index 8beb6b14099..53cbfc45870 100644 --- a/homeassistant/components/overkiz/manifest.json +++ b/homeassistant/components/overkiz/manifest.json @@ -16,12 +16,12 @@ "requirements": ["pyoverkiz==1.19.0"], "zeroconf": [ { - "type": "_kizbox._tcp.local.", - "name": "gateway*" + "name": "gateway*", + "type": "_kizbox._tcp.local." }, { - "type": "_kizboxdev._tcp.local.", - "name": "gateway*" + "name": "gateway*", + "type": "_kizboxdev._tcp.local." } ] } diff --git a/homeassistant/components/overkiz/strings.json b/homeassistant/components/overkiz/strings.json index ce783c4eb07..653088aae8d 100644 --- a/homeassistant/components/overkiz/strings.json +++ b/homeassistant/components/overkiz/strings.json @@ -1,49 +1,9 @@ { "config": { - "flow_title": "Gateway: {gateway_id}", - "step": { - "user": { - "description": "Select your server. The Overkiz platform is used by various vendors like Somfy (Connexoon / TaHoma), Hitachi (Hi Kumo) and Atlantic (Cozytouch).", - "data": { - "hub": "Server" - }, - "data_description": { - "hub": "Select the mobile app that you use to control your devices." - } - }, - "local_or_cloud": { - "description": "Choose how you want to connect to your gateway.", - "data": { - "api_type": "API type" - }, - "data_description": { - "api_type": "Local API is only supported by TaHoma Connexoon, TaHoma v2, and TaHoma Switch. Climate devices and scenarios are **not** available via the local API." - } - }, - "cloud": { - "description": "Enter your credentials.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The username of your cloud account (app).", - "password": "The password of your cloud account (app)." - } - }, - "local": { - "description": "By activating the [Developer Mode of your TaHoma box]({somfy-developer-mode-docs}), you can authorize third-party software (like Home Assistant) to connect to it via your local network.\n\n1. Open the TaHoma By Somfy application on your device.\n2. Navigate to the Help & advanced features -> Advanced features menu in the application.\n3. Activate Developer Mode by tapping 7 times on the version number of your gateway (like 2025.1.4-11).\n4. Generate a token from the Developer Mode menu to authenticate your API calls.\n\n5. Enter the generated token below and update the host to include your Gateway PIN or the IP address of your gateway.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "token": "[%key:common::config_flow::data::api_token%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "host": "The hostname or IP address of your Overkiz hub.", - "token": "Token generated by the app used to control your device.", - "verify_ssl": "Verify the SSL certificate. Select this only if you are connecting via the hostname." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reauth_wrong_account": "You can only reauthenticate this entry with the same Overkiz account and hub" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -57,30 +17,56 @@ "unknown": "[%key:common::config_flow::error::unknown%]", "unsupported_hardware": "Your {unsupported_device} hardware is not using the Overkiz platform and can't be supported by this integration." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_wrong_account": "You can only reauthenticate this entry with the same Overkiz account and hub" + "flow_title": "Gateway: {gateway_id}", + "step": { + "cloud": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password of your cloud account (app).", + "username": "The username of your cloud account (app)." + }, + "description": "Enter your credentials." + }, + "local": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "token": "[%key:common::config_flow::data::api_token%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "host": "The hostname or IP address of your Overkiz hub.", + "token": "Token generated by the app used to control your device.", + "verify_ssl": "Verify the SSL certificate. Select this only if you are connecting via the hostname." + }, + "description": "By activating the [Developer Mode of your TaHoma box]({somfy-developer-mode-docs}), you can authorize third-party software (like Home Assistant) to connect to it via your local network.\n\n1. Open the TaHoma By Somfy application on your device.\n2. Navigate to the Help & advanced features -> Advanced features menu in the application.\n3. Activate Developer Mode by tapping 7 times on the version number of your gateway (like 2025.1.4-11).\n4. Generate a token from the Developer Mode menu to authenticate your API calls.\n\n5. Enter the generated token below and update the host to include your Gateway PIN or the IP address of your gateway." + }, + "local_or_cloud": { + "data": { + "api_type": "API type" + }, + "data_description": { + "api_type": "Local API is only supported by TaHoma Connexoon, TaHoma v2, and TaHoma Switch. Climate devices and scenarios are **not** available via the local API." + }, + "description": "Choose how you want to connect to your gateway." + }, + "user": { + "data": { + "hub": "Server" + }, + "data_description": { + "hub": "Select the mobile app that you use to control your devices." + }, + "description": "Select your server. The Overkiz platform is used by various vendors like Somfy (Connexoon / TaHoma), Hitachi (Hi Kumo) and Atlantic (Cozytouch)." + } } }, "entity": { "climate": { "overkiz": { "state_attributes": { - "preset_mode": { - "state": { - "auto": "[%key:common::state::auto%]", - "manual": "[%key:common::state::manual%]", - "comfort-1": "Comfort -1°C", - "comfort-2": "Comfort -2°C", - "drying": "Drying", - "external": "External", - "freeze": "Freeze", - "frost_protection": "Frost protection", - "night": "Night", - "prog": "Prog" - } - }, "fan_mode": { "state": { "away": "[%key:common::state::not_home%]", @@ -88,48 +74,62 @@ "home_boost": "Home boost", "kitchen_boost": "Kitchen boost" } + }, + "preset_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "comfort-1": "Comfort -1°C", + "comfort-2": "Comfort -2°C", + "drying": "Drying", + "external": "External", + "freeze": "Freeze", + "frost_protection": "Frost protection", + "manual": "[%key:common::state::manual%]", + "night": "Night", + "prog": "Prog" + } } } } }, "select": { - "open_closed_pedestrian": { - "state": { - "open": "[%key:common::state::open%]", - "pedestrian": "Pedestrian", - "closed": "[%key:common::state::closed%]" - } - }, - "open_closed_partial": { - "state": { - "open": "[%key:common::state::open%]", - "partial": "Partial", - "closed": "[%key:common::state::closed%]" - } - }, "memorized_simple_volume": { "state": { "highest": "Highest", "standard": "Standard" } }, + "open_closed_partial": { + "state": { + "closed": "[%key:common::state::closed%]", + "open": "[%key:common::state::open%]", + "partial": "Partial" + } + }, + "open_closed_pedestrian": { + "state": { + "closed": "[%key:common::state::closed%]", + "open": "[%key:common::state::open%]", + "pedestrian": "Pedestrian" + } + }, "operating_mode": { "state": { - "heating": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::heating%]", - "cooling": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::cooling%]" + "cooling": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::cooling%]", + "heating": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::heating%]" } } }, "sensor": { "battery": { "state": { + "critical": "Critical", "full": "[%key:common::state::full%]", - "low": "[%key:common::state::low%]", - "normal": "[%key:common::state::normal%]", - "medium": "[%key:common::state::medium%]", - "verylow": "[%key:common::state::very_low%]", "good": "Good", - "critical": "Critical" + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "normal": "[%key:common::state::normal%]", + "verylow": "[%key:common::state::very_low%]" } }, "discrete_rssi_level": { @@ -142,27 +142,21 @@ }, "priority_lock_originator": { "state": { - "lsc": "LSC", - "saac": "SAAC", - "sfc": "SFC", - "ups": "UPS", "external_gateway": "External gateway", "local_user": "Local user", + "lsc": "LSC", "myself": "Myself", "rain": "Rain", + "saac": "SAAC", "security": "Security", + "sfc": "SFC", "temperature": "Temperature", "timer": "Timer", + "ups": "UPS", "user": "User", "wind": "Wind" } }, - "sensor_room": { - "state": { - "clean": "Clean", - "dirty": "Dirty" - } - }, "sensor_defect": { "state": { "dead": "Dead", @@ -171,6 +165,12 @@ "no_defect": "No defect" } }, + "sensor_room": { + "state": { + "clean": "Clean", + "dirty": "Dirty" + } + }, "three_way_handle_direction": { "state": { "closed": "[%key:common::state::closed%]", diff --git a/homeassistant/components/overseerr/icons.json b/homeassistant/components/overseerr/icons.json index af18836680b..9b63943f898 100644 --- a/homeassistant/components/overseerr/icons.json +++ b/homeassistant/components/overseerr/icons.json @@ -1,31 +1,31 @@ { "entity": { + "event": { + "last_media_event": { + "default": "mdi:multimedia" + } + }, "sensor": { - "total_requests": { - "default": "mdi:forum" - }, - "movie_requests": { - "default": "mdi:movie-open" - }, - "tv_requests": { - "default": "mdi:television-box" - }, - "pending_requests": { - "default": "mdi:clock" + "available_requests": { + "default": "mdi:message-bulleted" }, "declined_requests": { "default": "mdi:movie-open-off" }, + "movie_requests": { + "default": "mdi:movie-open" + }, + "pending_requests": { + "default": "mdi:clock" + }, "processing_requests": { "default": "mdi:sync" }, - "available_requests": { - "default": "mdi:message-bulleted" - } - }, - "event": { - "last_media_event": { - "default": "mdi:multimedia" + "total_requests": { + "default": "mdi:forum" + }, + "tv_requests": { + "default": "mdi:television-box" } } }, diff --git a/homeassistant/components/overseerr/strings.json b/homeassistant/components/overseerr/strings.json index e738ee629cf..b9a706d2539 100644 --- a/homeassistant/components/overseerr/strings.json +++ b/homeassistant/components/overseerr/strings.json @@ -1,25 +1,5 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "url": "The URL of the Overseerr instance.", - "api_key": "The API key of the Overseerr instance." - } - }, - "reauth_confirm": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::overseerr::config::step::user::data_description::api_key%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", @@ -29,6 +9,26 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "Authentication failed. Your API key is invalid or CSRF protection is turned on, preventing authentication.", "invalid_host": "The provided URL is not a valid host." + }, + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::overseerr::config::step::user::data_description::api_key%]" + } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "api_key": "The API key of the Overseerr instance.", + "url": "The URL of the Overseerr instance." + } + } } }, "entity": { @@ -38,95 +38,95 @@ "state_attributes": { "event_type": { "state": { - "pending": "Pending", "approved": "Approved", + "auto_approved": "Auto-approved", "available": "Available", - "failed": "Failed", "declined": "Declined", - "auto_approved": "Auto-approved" + "failed": "Failed", + "pending": "Pending" } } } } }, "sensor": { - "total_requests": { - "name": "Total requests" - }, - "movie_requests": { - "name": "Movie requests" - }, - "tv_requests": { - "name": "TV requests" - }, - "pending_requests": { - "name": "Pending requests" + "available_requests": { + "name": "Available requests" }, "declined_requests": { "name": "Declined requests" }, + "movie_requests": { + "name": "Movie requests" + }, + "pending_requests": { + "name": "Pending requests" + }, "processing_requests": { "name": "Processing requests" }, - "available_requests": { - "name": "Available requests" + "total_requests": { + "name": "Total requests" + }, + "tv_requests": { + "name": "TV requests" } } }, "exceptions": { - "connection_error": { - "message": "Error connecting to the Overseerr instance: {error}" - }, "auth_error": { "message": "[%key:common::config_flow::error::invalid_api_key%]" }, - "not_loaded": { - "message": "{target} is not loaded." + "connection_error": { + "message": "Error connecting to the Overseerr instance: {error}" }, "integration_not_found": { "message": "Integration \"{target}\" not found in registry." - } - }, - "services": { - "get_requests": { - "name": "Get requests", - "description": "Retrieves a list of media requests from Overseerr.", - "fields": { - "config_entry_id": { - "name": "Overseerr instance", - "description": "The Overseerr instance to get requests from." - }, - "status": { - "name": "Request status", - "description": "Filter the requests by status." - }, - "sort_order": { - "name": "Sort order", - "description": "Sort the requests by added or modified date." - }, - "requested_by": { - "name": "Requested by", - "description": "Filter the requests by the user ID that requested them." - } - } + }, + "not_loaded": { + "message": "{target} is not loaded." } }, "selector": { - "request_status": { - "options": { - "approved": "Approved", - "pending": "Pending", - "available": "Available", - "processing": "Processing", - "unavailable": "Unavailable", - "failed": "Failed" - } - }, "request_sort_order": { "options": { "added": "Added", "modified": "Modified" } + }, + "request_status": { + "options": { + "approved": "Approved", + "available": "Available", + "failed": "Failed", + "pending": "Pending", + "processing": "Processing", + "unavailable": "Unavailable" + } + } + }, + "services": { + "get_requests": { + "description": "Retrieves a list of media requests from Overseerr.", + "fields": { + "config_entry_id": { + "description": "The Overseerr instance to get requests from.", + "name": "Overseerr instance" + }, + "requested_by": { + "description": "Filter the requests by the user ID that requested them.", + "name": "Requested by" + }, + "sort_order": { + "description": "Sort the requests by added or modified date.", + "name": "Sort order" + }, + "status": { + "description": "Filter the requests by status.", + "name": "Request status" + } + }, + "name": "Get requests" } } } diff --git a/homeassistant/components/ovo_energy/icons.json b/homeassistant/components/ovo_energy/icons.json index 083e8ca8c2c..320315825ef 100644 --- a/homeassistant/components/ovo_energy/icons.json +++ b/homeassistant/components/ovo_energy/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "last_gas_reading": { - "default": "mdi:gas-cylinder" - }, "last_gas_cost": { "default": "mdi:cash-multiple" + }, + "last_gas_reading": { + "default": "mdi:gas-cylinder" } } } diff --git a/homeassistant/components/ovo_energy/strings.json b/homeassistant/components/ovo_energy/strings.json index 9d8e449e1d1..b1c47cf7bd2 100644 --- a/homeassistant/components/ovo_energy/strings.json +++ b/homeassistant/components/ovo_energy/strings.json @@ -1,60 +1,60 @@ { "config": { - "flow_title": "{username}", "abort": { "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "authorization_error": "[%key:common::config_flow::error::invalid_auth%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "connection_error": "[%key:common::config_flow::error::cannot_connect%]", - "authorization_error": "[%key:common::config_flow::error::invalid_auth%]" + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, + "flow_title": "{username}", "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "account": "OVO account ID (only add if you have multiple accounts)" - }, - "description": "Set up an OVO Energy instance to access your energy usage.", - "title": "Add OVO Energy account" - }, "reauth_confirm": { "data": { "password": "[%key:common::config_flow::data::password%]" }, "description": "Authentication failed for OVO Energy. Please enter your current credentials.", "title": "Reauthentication" + }, + "user": { + "data": { + "account": "OVO account ID (only add if you have multiple accounts)", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Set up an OVO Energy instance to access your energy usage.", + "title": "Add OVO Energy account" } } }, "entity": { "sensor": { - "last_electricity_reading": { - "name": "Last electricity reading" - }, "last_electricity_cost": { "name": "Last electricity cost" }, - "last_electricity_start_time": { - "name": "Last electricity start time" - }, "last_electricity_end_time": { "name": "Last electricity end time" }, - "last_gas_reading": { - "name": "Last gas reading" + "last_electricity_reading": { + "name": "Last electricity reading" + }, + "last_electricity_start_time": { + "name": "Last electricity start time" }, "last_gas_cost": { "name": "Last gas cost" }, - "last_gas_start_time": { - "name": "Last gas start time" - }, "last_gas_end_time": { "name": "Last gas end time" + }, + "last_gas_reading": { + "name": "Last gas reading" + }, + "last_gas_start_time": { + "name": "Last gas start time" } } } diff --git a/homeassistant/components/owntracks/strings.json b/homeassistant/components/owntracks/strings.json index 3c08550dab7..c8f2e989eaa 100644 --- a/homeassistant/components/owntracks/strings.json +++ b/homeassistant/components/owntracks/strings.json @@ -1,16 +1,16 @@ { "config": { - "step": { - "user": { - "title": "Set up OwnTracks", - "description": "Are you sure you want to set up OwnTracks?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]" }, "create_entry": { "default": "On Android, open [the OwnTracks app]({android_url}), go to Preferences > Connection. Change the following settings:\n - Mode: HTTP\n - Host: {webhook_url}\n - Identification:\n - Username: `'(Your name)'`\n - Device ID: `'(Your device name)'`\n\nOn iOS, open [the OwnTracks app]({ios_url}), tap (i) icon in top left > Settings. Change the following settings:\n - Mode: HTTP\n - URL: {webhook_url}\n - Turn on authentication\n - UserID: `'(Your name)'`\n\n{secret}\n\nSee [the documentation]({docs_url}) for more information." + }, + "step": { + "user": { + "description": "Are you sure you want to set up OwnTracks?", + "title": "Set up OwnTracks" + } } } } diff --git a/homeassistant/components/p1_monitor/strings.json b/homeassistant/components/p1_monitor/strings.json index b64f1dcc291..766597c6638 100644 --- a/homeassistant/components/p1_monitor/strings.json +++ b/homeassistant/components/p1_monitor/strings.json @@ -1,8 +1,10 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { - "description": "Set up P1 Monitor to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" @@ -10,47 +12,18 @@ "data_description": { "host": "The IP address or hostname of your P1 Monitor installation.", "port": "The port of your P1 Monitor installation." - } + }, + "description": "Set up P1 Monitor to integrate with Home Assistant." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "sensor": { - "gas_consumption": { - "name": "Gas consumption" + "consumption_day": { + "name": "Consumption day" }, - "power_consumption": { - "name": "Power consumption" - }, - "energy_consumption_high": { - "name": "Energy consumption - High tariff" - }, - "energy_consumption_low": { - "name": "Energy consumption - Low tariff" - }, - "power_production": { - "name": "Power production" - }, - "energy_production_high": { - "name": "Energy production - High tariff" - }, - "energy_production_low": { - "name": "Energy production - Low tariff" - }, - "energy_tariff_period": { - "name": "Energy tariff period" - }, - "voltage_phase_l1": { - "name": "Voltage phase L1" - }, - "voltage_phase_l2": { - "name": "Voltage phase L2" - }, - "voltage_phase_l3": { - "name": "Voltage phase L3" + "consumption_total": { + "name": "Consumption total" }, "current_phase_l1": { "name": "Current phase L1" @@ -61,6 +34,39 @@ "current_phase_l3": { "name": "Current phase L3" }, + "energy_consumption_high": { + "name": "Energy consumption - High tariff" + }, + "energy_consumption_low": { + "name": "Energy consumption - Low tariff" + }, + "energy_consumption_price_high": { + "name": "Energy consumption price - High" + }, + "energy_consumption_price_low": { + "name": "Energy consumption price - Low" + }, + "energy_production_high": { + "name": "Energy production - High tariff" + }, + "energy_production_low": { + "name": "Energy production - Low tariff" + }, + "energy_production_price_high": { + "name": "Energy production price - High" + }, + "energy_production_price_low": { + "name": "Energy production price - Low" + }, + "energy_tariff_period": { + "name": "Energy tariff period" + }, + "gas_consumption": { + "name": "Gas consumption" + }, + "gas_consumption_price": { + "name": "Gas consumption price" + }, "power_consumed_phase_l1": { "name": "Power consumed phase L1" }, @@ -70,6 +76,9 @@ "power_consumed_phase_l3": { "name": "Power consumed phase L3" }, + "power_consumption": { + "name": "Power consumption" + }, "power_produced_phase_l1": { "name": "Power produced phase L1" }, @@ -79,29 +88,20 @@ "power_produced_phase_l3": { "name": "Power produced phase L3" }, - "gas_consumption_price": { - "name": "Gas consumption price" - }, - "energy_consumption_price_low": { - "name": "Energy consumption price - Low" - }, - "energy_consumption_price_high": { - "name": "Energy consumption price - High" - }, - "energy_production_price_low": { - "name": "Energy production price - Low" - }, - "energy_production_price_high": { - "name": "Energy production price - High" - }, - "consumption_day": { - "name": "Consumption day" - }, - "consumption_total": { - "name": "Consumption total" + "power_production": { + "name": "Power production" }, "pulse_count": { "name": "Pulse count" + }, + "voltage_phase_l1": { + "name": "Voltage phase L1" + }, + "voltage_phase_l2": { + "name": "Voltage phase L2" + }, + "voltage_phase_l3": { + "name": "Voltage phase L3" } } } diff --git a/homeassistant/components/palazzetti/strings.json b/homeassistant/components/palazzetti/strings.json index 59a2ba1ffe9..25e90ddcbde 100644 --- a/homeassistant/components/palazzetti/strings.json +++ b/homeassistant/components/palazzetti/strings.json @@ -1,6 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { + "discovery_confirm": { + "description": "Do you want to add {name} ({host}) to Home Assistant?" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -8,36 +17,7 @@ "data_description": { "host": "The host name or the IP address of the Palazzetti CBox" } - }, - "discovery_confirm": { - "description": "Do you want to add {name} ({host}) to Home Assistant?" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "exceptions": { - "on_off_not_available": { - "message": "The appliance cannot be turned on or off." - }, - "invalid_fan_mode": { - "message": "Fan mode {value} is invalid." - }, - "invalid_fan_speed": { - "message": "Fan {name} speed {value} is invalid." - }, - "invalid_target_temperature": { - "message": "Target temperature {value} is invalid." - }, - "invalid_combustion_power": { - "message": "Combustion power {value} is invalid." - }, - "cannot_connect": { - "message": "Could not connect to the device." } }, "entity": { @@ -51,9 +31,9 @@ "state_attributes": { "fan_mode": { "state": { - "silent": "Silent", "auto": "[%key:common::state::auto%]", - "high": "[%key:common::state::high%]" + "high": "[%key:common::state::high%]", + "silent": "Silent" } } } @@ -71,69 +51,89 @@ } }, "sensor": { - "status": { - "name": "Status", - "state": { - "off": "[%key:common::state::off%]", - "off_timer": "Timer-regulated switch off", - "test_fire": "Ignition test", - "heatup": "Pellet feed", - "fueling": "Ignition", - "ign_test": "Fuel check", - "burning": "Operating", - "burning_mod": "Operating - Modulating", - "unknown": "Unknown", - "cool_fluid": "[%key:common::state::standby%]", - "fire_stop": "Switch off", - "clean_fire": "Burn pot cleaning", - "cooling": "Cooling in progress", - "cleanup": "Final cleaning", - "ecomode": "Ecomode", - "chimney_alarm": "Chimney alarm", - "grate_error": "Grate error", - "pellet_water_error": "Pellet probe or return water error", - "t05_error": "T05 error disconnected or faulty probe", - "hatch_door_open": "Feed hatch or door open", - "pressure_error": "Safety pressure switch error", - "main_probe_failure": "Main probe failure", - "flue_probe_failure": "Flue gas probe failure", - "exhaust_temp_high": "Too high exhaust gas temperature", - "pellet_finished": "Pellets finished or ignition failed", - "firewood_finished": "Firewood finished", - "general_error": "General error", - "door_open": "Door open", - "temp_too_high": "Temperature too high", - "cleaning_warning": "Cleaning warning", - "fuel_error": "Fuel error" - } - }, - "pellet_quantity": { - "name": "Pellet quantity" + "air_outlet_temperature": { + "name": "Air outlet temperature" }, "pellet_level": { "name": "Pellet level" }, - "air_outlet_temperature": { - "name": "Air outlet temperature" - }, - "wood_combustion_temperature": { - "name": "Wood combustion temperature" - }, - "room_temperature": { - "name": "Room temperature" + "pellet_quantity": { + "name": "Pellet quantity" }, "return_water_temperature": { "name": "Return water temperature" }, - "tank_water_temperature": { - "name": "Tank water temperature" + "room_temperature": { + "name": "Room temperature" + }, + "status": { + "name": "Status", + "state": { + "burning": "Operating", + "burning_mod": "Operating - Modulating", + "chimney_alarm": "Chimney alarm", + "clean_fire": "Burn pot cleaning", + "cleaning_warning": "Cleaning warning", + "cleanup": "Final cleaning", + "cool_fluid": "[%key:common::state::standby%]", + "cooling": "Cooling in progress", + "door_open": "Door open", + "ecomode": "Ecomode", + "exhaust_temp_high": "Too high exhaust gas temperature", + "fire_stop": "Switch off", + "firewood_finished": "Firewood finished", + "flue_probe_failure": "Flue gas probe failure", + "fuel_error": "Fuel error", + "fueling": "Ignition", + "general_error": "General error", + "grate_error": "Grate error", + "hatch_door_open": "Feed hatch or door open", + "heatup": "Pellet feed", + "ign_test": "Fuel check", + "main_probe_failure": "Main probe failure", + "off": "[%key:common::state::off%]", + "off_timer": "Timer-regulated switch off", + "pellet_finished": "Pellets finished or ignition failed", + "pellet_water_error": "Pellet probe or return water error", + "pressure_error": "Safety pressure switch error", + "t05_error": "T05 error disconnected or faulty probe", + "temp_too_high": "Temperature too high", + "test_fire": "Ignition test", + "unknown": "Unknown" + } }, "t1_hydro": { "name": "Hydro temperature 1" }, "t2_hydro": { "name": "Hydro temperature 2" + }, + "tank_water_temperature": { + "name": "Tank water temperature" + }, + "wood_combustion_temperature": { + "name": "Wood combustion temperature" } } + }, + "exceptions": { + "cannot_connect": { + "message": "Could not connect to the device." + }, + "invalid_combustion_power": { + "message": "Combustion power {value} is invalid." + }, + "invalid_fan_mode": { + "message": "Fan mode {value} is invalid." + }, + "invalid_fan_speed": { + "message": "Fan {name} speed {value} is invalid." + }, + "invalid_target_temperature": { + "message": "Target temperature {value} is invalid." + }, + "on_off_not_available": { + "message": "The appliance cannot be turned on or off." + } } } diff --git a/homeassistant/components/panasonic_viera/strings.json b/homeassistant/components/panasonic_viera/strings.json index 0947b1ad0d4..2168d1d919c 100644 --- a/homeassistant/components/panasonic_viera/strings.json +++ b/homeassistant/components/panasonic_viera/strings.json @@ -1,30 +1,30 @@ { "config": { - "step": { - "user": { - "title": "Set up your TV", - "description": "Enter your Panasonic Viera TV's IP address", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "pairing": { - "title": "Pairing", - "description": "Enter the PIN displayed on your TV", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_pin_code": "The PIN you entered was invalid" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "step": { + "pairing": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Enter the PIN displayed on your TV", + "title": "Pairing" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "Enter your Panasonic Viera TV's IP address", + "title": "Set up your TV" + } } } } diff --git a/homeassistant/components/paperless_ngx/icons.json b/homeassistant/components/paperless_ngx/icons.json index 1df7a7d701c..03dde151e6d 100644 --- a/homeassistant/components/paperless_ngx/icons.json +++ b/homeassistant/components/paperless_ngx/icons.json @@ -1,80 +1,80 @@ { "entity": { "sensor": { - "documents_total": { - "default": "mdi:file-document-multiple" - }, - "documents_inbox": { - "default": "mdi:tray-full" + "celery_status": { + "default": "mdi:check-circle", + "state": { + "error": "mdi:alert-circle", + "ok": "mdi:check-circle", + "unknown": "mdi:help-circle", + "warning": "mdi:alert" + } }, "characters_count": { "default": "mdi:alphabet-latin" }, - "tag_count": { - "default": "mdi:tag" + "classifier_status": { + "default": "mdi:check-circle", + "state": { + "error": "mdi:alert-circle", + "ok": "mdi:check-circle", + "unknown": "mdi:help-circle", + "warning": "mdi:alert" + } }, "correspondent_count": { "default": "mdi:account-group" }, - "storage_total": { - "default": "mdi:harddisk" - }, - "storage_available": { - "default": "mdi:harddisk" - }, "database_status": { "default": "mdi:check-circle", "state": { - "ok": "mdi:check-circle", - "warning": "mdi:alert", "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" + "ok": "mdi:check-circle", + "unknown": "mdi:help-circle", + "warning": "mdi:alert" } }, + "documents_inbox": { + "default": "mdi:tray-full" + }, + "documents_total": { + "default": "mdi:file-document-multiple" + }, "index_status": { "default": "mdi:check-circle", "state": { - "ok": "mdi:check-circle", - "warning": "mdi:alert", "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" - } - }, - "classifier_status": { - "default": "mdi:check-circle", - "state": { "ok": "mdi:check-circle", - "warning": "mdi:alert", - "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" - } - }, - "celery_status": { - "default": "mdi:check-circle", - "state": { - "ok": "mdi:check-circle", - "warning": "mdi:alert", - "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" + "unknown": "mdi:help-circle", + "warning": "mdi:alert" } }, "redis_status": { "default": "mdi:check-circle", "state": { - "ok": "mdi:check-circle", - "warning": "mdi:alert", "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" + "ok": "mdi:check-circle", + "unknown": "mdi:help-circle", + "warning": "mdi:alert" } }, "sanity_check_status": { "default": "mdi:check-circle", "state": { - "ok": "mdi:check-circle", - "warning": "mdi:alert", "error": "mdi:alert-circle", - "unknown": "mdi:help-circle" + "ok": "mdi:check-circle", + "unknown": "mdi:help-circle", + "warning": "mdi:alert" } + }, + "storage_available": { + "default": "mdi:harddisk" + }, + "storage_total": { + "default": "mdi:harddisk" + }, + "tag_count": { + "default": "mdi:tag" } } } diff --git a/homeassistant/components/paperless_ngx/strings.json b/homeassistant/components/paperless_ngx/strings.json index aa3f7ada943..601f74cc40b 100644 --- a/homeassistant/components/paperless_ngx/strings.json +++ b/homeassistant/components/paperless_ngx/strings.json @@ -1,19 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::invalid_host%]", + "forbidden": "The token does not have permission to access the API.", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "user_inactive_or_deleted": "Authentication failed. The user is inactive or has been deleted." + }, "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "URL to connect to the Paperless-ngx instance", - "api_key": "API key to connect to the Paperless-ngx API", - "verify_ssl": "Verify the SSL certificate of the Paperless-ngx instance. Disable this option if you’re using a self-signed certificate." - }, - "title": "Add Paperless-ngx instance" - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" @@ -25,110 +24,111 @@ }, "reconfigure": { "data": { - "url": "[%key:common::config_flow::data::url%]", "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, "data_description": { - "url": "[%key:component::paperless_ngx::config::step::user::data_description::url%]", "api_key": "[%key:component::paperless_ngx::config::step::user::data_description::api_key%]", + "url": "[%key:component::paperless_ngx::config::step::user::data_description::url%]", "verify_ssl": "[%key:component::paperless_ngx::config::step::user::data_description::verify_ssl%]" }, "title": "Reconfigure Paperless-ngx instance" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "API key to connect to the Paperless-ngx API", + "url": "URL to connect to the Paperless-ngx instance", + "verify_ssl": "Verify the SSL certificate of the Paperless-ngx instance. Disable this option if you’re using a self-signed certificate." + }, + "title": "Add Paperless-ngx instance" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::invalid_host%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "user_inactive_or_deleted": "Authentication failed. The user is inactive or has been deleted.", - "forbidden": "The token does not have permission to access the API.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "entity": { "sensor": { - "documents_total": { - "name": "Total documents", - "unit_of_measurement": "documents" - }, - "documents_inbox": { - "name": "Documents in inbox", - "unit_of_measurement": "[%key:component::paperless_ngx::entity::sensor::documents_total::unit_of_measurement%]" + "celery_status": { + "name": "Status Celery", + "state": { + "error": "[%key:common::state::error%]", + "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", + "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]" + } }, "characters_count": { "name": "Total characters", "unit_of_measurement": "characters" }, - "tag_count": { - "name": "Tags", - "unit_of_measurement": "tags" + "classifier_status": { + "name": "Status classifier", + "state": { + "error": "[%key:common::state::error%]", + "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", + "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]" + } }, "correspondent_count": { "name": "Correspondents", "unit_of_measurement": "correspondents" }, + "database_status": { + "name": "Status database", + "state": { + "error": "[%key:common::state::error%]", + "ok": "OK", + "warning": "Warning" + } + }, "document_type_count": { "name": "Document types", "unit_of_measurement": "document types" }, - "storage_total": { - "name": "Total storage" + "documents_inbox": { + "name": "Documents in inbox", + "unit_of_measurement": "[%key:component::paperless_ngx::entity::sensor::documents_total::unit_of_measurement%]" }, - "storage_available": { - "name": "Available storage" - }, - "database_status": { - "name": "Status database", - "state": { - "ok": "OK", - "warning": "Warning", - "error": "[%key:common::state::error%]" - } + "documents_total": { + "name": "Total documents", + "unit_of_measurement": "documents" }, "index_status": { "name": "Status index", "state": { + "error": "[%key:common::state::error%]", "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", - "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]", - "error": "[%key:common::state::error%]" - } - }, - "classifier_status": { - "name": "Status classifier", - "state": { - "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", - "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]", - "error": "[%key:common::state::error%]" - } - }, - "celery_status": { - "name": "Status Celery", - "state": { - "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", - "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]", - "error": "[%key:common::state::error%]" + "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]" } }, "redis_status": { "name": "Status Redis", "state": { + "error": "[%key:common::state::error%]", "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", - "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]", - "error": "[%key:common::state::error%]" + "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]" } }, "sanity_check_status": { "name": "Status sanity", "state": { + "error": "[%key:common::state::error%]", "ok": "[%key:component::paperless_ngx::entity::sensor::database_status::state::ok%]", - "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]", - "error": "[%key:common::state::error%]" + "warning": "[%key:component::paperless_ngx::entity::sensor::database_status::state::warning%]" } + }, + "storage_available": { + "name": "Available storage" + }, + "storage_total": { + "name": "Total storage" + }, + "tag_count": { + "name": "Tags", + "unit_of_measurement": "tags" } }, "update": { @@ -141,17 +141,17 @@ "cannot_connect": { "message": "[%key:common::config_flow::error::invalid_host%]" }, - "invalid_api_key": { - "message": "[%key:common::config_flow::error::invalid_api_key%]" - }, - "user_inactive_or_deleted": { - "message": "[%key:component::paperless_ngx::config::error::user_inactive_or_deleted%]" - }, "forbidden": { "message": "[%key:component::paperless_ngx::config::error::forbidden%]" }, + "invalid_api_key": { + "message": "[%key:common::config_flow::error::invalid_api_key%]" + }, "unknown": { "message": "[%key:common::config_flow::error::unknown%]" + }, + "user_inactive_or_deleted": { + "message": "[%key:component::paperless_ngx::config::error::user_inactive_or_deleted%]" } } } diff --git a/homeassistant/components/peblar/icons.json b/homeassistant/components/peblar/icons.json index a954d112c4a..90b77343f55 100644 --- a/homeassistant/components/peblar/icons.json +++ b/homeassistant/components/peblar/icons.json @@ -25,12 +25,12 @@ } }, "sensor": { - "cp_state": { - "default": "mdi:ev-plug-type2" - }, "charge_current_limit_source": { "default": "mdi:arrow-collapse-up" }, + "cp_state": { + "default": "mdi:ev-plug-type2" + }, "uptime": { "default": "mdi:timer" } diff --git a/homeassistant/components/peblar/manifest.json b/homeassistant/components/peblar/manifest.json index e2ae96de988..fdb2e7ad7d8 100644 --- a/homeassistant/components/peblar/manifest.json +++ b/homeassistant/components/peblar/manifest.json @@ -8,5 +8,5 @@ "iot_class": "local_polling", "quality_scale": "platinum", "requirements": ["peblar==0.4.0"], - "zeroconf": [{ "type": "_http._tcp.local.", "name": "pblr-*" }] + "zeroconf": [{ "name": "pblr-*", "type": "_http._tcp.local." }] } diff --git a/homeassistant/components/peco/icons.json b/homeassistant/components/peco/icons.json index 734c5262bbc..7b8ffa3c8e9 100644 --- a/homeassistant/components/peco/icons.json +++ b/homeassistant/components/peco/icons.json @@ -4,17 +4,17 @@ "customers_out": { "default": "mdi:power-plug-off" }, - "percent_customers_out": { - "default": "mdi:power-plug-off" - }, - "outage_count": { - "default": "mdi:power-plug-off" - }, "customers_served": { "default": "mdi:power-plug-off" }, "map_alert": { "default": "mdi:alert" + }, + "outage_count": { + "default": "mdi:power-plug-off" + }, + "percent_customers_out": { + "default": "mdi:power-plug-off" } } } diff --git a/homeassistant/components/peco/strings.json b/homeassistant/components/peco/strings.json index c4683056dd7..e002c40d9f2 100644 --- a/homeassistant/components/peco/strings.json +++ b/homeassistant/components/peco/strings.json @@ -1,5 +1,17 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "incompatible_meter": "Your meter is not compatible with smart meter checking." + }, + "error": { + "http_error": "There was an error communicating with PECO. The issue that is most likely is that you entered an invalid phone number. Please check the phone number or try again later.", + "invalid_phone_number": "Please enter a valid phone number.", + "unresponsive_meter": "Your meter is not responding. Please try again later." + }, + "progress": { + "verifying_meter": "One moment. Verifying that your meter is compatible. This may take a minute or two." + }, "step": { "user": { "data": { @@ -11,18 +23,6 @@ "phone_number": "Phone number associated with the PECO account (optional). Adding a phone number adds a binary sensor confirming if your power is out or not, and not an issue with a breaker or an issue on your end." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "incompatible_meter": "Your meter is not compatible with smart meter checking." - }, - "progress": { - "verifying_meter": "One moment. Verifying that your meter is compatible. This may take a minute or two." - }, - "error": { - "invalid_phone_number": "Please enter a valid phone number.", - "unresponsive_meter": "Your meter is not responding. Please try again later.", - "http_error": "There was an error communicating with PECO. The issue that is most likely is that you entered an invalid phone number. Please check the phone number or try again later." } }, "entity": { @@ -30,17 +30,17 @@ "customers_out": { "name": "Customers out" }, - "percent_customers_out": { - "name": "Percent customers out" - }, - "outage_count": { - "name": "Outage count" - }, "customers_served": { "name": "Customers served" }, "map_alert": { "name": "Map alert" + }, + "outage_count": { + "name": "Outage count" + }, + "percent_customers_out": { + "name": "Percent customers out" } } } diff --git a/homeassistant/components/pegel_online/icons.json b/homeassistant/components/pegel_online/icons.json index b3192ba5283..50c90c445b6 100644 --- a/homeassistant/components/pegel_online/icons.json +++ b/homeassistant/components/pegel_online/icons.json @@ -10,15 +10,15 @@ "oxygen_level": { "default": "mdi:water-opacity" }, - "water_speed": { - "default": "mdi:waves-arrow-right" - }, "water_flow": { "default": "mdi:waves" }, "water_level": { "default": "mdi:waves-arrow-up" }, + "water_speed": { + "default": "mdi:waves-arrow-right" + }, "water_temperature": { "default": "mdi:thermometer-water" } diff --git a/homeassistant/components/pegel_online/strings.json b/homeassistant/components/pegel_online/strings.json index 65fecbfb825..2170a743364 100644 --- a/homeassistant/components/pegel_online/strings.json +++ b/homeassistant/components/pegel_online/strings.json @@ -1,6 +1,23 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_stations": "Could not find any station in range." + }, "step": { + "select_station": { + "data": { + "station": "Station" + }, + "data_description": { + "station": "Select the water measuring station you want to add to Home Assistant." + }, + "description": "Found {stations_count} stations in radius", + "title": "Select the station to add" + }, "user": { "data": { "location": "[%key:common::config_flow::data::location%]", @@ -10,24 +27,7 @@ "location": "Pick the location where to search for water measuring stations.", "radius": "The radius to search for water measuring stations around the selected location." } - }, - "select_station": { - "title": "Select the station to add", - "description": "Found {stations_count} stations in radius", - "data": { - "station": "Station" - }, - "data_description": { - "station": "Select the water measuring station you want to add to Home Assistant." - } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "no_stations": "Could not find any station in range." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "entity": { @@ -41,15 +41,15 @@ "oxygen_level": { "name": "Oxygen level" }, - "water_speed": { - "name": "Water flow speed" - }, "water_flow": { "name": "Water volume flow" }, "water_level": { "name": "Water level" }, + "water_speed": { + "name": "Water flow speed" + }, "water_temperature": { "name": "Water temperature" } diff --git a/homeassistant/components/permobil/icons.json b/homeassistant/components/permobil/icons.json index ba3c612b756..53bddcc00a9 100644 --- a/homeassistant/components/permobil/icons.json +++ b/homeassistant/components/permobil/icons.json @@ -1,35 +1,35 @@ { "entity": { "sensor": { - "state_of_health": { - "default": "mdi:battery-heart-variant" - }, "charge_time_left": { "default": "mdi:battery-clock" }, "distance_left": { "default": "mdi:map-marker-distance" }, - "max_watt_hours": { - "default": "mdi:lightning-bolt" - }, - "watt_hours_left": { - "default": "mdi:lightning-bolt" - }, "max_distance_left": { "default": "mdi:map-marker-distance" }, - "usage_distance": { - "default": "mdi:map-marker-distance" - }, - "usage_adjustments": { - "default": "mdi:seat-recline-extra" + "max_watt_hours": { + "default": "mdi:lightning-bolt" }, "record_adjustments": { "default": "mdi:seat-recline-extra" }, "record_distance": { "default": "mdi:map-marker-distance" + }, + "state_of_health": { + "default": "mdi:battery-heart-variant" + }, + "usage_adjustments": { + "default": "mdi:seat-recline-extra" + }, + "usage_distance": { + "default": "mdi:map-marker-distance" + }, + "watt_hours_left": { + "default": "mdi:lightning-bolt" } } } diff --git a/homeassistant/components/permobil/strings.json b/homeassistant/components/permobil/strings.json index 0b55162b53e..12adf6dff5a 100644 --- a/homeassistant/components/permobil/strings.json +++ b/homeassistant/components/permobil/strings.json @@ -1,46 +1,45 @@ { "config": { - "step": { - "user": { - "data": { - "email": "Enter your permobil email" - } - }, - "email_code": { - "description": "Enter the code that was sent to your email.", - "data": { - "code": "Email code" - } - }, - "region": { - "description": "Select the region of your account.", - "data": { - "region": "Region" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { - "unknown": "Unexpected error, more information in the logs", - "region_fetch_error": "Error fetching regions", "code_request_error": "Error requesting application code", - "invalid_email": "Invalid email", "invalid_code": "The code you gave is incorrect", + "invalid_email": "Invalid email", + "region_fetch_error": "Error fetching regions", + "unknown": "Unexpected error, more information in the logs", "unsigned_eula": "Please sign the EULA in the {app_name} app" + }, + "step": { + "email_code": { + "data": { + "code": "Email code" + }, + "description": "Enter the code that was sent to your email." + }, + "region": { + "data": { + "region": "Region" + }, + "description": "Select the region of your account." + }, + "user": { + "data": { + "email": "Enter your permobil email" + } + } } }, "entity": { + "binary_sensor": { + "is_charging": { + "name": "Is charging" + } + }, "sensor": { - "state_of_charge": { - "name": "Battery charge" - }, - "state_of_health": { - "name": "Battery health" - }, "charge_time_left": { "name": "Charge time left" }, @@ -50,31 +49,32 @@ "indoor_drive_time": { "name": "Indoor drive time" }, - "max_watt_hours": { - "name": "Battery max watt hours" - }, - "watt_hours_left": { - "name": "Watt hours left" - }, "max_distance_left": { "name": "Full charge distance" }, - "usage_distance": { - "name": "Distance traveled" - }, - "usage_adjustments": { - "name": "Number of adjustments" + "max_watt_hours": { + "name": "Battery max watt hours" }, "record_adjustments": { "name": "Record number of adjustments" }, "record_distance": { "name": "Record distance" - } - }, - "binary_sensor": { - "is_charging": { - "name": "Is charging" + }, + "state_of_charge": { + "name": "Battery charge" + }, + "state_of_health": { + "name": "Battery health" + }, + "usage_adjustments": { + "name": "Number of adjustments" + }, + "usage_distance": { + "name": "Distance traveled" + }, + "watt_hours_left": { + "name": "Watt hours left" } } } diff --git a/homeassistant/components/persistent_notification/strings.json b/homeassistant/components/persistent_notification/strings.json index e6c3d3b7775..e2271dd7bf6 100644 --- a/homeassistant/components/persistent_notification/strings.json +++ b/homeassistant/components/persistent_notification/strings.json @@ -1,37 +1,37 @@ { - "title": "Persistent Notification", "services": { "create": { - "name": "Create", "description": "Shows a notification on the notifications panel.", "fields": { "message": { - "name": "Message", - "description": "Message body of the notification." - }, - "title": { - "name": "Title", - "description": "Optional title of the notification." + "description": "Message body of the notification.", + "name": "Message" }, "notification_id": { - "name": "Notification ID", - "description": "ID of the notification. This new notification will overwrite an existing notification with the same ID." + "description": "ID of the notification. This new notification will overwrite an existing notification with the same ID.", + "name": "Notification ID" + }, + "title": { + "description": "Optional title of the notification.", + "name": "Title" } - } + }, + "name": "Create" }, "dismiss": { - "name": "Dismiss", "description": "Deletes a notification from the notifications panel.", "fields": { "notification_id": { - "name": "[%key:component::persistent_notification::services::create::fields::notification_id::name%]", - "description": "ID of the notification to be deleted." + "description": "ID of the notification to be deleted.", + "name": "[%key:component::persistent_notification::services::create::fields::notification_id::name%]" } - } + }, + "name": "Dismiss" }, "dismiss_all": { - "name": "Dismiss all", - "description": "Deletes all notifications from the notifications panel." + "description": "Deletes all notifications from the notifications panel.", + "name": "Dismiss all" } - } + }, + "title": "Persistent Notification" } diff --git a/homeassistant/components/person/strings.json b/homeassistant/components/person/strings.json index 27c41df6b4e..93483069a39 100644 --- a/homeassistant/components/person/strings.json +++ b/homeassistant/components/person/strings.json @@ -1,5 +1,4 @@ { - "title": "Person", "entity_component": { "_": { "name": "[%key:component::person::title%]", @@ -28,8 +27,9 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads persons from the YAML-configuration." + "description": "Reloads persons from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Person" } diff --git a/homeassistant/components/pglab/strings.json b/homeassistant/components/pglab/strings.json index c6f80d12f09..0ff5c7633e1 100644 --- a/homeassistant/components/pglab/strings.json +++ b/homeassistant/components/pglab/strings.json @@ -1,17 +1,17 @@ { "config": { + "abort": { + "mqtt_not_configured": "Home Assistant MQTT integration not configured.", + "mqtt_not_connected": "Home Assistant MQTT integration not connected to MQTT broker.", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { - "confirm_from_user": { - "description": "In order to be found PG LAB Electronics devices need to be connected to the same broker as the Home Assistant MQTT integration client. Do you want to continue?" - }, "confirm_from_mqtt": { "description": "Do you want to set up PG LAB Electronics?" + }, + "confirm_from_user": { + "description": "In order to be found PG LAB Electronics devices need to be connected to the same broker as the Home Assistant MQTT integration client. Do you want to continue?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "mqtt_not_connected": "Home Assistant MQTT integration not connected to MQTT broker.", - "mqtt_not_configured": "Home Assistant MQTT integration not configured." } }, "entity": { @@ -20,20 +20,20 @@ "name": "Shutter {shutter_id}" } }, - "switch": { - "relay": { - "name": "Relay {relay_id}" - } - }, "sensor": { - "temperature": { - "name": "Temperature" + "mpu_voltage": { + "name": "MPU voltage" }, "runtime": { "name": "Run time" }, - "mpu_voltage": { - "name": "MPU voltage" + "temperature": { + "name": "Temperature" + } + }, + "switch": { + "relay": { + "name": "Relay {relay_id}" } } } diff --git a/homeassistant/components/philips_js/icons.json b/homeassistant/components/philips_js/icons.json index ea9cbd3114e..689baf90bd5 100644 --- a/homeassistant/components/philips_js/icons.json +++ b/homeassistant/components/philips_js/icons.json @@ -1,11 +1,11 @@ { "entity": { "binary_sensor": { - "recording_ongoing": { - "default": "mdi:record-rec" - }, "recording_new": { "default": "mdi:new-box" + }, + "recording_ongoing": { + "default": "mdi:record-rec" } }, "light": { @@ -14,11 +14,11 @@ } }, "switch": { - "screen_state": { - "default": "mdi:television-shimmer" - }, "ambilight_hue": { "default": "mdi:television-ambient-light" + }, + "screen_state": { + "default": "mdi:television-shimmer" } } } diff --git a/homeassistant/components/philips_js/strings.json b/homeassistant/components/philips_js/strings.json index 6c5a1fcce0a..a220430f730 100644 --- a/homeassistant/components/philips_js/strings.json +++ b/homeassistant/components/philips_js/strings.json @@ -1,45 +1,33 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "api_version": "API Version" - } - }, - "zeroconf_confirm": { - "title": "Discovered Philips TV", - "description": "Do you want to add the 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": { - "title": "Pair", - "description": "Enter the PIN displayed on your TV", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_pin": "Invalid PIN" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "pairing_failure": "Unable to pair: {error_id}", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_pin": "Invalid PIN", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name}", "step": { - "init": { + "pair": { "data": { - "allow_notify": "Allow notification service" + "pin": "[%key:common::config_flow::data::pin%]" }, - "data_description": { - "allow_notify": "Allow the usage of data notification service on TV instead of periodic polling. This allows faster reaction to state changes on the TV, however, some TV's will stop responding with this activated due to firmware bugs." + "description": "Enter the PIN displayed on your TV", + "title": "Pair" + }, + "user": { + "data": { + "api_version": "API Version", + "host": "[%key:common::config_flow::data::host%]" } + }, + "zeroconf_confirm": { + "description": "Do you want to add the 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 Philips TV" } } }, @@ -68,11 +56,23 @@ } }, "switch": { - "screen_state": { - "name": "Screen state" - }, "ambilight_hue": { "name": "Ambilight + Hue" + }, + "screen_state": { + "name": "Screen state" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "allow_notify": "Allow notification service" + }, + "data_description": { + "allow_notify": "Allow the usage of data notification service on TV instead of periodic polling. This allows faster reaction to state changes on the TV, however, some TV's will stop responding with this activated due to firmware bugs." + } } } } diff --git a/homeassistant/components/pi_hole/icons.json b/homeassistant/components/pi_hole/icons.json index d5c2e9a2d43..e9106f37521 100644 --- a/homeassistant/components/pi_hole/icons.json +++ b/homeassistant/components/pi_hole/icons.json @@ -6,30 +6,30 @@ } }, "sensor": { - "ads_blocked_today": { + "ads_blocked": { "default": "mdi:close-octagon-outline" }, - "ads_blocked": { + "ads_blocked_today": { "default": "mdi:close-octagon-outline" }, "ads_percentage_today": { "default": "mdi:close-octagon-outline" }, - "percent_ads_blocked": { - "default": "mdi:close-octagon-outline" - }, "clients_ever_seen": { "default": "mdi:account-outline" }, - "dns_queries_today": { - "default": "mdi:comment-question-outline" - }, "dns_queries": { "default": "mdi:comment-question-outline" }, + "dns_queries_today": { + "default": "mdi:comment-question-outline" + }, "domains_being_blocked": { "default": "mdi:block-helper" }, + "percent_ads_blocked": { + "default": "mdi:close-octagon-outline" + }, "queries_cached": { "default": "mdi:comment-question-outline" }, diff --git a/homeassistant/components/pi_hole/strings.json b/homeassistant/components/pi_hole/strings.json index b3a634f4420..278015e66ff 100644 --- a/homeassistant/components/pi_hole/strings.json +++ b/homeassistant/components/pi_hole/strings.json @@ -1,39 +1,32 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "name": "[%key:common::config_flow::data::name%]", - "location": "[%key:common::config_flow::data::location%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "api_key": "App password or API key" - } - }, - - "reauth_confirm": { - "title": "Reauthenticate Pi-hole", - "description": "Please enter a new API key for Pi-hole at {host}/{location}", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "issues": { - "v5_to_v6_migration": { - "title": "Recent migration from Pi-hole API v5 to v6", - "description": "You've likely updated your Pi-hole to API v6 from v5. Some sensors changed in the new API, the daily sensors were removed, and your old API token is invalid. Provide your new app password by re-authenticating in repairs or in **Settings -> Devices & services -> Pi-hole**." + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Please enter a new API key for Pi-hole at {host}/{location}", + "title": "Reauthenticate Pi-hole" + }, + "user": { + "data": { + "api_key": "App password or API key", + "host": "[%key:common::config_flow::data::host%]", + "location": "[%key:common::config_flow::data::location%]", + "name": "[%key:common::config_flow::data::name%]", + "port": "[%key:common::config_flow::data::port%]", + "ssl": "[%key:common::config_flow::data::ssl%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + } + } } }, "entity": { @@ -43,37 +36,37 @@ } }, "sensor": { - "ads_blocked_today": { - "name": "Ads blocked today", - "unit_of_measurement": "ads" - }, "ads_blocked": { "name": "Ads blocked", "unit_of_measurement": "[%key:component::pi_hole::entity::sensor::ads_blocked_today::unit_of_measurement%]" }, + "ads_blocked_today": { + "name": "Ads blocked today", + "unit_of_measurement": "ads" + }, "ads_percentage_today": { "name": "Ads percentage blocked today" }, - "percent_ads_blocked": { - "name": "Ads percentage blocked" - }, "clients_ever_seen": { "name": "Seen clients", "unit_of_measurement": "clients" }, - "dns_queries_today": { - "name": "DNS queries today", - "unit_of_measurement": "queries" - }, "dns_queries": { "name": "DNS queries", "unit_of_measurement": "[%key:component::pi_hole::entity::sensor::dns_queries_today::unit_of_measurement%]" }, + "dns_queries_today": { + "name": "DNS queries today", + "unit_of_measurement": "queries" + }, "domains_being_blocked": { "name": "Domains blocked", "unit_of_measurement": "domains" }, + "percent_ads_blocked": { + "name": "Ads percentage blocked" + }, "queries_cached": { "name": "DNS queries cached", "unit_of_measurement": "[%key:component::pi_hole::entity::sensor::dns_queries_today::unit_of_measurement%]" @@ -103,16 +96,22 @@ } } }, + "issues": { + "v5_to_v6_migration": { + "description": "You've likely updated your Pi-hole to API v6 from v5. Some sensors changed in the new API, the daily sensors were removed, and your old API token is invalid. Provide your new app password by re-authenticating in repairs or in **Settings -> Devices & services -> Pi-hole**.", + "title": "Recent migration from Pi-hole API v5 to v6" + } + }, "services": { "disable": { - "name": "[%key:common::action::disable%]", "description": "Disables configured Pi-hole(s) for an amount of time.", "fields": { "duration": { - "name": "Duration", - "description": "Time that the Pi-hole should be disabled for." + "description": "Time that the Pi-hole should be disabled for.", + "name": "Duration" } - } + }, + "name": "[%key:common::action::disable%]" } } } diff --git a/homeassistant/components/picnic/icons.json b/homeassistant/components/picnic/icons.json index 78803b6d263..9a28ea8e55f 100644 --- a/homeassistant/components/picnic/icons.json +++ b/homeassistant/components/picnic/icons.json @@ -7,6 +7,36 @@ "cart_total_price": { "default": "mdi:currency-eur" }, + "last_order_delivery_time": { + "default": "mdi:timeline-clock" + }, + "last_order_max_order_time": { + "default": "mdi:clock-alert-outline" + }, + "last_order_slot_end": { + "default": "mdi:calendar-end" + }, + "last_order_slot_start": { + "default": "mdi:calendar-start" + }, + "last_order_status": { + "default": "mdi:list-status" + }, + "last_order_total_price": { + "default": "mdi:cash-marker" + }, + "next_delivery_eta_end": { + "default": "mdi:clock-end" + }, + "next_delivery_eta_start": { + "default": "mdi:clock-start" + }, + "next_delivery_slot_end": { + "default": "mdi:calendar-end" + }, + "next_delivery_slot_start": { + "default": "mdi:calendar-start" + }, "selected_slot_end": { "default": "mdi:calendar-end" }, @@ -16,36 +46,6 @@ "selected_slot_min_order_value": { "default": "mdi:currency-eur" }, - "last_order_slot_start": { - "default": "mdi:calendar-start" - }, - "last_order_slot_end": { - "default": "mdi:calendar-end" - }, - "last_order_status": { - "default": "mdi:list-status" - }, - "last_order_max_order_time": { - "default": "mdi:clock-alert-outline" - }, - "last_order_delivery_time": { - "default": "mdi:timeline-clock" - }, - "last_order_total_price": { - "default": "mdi:cash-marker" - }, - "next_delivery_eta_start": { - "default": "mdi:clock-start" - }, - "next_delivery_eta_end": { - "default": "mdi:clock-end" - }, - "next_delivery_slot_start": { - "default": "mdi:calendar-start" - }, - "next_delivery_slot_end": { - "default": "mdi:calendar-end" - }, "selected_slot_start": { "default": "mdi:calendar-start" } diff --git a/homeassistant/components/picnic/strings.json b/homeassistant/components/picnic/strings.json index 9a6b7162fd5..db56d032b1d 100644 --- a/homeassistant/components/picnic/strings.json +++ b/homeassistant/components/picnic/strings.json @@ -1,31 +1,26 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "country_code": "Country code" - } - } - }, - "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%]", - "different_account": "Account should be the same as used for setting up the integration" - }, "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%]", + "different_account": "Account should be the same as used for setting up the integration", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "country_code": "Country code", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { - "todo": { - "shopping_cart": { - "name": "Shopping cart" - } - }, "sensor": { "cart_items_count": { "name": "Cart items count" @@ -33,8 +28,35 @@ "cart_total_price": { "name": "Cart total price" }, - "selected_slot_start": { - "name": "Start of selected slot" + "last_order_delivery_time": { + "name": "Last order delivery time" + }, + "last_order_max_order_time": { + "name": "Max order time of last order" + }, + "last_order_slot_end": { + "name": "End of last order's slot" + }, + "last_order_slot_start": { + "name": "Start of last order's slot" + }, + "last_order_status": { + "name": "Status of last order" + }, + "last_order_total_price": { + "name": "Total price of last order" + }, + "next_delivery_eta_end": { + "name": "Expected end of next delivery" + }, + "next_delivery_eta_start": { + "name": "Expected start of next delivery" + }, + "next_delivery_slot_end": { + "name": "End of next delivery's slot" + }, + "next_delivery_slot_start": { + "name": "Start of next delivery's slot" }, "selected_slot_end": { "name": "End of selected slot" @@ -45,60 +67,38 @@ "selected_slot_min_order_value": { "name": "Minimum order value for selected slot" }, - "last_order_slot_start": { - "name": "Start of last order's slot" - }, - "last_order_slot_end": { - "name": "End of last order's slot" - }, - "last_order_status": { - "name": "Status of last order" - }, - "last_order_max_order_time": { - "name": "Max order time of last order" - }, - "last_order_delivery_time": { - "name": "Last order delivery time" - }, - "last_order_total_price": { - "name": "Total price of last order" - }, - "next_delivery_eta_start": { - "name": "Expected start of next delivery" - }, - "next_delivery_eta_end": { - "name": "Expected end of next delivery" - }, - "next_delivery_slot_start": { - "name": "Start of next delivery's slot" - }, - "next_delivery_slot_end": { - "name": "End of next delivery's slot" + "selected_slot_start": { + "name": "Start of selected slot" + } + }, + "todo": { + "shopping_cart": { + "name": "Shopping cart" } } }, "services": { "add_product": { - "name": "Add a product to the cart", "description": "Adds a product to the cart based on a search string or product ID. The search string and product ID are exclusive.", "fields": { + "amount": { + "description": "Amount to add of the selected product.", + "name": "Amount" + }, "config_entry_id": { - "name": "Picnic service", - "description": "The product will be added to the selected service." + "description": "The product will be added to the selected service.", + "name": "Picnic service" }, "product_id": { - "name": "Product ID", - "description": "The product ID of a Picnic product." + "description": "The product ID of a Picnic product.", + "name": "Product ID" }, "product_name": { - "name": "Product name", - "description": "Search for a product and add the first result." - }, - "amount": { - "name": "Amount", - "description": "Amount to add of the selected product." + "description": "Search for a product and add the first result.", + "name": "Product name" } - } + }, + "name": "Add a product to the cart" } } } diff --git a/homeassistant/components/pilight/strings.json b/homeassistant/components/pilight/strings.json index 4cd819859a3..993d4fa85e8 100644 --- a/homeassistant/components/pilight/strings.json +++ b/homeassistant/components/pilight/strings.json @@ -1,14 +1,14 @@ { "services": { "send": { - "name": "Send", "description": "Sends RF code to Pilight device.", "fields": { "protocol": { - "name": "Protocol", - "description": "Protocol that Pilight recognizes. See https://manual.pilight.org/protocols/index.html for supported protocols and additional parameters that each protocol supports." + "description": "Protocol that Pilight recognizes. See https://manual.pilight.org/protocols/index.html for supported protocols and additional parameters that each protocol supports.", + "name": "Protocol" } - } + }, + "name": "Send" } } } diff --git a/homeassistant/components/ping/strings.json b/homeassistant/components/ping/strings.json index 4dc2e8ec7fc..ff3676bd471 100644 --- a/homeassistant/components/ping/strings.json +++ b/homeassistant/components/ping/strings.json @@ -1,6 +1,27 @@ { + "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "invalid_ip_address": "Invalid IP address." + }, + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the device you want to ping." + }, + "description": "Ping allows you to check the availability of a host.", + "title": "Add Ping" + } + } + }, "entity": { "sensor": { + "jitter": { + "name": "Jitter" + }, "round_trip_time_avg": { "name": "Round-trip time average" }, @@ -12,45 +33,24 @@ }, "round_trip_time_min": { "name": "Round-trip time minimum" - }, - "jitter": { - "name": "Jitter" } } }, - "config": { - "step": { - "user": { - "title": "Add Ping", - "description": "Ping allows you to check the availability of a host.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the device you want to ping." - } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_ip_address": "Invalid IP address." - } - }, "options": { + "abort": { + "invalid_ip_address": "[%key:component::ping::config::abort::invalid_ip_address%]" + }, "step": { "init": { "data": { - "host": "[%key:common::config_flow::data::host%]", + "consider_home": "Consider home interval", "count": "Ping count", - "consider_home": "Consider home interval" + "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "consider_home": "Seconds to wait till marking a device tracker as not home after not being seen." } } - }, - "abort": { - "invalid_ip_address": "[%key:component::ping::config::abort::invalid_ip_address%]" } } } diff --git a/homeassistant/components/plaato/strings.json b/homeassistant/components/plaato/strings.json index 66c5d18e0e7..ccb5b1753f3 100644 --- a/homeassistant/components/plaato/strings.json +++ b/homeassistant/components/plaato/strings.json @@ -1,54 +1,54 @@ { "config": { - "step": { - "user": { - "title": "Set up the Plaato devices", - "description": "[%key:common::config_flow::description::confirm_setup%]", - "data": { - "device_name": "Name your device", - "device_type": "Type of Plaato device" - } - }, - "api_method": { - "title": "Select API method", - "description": "To be able to query the API an 'auth token' is required which can be obtained by following [these instructions]({auth_token_url})\n\nSelected device: **{device_type}** \n\nIf you prefer to use the built-in webhook method (Airlock only) please check the box below and leave 'Auth token' blank", - "data": { - "use_webhook": "Use webhook", - "token": "Auth token" - } - }, - "webhook": { - "title": "Webhook to use", - "description": "To send events to Home Assistant, you will need to set up the webhook feature in Plaato Airlock.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details." - } - }, - "error": { - "invalid_webhook_device": "You have selected a device that does not support sending data to a webhook. It is only available for the Airlock", - "no_auth_token": "You need to add an auth token", - "no_api_method": "You need to add an auth token or select webhook" - }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "webhook_not_internet_accessible": "[%key:common::config_flow::abort::webhook_not_internet_accessible%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "webhook_not_internet_accessible": "[%key:common::config_flow::abort::webhook_not_internet_accessible%]" }, "create_entry": { "default": "Your Plaato {device_type} with name **{device_name}** was successfully set up!" + }, + "error": { + "invalid_webhook_device": "You have selected a device that does not support sending data to a webhook. It is only available for the Airlock", + "no_api_method": "You need to add an auth token or select webhook", + "no_auth_token": "You need to add an auth token" + }, + "step": { + "api_method": { + "data": { + "token": "Auth token", + "use_webhook": "Use webhook" + }, + "description": "To be able to query the API an 'auth token' is required which can be obtained by following [these instructions]({auth_token_url})\n\nSelected device: **{device_type}** \n\nIf you prefer to use the built-in webhook method (Airlock only) please check the box below and leave 'Auth token' blank", + "title": "Select API method" + }, + "user": { + "data": { + "device_name": "Name your device", + "device_type": "Type of Plaato device" + }, + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "Set up the Plaato devices" + }, + "webhook": { + "description": "To send events to Home Assistant, you will need to set up the webhook feature in Plaato Airlock.\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n\nSee [the documentation]({docs_url}) for further details.", + "title": "Webhook to use" + } } }, "options": { "step": { - "webhook": { - "title": "Options for Plaato Airlock", - "description": "Webhook info:\n\n- URL: `{webhook_url}`\n- Method: POST" - }, "user": { - "title": "Options for Plaato", - "description": "Set the update interval (minutes)", "data": { "update_interval": "Update interval (minutes)" - } + }, + "description": "Set the update interval (minutes)", + "title": "Options for Plaato" + }, + "webhook": { + "description": "Webhook info:\n\n- URL: `{webhook_url}`\n- Method: POST", + "title": "Options for Plaato Airlock" } } } diff --git a/homeassistant/components/plant/strings.json b/homeassistant/components/plant/strings.json index 853e5daee1f..4a0271292d3 100644 --- a/homeassistant/components/plant/strings.json +++ b/homeassistant/components/plant/strings.json @@ -1,5 +1,4 @@ { - "title": "Plant Monitor", "entity_component": { "_": { "name": "[%key:component::plant::title%]", @@ -8,5 +7,6 @@ "problem": "[%key:component::binary_sensor::entity_component::problem::state::on%]" } } - } + }, + "title": "Plant Monitor" } diff --git a/homeassistant/components/playstation_network/icons.json b/homeassistant/components/playstation_network/icons.json index 5997f43fb5c..86202d657c9 100644 --- a/homeassistant/components/playstation_network/icons.json +++ b/homeassistant/components/playstation_network/icons.json @@ -1,68 +1,68 @@ { "entity": { - "media_player": { - "playstation": { - "default": "mdi:sony-playstation" - } - }, "binary_sensor": { "ps_plus_status": { "default": "mdi:shape-plus-outline" } }, - "sensor": { - "trophy_level": { - "default": "mdi:trophy-award" - }, - "trophy_level_progress": { - "default": "mdi:trending-up" - }, - "earned_trophies_platinum": { - "default": "mdi:trophy" - }, - "earned_trophies_gold": { - "default": "mdi:trophy-variant" - }, - "earned_trophies_silver": { - "default": "mdi:trophy-variant" - }, - "earned_trophies_bronze": { - "default": "mdi:trophy-variant" - }, - "online_id": { - "default": "mdi:account" - }, - "last_online": { - "default": "mdi:account-clock" - }, - "online_status": { - "default": "mdi:account-badge", - "state": { - "busy": "mdi:account-cancel", - "availabletocommunicate": "mdi:cellphone", - "offline": "mdi:account-off-outline" - } - }, - "now_playing": { - "default": "mdi:controller", - "state": { - "unknown": "mdi:controller-off", - "unavailable": "mdi:controller-off" - } - } - }, "image": { - "share_profile": { - "default": "mdi:share-variant" - }, "avatar": { "default": "mdi:account-circle" + }, + "share_profile": { + "default": "mdi:share-variant" + } + }, + "media_player": { + "playstation": { + "default": "mdi:sony-playstation" } }, "notify": { "group_message": { "default": "mdi:forum" } + }, + "sensor": { + "earned_trophies_bronze": { + "default": "mdi:trophy-variant" + }, + "earned_trophies_gold": { + "default": "mdi:trophy-variant" + }, + "earned_trophies_platinum": { + "default": "mdi:trophy" + }, + "earned_trophies_silver": { + "default": "mdi:trophy-variant" + }, + "last_online": { + "default": "mdi:account-clock" + }, + "now_playing": { + "default": "mdi:controller", + "state": { + "unavailable": "mdi:controller-off", + "unknown": "mdi:controller-off" + } + }, + "online_id": { + "default": "mdi:account" + }, + "online_status": { + "default": "mdi:account-badge", + "state": { + "availabletocommunicate": "mdi:cellphone", + "busy": "mdi:account-cancel", + "offline": "mdi:account-off-outline" + } + }, + "trophy_level": { + "default": "mdi:trophy-award" + }, + "trophy_level_progress": { + "default": "mdi:trending-up" + } } } } diff --git a/homeassistant/components/playstation_network/strings.json b/homeassistant/components/playstation_network/strings.json index 845e32ea544..075e190bd71 100644 --- a/homeassistant/components/playstation_network/strings.json +++ b/homeassistant/components/playstation_network/strings.json @@ -1,6 +1,39 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "already_configured_as_subentry": "Already configured as a friend for another account. Delete the existing entry first.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unique_id_mismatch": "The provided NPSSO token corresponds to the account {wrong_account}. Please re-authenticate with the account **{name}**" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_account": "[%key:common::config_flow::error::invalid_access_token%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "npsso": "[%key:component::playstation_network::config::step::user::data::npsso%]" + }, + "data_description": { + "npsso": "[%key:component::playstation_network::config::step::user::data_description::npsso%]" + }, + "description": "The NPSSO token for **{name}** has expired. To obtain a new one, log in to your [PlayStation account]({psn_link}) first. Then [click here]({npsso_link}) to retrieve the token.", + "title": "Re-authenticate {name} with PlayStation Network" + }, + "reconfigure": { + "data": { + "npsso": "[%key:component::playstation_network::config::step::user::data::npsso%]" + }, + "data_description": { + "npsso": "[%key:component::playstation_network::config::step::user::data_description::npsso%]" + }, + "description": "[%key:component::playstation_network::config::step::user::description%]", + "title": "Update PlayStation Network configuration" + }, "user": { "data": { "npsso": "NPSSO token" @@ -9,167 +42,134 @@ "npsso": "The NPSSO token is generated upon successful login of your PlayStation Network account and is used to authenticate your requests within Home Assistant." }, "description": "To obtain your NPSSO token, log in to your [PlayStation account]({psn_link}) first. Then [click here]({npsso_link}) to retrieve the token." - }, - "reauth_confirm": { - "title": "Re-authenticate {name} with PlayStation Network", - "description": "The NPSSO token for **{name}** has expired. To obtain a new one, log in to your [PlayStation account]({psn_link}) first. Then [click here]({npsso_link}) to retrieve the token.", - "data": { - "npsso": "[%key:component::playstation_network::config::step::user::data::npsso%]" - }, - "data_description": { - "npsso": "[%key:component::playstation_network::config::step::user::data_description::npsso%]" - } - }, - "reconfigure": { - "title": "Update PlayStation Network configuration", - "description": "[%key:component::playstation_network::config::step::user::description%]", - "data": { - "npsso": "[%key:component::playstation_network::config::step::user::data::npsso%]" - }, - "data_description": { - "npsso": "[%key:component::playstation_network::config::step::user::data_description::npsso%]" - } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "[%key:common::config_flow::error::invalid_access_token%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_configured_as_subentry": "Already configured as a friend for another account. Delete the existing entry first.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unique_id_mismatch": "The provided NPSSO token corresponds to the account {wrong_account}. Please re-authenticate with the account **{name}**", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "config_subentries": { "friend": { - "step": { - "user": { - "title": "Friend online status", - "description": "Track the online status of a PlayStation Network friend.", - "data": { - "account_id": "Online ID" - }, - "data_description": { - "account_id": "Select a friend from your friend list to track their online status." - } - } - }, - "initiate_flow": { - "user": "Add friend" + "abort": { + "already_configured": "Already configured as a friend in this or another account.", + "already_configured_as_entry": "Already configured as a service. This account cannot be added as a friend.", + "config_entry_disabled": "Cannot add friend accounts when the main account is disabled or not loaded.", + "no_friends": "Looks like your friend list is empty right now. Add friends on PlayStation Network first." }, "entry_type": "Friend", "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured_as_entry": "Already configured as a service. This account cannot be added as a friend.", - "already_configured": "Already configured as a friend in this or another account.", - "no_friends": "Looks like your friend list is empty right now. Add friends on PlayStation Network first.", - "config_entry_disabled": "Cannot add friend accounts when the main account is disabled or not loaded." + "initiate_flow": { + "user": "Add friend" + }, + "step": { + "user": { + "data": { + "account_id": "Online ID" + }, + "data_description": { + "account_id": "Select a friend from your friend list to track their online status." + }, + "description": "Track the online status of a PlayStation Network friend.", + "title": "Friend online status" + } } } }, - "exceptions": { - "not_ready": { - "message": "Authentication to the PlayStation Network failed." - }, - "update_failed": { - "message": "Data retrieval failed when trying to access the PlayStation Network." - }, - "group_invalid": { - "message": "Failed to send message to group {name}. The group is invalid or does not exist." - }, - "send_message_forbidden": { - "message": "Failed to send message to {name}. You are not allowed to send messages to this group or friend." - }, - "send_message_failed": { - "message": "Failed to send message to {name}. Try again later." - }, - "user_profile_private": { - "message": "Unable to retrieve data for {user}. Privacy settings restrict access to activity." - }, - "user_not_found": { - "message": "Unable to retrieve data for {user}. User does not exist or has been removed." - } - }, "entity": { "binary_sensor": { "ps_plus_status": { "name": "Subscribed to PlayStation Plus" } }, - "sensor": { - "trophy_level": { - "name": "Trophy level" - }, - "trophy_level_progress": { - "name": "Next level" - }, - "earned_trophies_platinum": { - "name": "Platinum trophies", - "unit_of_measurement": "trophies" - }, - "earned_trophies_gold": { - "name": "Gold trophies", - "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" - }, - "earned_trophies_silver": { - "name": "Silver trophies", - "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" - }, - "earned_trophies_bronze": { - "name": "Bronze trophies", - "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" - }, - "online_id": { - "name": "Online ID" - }, - "last_online": { - "name": "Last online" - }, - "online_status": { - "name": "Online status", - "state": { - "offline": "Offline", - "availabletoplay": "Online", - "availabletocommunicate": "Online on PS App", - "busy": "Away" - } - }, - "now_playing": { - "name": "Now playing" - } - }, "image": { - "share_profile": { - "name": "Share profile" - }, "avatar": { "name": "Avatar" }, "now_playing_image": { "name": "[%key:component::playstation_network::entity::sensor::now_playing::name%]" + }, + "share_profile": { + "name": "Share profile" } }, "notify": { - "group_message": { - "name": "Group: {name}" - }, "direct_message": { "name": "Direct message: {name}" + }, + "group_message": { + "name": "Group: {name}" } + }, + "sensor": { + "earned_trophies_bronze": { + "name": "Bronze trophies", + "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" + }, + "earned_trophies_gold": { + "name": "Gold trophies", + "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" + }, + "earned_trophies_platinum": { + "name": "Platinum trophies", + "unit_of_measurement": "trophies" + }, + "earned_trophies_silver": { + "name": "Silver trophies", + "unit_of_measurement": "[%key:component::playstation_network::entity::sensor::earned_trophies_platinum::unit_of_measurement%]" + }, + "last_online": { + "name": "Last online" + }, + "now_playing": { + "name": "Now playing" + }, + "online_id": { + "name": "Online ID" + }, + "online_status": { + "name": "Online status", + "state": { + "availabletocommunicate": "Online on PS App", + "availabletoplay": "Online", + "busy": "Away", + "offline": "Offline" + } + }, + "trophy_level": { + "name": "Trophy level" + }, + "trophy_level_progress": { + "name": "Next level" + } + } + }, + "exceptions": { + "group_invalid": { + "message": "Failed to send message to group {name}. The group is invalid or does not exist." + }, + "not_ready": { + "message": "Authentication to the PlayStation Network failed." + }, + "send_message_failed": { + "message": "Failed to send message to {name}. Try again later." + }, + "send_message_forbidden": { + "message": "Failed to send message to {name}. You are not allowed to send messages to this group or friend." + }, + "update_failed": { + "message": "Data retrieval failed when trying to access the PlayStation Network." + }, + "user_not_found": { + "message": "Unable to retrieve data for {user}. User does not exist or has been removed." + }, + "user_profile_private": { + "message": "Unable to retrieve data for {user}. Privacy settings restrict access to activity." } }, "issues": { "group_chat_forbidden": { - "title": "Failed to retrieve group chats for {name}", - "description": "The PlayStation Network integration was unable to retrieve group chats for **{name}**.\n\nThis is likely due to insufficient permissions (Error: `{error_message}`).\n\nTo resolve this issue, please ensure the account's chat and messaging feature is not restricted by parental controls or other privacy settings.\n\nIf the restriction is intentional, you can safely ignore this message." + "description": "The PlayStation Network integration was unable to retrieve group chats for **{name}**.\n\nThis is likely due to insufficient permissions (Error: `{error_message}`).\n\nTo resolve this issue, please ensure the account's chat and messaging feature is not restricted by parental controls or other privacy settings.\n\nIf the restriction is intentional, you can safely ignore this message.", + "title": "Failed to retrieve group chats for {name}" } } } diff --git a/homeassistant/components/plex/strings.json b/homeassistant/components/plex/strings.json index 8dd70b59c01..d767953e600 100644 --- a/homeassistant/components/plex/strings.json +++ b/homeassistant/components/plex/strings.json @@ -1,32 +1,12 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "description": "Continue to {plex_server_url} to link a Plex server." - }, - "user_advanced": { - "data": { - "setup_method": "Setup method" - } - }, - "manual_setup": { - "title": "Manual Plex configuration", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "token": "Token (optional)" - } - }, - "select_server": { - "title": "Select Plex server", - "description": "Multiple servers available, select one:", - "data": { - "server": "Server" - } - } + "abort": { + "all_configured": "All linked servers already configured", + "already_configured": "This Plex server is already configured", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "token_request_timeout": "Timed out obtaining token", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "faulty_credentials": "Authorization failed, verify token", @@ -35,24 +15,31 @@ "not_found": "Plex server not found", "ssl_error": "SSL certificate issue" }, - "abort": { - "all_configured": "All linked servers already configured", - "already_configured": "This Plex server is already configured", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "token_request_timeout": "Timed out obtaining token", - "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { + "flow_title": "{name} ({host})", "step": { - "plex_mp_settings": { - "description": "Options for Plex media players", + "manual_setup": { "data": { - "use_episode_art": "Use episode art", - "ignore_new_shared_users": "Ignore new managed/shared users", - "monitored_users": "Monitored users", - "ignore_plex_web_clients": "Ignore Plex web clients" + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]", + "ssl": "[%key:common::config_flow::data::ssl%]", + "token": "Token (optional)", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "title": "Manual Plex configuration" + }, + "select_server": { + "data": { + "server": "Server" + }, + "description": "Multiple servers available, select one:", + "title": "Select Plex server" + }, + "user": { + "description": "Continue to {plex_server_url} to link a Plex server." + }, + "user_advanced": { + "data": { + "setup_method": "Setup method" } } } @@ -69,20 +56,33 @@ } } }, + "options": { + "step": { + "plex_mp_settings": { + "data": { + "ignore_new_shared_users": "Ignore new managed/shared users", + "ignore_plex_web_clients": "Ignore Plex web clients", + "monitored_users": "Monitored users", + "use_episode_art": "Use episode art" + }, + "description": "Options for Plex media players" + } + } + }, "services": { "refresh_library": { - "name": "Refresh library", "description": "Refreshes a Plex library to scan for new and updated media.", "fields": { - "server_name": { - "name": "Server name", - "description": "Name of a Plex server if multiple Plex servers configured." - }, "library_name": { - "name": "Library name", - "description": "Name of the Plex library to refresh." + "description": "Name of the Plex library to refresh.", + "name": "Library name" + }, + "server_name": { + "description": "Name of a Plex server if multiple Plex servers configured.", + "name": "Server name" } - } + }, + "name": "Refresh library" } } } diff --git a/homeassistant/components/plugwise/icons.json b/homeassistant/components/plugwise/icons.json index 2a57dd4350f..55ed4bf19d7 100644 --- a/homeassistant/components/plugwise/icons.json +++ b/homeassistant/components/plugwise/icons.json @@ -66,11 +66,11 @@ "dhw_mode": { "default": "mdi:shower", "state": { + "auto": "mdi:auto-mode", + "boost": "mdi:rocket-launch", "comfort": "mdi:sofa", "eco": "mdi:leaf", - "off": "mdi:circle-off-outline", - "boost": "mdi:rocket-launch", - "auto": "mdi:auto-mode" + "off": "mdi:circle-off-outline" } }, "gateway_mode": { @@ -84,11 +84,11 @@ "regulation_mode": { "default": "mdi:hvac", "state": { - "bleeding_hot": "mdi:fire-circle", "bleeding_cold": "mdi:water-circle", - "off": "mdi:circle-off-outline", + "bleeding_hot": "mdi:fire-circle", + "cooling": "mdi:snowflake", "heating": "mdi:radiator", - "cooling": "mdi:snowflake" + "off": "mdi:circle-off-outline" } }, "select_schedule": { diff --git a/homeassistant/components/plugwise/strings.json b/homeassistant/components/plugwise/strings.json index 9c005c4c0df..d31086fa342 100644 --- a/homeassistant/components/plugwise/strings.json +++ b/homeassistant/components/plugwise/strings.json @@ -1,33 +1,10 @@ { "config": { - "step": { - "reconfigure": { - "description": "Update configuration for {title}.", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "[%key:component::plugwise::config::step::user::data_description::host%]", - "port": "[%key:component::plugwise::config::step::user::data_description::port%]" - } - }, - "user": { - "title": "Connect to the Smile", - "description": "Please enter", - "data": { - "host": "[%key:common::config_flow::data::ip%]", - "password": "Smile ID", - "port": "[%key:common::config_flow::data::port%]", - "username": "Smile username" - }, - "data_description": { - "password": "The Smile ID printed on the label on the back of your Adam, Smile-T, or P1.", - "host": "The hostname or IP address of your Smile. You can find it in your router or the Plugwise app.", - "port": "By default your Smile uses port 80, normally you should not have to change this.", - "username": "Default is `smile`, or `stretch` for the legacy Stretch." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "anna_with_adam": "Both Anna and Adam detected. Add your Adam instead of your Anna", + "not_the_same_smile": "The configured Smile ID does not match the Smile ID on the requested IP address.", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -37,11 +14,34 @@ "unknown": "[%key:common::config_flow::error::unknown%]", "unsupported": "Device with unsupported firmware" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "anna_with_adam": "Both Anna and Adam detected. Add your Adam instead of your Anna", - "not_the_same_smile": "The configured Smile ID does not match the Smile ID on the requested IP address.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::plugwise::config::step::user::data_description::host%]", + "port": "[%key:component::plugwise::config::step::user::data_description::port%]" + }, + "description": "Update configuration for {title}." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]", + "password": "Smile ID", + "port": "[%key:common::config_flow::data::port%]", + "username": "Smile username" + }, + "data_description": { + "host": "The hostname or IP address of your Smile. You can find it in your router or the Plugwise app.", + "password": "The Smile ID printed on the label on the back of your Adam, Smile-T, or P1.", + "port": "By default your Smile uses port 80, normally you should not have to change this.", + "username": "Default is `smile`, or `stretch` for the legacy Stretch." + }, + "description": "Please enter", + "title": "Connect to the Smile" + } } }, "entity": { @@ -52,6 +52,9 @@ "cooling_enabled": { "name": "Cooling enabled" }, + "cooling_state": { + "name": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::cooling%]" + }, "dhw_state": { "name": "DHW state" }, @@ -61,14 +64,11 @@ "heating_state": { "name": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::heating%]" }, - "cooling_state": { - "name": "[%key:component::climate::entity_component::_::state_attributes::hvac_action::state::cooling%]" + "plugwise_notification": { + "name": "Plugwise notification" }, "secondary_boiler_state": { "name": "Secondary boiler state" - }, - "plugwise_notification": { - "name": "Plugwise notification" } }, "button": { @@ -98,12 +98,12 @@ } }, "number": { - "maximum_boiler_temperature": { - "name": "Maximum boiler temperature setpoint" - }, "max_dhw_temperature": { "name": "Domestic hot water setpoint" }, + "maximum_boiler_temperature": { + "name": "Maximum boiler temperature setpoint" + }, "temperature_offset": { "name": "Temperature offset" } @@ -112,10 +112,10 @@ "dhw_mode": { "name": "DHW mode", "state": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", "boost": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::boost%]", - "comfort": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]" + "comfort": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]", + "off": "[%key:common::state::off%]" } }, "gateway_mode": { @@ -144,143 +144,143 @@ } }, "sensor": { - "setpoint": { - "name": "Setpoint" - }, "cooling_setpoint": { "name": "Cooling setpoint" }, - "heating_setpoint": { - "name": "Heating setpoint" - }, - "intended_boiler_temperature": { - "name": "Intended boiler temperature" - }, - "temperature_difference": { - "name": "Temperature difference" - }, - "outdoor_temperature": { - "name": "Outdoor temperature" - }, - "outdoor_air_temperature": { - "name": "Outdoor air temperature" - }, - "water_temperature": { - "name": "Water temperature" - }, - "return_temperature": { - "name": "Return temperature" - }, - "electricity_consumed": { - "name": "Electricity consumed" - }, - "electricity_produced": { - "name": "Electricity produced" - }, - "electricity_consumed_interval": { - "name": "Electricity consumed interval" - }, - "electricity_consumed_peak_interval": { - "name": "Electricity consumed peak interval" - }, - "electricity_consumed_off_peak_interval": { - "name": "Electricity consumed off-peak interval" - }, - "electricity_produced_interval": { - "name": "Electricity produced interval" - }, - "electricity_produced_peak_interval": { - "name": "Electricity produced peak interval" - }, - "electricity_produced_off_peak_interval": { - "name": "Electricity produced off-peak interval" - }, - "electricity_consumed_point": { - "name": "Electricity consumed point" - }, - "electricity_consumed_off_peak_point": { - "name": "Electricity consumed off-peak point" - }, - "electricity_consumed_peak_point": { - "name": "Electricity consumed peak point" - }, - "electricity_consumed_off_peak_cumulative": { - "name": "Electricity consumed off-peak cumulative" - }, - "electricity_consumed_peak_cumulative": { - "name": "Electricity consumed peak cumulative" - }, - "electricity_produced_point": { - "name": "Electricity produced point" - }, - "electricity_produced_off_peak_point": { - "name": "Electricity produced off-peak point" - }, - "electricity_produced_peak_point": { - "name": "Electricity produced peak point" - }, - "electricity_produced_off_peak_cumulative": { - "name": "Electricity produced off-peak cumulative" - }, - "electricity_produced_peak_cumulative": { - "name": "Electricity produced peak cumulative" - }, - "electricity_phase_one_consumed": { - "name": "Electricity phase one consumed" - }, - "electricity_phase_two_consumed": { - "name": "Electricity phase two consumed" - }, - "electricity_phase_three_consumed": { - "name": "Electricity phase three consumed" - }, - "electricity_phase_one_produced": { - "name": "Electricity phase one produced" - }, - "electricity_phase_two_produced": { - "name": "Electricity phase two produced" - }, - "electricity_phase_three_produced": { - "name": "Electricity phase three produced" - }, - "voltage_phase_one": { - "name": "Voltage phase one" - }, - "voltage_phase_two": { - "name": "Voltage phase two" - }, - "voltage_phase_three": { - "name": "Voltage phase three" - }, - "gas_consumed_interval": { - "name": "Gas consumed interval" - }, - "gas_consumed_cumulative": { - "name": "Gas consumed cumulative" - }, - "net_electricity_point": { - "name": "Net electricity point" - }, - "net_electricity_cumulative": { - "name": "Net electricity cumulative" - }, - "modulation_level": { - "name": "Modulation level" - }, - "valve_position": { - "name": "Valve position" - }, - "water_pressure": { - "name": "Water pressure" - }, "dhw_temperature": { "name": "DHW temperature" }, "domestic_hot_water_setpoint": { "name": "DHW setpoint" }, + "electricity_consumed": { + "name": "Electricity consumed" + }, + "electricity_consumed_interval": { + "name": "Electricity consumed interval" + }, + "electricity_consumed_off_peak_cumulative": { + "name": "Electricity consumed off-peak cumulative" + }, + "electricity_consumed_off_peak_interval": { + "name": "Electricity consumed off-peak interval" + }, + "electricity_consumed_off_peak_point": { + "name": "Electricity consumed off-peak point" + }, + "electricity_consumed_peak_cumulative": { + "name": "Electricity consumed peak cumulative" + }, + "electricity_consumed_peak_interval": { + "name": "Electricity consumed peak interval" + }, + "electricity_consumed_peak_point": { + "name": "Electricity consumed peak point" + }, + "electricity_consumed_point": { + "name": "Electricity consumed point" + }, + "electricity_phase_one_consumed": { + "name": "Electricity phase one consumed" + }, + "electricity_phase_one_produced": { + "name": "Electricity phase one produced" + }, + "electricity_phase_three_consumed": { + "name": "Electricity phase three consumed" + }, + "electricity_phase_three_produced": { + "name": "Electricity phase three produced" + }, + "electricity_phase_two_consumed": { + "name": "Electricity phase two consumed" + }, + "electricity_phase_two_produced": { + "name": "Electricity phase two produced" + }, + "electricity_produced": { + "name": "Electricity produced" + }, + "electricity_produced_interval": { + "name": "Electricity produced interval" + }, + "electricity_produced_off_peak_cumulative": { + "name": "Electricity produced off-peak cumulative" + }, + "electricity_produced_off_peak_interval": { + "name": "Electricity produced off-peak interval" + }, + "electricity_produced_off_peak_point": { + "name": "Electricity produced off-peak point" + }, + "electricity_produced_peak_cumulative": { + "name": "Electricity produced peak cumulative" + }, + "electricity_produced_peak_interval": { + "name": "Electricity produced peak interval" + }, + "electricity_produced_peak_point": { + "name": "Electricity produced peak point" + }, + "electricity_produced_point": { + "name": "Electricity produced point" + }, + "gas_consumed_cumulative": { + "name": "Gas consumed cumulative" + }, + "gas_consumed_interval": { + "name": "Gas consumed interval" + }, + "heating_setpoint": { + "name": "Heating setpoint" + }, + "intended_boiler_temperature": { + "name": "Intended boiler temperature" + }, "maximum_boiler_temperature": { "name": "Maximum boiler temperature" + }, + "modulation_level": { + "name": "Modulation level" + }, + "net_electricity_cumulative": { + "name": "Net electricity cumulative" + }, + "net_electricity_point": { + "name": "Net electricity point" + }, + "outdoor_air_temperature": { + "name": "Outdoor air temperature" + }, + "outdoor_temperature": { + "name": "Outdoor temperature" + }, + "return_temperature": { + "name": "Return temperature" + }, + "setpoint": { + "name": "Setpoint" + }, + "temperature_difference": { + "name": "Temperature difference" + }, + "valve_position": { + "name": "Valve position" + }, + "voltage_phase_one": { + "name": "Voltage phase one" + }, + "voltage_phase_three": { + "name": "Voltage phase three" + }, + "voltage_phase_two": { + "name": "Voltage phase two" + }, + "water_pressure": { + "name": "Water pressure" + }, + "water_temperature": { + "name": "Water temperature" } }, "switch": { diff --git a/homeassistant/components/plum_lightpad/strings.json b/homeassistant/components/plum_lightpad/strings.json index d0268287d47..257b6a3f12e 100644 --- a/homeassistant/components/plum_lightpad/strings.json +++ b/homeassistant/components/plum_lightpad/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Plum Lightpad integration has been removed", - "description": "The Plum Lightpad integration has been removed from Home Assistant.\n\nThe required cloud services are no longer available since the Plum servers have been shut down. To resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Plum Lightpad integration entries]({entries})." + "description": "The Plum Lightpad integration has been removed from Home Assistant.\n\nThe required cloud services are no longer available since the Plum servers have been shut down. To resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Plum Lightpad integration entries]({entries}).", + "title": "The Plum Lightpad integration has been removed" } } } diff --git a/homeassistant/components/point/strings.json b/homeassistant/components/point/strings.json index 2ef55d6204a..30042061639 100644 --- a/homeassistant/components/point/strings.json +++ b/homeassistant/components/point/strings.json @@ -3,16 +3,16 @@ "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%]", + "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%]", - "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%]", "unknown": "[%key:common::config_flow::error::unknown%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", "wrong_account": "You can only reauthenticate this account with the same user." }, "create_entry": { @@ -20,17 +20,17 @@ }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Point integration needs to re-authenticate your account" + "description": "The Point integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } } } diff --git a/homeassistant/components/pooldose/icons.json b/homeassistant/components/pooldose/icons.json index 4a51b4fdc14..e68f72fe1d9 100644 --- a/homeassistant/components/pooldose/icons.json +++ b/homeassistant/components/pooldose/icons.json @@ -1,29 +1,32 @@ { "entity": { "sensor": { - "orp": { - "default": "mdi:water-check" - }, - "ph_type_dosing": { - "default": "mdi:flask" - }, - "peristaltic_ph_dosing": { - "default": "mdi:pump" + "ofa_orp_value": { + "default": "mdi:clock" }, "ofa_ph_value": { "default": "mdi:clock" }, + "orp": { + "default": "mdi:water-check" + }, + "orp_calibration_offset": { + "default": "mdi:tune" + }, + "orp_calibration_slope": { + "default": "mdi:slope-downhill" + }, + "orp_calibration_type": { + "default": "mdi:form-select" + }, "orp_type_dosing": { "default": "mdi:flask" }, "peristaltic_orp_dosing": { "default": "mdi:pump" }, - "ofa_orp_value": { - "default": "mdi:clock" - }, - "ph_calibration_type": { - "default": "mdi:form-select" + "peristaltic_ph_dosing": { + "default": "mdi:pump" }, "ph_calibration_offset": { "default": "mdi:tune" @@ -31,14 +34,11 @@ "ph_calibration_slope": { "default": "mdi:slope-downhill" }, - "orp_calibration_type": { + "ph_calibration_type": { "default": "mdi:form-select" }, - "orp_calibration_offset": { - "default": "mdi:tune" - }, - "orp_calibration_slope": { - "default": "mdi:slope-downhill" + "ph_type_dosing": { + "default": "mdi:flask" } } } diff --git a/homeassistant/components/pooldose/strings.json b/homeassistant/components/pooldose/strings.json index 59e2ee7a950..51bdb0ffdf7 100644 --- a/homeassistant/components/pooldose/strings.json +++ b/homeassistant/components/pooldose/strings.json @@ -1,87 +1,85 @@ { "config": { - "step": { - "user": { - "title": "Set up SEKO PoolDose device", - "description": "Login handling not supported by API. Device password must be deactivated, i.e., set to default value (0000).", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "IP address or hostname of your device" - } - }, - "dhcp_confirm": { - "title": "Confirm DHCP discovered PoolDose device", - "description": "A PoolDose device was found on your network at {ip} with MAC address {mac}.\n\nDo you want to add {name} to Home Assistant?" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "api_not_set": "API version not found in device response. Device firmware may not be compatible with this integration.", - "api_not_supported": "Unsupported API version {api_version_is} (expected: {api_version_should}). Device firmware may not be compatible with this integration.", - "params_fetch_failed": "Unable to fetch core parameters from device. Device firmware may not be compatible with this integration.", - "no_device_info": "Unable to retrieve device information. Device may not be properly initialized or may be an unsupported model.", - "no_serial_number": "No serial number found on the device. Device may not be properly configured or may be an unsupported model.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_device_info": "Unable to retrieve device information", "no_serial_number": "No serial number found on the device" + }, + "error": { + "api_not_set": "API version not found in device response. Device firmware may not be compatible with this integration.", + "api_not_supported": "Unsupported API version {api_version_is} (expected: {api_version_should}). Device firmware may not be compatible with this integration.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_device_info": "Unable to retrieve device information. Device may not be properly initialized or may be an unsupported model.", + "no_serial_number": "No serial number found on the device. Device may not be properly configured or may be an unsupported model.", + "params_fetch_failed": "Unable to fetch core parameters from device. Device firmware may not be compatible with this integration.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "dhcp_confirm": { + "description": "A PoolDose device was found on your network at {ip} with MAC address {mac}.\n\nDo you want to add {name} to Home Assistant?", + "title": "Confirm DHCP discovered PoolDose device" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "IP address or hostname of your device" + }, + "description": "Login handling not supported by API. Device password must be deactivated, i.e., set to default value (0000).", + "title": "Set up SEKO PoolDose device" + } } }, "entity": { "sensor": { - "orp": { - "name": "ORP" - }, - "ph_type_dosing": { - "name": "pH dosing type", - "state": { - "alcalyne": "pH+", - "acid": "pH-" - } - }, - "peristaltic_ph_dosing": { - "name": "pH peristaltic dosing", - "state": { - "off": "[%key:common::state::off%]", - "proportional": "Proportional", - "on_off": "On/Off", - "timed": "Timed" - } + "ofa_orp_value": { + "name": "ORP overfeed alert time" }, "ofa_ph_value": { "name": "pH overfeed alert time" }, + "orp": { + "name": "ORP" + }, + "orp_calibration_offset": { + "name": "ORP calibration offset" + }, + "orp_calibration_slope": { + "name": "ORP calibration slope" + }, + "orp_calibration_type": { + "name": "ORP calibration type", + "state": { + "1_point": "[%key:component::pooldose::entity::sensor::ph_calibration_type::state::1_point%]", + "off": "[%key:common::state::off%]", + "reference": "[%key:component::pooldose::entity::sensor::ph_calibration_type::state::reference%]" + } + }, "orp_type_dosing": { "name": "ORP dosing type", "state": { - "low": "[%key:common::state::low%]", - "high": "[%key:common::state::high%]" + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]" } }, "peristaltic_orp_dosing": { "name": "ORP peristaltic dosing", "state": { "off": "[%key:common::state::off%]", - "proportional": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::proportional%]", "on_off": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::on_off%]", + "proportional": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::proportional%]", "timed": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::timed%]" } }, - "ofa_orp_value": { - "name": "ORP overfeed alert time" - }, - "ph_calibration_type": { - "name": "pH calibration type", + "peristaltic_ph_dosing": { + "name": "pH peristaltic dosing", "state": { "off": "[%key:common::state::off%]", - "reference": "Reference", - "1_point": "1 point", - "2_points": "2 points" + "on_off": "On/Off", + "proportional": "Proportional", + "timed": "Timed" } }, "ph_calibration_offset": { @@ -90,19 +88,21 @@ "ph_calibration_slope": { "name": "pH calibration slope" }, - "orp_calibration_type": { - "name": "ORP calibration type", + "ph_calibration_type": { + "name": "pH calibration type", "state": { + "1_point": "1 point", + "2_points": "2 points", "off": "[%key:common::state::off%]", - "reference": "[%key:component::pooldose::entity::sensor::ph_calibration_type::state::reference%]", - "1_point": "[%key:component::pooldose::entity::sensor::ph_calibration_type::state::1_point%]" + "reference": "Reference" } }, - "orp_calibration_offset": { - "name": "ORP calibration offset" - }, - "orp_calibration_slope": { - "name": "ORP calibration slope" + "ph_type_dosing": { + "name": "pH dosing type", + "state": { + "acid": "pH-", + "alcalyne": "pH+" + } } } } diff --git a/homeassistant/components/poolsense/icons.json b/homeassistant/components/poolsense/icons.json index fb36897af78..1800f221d0e 100644 --- a/homeassistant/components/poolsense/icons.json +++ b/homeassistant/components/poolsense/icons.json @@ -4,9 +4,6 @@ "chlorine": { "default": "mdi:pool" }, - "water_temp": { - "default": "mdi:coolant-temperature" - }, "chlorine_high": { "default": "mdi:pool" }, @@ -18,6 +15,9 @@ }, "ph_low": { "default": "mdi:pool" + }, + "water_temp": { + "default": "mdi:coolant-temperature" } } } diff --git a/homeassistant/components/poolsense/strings.json b/homeassistant/components/poolsense/strings.json index 02f186994e2..906cc556d2b 100644 --- a/homeassistant/components/poolsense/strings.json +++ b/homeassistant/components/poolsense/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "user": { "data": { @@ -7,36 +13,30 @@ "password": "[%key:common::config_flow::data::password%]" } } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "binary_sensor": { - "ph_status": { - "name": "pH status" - }, "chlorine_status": { "name": "Chlorine status" + }, + "ph_status": { + "name": "pH status" } }, "sensor": { "chlorine": { "name": "Chlorine" }, - "last_seen": { - "name": "Last seen" - }, "chlorine_high": { "name": "Chlorine high" }, "chlorine_low": { "name": "Chlorine low" }, + "last_seen": { + "name": "Last seen" + }, "ph_high": { "name": "pH high" }, diff --git a/homeassistant/components/portainer/icons.json b/homeassistant/components/portainer/icons.json index 179a0390cde..8d8df4b1bcd 100644 --- a/homeassistant/components/portainer/icons.json +++ b/homeassistant/components/portainer/icons.json @@ -1,47 +1,47 @@ { "entity": { "sensor": { - "image": { - "default": "mdi:docker" - }, - "operating_system": { - "default": "mdi:chip" - }, - "operating_system_version": { - "default": "mdi:alpha-v-box" - }, "api_version": { "default": "mdi:api" }, - "kernel_version": { - "default": "mdi:memory" - }, "architecture": { "default": "mdi:cpu-64-bit" }, + "containers_count": { + "default": "mdi:database" + }, + "containers_paused": { + "default": "mdi:pause-circle" + }, "containers_running": { "default": "mdi:play-circle-outline" }, "containers_stopped": { "default": "mdi:stop-circle-outline" }, - "containers_paused": { - "default": "mdi:pause-circle" - }, - "images_count": { - "default": "mdi:image-multiple" - }, - "containers_count": { - "default": "mdi:database" - }, - "memory_total": { - "default": "mdi:memory" + "cpu_total": { + "default": "mdi:cpu-64-bit" }, "docker_version": { "default": "mdi:docker" }, - "cpu_total": { - "default": "mdi:cpu-64-bit" + "image": { + "default": "mdi:docker" + }, + "images_count": { + "default": "mdi:image-multiple" + }, + "kernel_version": { + "default": "mdi:memory" + }, + "memory_total": { + "default": "mdi:memory" + }, + "operating_system": { + "default": "mdi:chip" + }, + "operating_system_version": { + "default": "mdi:alpha-v-box" } }, "switch": { diff --git a/homeassistant/components/portainer/strings.json b/homeassistant/components/portainer/strings.json index 5a67eff8650..59a30f09275 100644 --- a/homeassistant/components/portainer/strings.json +++ b/homeassistant/components/portainer/strings.json @@ -1,19 +1,16 @@ { "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%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_token": "[%key:common::config_flow::data::api_token%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "The URL, including the port, of your Portainer instance", - "api_token": "The API access token for authenticating with Portainer", - "verify_ssl": "Whether to verify SSL certificates. Disable only if you have a self-signed certificate" - }, - "description": "You can create an access token in the Portainer UI. Go to **My account > Access tokens** and select **Add access token**" - }, "reauth_confirm": { "data": { "api_token": "[%key:common::config_flow::data::api_token%]" @@ -22,17 +19,20 @@ "api_token": "The new API access token for authenticating with Portainer" }, "description": "The access token for your Portainer instance needs to be re-authenticated. You can create a new access token in the Portainer UI. Go to **My account > Access tokens** and select **Add access token**" + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_token": "The API access token for authenticating with Portainer", + "url": "The URL, including the port, of your Portainer instance", + "verify_ssl": "Whether to verify SSL certificates. Disable only if you have a self-signed certificate" + }, + "description": "You can create an access token in the Portainer UI. Go to **My account > Access tokens** and select **Add access token**" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "device": { @@ -47,47 +47,47 @@ } }, "sensor": { - "image": { - "name": "Image" - }, - "operating_system": { - "name": "Operating system" - }, - "operating_system_version": { - "name": "Operating system version" - }, "api_version": { "name": "API version" }, - "kernel_version": { - "name": "Kernel version" - }, "architecture": { "name": "Architecture" }, + "containers_count": { + "name": "Container count" + }, + "containers_paused": { + "name": "Containers paused" + }, "containers_running": { "name": "Containers running" }, "containers_stopped": { "name": "Containers stopped" }, - "containers_paused": { - "name": "Containers paused" - }, - "images_count": { - "name": "Image count" - }, - "containers_count": { - "name": "Container count" - }, - "memory_total": { - "name": "Total memory" + "cpu_total": { + "name": "Total CPU" }, "docker_version": { "name": "Docker version" }, - "cpu_total": { - "name": "Total CPU" + "image": { + "name": "Image" + }, + "images_count": { + "name": "Image count" + }, + "kernel_version": { + "name": "Kernel version" + }, + "memory_total": { + "name": "Total memory" + }, + "operating_system": { + "name": "Operating system" + }, + "operating_system_version": { + "name": "Operating system version" } }, "switch": { diff --git a/homeassistant/components/powerfox/manifest.json b/homeassistant/components/powerfox/manifest.json index 3938eb01a1b..d4bde0842e1 100644 --- a/homeassistant/components/powerfox/manifest.json +++ b/homeassistant/components/powerfox/manifest.json @@ -9,8 +9,8 @@ "requirements": ["powerfox==1.2.1"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "powerfox*" + "name": "powerfox*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/powerfox/strings.json b/homeassistant/components/powerfox/strings.json index cb068a212c2..6cae3ed4d6a 100644 --- a/homeassistant/components/powerfox/strings.json +++ b/homeassistant/components/powerfox/strings.json @@ -1,30 +1,26 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { - "user": { - "description": "Connect to your Powerfox account to get information about your energy, heat or water consumption.", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "email": "The email address of your Powerfox account.", - "password": "The password of your Powerfox 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": { "password": "[%key:component::powerfox::config::step::user::data_description::password%]" - } + }, + "description": "The password for {email} is no longer valid.", + "title": "[%key:common::config_flow::title::reauth%]" }, "reconfigure": { - "title": "Reconfigure your Powerfox account", - "description": "Powerfox is already configured. Would you like to reconfigure it?", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -32,50 +28,54 @@ "data_description": { "email": "[%key:component::powerfox::config::step::user::data_description::email%]", "password": "[%key:component::powerfox::config::step::user::data_description::password%]" - } + }, + "description": "Powerfox is already configured. Would you like to reconfigure it?", + "title": "Reconfigure your Powerfox account" + }, + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "email": "The email address of your Powerfox account.", + "password": "The password of your Powerfox account." + }, + "description": "Connect to your Powerfox account to get information about your energy, heat or water consumption." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "entity": { "sensor": { - "energy_usage": { - "name": "Energy usage" - }, - "energy_usage_low_tariff": { - "name": "Energy usage low tariff" - }, - "energy_usage_high_tariff": { - "name": "Energy usage high tariff" + "cold_water": { + "name": "Cold water" }, "energy_return": { "name": "Energy return" }, - "cold_water": { - "name": "Cold water" + "energy_usage": { + "name": "Energy usage" }, - "warm_water": { - "name": "Warm water" + "energy_usage_high_tariff": { + "name": "Energy usage high tariff" }, - "heat_total_energy": { - "name": "Total energy" + "energy_usage_low_tariff": { + "name": "Energy usage low tariff" }, "heat_delta_energy": { "name": "Delta energy" }, + "heat_delta_volume": { + "name": "Delta volume" + }, + "heat_total_energy": { + "name": "Total energy" + }, "heat_total_volume": { "name": "Total volume" }, - "heat_delta_volume": { - "name": "Delta volume" + "warm_water": { + "name": "Warm water" } } } diff --git a/homeassistant/components/powerwall/strings.json b/homeassistant/components/powerwall/strings.json index 8e18dfb308d..2b65308198b 100644 --- a/homeassistant/components/powerwall/strings.json +++ b/homeassistant/components/powerwall/strings.json @@ -1,157 +1,121 @@ { "config": { - "flow_title": "{name} ({ip_address})", - "step": { - "user": { - "title": "Connect to the Powerwall", - "description": "The default password is the last 5 characters of the password printed inside the Backup Gateway for newer models. For older models, the default password is the last five characters of the serial number for Backup Gateway and can be found in the Tesla app.", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "Reauthenticate the Powerwall", - "description": "[%key:component::powerwall::config::step::user::description%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "confirm_discovery": { - "title": "[%key:component::powerwall::config::step::user::title%]", - "description": "Do you want to set up {name} ({ip_address})?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "cannot_connect": "A connection error occurred while connecting to the Powerwall: {error}", - "wrong_version": "Your Powerwall uses a software version that is not supported. Please consider upgrading or reporting this issue so it can be resolved: {error}", + "invalid_auth": "Authentication failed with error: {error}", "unknown": "An unknown error occurred: {error}", - "invalid_auth": "Authentication failed with error: {error}" + "wrong_version": "Your Powerwall uses a software version that is not supported. Please consider upgrading or reporting this issue so it can be resolved: {error}" }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "flow_title": "{name} ({ip_address})", + "step": { + "confirm_discovery": { + "description": "Do you want to set up {name} ({ip_address})?", + "title": "[%key:component::powerwall::config::step::user::title%]" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "[%key:component::powerwall::config::step::user::description%]", + "title": "Reauthenticate the Powerwall" + }, + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The default password is the last 5 characters of the password printed inside the Backup Gateway for newer models. For older models, the default password is the last five characters of the serial number for Backup Gateway and can be found in the Tesla app.", + "title": "Connect to the Powerwall" + } } }, "entity": { "binary_sensor": { - "status": { - "name": "Status" - }, "connected_to_tesla": { "name": "Connected to Tesla" }, + "grid_services_active": { + "name": "Grid services active" + }, "grid_status": { "name": "Grid status" }, - "grid_services_active": { - "name": "Grid services active" + "status": { + "name": "Status" } }, "sensor": { - "charge": { - "name": "Charge" - }, - "solar_instant_power": { - "name": "Solar power" - }, - "solar_instant_frequency": { - "name": "Solar frequency" - }, - "solar_instant_current": { - "name": "Solar current" - }, - "solar_instant_voltage": { - "name": "Solar voltage" - }, - "site_instant_power": { - "name": "Site power" - }, - "site_instant_frequency": { - "name": "Site frequency" - }, - "site_instant_current": { - "name": "Site current" - }, - "site_instant_voltage": { - "name": "Site voltage" - }, - "battery_instant_power": { - "name": "Battery power" - }, - "battery_instant_frequency": { - "name": "Battery frequency" - }, - "battery_instant_current": { - "name": "Battery current" - }, - "battery_instant_voltage": { - "name": "Battery voltage" - }, - "load_instant_power": { - "name": "Load power" - }, - "load_instant_frequency": { - "name": "Load frequency" - }, - "load_instant_current": { - "name": "Load current" - }, - "load_instant_voltage": { - "name": "Load voltage" - }, - "generator_instant_power": { - "name": "Generator power" - }, - "generator_instant_frequency": { - "name": "Generator frequency" - }, - "generator_instant_current": { - "name": "Generator current" - }, - "generator_instant_voltage": { - "name": "Generator voltage" - }, - "busway_instant_power": { - "name": "Busway power" - }, - "busway_instant_frequency": { - "name": "Busway frequency" - }, - "busway_instant_current": { - "name": "Busway current" - }, - "busway_instant_voltage": { - "name": "Busway voltage" - }, "backup_reserve": { "name": "Backup reserve" }, - "solar_import": { - "name": "Solar import" - }, - "solar_export": { - "name": "Solar export" - }, - "site_import": { - "name": "Site import" - }, - "site_export": { - "name": "Site export" - }, - "battery_import": { - "name": "Battery import" - }, - "battery_export": { - "name": "Battery export" - }, "battery_capacity": { "name": "Battery capacity" }, + "battery_export": { + "name": "Battery export" + }, + "battery_import": { + "name": "Battery import" + }, + "battery_instant_current": { + "name": "Battery current" + }, + "battery_instant_frequency": { + "name": "Battery frequency" + }, + "battery_instant_power": { + "name": "Battery power" + }, + "battery_instant_voltage": { + "name": "Battery voltage" + }, "battery_remaining": { "name": "Battery remaining" }, + "busway_export": { + "name": "Busway export" + }, + "busway_import": { + "name": "Busway import" + }, + "busway_instant_current": { + "name": "Busway current" + }, + "busway_instant_frequency": { + "name": "Busway frequency" + }, + "busway_instant_power": { + "name": "Busway power" + }, + "busway_instant_voltage": { + "name": "Busway voltage" + }, + "charge": { + "name": "Charge" + }, + "generator_export": { + "name": "Generator export" + }, + "generator_import": { + "name": "Generator import" + }, + "generator_instant_current": { + "name": "Generator current" + }, + "generator_instant_frequency": { + "name": "Generator frequency" + }, + "generator_instant_power": { + "name": "Generator power" + }, + "generator_instant_voltage": { + "name": "Generator voltage" + }, "grid_state": { "name": "Grid state", "state": { @@ -160,23 +124,59 @@ "grid_uncompliant": "Uncompliant" } }, - "load_import": { - "name": "Load import" - }, "load_export": { "name": "Load export" }, - "generator_import": { - "name": "Generator import" + "load_import": { + "name": "Load import" }, - "generator_export": { - "name": "Generator export" + "load_instant_current": { + "name": "Load current" }, - "busway_import": { - "name": "Busway import" + "load_instant_frequency": { + "name": "Load frequency" }, - "busway_export": { - "name": "Busway export" + "load_instant_power": { + "name": "Load power" + }, + "load_instant_voltage": { + "name": "Load voltage" + }, + "site_export": { + "name": "Site export" + }, + "site_import": { + "name": "Site import" + }, + "site_instant_current": { + "name": "Site current" + }, + "site_instant_frequency": { + "name": "Site frequency" + }, + "site_instant_power": { + "name": "Site power" + }, + "site_instant_voltage": { + "name": "Site voltage" + }, + "solar_export": { + "name": "Solar export" + }, + "solar_import": { + "name": "Solar import" + }, + "solar_instant_current": { + "name": "Solar current" + }, + "solar_instant_frequency": { + "name": "Solar frequency" + }, + "solar_instant_power": { + "name": "Solar power" + }, + "solar_instant_voltage": { + "name": "Solar voltage" } }, "switch": { diff --git a/homeassistant/components/private_ble_device/icons.json b/homeassistant/components/private_ble_device/icons.json index 0bab138182d..1b83511ec51 100644 --- a/homeassistant/components/private_ble_device/icons.json +++ b/homeassistant/components/private_ble_device/icons.json @@ -9,11 +9,11 @@ } }, "sensor": { - "estimated_distance": { - "default": "mdi:signal-distance-variant" - }, "estimated_broadcast_interval": { "default": "mdi:timer-sync-outline" + }, + "estimated_distance": { + "default": "mdi:signal-distance-variant" } } } diff --git a/homeassistant/components/private_ble_device/strings.json b/homeassistant/components/private_ble_device/strings.json index 845a5d92bae..907d61f871b 100644 --- a/homeassistant/components/private_ble_device/strings.json +++ b/homeassistant/components/private_ble_device/strings.json @@ -1,32 +1,32 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "What is the IRK (Identity Resolving Key) of the BLE device you want to track?", - "data": { - "irk": "IRK" - } - } + "abort": { + "bluetooth_not_available": "At least one Bluetooth adapter or remote Bluetooth proxy must be configured to track Private BLE Devices." }, "error": { "irk_not_found": "The provided IRK does not match any BLE devices that Home Assistant can see.", "irk_not_valid": "The key does not look like a valid IRK." }, - "abort": { - "bluetooth_not_available": "At least one Bluetooth adapter or remote Bluetooth proxy must be configured to track Private BLE Devices." + "flow_title": "{name}", + "step": { + "user": { + "data": { + "irk": "IRK" + }, + "description": "What is the IRK (Identity Resolving Key) of the BLE device you want to track?" + } } }, "entity": { "sensor": { - "power": { - "name": "Power" + "estimated_broadcast_interval": { + "name": "Estimated broadcast interval" }, "estimated_distance": { "name": "Estimated distance" }, - "estimated_broadcast_interval": { - "name": "Estimated broadcast interval" + "power": { + "name": "Power" } } } diff --git a/homeassistant/components/probe_plus/manifest.json b/homeassistant/components/probe_plus/manifest.json index 160c231897c..98a057c6844 100644 --- a/homeassistant/components/probe_plus/manifest.json +++ b/homeassistant/components/probe_plus/manifest.json @@ -4,8 +4,8 @@ "bluetooth": [ { "connectable": true, - "manufacturer_id": 36606, - "local_name": "FM2*" + "local_name": "FM2*", + "manufacturer_id": 36606 } ], "codeowners": ["@pantherale0"], diff --git a/homeassistant/components/probe_plus/strings.json b/homeassistant/components/probe_plus/strings.json index bd2ccac8514..e4cbe396dc0 100644 --- a/homeassistant/components/probe_plus/strings.json +++ b/homeassistant/components/probe_plus/strings.json @@ -1,6 +1,5 @@ { "config": { - "flow_title": "{name}", "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" @@ -9,18 +8,19 @@ "device_not_found": "Device could not be found.", "unknown": "[%key:common::config_flow::error::unknown%]" }, + "flow_title": "{name}", "step": { "bluetooth_confirm": { "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" }, "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", "data": { "address": "[%key:common::config_flow::data::device%]" }, "data_description": { "address": "Select BLE probe you want to set up" - } + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } } }, @@ -29,12 +29,12 @@ "probe_battery": { "name": "Probe battery" }, - "probe_temperature": { - "name": "Probe temperature" - }, "probe_rssi": { "name": "Probe RSSI" }, + "probe_temperature": { + "name": "Probe temperature" + }, "probe_voltage": { "name": "Probe voltage" }, diff --git a/homeassistant/components/profiler/icons.json b/homeassistant/components/profiler/icons.json index 0c6a4f2600a..6c612654934 100644 --- a/homeassistant/components/profiler/icons.json +++ b/homeassistant/components/profiler/icons.json @@ -1,43 +1,43 @@ { "services": { - "start": { - "service": "mdi:play" - }, - "memory": { - "service": "mdi:memory" - }, - "start_log_objects": { - "service": "mdi:invoice-text-plus" - }, - "stop_log_objects": { - "service": "mdi:invoice-text-remove" - }, "dump_log_objects": { "service": "mdi:invoice-export-outline" }, "dump_sockets": { "service": "mdi:pipe" }, - "start_log_object_sources": { - "service": "mdi:play" - }, - "stop_log_object_sources": { - "service": "mdi:stop" - }, - "lru_stats": { - "service": "mdi:chart-areaspline" - }, "log_current_tasks": { "service": "mdi:format-list-bulleted" }, - "log_thread_frames": { - "service": "mdi:format-list-bulleted" - }, "log_event_loop_scheduled": { "service": "mdi:calendar-clock" }, + "log_thread_frames": { + "service": "mdi:format-list-bulleted" + }, + "lru_stats": { + "service": "mdi:chart-areaspline" + }, + "memory": { + "service": "mdi:memory" + }, "set_asyncio_debug": { "service": "mdi:bug-check" + }, + "start": { + "service": "mdi:play" + }, + "start_log_object_sources": { + "service": "mdi:play" + }, + "start_log_objects": { + "service": "mdi:invoice-text-plus" + }, + "stop_log_object_sources": { + "service": "mdi:stop" + }, + "stop_log_objects": { + "service": "mdi:invoice-text-remove" } } } diff --git a/homeassistant/components/profiler/strings.json b/homeassistant/components/profiler/strings.json index ccbf42bb46b..b95f6d83738 100644 --- a/homeassistant/components/profiler/strings.json +++ b/homeassistant/components/profiler/strings.json @@ -7,97 +7,97 @@ } }, "services": { - "start": { - "name": "[%key:common::action::start%]", - "description": "Starts the Profiler.", - "fields": { - "seconds": { - "name": "Seconds", - "description": "The number of seconds to run the profiler." - } - } - }, - "memory": { - "name": "Memory", - "description": "Starts the Memory Profiler.", - "fields": { - "seconds": { - "name": "Seconds", - "description": "The number of seconds to run the memory profiler." - } - } - }, - "start_log_objects": { - "name": "Start logging objects", - "description": "Starts logging growth of objects in memory.", - "fields": { - "scan_interval": { - "name": "Scan interval", - "description": "The number of seconds between logging objects." - } - } - }, - "stop_log_objects": { - "name": "Stop logging objects", - "description": "Stops logging growth of objects in memory." - }, "dump_log_objects": { - "name": "Dump log objects", "description": "Dumps the repr of all matching objects to the log.", "fields": { "type": { - "name": "Type", - "description": "The type of objects to dump to the log." + "description": "The type of objects to dump to the log.", + "name": "Type" } - } - }, - "start_log_object_sources": { - "name": "Start logging object sources", - "description": "Starts logging sources of new objects in memory.", - "fields": { - "scan_interval": { - "name": "Scan interval", - "description": "[%key:component::profiler::services::start_log_objects::fields::scan_interval::description%]" - }, - "max_objects": { - "name": "Maximum objects", - "description": "The maximum number of objects to log." - } - } + }, + "name": "Dump log objects" }, "dump_sockets": { - "name": "Dump used sockets", - "description": "Logs information about all currently used sockets." + "description": "Logs information about all currently used sockets.", + "name": "Dump used sockets" }, - "stop_log_object_sources": { - "name": "Stop logging object sources", - "description": "Stops logging sources of new objects in memory." - }, - "lru_stats": { - "name": "Log LRU stats", - "description": "Logs the stats of all lru caches." - }, - "log_thread_frames": { - "name": "Log thread frames", - "description": "Logs the current frames for all threads." + "log_current_tasks": { + "description": "Logs all the current asyncio tasks.", + "name": "Log current asyncio tasks" }, "log_event_loop_scheduled": { - "name": "Log event loop scheduled", - "description": "Logs what is scheduled in the event loop." + "description": "Logs what is scheduled in the event loop.", + "name": "Log event loop scheduled" + }, + "log_thread_frames": { + "description": "Logs the current frames for all threads.", + "name": "Log thread frames" + }, + "lru_stats": { + "description": "Logs the stats of all lru caches.", + "name": "Log LRU stats" + }, + "memory": { + "description": "Starts the Memory Profiler.", + "fields": { + "seconds": { + "description": "The number of seconds to run the memory profiler.", + "name": "Seconds" + } + }, + "name": "Memory" }, "set_asyncio_debug": { - "name": "Set asyncio debug", "description": "Enable or disable asyncio debug.", "fields": { "enabled": { - "name": "Enabled", - "description": "Whether to enable or disable asyncio debug." + "description": "Whether to enable or disable asyncio debug.", + "name": "Enabled" } - } + }, + "name": "Set asyncio debug" }, - "log_current_tasks": { - "name": "Log current asyncio tasks", - "description": "Logs all the current asyncio tasks." + "start": { + "description": "Starts the Profiler.", + "fields": { + "seconds": { + "description": "The number of seconds to run the profiler.", + "name": "Seconds" + } + }, + "name": "[%key:common::action::start%]" + }, + "start_log_object_sources": { + "description": "Starts logging sources of new objects in memory.", + "fields": { + "max_objects": { + "description": "The maximum number of objects to log.", + "name": "Maximum objects" + }, + "scan_interval": { + "description": "[%key:component::profiler::services::start_log_objects::fields::scan_interval::description%]", + "name": "Scan interval" + } + }, + "name": "Start logging object sources" + }, + "start_log_objects": { + "description": "Starts logging growth of objects in memory.", + "fields": { + "scan_interval": { + "description": "The number of seconds between logging objects.", + "name": "Scan interval" + } + }, + "name": "Start logging objects" + }, + "stop_log_object_sources": { + "description": "Stops logging sources of new objects in memory.", + "name": "Stop logging object sources" + }, + "stop_log_objects": { + "description": "Stops logging growth of objects in memory.", + "name": "Stop logging objects" } } } diff --git a/homeassistant/components/progettihwsw/strings.json b/homeassistant/components/progettihwsw/strings.json index d50c6f8d4e3..ca8034cb2f0 100644 --- a/homeassistant/components/progettihwsw/strings.json +++ b/homeassistant/components/progettihwsw/strings.json @@ -1,27 +1,23 @@ { "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, "step": { - "user": { - "title": "Set up board", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "The hostname or IP address of your ProgettiHWSW board." - } - }, "relay_modes": { - "title": "Set up relays", "data": { "relay_1": "Relay 1", + "relay_10": "Relay 10", + "relay_11": "Relay 11", + "relay_12": "Relay 12", + "relay_13": "Relay 13", + "relay_14": "Relay 14", + "relay_15": "Relay 15", + "relay_16": "Relay 16", "relay_2": "Relay 2", "relay_3": "Relay 3", "relay_4": "Relay 4", @@ -29,15 +25,19 @@ "relay_6": "Relay 6", "relay_7": "Relay 7", "relay_8": "Relay 8", - "relay_9": "Relay 9", - "relay_10": "Relay 10", - "relay_11": "Relay 11", - "relay_12": "Relay 12", - "relay_13": "Relay 13", - "relay_14": "Relay 14", - "relay_15": "Relay 15", - "relay_16": "Relay 16" - } + "relay_9": "Relay 9" + }, + "title": "Set up relays" + }, + "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 your ProgettiHWSW board." + }, + "title": "Set up board" } } } diff --git a/homeassistant/components/prosegur/strings.json b/homeassistant/components/prosegur/strings.json index e5176e96090..aaa4dfe8767 100644 --- a/homeassistant/components/prosegur/strings.json +++ b/homeassistant/components/prosegur/strings.json @@ -1,13 +1,15 @@ { "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": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "country": "[%key:common::config_flow::data::country%]" - } - }, "choose_contract": { "data": { "contract": "Contract" @@ -16,25 +18,23 @@ "reauth_confirm": { "data": { "description": "Re-authenticate with Prosegur account.", - "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%]" + } + }, + "user": { + "data": { + "country": "[%key:common::config_flow::data::country%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" } } - }, - "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "services": { "request_image": { - "name": "Request camera image", - "description": "Requests a new image from a Prosegur camera." + "description": "Requests a new image from a Prosegur camera.", + "name": "Request camera image" } } } diff --git a/homeassistant/components/prowl/strings.json b/homeassistant/components/prowl/strings.json index eb136c57999..8112b5dba99 100644 --- a/homeassistant/components/prowl/strings.json +++ b/homeassistant/components/prowl/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "API key is already configured" + }, + "error": { + "api_timeout": "[%key:common::config_flow::error::timeout_connect%]", + "bad_api_response": "[%key:common::config_flow::error::unknown%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" + }, "step": { "user": { - "description": "Enter the Prowl API key and its name.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "name": "[%key:common::config_flow::data::name%]" - } + }, + "description": "Enter the Prowl API key and its name." } - }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "api_timeout": "[%key:common::config_flow::error::timeout_connect%]", - "bad_api_response": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "API key is already configured" } } } diff --git a/homeassistant/components/proximity/strings.json b/homeassistant/components/proximity/strings.json index fa3be70f247..a0593bef01d 100644 --- a/homeassistant/components/proximity/strings.json +++ b/homeassistant/components/proximity/strings.json @@ -1,30 +1,17 @@ { - "title": "Proximity", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "success": "Changes saved" + }, "flow_title": "[%key:component::proximity::title%]", "step": { "user": { "data": { - "zone": "Zone to track distance to", "ignored_zones": "Zones to ignore", + "tolerance": "Tolerance distance", "tracked_entities": "Devices or persons to track", - "tolerance": "Tolerance distance" - } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "success": "Changes saved" - } - }, - "options": { - "step": { - "init": { - "data": { - "zone": "[%key:component::proximity::config::step::user::data::zone%]", - "ignored_zones": "[%key:component::proximity::config::step::user::data::ignored_zones%]", - "tracked_entities": "[%key:component::proximity::config::step::user::data::tracked_entities%]", - "tolerance": "[%key:component::proximity::config::step::user::data::tolerance%]" + "zone": "Zone to track distance to" } } } @@ -56,15 +43,28 @@ }, "issues": { "tracked_entity_removed": { - "title": "Tracked entity has been removed", "fix_flow": { "step": { "confirm": { - "title": "[%key:component::proximity::issues::tracked_entity_removed::title%]", - "description": "The entity `{entity_id}` has been removed from HA, but is used in proximity {name}. Please remove `{entity_id}` from the list of tracked entities. Related proximity sensor entities were set to unavailable and can be removed." + "description": "The entity `{entity_id}` has been removed from HA, but is used in proximity {name}. Please remove `{entity_id}` from the list of tracked entities. Related proximity sensor entities were set to unavailable and can be removed.", + "title": "[%key:component::proximity::issues::tracked_entity_removed::title%]" } } + }, + "title": "Tracked entity has been removed" + } + }, + "options": { + "step": { + "init": { + "data": { + "ignored_zones": "[%key:component::proximity::config::step::user::data::ignored_zones%]", + "tolerance": "[%key:component::proximity::config::step::user::data::tolerance%]", + "tracked_entities": "[%key:component::proximity::config::step::user::data::tracked_entities%]", + "zone": "[%key:component::proximity::config::step::user::data::zone%]" + } } } - } + }, + "title": "Proximity" } diff --git a/homeassistant/components/prusalink/icons.json b/homeassistant/components/prusalink/icons.json index 578cb5e5d0c..d2b956f10ec 100644 --- a/homeassistant/components/prusalink/icons.json +++ b/homeassistant/components/prusalink/icons.json @@ -12,26 +12,26 @@ } }, "sensor": { - "printer_state": { - "default": "mdi:printer-3d" + "filename": { + "default": "mdi:file-image-outline" }, "material": { "default": "mdi:palette-swatch-variant" }, - "progress": { - "default": "mdi:progress-clock" - }, - "filename": { - "default": "mdi:file-image-outline" - }, "nozzle_diameter": { "default": "mdi:printer-3d-nozzle" }, + "print_finish": { + "default": "mdi:clock-end" + }, "print_start": { "default": "mdi:clock-start" }, - "print_finish": { - "default": "mdi:clock-end" + "printer_state": { + "default": "mdi:printer-3d" + }, + "progress": { + "default": "mdi:progress-clock" } } } diff --git a/homeassistant/components/prusalink/strings.json b/homeassistant/components/prusalink/strings.json index 6c698cf3dc2..3c3b7257dfb 100644 --- a/homeassistant/components/prusalink/strings.json +++ b/homeassistant/components/prusalink/strings.json @@ -1,25 +1,19 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "not_supported": "Only PrusaLink API v2 is supported", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "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%]" } } - }, - "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%]", - "not_supported": "Only PrusaLink API v2 is supported" - } - }, - "issues": { - "firmware_5_1_required": { - "description": "The PrusaLink integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa Mini, please make sure your printer is running firmware 5.1.0 or a more recent version, as firmware versions 4.7.x and 5.0.x are not available for this model.\n\nFollow the guide below to update your {entry_title}.\n* [Prusa Mini Firmware Update]({prusa_mini_firmware_update})\n* [Prusa MK4/XL Firmware Update]({prusa_mk4_xl_firmware_update})\n\nAfter you've updated your printer's firmware, make sure to reload the config entry to fix this issue.", - "title": "Firmware update required" } }, "entity": { @@ -28,66 +22,6 @@ "name": "MMU" } }, - "sensor": { - "printer_state": { - "state": { - "idle": "[%key:common::state::idle%]", - "busy": "Busy", - "printing": "Printing", - "paused": "[%key:common::state::paused%]", - "finished": "Finished", - "stopped": "[%key:common::state::stopped%]", - "error": "[%key:common::state::error%]", - "attention": "Attention", - "ready": "Ready" - } - }, - "heatbed_temperature": { - "name": "Heatbed temperature" - }, - "heatbed_target_temperature": { - "name": "Heatbed target temperature" - }, - "nozzle_temperature": { - "name": "Nozzle temperature" - }, - "nozzle_target_temperature": { - "name": "Nozzle target temperature" - }, - "progress": { - "name": "Progress" - }, - "filename": { - "name": "Filename" - }, - "material": { - "name": "Material" - }, - "print_start": { - "name": "Print start" - }, - "print_finish": { - "name": "Print finish" - }, - "print_speed": { - "name": "Print speed" - }, - "print_flow": { - "name": "Print flow" - }, - "fan_hotend": { - "name": "Hotend fan" - }, - "fan_print": { - "name": "Print fan" - }, - "z_height": { - "name": "Z-Height" - }, - "nozzle_diameter": { - "name": "Nozzle diameter" - } - }, "button": { "cancel_job": { "name": "Cancel job" @@ -103,6 +37,72 @@ "job_preview": { "name": "Preview" } + }, + "sensor": { + "fan_hotend": { + "name": "Hotend fan" + }, + "fan_print": { + "name": "Print fan" + }, + "filename": { + "name": "Filename" + }, + "heatbed_target_temperature": { + "name": "Heatbed target temperature" + }, + "heatbed_temperature": { + "name": "Heatbed temperature" + }, + "material": { + "name": "Material" + }, + "nozzle_diameter": { + "name": "Nozzle diameter" + }, + "nozzle_target_temperature": { + "name": "Nozzle target temperature" + }, + "nozzle_temperature": { + "name": "Nozzle temperature" + }, + "print_finish": { + "name": "Print finish" + }, + "print_flow": { + "name": "Print flow" + }, + "print_speed": { + "name": "Print speed" + }, + "print_start": { + "name": "Print start" + }, + "printer_state": { + "state": { + "attention": "Attention", + "busy": "Busy", + "error": "[%key:common::state::error%]", + "finished": "Finished", + "idle": "[%key:common::state::idle%]", + "paused": "[%key:common::state::paused%]", + "printing": "Printing", + "ready": "Ready", + "stopped": "[%key:common::state::stopped%]" + } + }, + "progress": { + "name": "Progress" + }, + "z_height": { + "name": "Z-Height" + } + } + }, + "issues": { + "firmware_5_1_required": { + "description": "The PrusaLink integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa Mini, please make sure your printer is running firmware 5.1.0 or a more recent version, as firmware versions 4.7.x and 5.0.x are not available for this model.\n\nFollow the guide below to update your {entry_title}.\n* [Prusa Mini Firmware Update]({prusa_mini_firmware_update})\n* [Prusa MK4/XL Firmware Update]({prusa_mk4_xl_firmware_update})\n\nAfter you've updated your printer's firmware, make sure to reload the config entry to fix this issue.", + "title": "Firmware update required" } } } diff --git a/homeassistant/components/ps4/strings.json b/homeassistant/components/ps4/strings.json index c2e5795ae83..f2ab057b624 100644 --- a/homeassistant/components/ps4/strings.json +++ b/homeassistant/components/ps4/strings.json @@ -1,64 +1,64 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "credential_error": "Error fetching credentials.", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "port_987_bind_error": "Could not bind to port 987. Refer to the [documentation]({ps4_docs_url}) for additional info.", + "port_997_bind_error": "Could not bind to port 997. Refer to the [documentation]({ps4_docs_url}) for additional info." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "credential_timeout": "Credential service timed out. Select **Submit** to restart.", + "login_failed": "Failed to pair to PlayStation 4. Verify PIN is correct.", + "no_ipaddress": "Enter the IP address of the PlayStation 4 you would like to configure." + }, "step": { "creds": { - "description": "Credentials needed. Select **Submit** and then in the PS4 2nd Screen App, refresh devices and select the **Home-Assistant** device to continue.", "data": { "token": "PSN Token" }, "data_description": { "token": "To get your PSN token, please follow these [instructions]({ps4_docs_url})." - } - }, - "mode": { - "data": { - "mode": "Config Mode", - "ip_address": "[%key:common::config_flow::data::ip%]" }, - "data_description": { - "ip_address": "Leave blank if selecting auto-discovery." - } + "description": "Credentials needed. Select **Submit** and then in the PS4 2nd Screen App, refresh devices and select the **Home-Assistant** device to continue." }, "link": { "data": { - "region": "Region", - "name": "[%key:common::config_flow::data::name%]", "code": "[%key:common::config_flow::data::pin%]", - "ip_address": "[%key:common::config_flow::data::ip%]" + "ip_address": "[%key:common::config_flow::data::ip%]", + "name": "[%key:common::config_flow::data::name%]", + "region": "Region" }, "data_description": { "code": "On your PlayStation 4 console, go to **Settings**. Then, go to **Mobile App Connection Settings** and select **Add Device** to get the PIN." } + }, + "mode": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]", + "mode": "Config Mode" + }, + "data_description": { + "ip_address": "Leave blank if selecting auto-discovery." + } } - }, - "error": { - "credential_timeout": "Credential service timed out. Select **Submit** to restart.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "login_failed": "Failed to pair to PlayStation 4. Verify PIN is correct.", - "no_ipaddress": "Enter the IP address of the PlayStation 4 you would like to configure." - }, - "abort": { - "credential_error": "Error fetching credentials.", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "port_987_bind_error": "Could not bind to port 987. Refer to the [documentation]({ps4_docs_url}) for additional info.", - "port_997_bind_error": "Could not bind to port 997. Refer to the [documentation]({ps4_docs_url}) for additional info." } }, "services": { "send_command": { - "name": "Send command", "description": "Emulates button press for PlayStation 4.", "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of entity to send command." - }, "command": { - "name": "Command", - "description": "Button to press." + "description": "Button to press.", + "name": "Command" + }, + "entity_id": { + "description": "Name of entity to send command.", + "name": "Entity" } - } + }, + "name": "Send command" } } } diff --git a/homeassistant/components/pterodactyl/icons.json b/homeassistant/components/pterodactyl/icons.json index 265a8dcadda..e25e032c520 100644 --- a/homeassistant/components/pterodactyl/icons.json +++ b/homeassistant/components/pterodactyl/icons.json @@ -1,37 +1,37 @@ { "entity": { "button": { + "force_stop_server": { + "default": "mdi:flash-alert" + }, + "restart_server": { + "default": "mdi:refresh" + }, "start_server": { "default": "mdi:play" }, "stop_server": { "default": "mdi:stop" - }, - "restart_server": { - "default": "mdi:refresh" - }, - "force_stop_server": { - "default": "mdi:flash-alert" } }, "sensor": { - "cpu_utilization": { - "default": "mdi:cpu-64-bit" - }, "cpu_limit": { "default": "mdi:cpu-64-bit" }, - "memory_usage": { - "default": "mdi:memory" + "cpu_utilization": { + "default": "mdi:cpu-64-bit" }, - "memory_limit": { - "default": "mdi:memory" + "disk_limit": { + "default": "mdi:harddisk" }, "disk_usage": { "default": "mdi:harddisk" }, - "disk_limit": { - "default": "mdi:harddisk" + "memory_limit": { + "default": "mdi:memory" + }, + "memory_usage": { + "default": "mdi:memory" }, "network_inbound": { "default": "mdi:download" diff --git a/homeassistant/components/pterodactyl/strings.json b/homeassistant/components/pterodactyl/strings.json index 3d01700f189..216f8586025 100644 --- a/homeassistant/components/pterodactyl/strings.json +++ b/homeassistant/components/pterodactyl/strings.json @@ -1,35 +1,35 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "url": "The URL of your Pterodactyl server, including the protocol (http:// or https://) and optionally the port number.", - "api_key": "The account API key for accessing your Pterodactyl server." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please update your account API key.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::pterodactyl::config::step::user::data_description::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::pterodactyl::config::step::user::data_description::api_key%]" + }, + "description": "Please update your account API key.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]" + }, + "data_description": { + "api_key": "The account API key for accessing your Pterodactyl server.", + "url": "The URL of your Pterodactyl server, including the protocol (http:// or https://) and optionally the port number." + } + } } }, "entity": { @@ -39,37 +39,37 @@ } }, "button": { + "force_stop_server": { + "name": "Force stop server" + }, + "restart_server": { + "name": "Restart server" + }, "start_server": { "name": "Start server" }, "stop_server": { "name": "Stop server" - }, - "restart_server": { - "name": "Restart server" - }, - "force_stop_server": { - "name": "Force stop server" } }, "sensor": { - "cpu_utilization": { - "name": "CPU utilization" - }, "cpu_limit": { "name": "CPU limit" }, - "memory_usage": { - "name": "Memory usage" + "cpu_utilization": { + "name": "CPU utilization" }, - "memory_limit": { - "name": "Memory limit" + "disk_limit": { + "name": "Disk limit" }, "disk_usage": { "name": "Disk usage" }, - "disk_limit": { - "name": "Disk limit" + "memory_limit": { + "name": "Memory limit" + }, + "memory_usage": { + "name": "Memory usage" }, "network_inbound": { "name": "Network inbound" diff --git a/homeassistant/components/pure_energie/manifest.json b/homeassistant/components/pure_energie/manifest.json index 9efb1734f84..ef16ea40d87 100644 --- a/homeassistant/components/pure_energie/manifest.json +++ b/homeassistant/components/pure_energie/manifest.json @@ -8,8 +8,8 @@ "requirements": ["gridnet==5.0.1"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "smartbridge*" + "name": "smartbridge*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/pure_energie/strings.json b/homeassistant/components/pure_energie/strings.json index 3545f62d667..762c295b55b 100644 --- a/homeassistant/components/pure_energie/strings.json +++ b/homeassistant/components/pure_energie/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{model} ({host})", "step": { "user": { @@ -14,25 +21,18 @@ "description": "Do you want to add Pure Energie Meter (`{model}`) to Home Assistant?", "title": "Discovered Pure Energie Meter device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { "sensor": { - "power_flow": { - "name": "Power flow" - }, "energy_consumption_total": { "name": "Energy consumption" }, "energy_production_total": { "name": "Energy production" + }, + "power_flow": { + "name": "Power flow" } } } diff --git a/homeassistant/components/purpleair/icons.json b/homeassistant/components/purpleair/icons.json index 683d5b31b14..d529f62e0ff 100644 --- a/homeassistant/components/purpleair/icons.json +++ b/homeassistant/components/purpleair/icons.json @@ -7,17 +7,17 @@ "pm0_5_count_concentration": { "default": "mdi:blur" }, - "pm1_0_count_concentration": { - "default": "mdi:blur" - }, "pm10_0_count_concentration": { "default": "mdi:blur" }, - "pm5_0_count_concentration": { + "pm1_0_count_concentration": { "default": "mdi:blur" }, "pm2_5_count_concentration": { "default": "mdi:blur" + }, + "pm5_0_count_concentration": { + "default": "mdi:blur" } } } diff --git a/homeassistant/components/purpleair/strings.json b/homeassistant/components/purpleair/strings.json index 006093f3545..2c15e876b82 100644 --- a/homeassistant/components/purpleair/strings.json +++ b/homeassistant/components/purpleair/strings.json @@ -1,27 +1,36 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "no_sensors_near_coordinates": "No sensors found near coordinates (within distance)", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "by_coordinates": { - "description": "Search for a PurpleAir sensor within a certain distance of a latitude/longitude.", "data": { + "distance": "Search radius", "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "distance": "Search radius" + "longitude": "[%key:common::config_flow::data::longitude%]" }, "data_description": { + "distance": "The radius (in kilometers) of the circle to search within", "latitude": "The latitude around which to search for sensors", - "longitude": "The longitude around which to search for sensors", - "distance": "The radius (in kilometers) of the circle to search within" - } + "longitude": "The longitude around which to search for sensors" + }, + "description": "Search for a PurpleAir sensor within a certain distance of a latitude/longitude." }, "choose_sensor": { - "description": "Which of the nearby sensors would you like to track?", "data": { "sensor_index": "Sensor" }, "data_description": { "sensor_index": "The sensor to track" - } + }, + "description": "Which of the nearby sensors would you like to track?" }, "reauth_confirm": { "data": { @@ -39,73 +48,6 @@ "api_key": "Your PurpleAir API key (if you have both read and write keys, use the read key)" } } - }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "no_sensors_near_coordinates": "No sensors found near coordinates (within distance)", - "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%]" - } - }, - "options": { - "step": { - "add_sensor": { - "title": "Add sensor", - "description": "[%key:component::purpleair::config::step::by_coordinates::description%]", - "data": { - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]", - "distance": "[%key:component::purpleair::config::step::by_coordinates::data::distance%]" - }, - "data_description": { - "latitude": "[%key:component::purpleair::config::step::by_coordinates::data_description::latitude%]", - "longitude": "[%key:component::purpleair::config::step::by_coordinates::data_description::longitude%]", - "distance": "[%key:component::purpleair::config::step::by_coordinates::data_description::distance%]" - } - }, - "choose_sensor": { - "title": "Choose sensor to add", - "description": "[%key:component::purpleair::config::step::choose_sensor::description%]", - "data": { - "sensor_index": "[%key:component::purpleair::config::step::choose_sensor::data::sensor_index%]" - }, - "data_description": { - "sensor_index": "[%key:component::purpleair::config::step::choose_sensor::data_description::sensor_index%]" - } - }, - "init": { - "menu_options": { - "add_sensor": "Add sensor", - "remove_sensor": "Remove sensor", - "settings": "Settings" - } - }, - "remove_sensor": { - "title": "Remove sensor", - "data": { - "sensor_device_id": "Sensor name" - }, - "data_description": { - "sensor_device_id": "The sensor to remove" - } - }, - "settings": { - "title": "[%key:component::purpleair::options::step::init::menu_options::settings%]", - "data": { - "show_on_map": "Show configured sensor locations on the map" - } - } - }, - "error": { - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "no_sensors_near_coordinates": "[%key:component::purpleair::config::error::no_sensors_near_coordinates%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { @@ -116,12 +58,12 @@ "pm0_5_count_concentration": { "name": "PM0.5 count concentration" }, - "pm1_0_count_concentration": { - "name": "PM1.0 count concentration" - }, "pm10_0_count_concentration": { "name": "PM10.0 count concentration" }, + "pm1_0_count_concentration": { + "name": "PM1.0 count concentration" + }, "pm2_5_count_concentration": { "name": "PM2.5 count concentration" }, @@ -138,5 +80,63 @@ "name": "Volatile organic compounds air quality index" } } + }, + "options": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "no_sensors_near_coordinates": "[%key:component::purpleair::config::error::no_sensors_near_coordinates%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "add_sensor": { + "data": { + "distance": "[%key:component::purpleair::config::step::by_coordinates::data::distance%]", + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]" + }, + "data_description": { + "distance": "[%key:component::purpleair::config::step::by_coordinates::data_description::distance%]", + "latitude": "[%key:component::purpleair::config::step::by_coordinates::data_description::latitude%]", + "longitude": "[%key:component::purpleair::config::step::by_coordinates::data_description::longitude%]" + }, + "description": "[%key:component::purpleair::config::step::by_coordinates::description%]", + "title": "Add sensor" + }, + "choose_sensor": { + "data": { + "sensor_index": "[%key:component::purpleair::config::step::choose_sensor::data::sensor_index%]" + }, + "data_description": { + "sensor_index": "[%key:component::purpleair::config::step::choose_sensor::data_description::sensor_index%]" + }, + "description": "[%key:component::purpleair::config::step::choose_sensor::description%]", + "title": "Choose sensor to add" + }, + "init": { + "menu_options": { + "add_sensor": "Add sensor", + "remove_sensor": "Remove sensor", + "settings": "Settings" + } + }, + "remove_sensor": { + "data": { + "sensor_device_id": "Sensor name" + }, + "data_description": { + "sensor_device_id": "The sensor to remove" + }, + "title": "Remove sensor" + }, + "settings": { + "data": { + "show_on_map": "Show configured sensor locations on the map" + }, + "title": "[%key:component::purpleair::options::step::init::menu_options::settings%]" + } + } } } diff --git a/homeassistant/components/pushbullet/strings.json b/homeassistant/components/pushbullet/strings.json index 94d4202ea8c..a30140505ef 100644 --- a/homeassistant/components/pushbullet/strings.json +++ b/homeassistant/components/pushbullet/strings.json @@ -10,8 +10,8 @@ "step": { "user": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]" + "api_key": "[%key:common::config_flow::data::api_key%]", + "name": "[%key:common::config_flow::data::name%]" } } } diff --git a/homeassistant/components/pushover/strings.json b/homeassistant/components/pushover/strings.json index cd72a9c20a2..8f8e2c17475 100644 --- a/homeassistant/components/pushover/strings.json +++ b/homeassistant/components/pushover/strings.json @@ -10,17 +10,17 @@ "invalid_user_key": "Invalid user key" }, "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "user_key": "User key" - } - }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", "data": { "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "name": "[%key:common::config_flow::data::name%]", + "user_key": "User key" } } } diff --git a/homeassistant/components/pvoutput/strings.json b/homeassistant/components/pvoutput/strings.json index 651bb55a2b4..f8fbf4581ae 100644 --- a/homeassistant/components/pvoutput/strings.json +++ b/homeassistant/components/pvoutput/strings.json @@ -1,40 +1,40 @@ { "config": { - "step": { - "user": { - "description": "To authenticate with PVOutput you'll need to get the API key at {account_url}.\n\nThe system IDs of registered systems are listed on that same page.", - "data": { - "system_id": "System ID", - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "reauth_confirm": { - "description": "To re-authenticate with PVOutput you'll need to get the API key at {account_url}.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "To re-authenticate with PVOutput you'll need to get the API key at {account_url}." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "system_id": "System ID" + }, + "description": "To authenticate with PVOutput you'll need to get the API key at {account_url}.\n\nThe system IDs of registered systems are listed on that same page." + } } }, "entity": { "sensor": { + "efficiency": { + "name": "Efficiency" + }, "energy_consumption": { "name": "Energy consumption" }, "energy_generation": { "name": "Energy generation" }, - "efficiency": { - "name": "Efficiency" - }, "power_consumption": { "name": "Power consumption" }, diff --git a/homeassistant/components/pvpc_hourly_pricing/strings.json b/homeassistant/components/pvpc_hourly_pricing/strings.json index 4236709fdfa..6d074819b9d 100644 --- a/homeassistant/components/pvpc_hourly_pricing/strings.json +++ b/homeassistant/components/pvpc_hourly_pricing/strings.json @@ -1,53 +1,53 @@ { "config": { - "step": { - "user": { - "data": { - "name": "Sensor Name", - "tariff": "Applicable tariff by geographic zone", - "power": "Contracted power (kW)", - "power_p3": "Contracted power for valley period P3 (kW)", - "use_api_token": "Enable ESIOS Personal API token for private access" - } - }, - "api_token": { - "title": "ESIOS API token", - "description": "To use the extended API you must request a personal token by mailing to {mail_to_link}.", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } - }, - "reauth_confirm": { - "data": { - "description": "Re-authenticate with a valid token or disable it", - "use_api_token": "[%key:component::pvpc_hourly_pricing::config::step::user::data::use_api_token%]", - "api_token": "[%key:common::config_flow::data::api_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "api_token": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "To use the extended API you must request a personal token by mailing to {mail_to_link}.", + "title": "ESIOS API token" + }, + "reauth_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]", + "description": "Re-authenticate with a valid token or disable it", + "use_api_token": "[%key:component::pvpc_hourly_pricing::config::step::user::data::use_api_token%]" + } + }, + "user": { + "data": { + "name": "Sensor Name", + "power": "Contracted power (kW)", + "power_p3": "Contracted power for valley period P3 (kW)", + "tariff": "Applicable tariff by geographic zone", + "use_api_token": "Enable ESIOS Personal API token for private access" + } + } } }, "options": { "step": { + "api_token": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "description": "[%key:component::pvpc_hourly_pricing::config::step::api_token::description%]", + "title": "[%key:component::pvpc_hourly_pricing::config::step::api_token::title%]" + }, "init": { "data": { "power": "[%key:component::pvpc_hourly_pricing::config::step::user::data::power%]", "power_p3": "[%key:component::pvpc_hourly_pricing::config::step::user::data::power_p3%]", "use_api_token": "[%key:component::pvpc_hourly_pricing::config::step::user::data::use_api_token%]" } - }, - "api_token": { - "title": "[%key:component::pvpc_hourly_pricing::config::step::api_token::title%]", - "description": "[%key:component::pvpc_hourly_pricing::config::step::api_token::description%]", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - } } } } diff --git a/homeassistant/components/pyload/icons.json b/homeassistant/components/pyload/icons.json index 8bcc95c72d7..e3bab0163c0 100644 --- a/homeassistant/components/pyload/icons.json +++ b/homeassistant/components/pyload/icons.json @@ -4,26 +4,26 @@ "abort_downloads": { "default": "mdi:stop" }, - "restart_failed": { - "default": "mdi:cached" - }, "delete_finished": { "default": "mdi:trash-can" }, "restart": { "default": "mdi:restart" + }, + "restart_failed": { + "default": "mdi:cached" } }, "sensor": { - "speed": { - "default": "mdi:speedometer" - }, "active": { "default": "mdi:cloud-download" }, "queue": { "default": "mdi:cloud-clock" }, + "speed": { + "default": "mdi:speedometer" + }, "total": { "default": "mdi:cloud-alert" } diff --git a/homeassistant/components/pyload/strings.json b/homeassistant/components/pyload/strings.json index 05e5c47fee4..6a13edb709f 100644 --- a/homeassistant/components/pyload/strings.json +++ b/homeassistant/components/pyload/strings.json @@ -1,67 +1,67 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "Specify the full URL of your pyLoad web interface, including the protocol (HTTP or HTTPS), hostname or IP address, port (pyLoad uses 8000 by default), and any path prefix if applicable.\nExample: `{example_url}`", - "username": "The username used to access the pyLoad instance.", - "password": "The password associated with the pyLoad account.", - "verify_ssl": "If checked, the SSL certificate will be validated to ensure a secure connection." - } - }, - "reconfigure": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "[%key:component::pyload::config::step::user::data_description::url%]", - "username": "[%key:component::pyload::config::step::user::data_description::username%]", - "password": "[%key:component::pyload::config::step::user::data_description::password%]", - "verify_ssl": "[%key:component::pyload::config::step::user::data_description::verify_ssl%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::pyload::config::step::user::data_description::username%]", - "password": "[%key:component::pyload::config::step::user::data_description::password%]" - } - }, - "hassio_confirm": { - "title": "pyLoad via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the pyLoad service provided by the add-on: {addon}?", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::pyload::config::step::user::data_description::username%]", - "password": "[%key:component::pyload::config::step::user::data_description::password%]" - } - } + "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%]" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "hassio_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::pyload::config::step::user::data_description::password%]", + "username": "[%key:component::pyload::config::step::user::data_description::username%]" + }, + "description": "Do you want to configure Home Assistant to connect to the pyLoad service provided by the add-on: {addon}?", + "title": "pyLoad via Home Assistant add-on" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::pyload::config::step::user::data_description::password%]", + "username": "[%key:component::pyload::config::step::user::data_description::username%]" + }, + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "password": "[%key:component::pyload::config::step::user::data_description::password%]", + "url": "[%key:component::pyload::config::step::user::data_description::url%]", + "username": "[%key:component::pyload::config::step::user::data_description::username%]", + "verify_ssl": "[%key:component::pyload::config::step::user::data_description::verify_ssl%]" + } + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "password": "The password associated with the pyLoad account.", + "url": "Specify the full URL of your pyLoad web interface, including the protocol (HTTP or HTTPS), hostname or IP address, port (pyLoad uses 8000 by default), and any path prefix if applicable.\nExample: `{example_url}`", + "username": "The username used to access the pyLoad instance.", + "verify_ssl": "If checked, the SSL certificate will be validated to ensure a secure connection." + } + } } }, "entity": { @@ -69,31 +69,31 @@ "abort_downloads": { "name": "Abort all running downloads" }, - "restart_failed": { - "name": "Restart all failed files" - }, "delete_finished": { "name": "Delete finished files/packages" }, "restart": { "name": "Restart pyload core" + }, + "restart_failed": { + "name": "Restart all failed files" } }, "sensor": { - "speed": { - "name": "Speed" - }, "active": { "name": "Active downloads" }, + "free_space": { + "name": "Free space" + }, "queue": { "name": "Downloads in queue" }, + "speed": { + "name": "Speed" + }, "total": { "name": "Total downloads" - }, - "free_space": { - "name": "Free space" } }, "switch": { @@ -106,20 +106,20 @@ } }, "exceptions": { - "setup_request_exception": { - "message": "Unable to connect and retrieve data from pyLoad API" - }, - "setup_parse_exception": { - "message": "Unable to parse data from pyLoad API" - }, - "setup_authentication_exception": { - "message": "Authentication failed for {username}, verify your login credentials" + "service_call_auth_exception": { + "message": "Unable to send command to pyLoad due to an authentication error, try again later" }, "service_call_exception": { "message": "Unable to send command to pyLoad due to a connection error, try again later" }, - "service_call_auth_exception": { - "message": "Unable to send command to pyLoad due to an authentication error, try again later" + "setup_authentication_exception": { + "message": "Authentication failed for {username}, verify your login credentials" + }, + "setup_parse_exception": { + "message": "Unable to parse data from pyLoad API" + }, + "setup_request_exception": { + "message": "Unable to connect and retrieve data from pyLoad API" } } } diff --git a/homeassistant/components/python_script/strings.json b/homeassistant/components/python_script/strings.json index ccf1b33c767..1a1015f32af 100644 --- a/homeassistant/components/python_script/strings.json +++ b/homeassistant/components/python_script/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads all available Python scripts." + "description": "Reloads all available Python scripts.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/qbittorrent/icons.json b/homeassistant/components/qbittorrent/icons.json index cede127ebe8..959823db4d1 100644 --- a/homeassistant/components/qbittorrent/icons.json +++ b/homeassistant/components/qbittorrent/icons.json @@ -10,10 +10,10 @@ } }, "services": { - "get_torrents": { + "get_all_torrents": { "service": "mdi:file-arrow-up-down-outline" }, - "get_all_torrents": { + "get_torrents": { "service": "mdi:file-arrow-up-down-outline" } } diff --git a/homeassistant/components/qbittorrent/strings.json b/homeassistant/components/qbittorrent/strings.json index d392e081b71..6bf9a8d6a14 100644 --- a/homeassistant/components/qbittorrent/strings.json +++ b/homeassistant/components/qbittorrent/strings.json @@ -1,36 +1,32 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + } + } } }, "entity": { "sensor": { - "download_speed": { - "name": "Download speed" + "active_torrents": { + "name": "Active torrents", + "unit_of_measurement": "torrents" }, - "upload_speed": { - "name": "Upload speed" - }, - "download_speed_limit": { - "name": "Download speed limit" - }, - "upload_speed_limit": { - "name": "Upload speed limit" + "all_torrents": { + "name": "All torrents", + "unit_of_measurement": "[%key:component::qbittorrent::entity::sensor::active_torrents::unit_of_measurement%]" }, "alltime_download": { "name": "All-time download" @@ -38,29 +34,35 @@ "alltime_upload": { "name": "All-time upload" }, - "global_ratio": { - "name": "Global ratio" - }, - "current_status": { - "name": "Status", - "state": { - "idle": "[%key:common::state::idle%]", - "up_down": "Up/Down", - "seeding": "Seeding", - "downloading": "Downloading" - } - }, "connection_status": { "name": "Connection status", "state": { "connected": "[%key:common::state::connected%]", - "firewalled": "Firewalled", - "disconnected": "[%key:common::state::disconnected%]" + "disconnected": "[%key:common::state::disconnected%]", + "firewalled": "Firewalled" } }, - "active_torrents": { - "name": "Active torrents", - "unit_of_measurement": "torrents" + "current_status": { + "name": "Status", + "state": { + "downloading": "Downloading", + "idle": "[%key:common::state::idle%]", + "seeding": "Seeding", + "up_down": "Up/Down" + } + }, + "download_speed": { + "name": "Download speed" + }, + "download_speed_limit": { + "name": "Download speed limit" + }, + "errored_torrents": { + "name": "Errored torrents", + "unit_of_measurement": "[%key:component::qbittorrent::entity::sensor::active_torrents::unit_of_measurement%]" + }, + "global_ratio": { + "name": "Global ratio" }, "inactive_torrents": { "name": "Inactive torrents", @@ -70,13 +72,11 @@ "name": "Paused torrents", "unit_of_measurement": "[%key:component::qbittorrent::entity::sensor::active_torrents::unit_of_measurement%]" }, - "errored_torrents": { - "name": "Errored torrents", - "unit_of_measurement": "[%key:component::qbittorrent::entity::sensor::active_torrents::unit_of_measurement%]" + "upload_speed": { + "name": "Upload speed" }, - "all_torrents": { - "name": "All torrents", - "unit_of_measurement": "[%key:component::qbittorrent::entity::sensor::active_torrents::unit_of_measurement%]" + "upload_speed_limit": { + "name": "Upload speed limit" } }, "switch": { @@ -85,33 +85,10 @@ } } }, - "services": { - "get_torrents": { - "name": "Get torrents", - "description": "Gets a list of current torrents", - "fields": { - "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "Which service to grab the list from" - }, - "torrent_filter": { - "name": "Torrent filter", - "description": "What kind of torrents you want to return, such as All or Active." - } - } - }, - "get_all_torrents": { - "name": "Get all torrents", - "description": "Gets a list of current torrents from all instances of qBittorrent", - "fields": { - "torrent_filter": { - "name": "Torrent filter", - "description": "What kind of torrents you want to return, such as All or Active." - } - } - } - }, "exceptions": { + "cannot_connect": { + "message": "Can't connect to qBittorrent, please check your configuration." + }, "invalid_device": { "message": "No device with ID {device_id} was found" }, @@ -120,9 +97,32 @@ }, "login_error": { "message": "A login error occurred. Please check your username and password." + } + }, + "services": { + "get_all_torrents": { + "description": "Gets a list of current torrents from all instances of qBittorrent", + "fields": { + "torrent_filter": { + "description": "What kind of torrents you want to return, such as All or Active.", + "name": "Torrent filter" + } + }, + "name": "Get all torrents" }, - "cannot_connect": { - "message": "Can't connect to qBittorrent, please check your configuration." + "get_torrents": { + "description": "Gets a list of current torrents", + "fields": { + "device_id": { + "description": "Which service to grab the list from", + "name": "[%key:common::config_flow::data::device%]" + }, + "torrent_filter": { + "description": "What kind of torrents you want to return, such as All or Active.", + "name": "Torrent filter" + } + }, + "name": "Get torrents" } } } diff --git a/homeassistant/components/qbus/strings.json b/homeassistant/components/qbus/strings.json index 87788787baa..2f7e9afc3e4 100644 --- a/homeassistant/components/qbus/strings.json +++ b/homeassistant/components/qbus/strings.json @@ -1,12 +1,5 @@ { "config": { - "flow_title": "Controller {serial}", - "step": { - "discovery_confirm": { - "title": "Add controller", - "description": "Add controller {serial}?" - } - }, "abort": { "already_configured": "Controller already configured", "discovery_in_progress": "Discovery in progress", @@ -14,6 +7,13 @@ }, "error": { "no_controller": "No controllers were found" + }, + "flow_title": "Controller {serial}", + "step": { + "discovery_confirm": { + "description": "Add controller {serial}?", + "title": "Add controller" + } } }, "entity": { diff --git a/homeassistant/components/qingping/manifest.json b/homeassistant/components/qingping/manifest.json index 11d408dab42..f529abadd0c 100644 --- a/homeassistant/components/qingping/manifest.json +++ b/homeassistant/components/qingping/manifest.json @@ -3,16 +3,16 @@ "name": "Qingping", "bluetooth": [ { - "local_name": "Qingping*", - "connectable": false + "connectable": false, + "local_name": "Qingping*" }, { - "local_name": "Lee Guitars*", - "connectable": false + "connectable": false, + "local_name": "Lee Guitars*" }, { - "service_data_uuid": "0000fdcd-0000-1000-8000-00805f9b34fb", - "connectable": false + "connectable": false, + "service_data_uuid": "0000fdcd-0000-1000-8000-00805f9b34fb" } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/qingping/strings.json b/homeassistant/components/qingping/strings.json index 16a80220a20..f85ef2e6920 100644 --- a/homeassistant/components/qingping/strings.json +++ b/homeassistant/components/qingping/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } } } diff --git a/homeassistant/components/qnap/icons.json b/homeassistant/components/qnap/icons.json index b359073f483..2511e83b099 100644 --- a/homeassistant/components/qnap/icons.json +++ b/homeassistant/components/qnap/icons.json @@ -1,53 +1,53 @@ { "entity": { "sensor": { - "status": { - "default": "mdi:checkbox-marked-circle-outline" - }, "cpu_usage": { "default": "mdi:chip" }, - "memory_free": { - "default": "mdi:memory" + "drive_smart_status": { + "default": "mdi:checkbox-marked-circle-outline" }, - "memory_used": { + "memory_free": { "default": "mdi:memory" }, "memory_percent_used": { "default": "mdi:memory" }, - "network_link_status": { - "default": "mdi:checkbox-marked-circle-outline" - }, - "network_tx": { - "default": "mdi:upload" - }, - "network_rx": { - "default": "mdi:download" - }, - "drive_smart_status": { - "default": "mdi:checkbox-marked-circle-outline" - }, - "volume_size_used": { - "default": "mdi:chart-pie" - }, - "volume_size_free": { - "default": "mdi:chart-pie" - }, - "volume_percentage_used": { - "default": "mdi:chart-pie" - }, - "volume_size_total": { - "default": "mdi:chart-pie" - }, "memory_size": { "default": "mdi:memory" }, + "memory_used": { + "default": "mdi:memory" + }, "network_err": { "default": "mdi:alert" }, + "network_link_status": { + "default": "mdi:checkbox-marked-circle-outline" + }, "network_max_speed": { "default": "mdi:speedometer" + }, + "network_rx": { + "default": "mdi:download" + }, + "network_tx": { + "default": "mdi:upload" + }, + "status": { + "default": "mdi:checkbox-marked-circle-outline" + }, + "volume_percentage_used": { + "default": "mdi:chart-pie" + }, + "volume_size_free": { + "default": "mdi:chart-pie" + }, + "volume_size_total": { + "default": "mdi:chart-pie" + }, + "volume_size_used": { + "default": "mdi:chart-pie" } } } diff --git a/homeassistant/components/qnap/strings.json b/homeassistant/components/qnap/strings.json index 1979be3e827..2a73eb20467 100644 --- a/homeassistant/components/qnap/strings.json +++ b/homeassistant/components/qnap/strings.json @@ -1,89 +1,89 @@ { "config": { - "step": { - "user": { - "title": "Connect to the QNAP device", - "description": "This sensor allows getting various statistics from your QNAP NAS.", - "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%]", - "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 your QNAP 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": { + "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 your QNAP device." + }, + "description": "This sensor allows getting various statistics from your QNAP NAS.", + "title": "Connect to the QNAP device" + } } }, "entity": { "sensor": { - "status": { - "name": "Status" - }, - "system_temp": { - "name": "System temperature" - }, "cpu_temp": { "name": "CPU temperature" }, "cpu_usage": { "name": "CPU usage" }, - "memory_free": { - "name": "Memory available" - }, - "memory_used": { - "name": "Memory used" - }, - "memory_percent_used": { - "name": "Memory usage" - }, - "network_link_status": { - "name": "{monitor_device} link" - }, - "network_tx": { - "name": "{monitor_device} upload" - }, - "network_rx": { - "name": "{monitor_device} download" - }, "drive_smart_status": { "name": "Drive {monitor_device} status" }, "drive_temp": { "name": "Drive {monitor_device} temperature" }, - "volume_size_used": { - "name": "Used space ({monitor_device})" + "memory_free": { + "name": "Memory available" }, - "volume_size_free": { - "name": "Free space ({monitor_device})" - }, - "volume_percentage_used": { - "name": "Volume used ({monitor_device})" - }, - "uptime": { - "name": "Uptime" + "memory_percent_used": { + "name": "Memory usage" }, "memory_size": { "name": "Memory size" }, + "memory_used": { + "name": "Memory used" + }, "network_err": { "name": "{monitor_device} packet errors" }, + "network_link_status": { + "name": "{monitor_device} link" + }, "network_max_speed": { "name": "{monitor_device} maximum speed" }, + "network_rx": { + "name": "{monitor_device} download" + }, + "network_tx": { + "name": "{monitor_device} upload" + }, + "status": { + "name": "Status" + }, + "system_temp": { + "name": "System temperature" + }, + "uptime": { + "name": "Uptime" + }, + "volume_percentage_used": { + "name": "Volume used ({monitor_device})" + }, + "volume_size_free": { + "name": "Free space ({monitor_device})" + }, "volume_size_total": { "name": "Volume size" + }, + "volume_size_used": { + "name": "Used space ({monitor_device})" } } } diff --git a/homeassistant/components/qnap_qsw/strings.json b/homeassistant/components/qnap_qsw/strings.json index e946bc4257d..4f48b1a49c4 100644 --- a/homeassistant/components/qnap_qsw/strings.json +++ b/homeassistant/components/qnap_qsw/strings.json @@ -11,15 +11,15 @@ "step": { "discovered_connection": { "data": { - "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%]" } }, "user": { "data": { + "password": "[%key:common::config_flow::data::password%]", "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "username": "[%key:common::config_flow::data::username%]" } } } diff --git a/homeassistant/components/qvr_pro/strings.json b/homeassistant/components/qvr_pro/strings.json index de61d38ffea..e6a5cebc0e9 100644 --- a/homeassistant/components/qvr_pro/strings.json +++ b/homeassistant/components/qvr_pro/strings.json @@ -1,24 +1,24 @@ { "services": { "start_record": { - "name": "Start record", "description": "Starts QVR Pro recording on specified channel.", "fields": { "guid": { - "name": "GUID", - "description": "GUID of the channel to start recording." + "description": "GUID of the channel to start recording.", + "name": "GUID" } - } + }, + "name": "Start record" }, "stop_record": { - "name": "Stop record", "description": "Stops QVR Pro recording on specified channel.", "fields": { "guid": { - "name": "[%key:component::qvr_pro::services::start_record::fields::guid::name%]", - "description": "GUID of the channel to stop recording." + "description": "GUID of the channel to stop recording.", + "name": "[%key:component::qvr_pro::services::start_record::fields::guid::name%]" } - } + }, + "name": "Stop record" } } } diff --git a/homeassistant/components/rabbitair/strings.json b/homeassistant/components/rabbitair/strings.json index dd44a51d48f..070ba3be3c5 100644 --- a/homeassistant/components/rabbitair/strings.json +++ b/homeassistant/components/rabbitair/strings.json @@ -1,12 +1,7 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "access_token": "[%key:common::config_flow::data::access_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -15,8 +10,13 @@ "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "host": "[%key:common::config_flow::data::host%]" + } + } } } } diff --git a/homeassistant/components/rachio/icons.json b/homeassistant/components/rachio/icons.json index df30929ab4c..71c634a6cb9 100644 --- a/homeassistant/components/rachio/icons.json +++ b/homeassistant/components/rachio/icons.json @@ -1,32 +1,32 @@ { "entity": { "switch": { - "standby": { - "default": "mdi:power" - }, "rain_delay": { "default": "mdi:camera-timer" + }, + "standby": { + "default": "mdi:power" } } }, "services": { - "set_zone_moisture_percent": { - "service": "mdi:water-percent" - }, - "start_multiple_zone_schedule": { - "service": "mdi:play" - }, "pause_watering": { "service": "mdi:pause" }, "resume_watering": { "service": "mdi:play" }, - "stop_watering": { - "service": "mdi:stop" + "set_zone_moisture_percent": { + "service": "mdi:water-percent" + }, + "start_multiple_zone_schedule": { + "service": "mdi:play" }, "start_watering": { "service": "mdi:water" + }, + "stop_watering": { + "service": "mdi:stop" } } } diff --git a/homeassistant/components/rachio/manifest.json b/homeassistant/components/rachio/manifest.json index 1a9d71233c2..44f5a21ba65 100644 --- a/homeassistant/components/rachio/manifest.json +++ b/homeassistant/components/rachio/manifest.json @@ -28,8 +28,8 @@ "requirements": ["RachioPy==1.1.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "rachio*" + "name": "rachio*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/rachio/strings.json b/homeassistant/components/rachio/strings.json index f63454cb185..f4cef7fdc93 100644 --- a/homeassistant/components/rachio/strings.json +++ b/homeassistant/components/rachio/strings.json @@ -1,21 +1,44 @@ { "config": { - "step": { - "user": { - "title": "Connect to your Rachio device", - "description": "You will need the API key from {api_key_url}. Go to Settings, then select 'GET API KEY'.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "You will need the API key from {api_key_url}. Go to Settings, then select 'GET API KEY'.", + "title": "Connect to your Rachio device" + } + } + }, + "entity": { + "binary_sensor": { + "flow": { + "name": "Flow" + }, + "rain": { + "name": "Rain" + } + }, + "calendar": { + "calendar": { + "name": "Rachio Base Station {base}" + } + }, + "switch": { + "rain_delay": { + "name": "Rain delay" + }, + "standby": { + "name": "Standby" + } } }, "options": { @@ -27,93 +50,70 @@ } } }, - "entity": { - "binary_sensor": { - "rain": { - "name": "Rain" - }, - "flow": { - "name": "Flow" - } - }, - "calendar": { - "calendar": { - "name": "Rachio Base Station {base}" - } - }, - "switch": { - "standby": { - "name": "Standby" - }, - "rain_delay": { - "name": "Rain delay" - } - } - }, "services": { - "set_zone_moisture_percent": { - "name": "Set zone moisture percent", - "description": "Sets the moisture percentage of a zone or list of zones.", - "fields": { - "percent": { - "name": "Percent", - "description": "Set the desired zone moisture percentage." - } - } - }, - "start_multiple_zone_schedule": { - "name": "Start multiple zones", - "description": "Creates a custom schedule of zones and runtimes. Note that all zones should be on the same controller to avoid issues.", - "fields": { - "duration": { - "name": "Duration", - "description": "Number of minutes to run the zone(s). If only 1 duration is given, that time will be used for all zones. If given a list of durations, the durations will apply to the respective zones listed above." - } - } - }, - "start_watering": { - "name": "Start watering", - "description": "Starts a single zone, a schedule or any number of smart hose timers.", - "fields": { - "duration": { - "name": "Duration", - "description": "Number of minutes to run. For sprinkler zones the maximum duration is 3 hours, or 24 hours for smart hose timers. Leave empty for schedules." - } - } - }, "pause_watering": { - "name": "Pause watering", "description": "Pauses any currently running zones or schedules.", "fields": { "devices": { - "name": "Devices", - "description": "Name of controllers to pause. Defaults to all controllers on the account if not provided." + "description": "Name of controllers to pause. Defaults to all controllers on the account if not provided.", + "name": "Devices" }, "duration": { - "name": "Duration", - "description": "The time to pause running schedules." + "description": "The time to pause running schedules.", + "name": "Duration" } - } + }, + "name": "Pause watering" }, "resume_watering": { - "name": "Resume watering", "description": "Resumes any paused zone runs or schedules.", "fields": { "devices": { - "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]", - "description": "Name of controllers to resume. Defaults to all controllers on the account if not provided." + "description": "Name of controllers to resume. Defaults to all controllers on the account if not provided.", + "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]" } - } + }, + "name": "Resume watering" + }, + "set_zone_moisture_percent": { + "description": "Sets the moisture percentage of a zone or list of zones.", + "fields": { + "percent": { + "description": "Set the desired zone moisture percentage.", + "name": "Percent" + } + }, + "name": "Set zone moisture percent" + }, + "start_multiple_zone_schedule": { + "description": "Creates a custom schedule of zones and runtimes. Note that all zones should be on the same controller to avoid issues.", + "fields": { + "duration": { + "description": "Number of minutes to run the zone(s). If only 1 duration is given, that time will be used for all zones. If given a list of durations, the durations will apply to the respective zones listed above.", + "name": "Duration" + } + }, + "name": "Start multiple zones" + }, + "start_watering": { + "description": "Starts a single zone, a schedule or any number of smart hose timers.", + "fields": { + "duration": { + "description": "Number of minutes to run. For sprinkler zones the maximum duration is 3 hours, or 24 hours for smart hose timers. Leave empty for schedules.", + "name": "Duration" + } + }, + "name": "Start watering" }, "stop_watering": { - "name": "Stop watering", "description": "Stops any currently running zones or schedules.", "fields": { "devices": { - "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]", - "description": "Name of controllers to stop. Defaults to all controllers on the account if not provided." + "description": "Name of controllers to stop. Defaults to all controllers on the account if not provided.", + "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]" } - } + }, + "name": "Stop watering" } } } diff --git a/homeassistant/components/radarr/strings.json b/homeassistant/components/radarr/strings.json index 268d7955c1b..b60e38bd255 100644 --- a/homeassistant/components/radarr/strings.json +++ b/homeassistant/components/radarr/strings.json @@ -1,37 +1,28 @@ { "config": { - "step": { - "user": { - "description": "API key can be retrieved automatically if login credentials were not set in application.\nYour API key can be found in Settings > General in the Radarr Web UI.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Radarr integration needs to be manually re-authenticated with the Radarr API" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]", - "zeroconf_failed": "API key not found. Please enter it manually", + "unknown": "[%key:common::config_flow::error::unknown%]", "wrong_app": "Incorrect application reached. Please try again", - "unknown": "[%key:common::config_flow::error::unknown%]" + "zeroconf_failed": "API key not found. Please enter it manually" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { "step": { - "init": { + "reauth_confirm": { + "description": "The Radarr integration needs to be manually re-authenticated with the Radarr API", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { "data": { - "upcoming_days": "Number of upcoming days to display" - } + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "API key can be retrieved automatically if login credentials were not set in application.\nYour API key can be found in Settings > General in the Radarr Web UI." } } }, @@ -54,5 +45,14 @@ "name": "Start time" } } + }, + "options": { + "step": { + "init": { + "data": { + "upcoming_days": "Number of upcoming days to display" + } + } + } } } diff --git a/homeassistant/components/radiotherm/strings.json b/homeassistant/components/radiotherm/strings.json index e76bd2d3f2d..b781b2b9e42 100644 --- a/homeassistant/components/radiotherm/strings.json +++ b/homeassistant/components/radiotherm/strings.json @@ -1,7 +1,17 @@ { "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%]" + }, "flow_title": "{name} {model} ({host})", "step": { + "confirm": { + "description": "Do you want to set up {name} {model} ({host})?" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -9,25 +19,6 @@ "data_description": { "host": "The hostname or IP address of your Radio Thermostat." } - }, - "confirm": { - "description": "Do you want to set up {name} {model} ({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%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "hold_temp": "Set a permanent hold when adjusting the temperature." - } } } }, @@ -37,5 +28,14 @@ "name": "Hold" } } + }, + "options": { + "step": { + "init": { + "data": { + "hold_temp": "Set a permanent hold when adjusting the temperature." + } + } + } } } diff --git a/homeassistant/components/rainbird/icons.json b/homeassistant/components/rainbird/icons.json index 61c09f74e88..d8fd2afbfd0 100644 --- a/homeassistant/components/rainbird/icons.json +++ b/homeassistant/components/rainbird/icons.json @@ -22,11 +22,11 @@ } }, "services": { - "start_irrigation": { - "service": "mdi:water" - }, "set_rain_delay": { "service": "mdi:water-sync" + }, + "start_irrigation": { + "service": "mdi:water" } } } diff --git a/homeassistant/components/rainbird/strings.json b/homeassistant/components/rainbird/strings.json index ca7dc18b8d8..5c2da6a6290 100644 --- a/homeassistant/components/rainbird/strings.json +++ b/homeassistant/components/rainbird/strings.json @@ -1,9 +1,26 @@ { "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%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "The password to authenticate with your Rain Bird device." + }, + "description": "The Rain Bird integration needs to re-authenticate with the device.", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { - "title": "Configure Rain Bird", - "description": "Please enter the LNK WiFi module information for your Rain Bird device.", "data": { "host": "[%key:common::config_flow::data::host%]", "password": "[%key:common::config_flow::data::password%]" @@ -11,39 +28,9 @@ "data_description": { "host": "The hostname or IP address of your Rain Bird device.", "password": "The password used to authenticate with the Rain Bird device." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Rain Bird integration needs to re-authenticate with the device.", - "data": { - "password": "[%key:common::config_flow::data::password%]" }, - "data_description": { - "password": "The password to authenticate with your Rain Bird device." - } - } - }, - "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%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - } - }, - "options": { - "step": { - "init": { - "title": "[%key:component::rainbird::config::step::user::title%]", - "data": { - "duration": "Default irrigation time in minutes" - }, - "data_description": { - "duration": "The default duration the sprinkler will run when turned on." - } + "description": "Please enter the LNK WiFi module information for your Rain Bird device.", + "title": "Configure Rain Bird" } } }, @@ -64,30 +51,43 @@ } } }, - "services": { - "start_irrigation": { - "name": "Start irrigation", - "description": "Starts the irrigation.", - "fields": { - "duration": { - "name": "Duration", - "description": "Duration for this sprinkler to be turned on." - } + "options": { + "step": { + "init": { + "data": { + "duration": "Default irrigation time in minutes" + }, + "data_description": { + "duration": "The default duration the sprinkler will run when turned on." + }, + "title": "[%key:component::rainbird::config::step::user::title%]" } - }, + } + }, + "services": { "set_rain_delay": { - "name": "Set rain delay", "description": "Sets how long automatic irrigation is turned off.", "fields": { "config_entry_id": { - "name": "Rain Bird controller", - "description": "The configuration entry of the controller to adjust the setting." + "description": "The configuration entry of the controller to adjust the setting.", + "name": "Rain Bird controller" }, "duration": { - "name": "Duration", - "description": "Duration for this system to be turned off." + "description": "Duration for this system to be turned off.", + "name": "Duration" } - } + }, + "name": "Set rain delay" + }, + "start_irrigation": { + "description": "Starts the irrigation.", + "fields": { + "duration": { + "description": "Duration for this sprinkler to be turned on.", + "name": "Duration" + } + }, + "name": "Start irrigation" } } } diff --git a/homeassistant/components/rainforest_eagle/strings.json b/homeassistant/components/rainforest_eagle/strings.json index 08e237d5af0..a874770baa9 100644 --- a/homeassistant/components/rainforest_eagle/strings.json +++ b/homeassistant/components/rainforest_eagle/strings.json @@ -1,28 +1,31 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "cloud_id": "Cloud ID", - "install_code": "Installation code" - }, - "data_description": { - "host": "The hostname or IP address of your Rainforest gateway." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "cloud_id": "Cloud ID", + "host": "[%key:common::config_flow::data::host%]", + "install_code": "Installation code" + }, + "data_description": { + "host": "The hostname or IP address of your Rainforest gateway." + } + } } }, "entity": { "sensor": { + "energy_price": { + "name": "Energy price" + }, "power_demand": { "name": "Power demand" }, @@ -31,9 +34,6 @@ }, "total_energy_received": { "name": "Total energy received" - }, - "energy_price": { - "name": "Energy price" } } } diff --git a/homeassistant/components/rainforest_raven/icons.json b/homeassistant/components/rainforest_raven/icons.json index 964ecf92c74..84643640822 100644 --- a/homeassistant/components/rainforest_raven/icons.json +++ b/homeassistant/components/rainforest_raven/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "signal_strength": { - "default": "mdi:wifi" - }, "meter_price": { "default": "mdi:cash" + }, + "signal_strength": { + "default": "mdi:wifi" } } } diff --git a/homeassistant/components/rainforest_raven/manifest.json b/homeassistant/components/rainforest_raven/manifest.json index 3a902377c2e..c21241f1cc9 100644 --- a/homeassistant/components/rainforest_raven/manifest.json +++ b/homeassistant/components/rainforest_raven/manifest.json @@ -9,18 +9,18 @@ "requirements": ["aioraven==0.7.1"], "usb": [ { - "vid": "0403", - "pid": "8A28", - "manufacturer": "*rainforest*", "description": "*raven*", - "known_devices": ["Rainforest RAVEn"] + "known_devices": ["Rainforest RAVEn"], + "manufacturer": "*rainforest*", + "pid": "8A28", + "vid": "0403" }, { - "vid": "04B4", - "pid": "0003", - "manufacturer": "*rainforest*", "description": "*emu-2*", - "known_devices": ["Rainforest EMU-2"] + "known_devices": ["Rainforest EMU-2"], + "manufacturer": "*rainforest*", + "pid": "0003", + "vid": "04B4" } ] } diff --git a/homeassistant/components/rainmachine/icons.json b/homeassistant/components/rainmachine/icons.json index ca85d81346e..d84e91d7c0c 100644 --- a/homeassistant/components/rainmachine/icons.json +++ b/homeassistant/components/rainmachine/icons.json @@ -73,6 +73,12 @@ "pause_watering": { "service": "mdi:pause" }, + "push_flow_meter_data": { + "service": "mdi:database-arrow-up" + }, + "push_weather_data": { + "service": "mdi:database-arrow-up" + }, "restrict_watering": { "service": "mdi:cancel" }, @@ -94,12 +100,6 @@ "unpause_watering": { "service": "mdi:play-pause" }, - "push_flow_meter_data": { - "service": "mdi:database-arrow-up" - }, - "push_weather_data": { - "service": "mdi:database-arrow-up" - }, "unrestrict_watering": { "service": "mdi:check" } diff --git a/homeassistant/components/rainmachine/manifest.json b/homeassistant/components/rainmachine/manifest.json index 0d871998eed..96d4f7be587 100644 --- a/homeassistant/components/rainmachine/manifest.json +++ b/homeassistant/components/rainmachine/manifest.json @@ -13,8 +13,8 @@ "requirements": ["regenmaschine==2024.03.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "rainmachine*" + "name": "rainmachine*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/rainmachine/strings.json b/homeassistant/components/rainmachine/strings.json index e8c54c94f84..a0ca15a01f1 100644 --- a/homeassistant/components/rainmachine/strings.json +++ b/homeassistant/components/rainmachine/strings.json @@ -1,32 +1,20 @@ { "config": { - "flow_title": "{ip}", - "step": { - "user": { - "title": "Fill in your information", - "data": { - "ip_address": "Hostname or IP address", - "password": "[%key:common::config_flow::data::password%]", - "port": "[%key:common::config_flow::data::port%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { + "flow_title": "{ip}", "step": { - "init": { - "title": "Configure RainMachine", + "user": { "data": { - "zone_run_time": "Default zone run time (in seconds)", - "use_app_run_times": "Use zone run times from the RainMachine app", - "allow_inactive_zones_to_run": "Allow disabled zones to be run manually" - } + "ip_address": "Hostname or IP address", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "title": "Fill in your information" } } }, @@ -94,170 +82,182 @@ } } }, + "options": { + "step": { + "init": { + "data": { + "allow_inactive_zones_to_run": "Allow disabled zones to be run manually", + "use_app_run_times": "Use zone run times from the RainMachine app", + "zone_run_time": "Default zone run time (in seconds)" + }, + "title": "Configure RainMachine" + } + } + }, "services": { "pause_watering": { - "name": "Pause all watering", "description": "Pauses all watering activities for a number of seconds.", "fields": { "device_id": { - "name": "Controller", - "description": "The controller whose watering activities should be paused." + "description": "The controller whose watering activities should be paused.", + "name": "Controller" }, "seconds": { - "name": "Duration", - "description": "The amount of time (in seconds) to pause watering." + "description": "The amount of time (in seconds) to pause watering.", + "name": "Duration" } - } - }, - "restrict_watering": { - "name": "Restrict all watering", - "description": "Restricts all watering activities from starting for a time period.", - "fields": { - "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller whose watering activities should be restricted." - }, - "duration": { - "name": "Duration", - "description": "The time period to restrict watering activities from starting." - } - } - }, - "start_program": { - "name": "Start program", - "description": "Starts a program." - }, - "start_zone": { - "name": "Start zone", - "description": "Starts a zone.", - "fields": { - "zone_run_time": { - "name": "Run time", - "description": "The amount of time (in seconds) to run the zone." - } - } - }, - "stop_all": { - "name": "Stop all watering", - "description": "Stops all watering activities.", - "fields": { - "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller whose watering activities should be stopped." - } - } - }, - "stop_program": { - "name": "Stop program", - "description": "Stops a program." - }, - "stop_zone": { - "name": "Stop zone", - "description": "Stops a zone." - }, - "unpause_watering": { - "name": "Unpause all watering", - "description": "Resumes all paused watering activities.", - "fields": { - "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller whose watering activities should be unpaused." - } - } + }, + "name": "Pause all watering" }, "push_flow_meter_data": { - "name": "Push flow meter data", "description": "Sends flow meter data from Home Assistant to the RainMachine device.", "fields": { "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller to send flow meter data to." - }, - "value": { - "name": "Value", - "description": "The flow meter value to send." + "description": "The controller to send flow meter data to.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" }, "unit_of_measurement": { - "name": "Unit of measurement", - "description": "The flow meter units to send." + "description": "The flow meter units to send.", + "name": "Unit of measurement" + }, + "value": { + "description": "The flow meter value to send.", + "name": "Value" } - } + }, + "name": "Push flow meter data" }, "push_weather_data": { - "name": "Push weather data", "description": "Sends weather data from Home Assistant to the RainMachine device.\nLocal Weather Push service should be enabled from Settings > Weather > Developer tab for RainMachine to consider the values being sent. Units must be sent in metric; no conversions are performed by the integraion.\nSee details of RainMachine API here: https://rainmachine.docs.apiary.io/#reference/weather-services/parserdata/post.", "fields": { - "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller for the weather data to be pushed." - }, - "timestamp": { - "name": "Timestamp", - "description": "UNIX timestamp for the weather data. If omitted, the RainMachine device's local time at the time of the call is used." - }, - "mintemp": { - "name": "Min temperature", - "description": "Minimum temperature in current period (°C)." - }, - "maxtemp": { - "name": "Max temperature", - "description": "Maximum temperature in current period (°C)." - }, - "temperature": { - "name": "Temperature", - "description": "Current temperature (°C)." - }, - "wind": { - "name": "Wind speed", - "description": "Current wind speed (m/s)." - }, - "solarrad": { - "name": "Solar radiation", - "description": "Current solar radiation (MJ/m²/h)." - }, - "et": { - "name": "Evapotranspiration", - "description": "Evapotranspiration (mm)." - }, - "qpf": { - "name": "Quantitative Precipitation Forecast", - "description": "Quantitative Precipitation Forecast (mm), or QPF. Note: QPF values shouldn't be send as cumulative values but the measured/forecasted values for each hour or day. The RainMachine Mixer will sum all QPF values in the current day to have the day total QPF." - }, - "rain": { - "name": "Measured rainfall", - "description": "Measured rainfail (mm). Note: RAIN values shouldn't be send as cumulative values but the measured/forecasted values for each hour or day. The RainMachine Mixer will sum all RAIN values in the current day to have the day total RAIN." - }, - "minrh": { - "name": "Min relative humidity", - "description": "Minimum relative humidity in current period (%RH)." - }, - "maxrh": { - "name": "Max relative humidity", - "description": "Maximum relative humidity in current period (%RH)." - }, "condition": { - "name": "Weather condition code", - "description": "Current weather condition code (WNUM)." + "description": "Current weather condition code (WNUM).", + "name": "Weather condition code" }, - "pressure": { - "name": "Barometric pressure", - "description": "Current barometric pressure (kPa)." + "device_id": { + "description": "The controller for the weather data to be pushed.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" }, "dewpoint": { - "name": "Dew point", - "description": "Current dew point (°C)." + "description": "Current dew point (°C).", + "name": "Dew point" + }, + "et": { + "description": "Evapotranspiration (mm).", + "name": "Evapotranspiration" + }, + "maxrh": { + "description": "Maximum relative humidity in current period (%RH).", + "name": "Max relative humidity" + }, + "maxtemp": { + "description": "Maximum temperature in current period (°C).", + "name": "Max temperature" + }, + "minrh": { + "description": "Minimum relative humidity in current period (%RH).", + "name": "Min relative humidity" + }, + "mintemp": { + "description": "Minimum temperature in current period (°C).", + "name": "Min temperature" + }, + "pressure": { + "description": "Current barometric pressure (kPa).", + "name": "Barometric pressure" + }, + "qpf": { + "description": "Quantitative Precipitation Forecast (mm), or QPF. Note: QPF values shouldn't be send as cumulative values but the measured/forecasted values for each hour or day. The RainMachine Mixer will sum all QPF values in the current day to have the day total QPF.", + "name": "Quantitative Precipitation Forecast" + }, + "rain": { + "description": "Measured rainfail (mm). Note: RAIN values shouldn't be send as cumulative values but the measured/forecasted values for each hour or day. The RainMachine Mixer will sum all RAIN values in the current day to have the day total RAIN.", + "name": "Measured rainfall" + }, + "solarrad": { + "description": "Current solar radiation (MJ/m²/h).", + "name": "Solar radiation" + }, + "temperature": { + "description": "Current temperature (°C).", + "name": "Temperature" + }, + "timestamp": { + "description": "UNIX timestamp for the weather data. If omitted, the RainMachine device's local time at the time of the call is used.", + "name": "Timestamp" + }, + "wind": { + "description": "Current wind speed (m/s).", + "name": "Wind speed" } - } + }, + "name": "Push weather data" + }, + "restrict_watering": { + "description": "Restricts all watering activities from starting for a time period.", + "fields": { + "device_id": { + "description": "The controller whose watering activities should be restricted.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" + }, + "duration": { + "description": "The time period to restrict watering activities from starting.", + "name": "Duration" + } + }, + "name": "Restrict all watering" + }, + "start_program": { + "description": "Starts a program.", + "name": "Start program" + }, + "start_zone": { + "description": "Starts a zone.", + "fields": { + "zone_run_time": { + "description": "The amount of time (in seconds) to run the zone.", + "name": "Run time" + } + }, + "name": "Start zone" + }, + "stop_all": { + "description": "Stops all watering activities.", + "fields": { + "device_id": { + "description": "The controller whose watering activities should be stopped.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" + } + }, + "name": "Stop all watering" + }, + "stop_program": { + "description": "Stops a program.", + "name": "Stop program" + }, + "stop_zone": { + "description": "Stops a zone.", + "name": "Stop zone" + }, + "unpause_watering": { + "description": "Resumes all paused watering activities.", + "fields": { + "device_id": { + "description": "The controller whose watering activities should be unpaused.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" + } + }, + "name": "Unpause all watering" }, "unrestrict_watering": { - "name": "Unrestrict all watering", "description": "Removes all watering restrictions.", "fields": { "device_id": { - "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", - "description": "The controller whose watering activities should be unrestricted." + "description": "The controller whose watering activities should be unrestricted.", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]" } - } + }, + "name": "Unrestrict all watering" } } } diff --git a/homeassistant/components/random/strings.json b/homeassistant/components/random/strings.json index bf83da70de1..b0c4b329696 100644 --- a/homeassistant/components/random/strings.json +++ b/homeassistant/components/random/strings.json @@ -1,5 +1,4 @@ { - "title": "Random", "config": { "step": { "binary_sensor": { @@ -12,9 +11,9 @@ "sensor": { "data": { "device_class": "Device class", - "name": "[%key:common::config_flow::data::name%]", - "minimum": "Minimum", "maximum": "Maximum", + "minimum": "Minimum", + "name": "[%key:common::config_flow::data::name%]", "unit_of_measurement": "Unit of measurement" }, "title": "Random sensor" @@ -32,14 +31,14 @@ "options": { "step": { "binary_sensor": { - "title": "[%key:component::random::config::step::binary_sensor::title%]", - "description": "This helper does not have any options." + "description": "This helper does not have any options.", + "title": "[%key:component::random::config::step::binary_sensor::title%]" }, "sensor": { "data": { "device_class": "[%key:component::random::config::step::sensor::data::device_class%]", - "minimum": "[%key:component::random::config::step::sensor::data::minimum%]", "maximum": "[%key:component::random::config::step::sensor::data::maximum%]", + "minimum": "[%key:component::random::config::step::sensor::data::minimum%]", "unit_of_measurement": "[%key:component::random::config::step::sensor::data::unit_of_measurement%]" }, "title": "[%key:component::random::config::step::sensor::title%]" @@ -53,8 +52,8 @@ "battery": "[%key:component::binary_sensor::entity_component::battery::name%]", "battery_charging": "[%key:component::binary_sensor::entity_component::battery_charging::name%]", "carbon_monoxide": "[%key:component::binary_sensor::entity_component::carbon_monoxide::name%]", - "connectivity": "[%key:component::binary_sensor::entity_component::connectivity::name%]", "cold": "[%key:component::binary_sensor::entity_component::cold::name%]", + "connectivity": "[%key:component::binary_sensor::entity_component::connectivity::name%]", "door": "[%key:component::binary_sensor::entity_component::door::name%]", "garage_door": "[%key:component::binary_sensor::entity_component::garage_door::name%]", "gas": "[%key:component::binary_sensor::entity_component::gas::name%]", @@ -114,9 +113,9 @@ "ozone": "[%key:component::sensor::entity_component::ozone::name%]", "ph": "[%key:component::sensor::entity_component::ph::name%]", "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "power": "[%key:component::sensor::entity_component::power::name%]", "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", @@ -142,5 +141,6 @@ "wind_speed": "[%key:component::sensor::entity_component::wind_speed::name%]" } } - } + }, + "title": "Random" } diff --git a/homeassistant/components/rapt_ble/manifest.json b/homeassistant/components/rapt_ble/manifest.json index 1bde135de35..2684240708f 100644 --- a/homeassistant/components/rapt_ble/manifest.json +++ b/homeassistant/components/rapt_ble/manifest.json @@ -3,12 +3,12 @@ "name": "RAPT Bluetooth", "bluetooth": [ { - "manufacturer_id": 16722, - "manufacturer_data_start": [80, 84] + "manufacturer_data_start": [80, 84], + "manufacturer_id": 16722 }, { - "manufacturer_id": 17739, - "manufacturer_data_start": [71] + "manufacturer_data_start": [71], + "manufacturer_id": 17739 } ], "codeowners": ["@sairon"], diff --git a/homeassistant/components/rapt_ble/strings.json b/homeassistant/components/rapt_ble/strings.json index 4e12a84b653..5e39fe3eab7 100644 --- a/homeassistant/components/rapt_ble/strings.json +++ b/homeassistant/components/rapt_ble/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } } } diff --git a/homeassistant/components/rdw/strings.json b/homeassistant/components/rdw/strings.json index cf24ec5115c..2716a190bea 100644 --- a/homeassistant/components/rdw/strings.json +++ b/homeassistant/components/rdw/strings.json @@ -1,18 +1,18 @@ { "config": { - "step": { - "user": { - "data": { - "license_plate": "License plate" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown_license_plate": "Unknown license plate" + }, + "step": { + "user": { + "data": { + "license_plate": "License plate" + } + } } }, "entity": { diff --git a/homeassistant/components/recollect_waste/strings.json b/homeassistant/components/recollect_waste/strings.json index 20aa5982f0d..1cb0cca001f 100644 --- a/homeassistant/components/recollect_waste/strings.json +++ b/homeassistant/components/recollect_waste/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "invalid_place_or_service_id": "Invalid Place or Service ID" + }, "step": { "user": { "data": { @@ -7,22 +13,6 @@ "service_id": "Service ID" } } - }, - "error": { - "invalid_place_or_service_id": "Invalid Place or Service ID" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { - "step": { - "init": { - "title": "Configure Recollect Waste", - "data": { - "friendly_name": "Use friendly names for pickup types (when possible)" - } - } } }, "entity": { @@ -34,5 +24,15 @@ "name": "Next pickup" } } + }, + "options": { + "step": { + "init": { + "data": { + "friendly_name": "Use friendly names for pickup types (when possible)" + }, + "title": "Configure Recollect Waste" + } + } } } diff --git a/homeassistant/components/recorder/icons.json b/homeassistant/components/recorder/icons.json index 87634bedcc8..60ac62327e1 100644 --- a/homeassistant/components/recorder/icons.json +++ b/homeassistant/components/recorder/icons.json @@ -1,11 +1,5 @@ { "services": { - "purge": { - "service": "mdi:database-sync" - }, - "purge_entities": { - "service": "mdi:database-sync" - }, "disable": { "service": "mdi:database-off" }, @@ -14,6 +8,12 @@ }, "get_statistics": { "service": "mdi:chart-bar" + }, + "purge": { + "service": "mdi:database-sync" + }, + "purge_entities": { + "service": "mdi:database-sync" } } } diff --git a/homeassistant/components/recorder/strings.json b/homeassistant/components/recorder/strings.json index eb7e0c8b63d..d830c5bd304 100644 --- a/homeassistant/components/recorder/strings.json +++ b/homeassistant/components/recorder/strings.json @@ -1,101 +1,101 @@ { - "system_health": { - "info": { - "oldest_recorder_run": "Oldest run start time", - "current_recorder_run": "Current run start time", - "estimated_db_size": "Estimated database size (MiB)", - "database_engine": "Database engine", - "database_version": "Database version" - } - }, "issues": { - "maria_db_range_index_regression": { - "title": "Update MariaDB to {min_version} or later resolve a significant performance issue", - "description": "Older versions of MariaDB suffer from a significant performance regression when retrieving history data or purging the database. Update to MariaDB version {min_version} or later and restart Home Assistant. If you are using the MariaDB core add-on, make sure to update it to the latest version." - }, "backup_failed_out_of_resources": { - "title": "Database backup failed due to lack of resources", - "description": "The database backup stated at {start_time} failed due to lack of resources. The backup cannot be trusted and must be restarted. This can happen if the database is too large or if the system is under heavy load. Consider upgrading the system hardware or reducing the size of the database by decreasing the number of history days to keep or creating a filter." + "description": "The database backup stated at {start_time} failed due to lack of resources. The backup cannot be trusted and must be restarted. This can happen if the database is too large or if the system is under heavy load. Consider upgrading the system hardware or reducing the size of the database by decreasing the number of history days to keep or creating a filter.", + "title": "Database backup failed due to lack of resources" + }, + "maria_db_range_index_regression": { + "description": "Older versions of MariaDB suffer from a significant performance regression when retrieving history data or purging the database. Update to MariaDB version {min_version} or later and restart Home Assistant. If you are using the MariaDB core add-on, make sure to update it to the latest version.", + "title": "Update MariaDB to {min_version} or later resolve a significant performance issue" } }, "services": { - "purge": { - "name": "Purge", - "description": "Starts purge task - to clean up old data from your database.", - "fields": { - "keep_days": { - "name": "Days to keep", - "description": "Number of days to keep the data in the database. Starting today, counting backward. A value of `7` means that everything older than a week will be purged." - }, - "repack": { - "name": "Repack", - "description": "Attempt to save disk space by rewriting the entire database file." - }, - "apply_filter": { - "name": "Apply filter", - "description": "Apply `entity_id` and `event_type` filters in addition to time-based purge." - } - } - }, - "purge_entities": { - "name": "Purge entities", - "description": "Starts a purge task to remove the data related to specific entities from your database.", - "fields": { - "entity_id": { - "name": "Entities to remove", - "description": "List of entities for which the data is to be removed from the Recorder database." - }, - "domains": { - "name": "Domains to remove", - "description": "List of domains for which the data needs to be removed from the Recorder database." - }, - "entity_globs": { - "name": "Entity globs to remove", - "description": "List of glob patterns used to select the entities for which the data is to be removed from the Recorder database." - }, - "keep_days": { - "name": "[%key:component::recorder::services::purge::fields::keep_days::name%]", - "description": "Number of days to keep the data for rows matching the filter. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. The default of 0 days will remove all matching rows immediately." - } - } - }, "disable": { - "name": "[%key:common::action::disable%]", - "description": "Stops the recording of events and state changes." + "description": "Stops the recording of events and state changes.", + "name": "[%key:common::action::disable%]" }, "enable": { - "name": "[%key:common::action::enable%]", - "description": "Starts the recording of events and state changes." + "description": "Starts the recording of events and state changes.", + "name": "[%key:common::action::enable%]" }, "get_statistics": { - "name": "Get statistics", "description": "Retrieves statistics data for entities within a specific time period.", "fields": { "end_time": { - "name": "End time", - "description": "The end time for the statistics query. If omitted, returns all statistics from start time onward." + "description": "The end time for the statistics query. If omitted, returns all statistics from start time onward.", + "name": "End time" }, "period": { - "name": "Period", - "description": "The time period to group statistics by." + "description": "The time period to group statistics by.", + "name": "Period" }, "start_time": { - "name": "Start time", - "description": "The start time for the statistics query." + "description": "The start time for the statistics query.", + "name": "Start time" }, "statistic_ids": { - "name": "Statistic IDs", - "description": "The entity IDs or statistic IDs to return statistics for." + "description": "The entity IDs or statistic IDs to return statistics for.", + "name": "Statistic IDs" }, "types": { - "name": "Types", - "description": "The types of statistics values to return." + "description": "The types of statistics values to return.", + "name": "Types" }, "units": { - "name": "Units", - "description": "Optional unit conversion mapping." + "description": "Optional unit conversion mapping.", + "name": "Units" } - } + }, + "name": "Get statistics" + }, + "purge": { + "description": "Starts purge task - to clean up old data from your database.", + "fields": { + "apply_filter": { + "description": "Apply `entity_id` and `event_type` filters in addition to time-based purge.", + "name": "Apply filter" + }, + "keep_days": { + "description": "Number of days to keep the data in the database. Starting today, counting backward. A value of `7` means that everything older than a week will be purged.", + "name": "Days to keep" + }, + "repack": { + "description": "Attempt to save disk space by rewriting the entire database file.", + "name": "Repack" + } + }, + "name": "Purge" + }, + "purge_entities": { + "description": "Starts a purge task to remove the data related to specific entities from your database.", + "fields": { + "domains": { + "description": "List of domains for which the data needs to be removed from the Recorder database.", + "name": "Domains to remove" + }, + "entity_globs": { + "description": "List of glob patterns used to select the entities for which the data is to be removed from the Recorder database.", + "name": "Entity globs to remove" + }, + "entity_id": { + "description": "List of entities for which the data is to be removed from the Recorder database.", + "name": "Entities to remove" + }, + "keep_days": { + "description": "Number of days to keep the data for rows matching the filter. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. The default of 0 days will remove all matching rows immediately.", + "name": "[%key:component::recorder::services::purge::fields::keep_days::name%]" + } + }, + "name": "Purge entities" + } + }, + "system_health": { + "info": { + "current_recorder_run": "Current run start time", + "database_engine": "Database engine", + "database_version": "Database version", + "estimated_db_size": "Estimated database size (MiB)", + "oldest_recorder_run": "Oldest run start time" } } } diff --git a/homeassistant/components/refoss/strings.json b/homeassistant/components/refoss/strings.json index 67b4e4a8335..461313b563e 100644 --- a/homeassistant/components/refoss/strings.json +++ b/homeassistant/components/refoss/strings.json @@ -1,26 +1,23 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } }, "entity": { "sensor": { - "power": { - "name": "{channel_name} power" - }, - "voltage": { - "name": "{channel_name} voltage" - }, "current": { "name": "{channel_name} current" }, + "power": { + "name": "{channel_name} power" + }, "power_factor": { "name": "{channel_name} power factor" }, @@ -29,6 +26,9 @@ }, "this_month_energy_returned": { "name": "{channel_name} this month energy returned" + }, + "voltage": { + "name": "{channel_name} voltage" } } } diff --git a/homeassistant/components/rehlko/icons.json b/homeassistant/components/rehlko/icons.json index 309fc2ffd27..b69e2e32d1b 100644 --- a/homeassistant/components/rehlko/icons.json +++ b/homeassistant/components/rehlko/icons.json @@ -1,23 +1,23 @@ { "entity": { "sensor": { + "device_ip_address": { + "default": "mdi:ip-network" + }, "engine_speed": { "default": "mdi:speedometer" }, "engine_state": { "default": "mdi:engine" }, - "device_ip_address": { - "default": "mdi:ip-network" - }, - "server_ip_address": { - "default": "mdi:server-network" - }, "generator_status": { "default": "mdi:home-lightning-bolt" }, "power_source": { "default": "mdi:transmission-tower" + }, + "server_ip_address": { + "default": "mdi:server-network" } } } diff --git a/homeassistant/components/rehlko/strings.json b/homeassistant/components/rehlko/strings.json index bdf0e3de01c..b5373a5a526 100644 --- a/homeassistant/components/rehlko/strings.json +++ b/homeassistant/components/rehlko/strings.json @@ -1,6 +1,23 @@ { "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%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::rehlko::config::step::user::data_description::password%]" + } + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", @@ -10,24 +27,7 @@ "email": "The email used to log in to the Rehlko application.", "password": "The password used to log in to the Rehlko application." } - }, - "reauth_confirm": { - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::rehlko::config::step::user::data_description::password%]" - } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -40,50 +40,32 @@ } }, "sensor": { - "engine_speed": { - "name": "Engine speed" - }, - "engine_oil_pressure": { - "name": "Engine oil pressure" - }, - "engine_coolant_temperature": { - "name": "Engine coolant temperature" - }, "battery_voltage": { "name": "Battery voltage" }, - "lube_oil_temperature": { - "name": "Lube oil temperature" - }, "controller_temperature": { "name": "Controller temperature" }, + "device_ip_address": { + "name": "Device IP address" + }, "engine_compartment_temperature": { "name": "Engine compartment temperature" }, + "engine_coolant_temperature": { + "name": "Engine coolant temperature" + }, "engine_frequency": { "name": "Engine frequency" }, - "total_operation": { - "name": "Total operation" + "engine_oil_pressure": { + "name": "Engine oil pressure" }, - "total_runtime": { - "name": "Total runtime" + "engine_speed": { + "name": "Engine speed" }, - "runtime_since_last_maintenance": { - "name": "Runtime since last maintenance" - }, - "device_ip_address": { - "name": "Device IP address" - }, - "server_ip_address": { - "name": "Server IP address" - }, - "utility_voltage": { - "name": "Utility voltage" - }, - "generator_voltage_average": { - "name": "Average generator voltage" + "engine_state": { + "name": "Engine state" }, "generator_load": { "name": "Generator load" @@ -91,41 +73,59 @@ "generator_load_percent": { "name": "Generator load percentage" }, - "engine_state": { - "name": "Engine state" - }, - "power_source": { - "name": "Power source" - }, "generator_status": { "name": "Generator status" }, - "last_run": { - "name": "Last run" + "generator_voltage_average": { + "name": "Average generator voltage" + }, + "last_exercise": { + "name": "Last exercise" }, "last_maintainance": { "name": "Last maintainance" }, - "next_maintainance": { - "name": "Next maintainance" + "last_run": { + "name": "Last run" + }, + "lube_oil_temperature": { + "name": "Lube oil temperature" }, "next_exercise": { "name": "Next exercise" }, - "last_exercise": { - "name": "Last exercise" + "next_maintainance": { + "name": "Next maintainance" + }, + "power_source": { + "name": "Power source" + }, + "runtime_since_last_maintenance": { + "name": "Runtime since last maintenance" + }, + "server_ip_address": { + "name": "Server IP address" + }, + "total_operation": { + "name": "Total operation" + }, + "total_runtime": { + "name": "Total runtime" + }, + "utility_voltage": { + "name": "Utility voltage" } } }, "exceptions": { - "update_failed": { - "message": "Updating data failed after retries." + "cannot_connect": { + "message": "Can not connect to Rehlko servers." }, "invalid_auth": { "message": "Authentication failed for email {email}." }, - "cannot_connect": { - "message": "Can not connect to Rehlko servers." + "update_failed": { + "message": "Updating data failed after retries." } } } diff --git a/homeassistant/components/remember_the_milk/icons.json b/homeassistant/components/remember_the_milk/icons.json index 04502aea5ef..e2403fe0925 100644 --- a/homeassistant/components/remember_the_milk/icons.json +++ b/homeassistant/components/remember_the_milk/icons.json @@ -1,10 +1,10 @@ { "services": { - "create_task": { - "service": "mdi:check" - }, "complete_task": { "service": "mdi:check-all" + }, + "create_task": { + "service": "mdi:check" } } } diff --git a/homeassistant/components/remember_the_milk/strings.json b/homeassistant/components/remember_the_milk/strings.json index de6ae8a7f04..c615e5b6b40 100644 --- a/homeassistant/components/remember_the_milk/strings.json +++ b/homeassistant/components/remember_the_milk/strings.json @@ -1,28 +1,28 @@ { "services": { - "create_task": { - "name": "Create task", - "description": "Creates a new task in your Remember The Milk account or updates an existing one. If you want to update a task later on, you have to set an \"ID\" when creating the task. Note: Updating a task does not support the smart syntax.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the new task, you can use the smart syntax here." - }, - "id": { - "name": "ID", - "description": "Identifier for the task you're creating, can be used to update or complete the task later on." - } - } - }, "complete_task": { - "name": "Complete task", "description": "Completes a task that was previously created.", "fields": { "id": { - "name": "ID", - "description": "Identifier that was defined when creating the task." + "description": "Identifier that was defined when creating the task.", + "name": "ID" } - } + }, + "name": "Complete task" + }, + "create_task": { + "description": "Creates a new task in your Remember The Milk account or updates an existing one. If you want to update a task later on, you have to set an \"ID\" when creating the task. Note: Updating a task does not support the smart syntax.", + "fields": { + "id": { + "description": "Identifier for the task you're creating, can be used to update or complete the task later on.", + "name": "ID" + }, + "name": { + "description": "Name of the new task, you can use the smart syntax here.", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Create task" } } } diff --git a/homeassistant/components/remote/strings.json b/homeassistant/components/remote/strings.json index 0c6cf98de7f..52aeeca7560 100644 --- a/homeassistant/components/remote/strings.json +++ b/homeassistant/components/remote/strings.json @@ -1,22 +1,21 @@ { - "title": "Remote", "device_automation": { "action_type": { "toggle": "[%key:common::device_automation::action_type::toggle%]", - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", - "turn_off": "[%key:common::device_automation::action_type::turn_off%]" + "turn_off": "[%key:common::device_automation::action_type::turn_off%]", + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" }, "condition_type": { - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" - }, - "trigger_type": { - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]" }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { @@ -29,89 +28,90 @@ } }, "services": { + "delete_command": { + "description": "Deletes a command or a list of commands from the database.", + "fields": { + "command": { + "description": "The single command or the list of commands to be deleted.", + "name": "Command" + }, + "device": { + "description": "Device from which commands will be deleted.", + "name": "Device" + } + }, + "name": "Delete command" + }, + "learn_command": { + "description": "Learns a command or a list of commands from a device.", + "fields": { + "alternative": { + "description": "If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state.", + "name": "Alternative" + }, + "command": { + "description": "A single command or a list of commands to learn.", + "name": "Command" + }, + "command_type": { + "description": "The type of command to be learned.", + "name": "Command type" + }, + "device": { + "description": "Device ID to learn command from.", + "name": "Device" + }, + "timeout": { + "description": "Timeout for the command to be learned.", + "name": "Timeout" + } + }, + "name": "Learn command" + }, + "send_command": { + "description": "Sends a command or a list of commands to a device.", + "fields": { + "command": { + "description": "A single command or a list of commands to send.", + "name": "Command" + }, + "delay_secs": { + "description": "The time you want to wait in between repeated commands.", + "name": "Delay seconds" + }, + "device": { + "description": "Device ID to send command to.", + "name": "Device" + }, + "hold_secs": { + "description": "The time you want to have it held before the release is send.", + "name": "Hold seconds" + }, + "num_repeats": { + "description": "The number of times you want to repeat the commands.", + "name": "Repeats" + } + }, + "name": "Send command" + }, + "toggle": { + "description": "Sends the toggle command.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Sends the turn off command.", + "name": "[%key:common::action::turn_off%]" + }, "turn_on": { - "name": "[%key:common::action::turn_on%]", "description": "Sends the turn on command.", "fields": { "activity": { - "name": "Activity", - "description": "Activity ID or activity name to be started." + "description": "Activity ID or activity name to be started.", + "name": "Activity" } - } - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Sends the toggle command." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Sends the turn off command." - }, - "send_command": { - "name": "Send command", - "description": "Sends a command or a list of commands to a device.", - "fields": { - "device": { - "name": "Device", - "description": "Device ID to send command to." - }, - "command": { - "name": "Command", - "description": "A single command or a list of commands to send." - }, - "num_repeats": { - "name": "Repeats", - "description": "The number of times you want to repeat the commands." - }, - "delay_secs": { - "name": "Delay seconds", - "description": "The time you want to wait in between repeated commands." - }, - "hold_secs": { - "name": "Hold seconds", - "description": "The time you want to have it held before the release is send." - } - } - }, - "learn_command": { - "name": "Learn command", - "description": "Learns a command or a list of commands from a device.", - "fields": { - "device": { - "name": "Device", - "description": "Device ID to learn command from." - }, - "command": { - "name": "Command", - "description": "A single command or a list of commands to learn." - }, - "command_type": { - "name": "Command type", - "description": "The type of command to be learned." - }, - "alternative": { - "name": "Alternative", - "description": "If code must be stored as an alternative. This is useful for discrete codes. Discrete codes are used for toggles that only perform one function. For example, a code to only turn a device on. If it is on already, sending the code won't change the state." - }, - "timeout": { - "name": "Timeout", - "description": "Timeout for the command to be learned." - } - } - }, - "delete_command": { - "name": "Delete command", - "description": "Deletes a command or a list of commands from the database.", - "fields": { - "device": { - "name": "Device", - "description": "Device from which commands will be deleted." - }, - "command": { - "name": "Command", - "description": "The single command or the list of commands to be deleted." - } - } + }, + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Remote" } diff --git a/homeassistant/components/remote_calendar/strings.json b/homeassistant/components/remote_calendar/strings.json index 48ef6080bdb..ed0648562c2 100644 --- a/homeassistant/components/remote_calendar/strings.json +++ b/homeassistant/components/remote_calendar/strings.json @@ -1,9 +1,16 @@ { - "title": "Remote Calendar", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "forbidden": "The server understood the request but refuses to authorize it.", + "invalid_ics_file": "There was a problem reading the calendar information. See the error log for additional details.", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" + }, "step": { "user": { - "description": "Please choose a name for the calendar to be imported", "data": { "calendar_name": "Calendar name", "url": "Calendar URL" @@ -11,17 +18,9 @@ "data_description": { "calendar_name": "The name of the calendar shown in the UI.", "url": "The URL of the remote calendar." - } + }, + "description": "Please choose a name for the calendar to be imported" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - }, - "error": { - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "forbidden": "The server understood the request but refuses to authorize it.", - "invalid_ics_file": "There was a problem reading the calendar information. See the error log for additional details." } }, "exceptions": { @@ -34,5 +33,6 @@ "unable_to_parse": { "message": "Unable to parse calendar data: {err}" } - } + }, + "title": "Remote Calendar" } diff --git a/homeassistant/components/renault/icons.json b/homeassistant/components/renault/icons.json index aa9175052fb..7ab8cc75b33 100644 --- a/homeassistant/components/renault/icons.json +++ b/homeassistant/components/renault/icons.json @@ -34,6 +34,9 @@ } }, "sensor": { + "battery_autonomy": { + "default": "mdi:ev-station" + }, "charge_state": { "default": "mdi:flash-off", "state": { @@ -43,37 +46,34 @@ "charging_remaining_time": { "default": "mdi:timer" }, - "plug_state": { - "default": "mdi:power-plug-off", - "state": { - "plugged": "mdi:power-plug" - } - }, - "battery_autonomy": { - "default": "mdi:ev-station" - }, - "mileage": { - "default": "mdi:sign-direction" - }, "fuel_autonomy": { "default": "mdi:gas-station" }, "fuel_quantity": { "default": "mdi:fuel" + }, + "mileage": { + "default": "mdi:sign-direction" + }, + "plug_state": { + "default": "mdi:power-plug-off", + "state": { + "plugged": "mdi:power-plug" + } } } }, "services": { - "ac_start": { - "service": "mdi:hvac" - }, "ac_cancel": { "service": "mdi:hvac-off" }, - "charge_set_schedules": { + "ac_set_schedules": { "service": "mdi:calendar-clock" }, - "ac_set_schedules": { + "ac_start": { + "service": "mdi:hvac" + }, + "charge_set_schedules": { "service": "mdi:calendar-clock" } } diff --git a/homeassistant/components/renault/strings.json b/homeassistant/components/renault/strings.json index 851a761fc8b..e5f9b54cd7a 100644 --- a/homeassistant/components/renault/strings.json +++ b/homeassistant/components/renault/strings.json @@ -20,8 +20,8 @@ "data_description": { "kamereon_account_id": "The Kamereon account ID associated with your vehicle" }, - "title": "Kamereon account ID", - "description": "You have multiple Kamereon accounts associated to this email, please select one" + "description": "You have multiple Kamereon accounts associated to this email, please select one", + "title": "Kamereon account ID" }, "reauth_confirm": { "data": { @@ -36,13 +36,13 @@ "user": { "data": { "locale": "Locale", - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" }, "data_description": { "locale": "Your country code", - "username": "Your MyRenault phone application email address", - "password": "Your MyRenault phone application password" + "password": "Your MyRenault phone application password", + "username": "Your MyRenault phone application email address" }, "title": "Set Renault credentials" } @@ -50,12 +50,12 @@ }, "entity": { "binary_sensor": { - "hatch_status": { - "name": "Hatch" - }, "driver_door_status": { "name": "Driver door" }, + "hatch_status": { + "name": "Hatch" + }, "hvac_status": { "name": "HVAC" }, @@ -115,14 +115,14 @@ "charge_state": { "name": "Charge state", "state": { - "not_in_charge": "Not charging", - "waiting_for_a_planned_charge": "Waiting for planned charge", "charge_ended": "Charge ended", - "waiting_for_current_charge": "Waiting for current charge", - "energy_flap_opened": "Energy flap opened", - "charge_in_progress": "[%key:common::state::charging%]", "charge_error": "Not charging or plugged in", - "unavailable": "Unavailable" + "charge_in_progress": "[%key:common::state::charging%]", + "energy_flap_opened": "Energy flap opened", + "not_in_charge": "Not charging", + "unavailable": "Unavailable", + "waiting_for_a_planned_charge": "Waiting for planned charge", + "waiting_for_current_charge": "Waiting for current charge" } }, "charging_power": { @@ -131,6 +131,12 @@ "charging_remaining_time": { "name": "Charging remaining time" }, + "front_left_pressure": { + "name": "Front left tyre pressure" + }, + "front_right_pressure": { + "name": "Front right tyre pressure" + }, "fuel_autonomy": { "name": "Fuel autonomy" }, @@ -155,87 +161,23 @@ "plug_state": { "name": "Plug state", "state": { - "unplugged": "Unplugged", - "plugged": "Plugged in", "plug_error": "Plug error", - "plug_unknown": "Plug unknown" + "plug_unknown": "Plug unknown", + "plugged": "Plugged in", + "unplugged": "Unplugged" } }, - "res_state": { - "name": "Remote engine start" - }, - "res_state_code": { - "name": "Remote engine start code" - }, - "front_left_pressure": { - "name": "Front left tyre pressure" - }, - "front_right_pressure": { - "name": "Front right tyre pressure" - }, "rear_left_pressure": { "name": "Rear left tyre pressure" }, "rear_right_pressure": { "name": "Rear right tyre pressure" - } - } - }, - "services": { - "ac_start": { - "name": "Start A/C", - "description": "Starts A/C on vehicle.", - "fields": { - "vehicle": { - "name": "Vehicle", - "description": "The vehicle to send the command to." - }, - "temperature": { - "name": "Temperature", - "description": "Target A/C temperature in °C." - }, - "when": { - "name": "When", - "description": "Timestamp for the start of the A/C (optional - defaults to now)." - } - } - }, - "ac_cancel": { - "name": "Cancel A/C", - "description": "Cancels A/C on vehicle.", - "fields": { - "vehicle": { - "name": "Vehicle", - "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]" - } - } - }, - "charge_set_schedules": { - "name": "Update charge schedule", - "description": "Updates charge schedule on vehicle.", - "fields": { - "vehicle": { - "name": "Vehicle", - "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]" - }, - "schedules": { - "name": "Schedules", - "description": "Schedule details." - } - } - }, - "ac_set_schedules": { - "name": "Update A/C schedule", - "description": "Updates A/C schedule on vehicle.", - "fields": { - "vehicle": { - "name": "Vehicle", - "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]" - }, - "schedules": { - "name": "Schedules", - "description": "[%key:component::renault::services::charge_set_schedules::fields::schedules::description%]" - } + }, + "res_state": { + "name": "Remote engine start" + }, + "res_state_code": { + "name": "Remote engine start code" } } }, @@ -249,5 +191,63 @@ "unknown_error": { "message": "An unknown error occurred while communicating with the Renault servers: {error}" } + }, + "services": { + "ac_cancel": { + "description": "Cancels A/C on vehicle.", + "fields": { + "vehicle": { + "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]", + "name": "Vehicle" + } + }, + "name": "Cancel A/C" + }, + "ac_set_schedules": { + "description": "Updates A/C schedule on vehicle.", + "fields": { + "schedules": { + "description": "[%key:component::renault::services::charge_set_schedules::fields::schedules::description%]", + "name": "Schedules" + }, + "vehicle": { + "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]", + "name": "Vehicle" + } + }, + "name": "Update A/C schedule" + }, + "ac_start": { + "description": "Starts A/C on vehicle.", + "fields": { + "temperature": { + "description": "Target A/C temperature in °C.", + "name": "Temperature" + }, + "vehicle": { + "description": "The vehicle to send the command to.", + "name": "Vehicle" + }, + "when": { + "description": "Timestamp for the start of the A/C (optional - defaults to now).", + "name": "When" + } + }, + "name": "Start A/C" + }, + "charge_set_schedules": { + "description": "Updates charge schedule on vehicle.", + "fields": { + "schedules": { + "description": "Schedule details.", + "name": "Schedules" + }, + "vehicle": { + "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]", + "name": "Vehicle" + } + }, + "name": "Update charge schedule" + } } } diff --git a/homeassistant/components/renson/icons.json b/homeassistant/components/renson/icons.json index b558759a0dd..d60750177dc 100644 --- a/homeassistant/components/renson/icons.json +++ b/homeassistant/components/renson/icons.json @@ -17,14 +17,14 @@ } }, "services": { - "set_timer_level": { - "service": "mdi:timer" - }, "set_breeze": { "service": "mdi:weather-windy" }, "set_pollution_settings": { "service": "mdi:air-filter" + }, + "set_timer_level": { + "service": "mdi:timer" } } } diff --git a/homeassistant/components/renson/strings.json b/homeassistant/components/renson/strings.json index c81086502ad..b0170842c4e 100644 --- a/homeassistant/components/renson/strings.json +++ b/homeassistant/components/renson/strings.json @@ -1,5 +1,9 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,37 +13,12 @@ "host": "The hostname or IP address of your Renson Endura delta device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { - "button": { - "sync_time": { - "name": "Sync time with device" - }, - "reset_filter": { - "name": "Reset filter counter" - } - }, - "time": { - "day_time": { - "name": "Start time of the day" - }, - "night_time": { - "name": "Start time of the night" - } - }, - "number": { - "filter_change": { - "name": "Filter clean/replacement" - } - }, "binary_sensor": { - "frost_protection_active": { - "name": "Frost protection active" + "air_quality_control": { + "name": "Air quality control" }, "breeze": { "name": "Breeze" @@ -47,64 +26,86 @@ "breeze_conditions_met": { "name": "Breeze conditions met" }, - "humidity_control": { - "name": "Humidity control" - }, - "air_quality_control": { - "name": "Air quality control" - }, "co2_control": { "name": "CO2 control" }, + "frost_protection_active": { + "name": "Frost protection active" + }, + "humidity_control": { + "name": "Humidity control" + }, "preheater": { "name": "Preheater" } }, - "switch": { - "breeze": { - "name": "Breeze" + "button": { + "reset_filter": { + "name": "Reset filter counter" + }, + "sync_time": { + "name": "Sync time with device" + } + }, + "number": { + "filter_change": { + "name": "Filter clean/replacement" } }, "sensor": { - "co2_quality_category": { - "name": "CO2 quality category", - "state": { - "good": "Good", - "bad": "Bad", - "poor": "Poor" - } + "air_quality": { + "name": "Air quality" }, "air_quality_category": { "name": "Air quality category", "state": { - "good": "[%key:component::renson::entity::sensor::co2_quality_category::state::good%]", "bad": "[%key:component::renson::entity::sensor::co2_quality_category::state::bad%]", + "good": "[%key:component::renson::entity::sensor::co2_quality_category::state::good%]", "poor": "[%key:component::renson::entity::sensor::co2_quality_category::state::poor%]" } }, - "air_quality": { - "name": "Air quality" - }, - "ventilation_level": { - "name": "Ventilation level", + "breeze_level": { + "name": "Breeze level", "state": { - "off": "[%key:common::state::off%]", - "level1": "Level 1", - "level2": "Level 2", - "level3": "Level 3", - "level4": "Level 4", - "breeze": "Breeze", - "holiday": "Holiday" + "breeze": "[%key:component::renson::entity::sensor::ventilation_level::state::breeze%]", + "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", + "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", + "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", + "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]", + "off": "[%key:common::state::off%]" } }, - "total_airflow_out": { - "name": "Total airflow out" + "breeze_temperature": { + "name": "Breeze temperature" }, - "total_airflow_in": { - "name": "Total airflow in" + "bypass_activation_temperature": { + "name": "Bypass activation temperature" }, - "outdoor_air_temperature": { - "name": "Outdoor air temperature" + "bypass_level": { + "name": "Bypass level" + }, + "co2_hysteresis": { + "name": "CO2 hysteresis" + }, + "co2_quality_category": { + "name": "CO2 quality category", + "state": { + "bad": "Bad", + "good": "Good", + "poor": "Poor" + } + }, + "co2_threshold": { + "name": "CO2 threshold" + }, + "day_pollution_level": { + "name": "Day pollution level", + "state": { + "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", + "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", + "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", + "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]" + } }, "extract_air_temperature": { "name": "Extract air temperature" @@ -115,36 +116,13 @@ "manual_level": { "name": "Manual level", "state": { - "off": "[%key:common::state::off%]", - "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", - "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", - "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", - "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]", "breeze": "[%key:component::renson::entity::sensor::ventilation_level::state::breeze%]", - "holiday": "[%key:component::renson::entity::sensor::ventilation_level::state::holiday%]" - } - }, - "breeze_temperature": { - "name": "Breeze temperature" - }, - "breeze_level": { - "name": "Breeze level", - "state": { - "off": "[%key:common::state::off%]", + "holiday": "[%key:component::renson::entity::sensor::ventilation_level::state::holiday%]", "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]", - "breeze": "[%key:component::renson::entity::sensor::ventilation_level::state::breeze%]" - } - }, - "day_pollution_level": { - "name": "Day pollution level", - "state": { - "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", - "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", - "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", - "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]" + "off": "[%key:common::state::off%]" } }, "night_pollution_level": { @@ -156,99 +134,121 @@ "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]" } }, - "co2_threshold": { - "name": "CO2 threshold" + "outdoor_air_temperature": { + "name": "Outdoor air temperature" }, - "co2_hysteresis": { - "name": "CO2 hysteresis" + "total_airflow_in": { + "name": "Total airflow in" }, - "bypass_activation_temperature": { - "name": "Bypass activation temperature" + "total_airflow_out": { + "name": "Total airflow out" }, - "bypass_level": { - "name": "Bypass level" + "ventilation_level": { + "name": "Ventilation level", + "state": { + "breeze": "Breeze", + "holiday": "Holiday", + "level1": "Level 1", + "level2": "Level 2", + "level3": "Level 3", + "level4": "Level 4", + "off": "[%key:common::state::off%]" + } + } + }, + "switch": { + "breeze": { + "name": "Breeze" + } + }, + "time": { + "day_time": { + "name": "Start time of the day" + }, + "night_time": { + "name": "Start time of the night" } } }, "selector": { "level_setting": { "options": { - "off": "[%key:common::state::off%]", + "breeze": "[%key:component::renson::entity::sensor::ventilation_level::state::breeze%]", + "holiday": "[%key:component::renson::entity::sensor::ventilation_level::state::holiday%]", "level1": "[%key:component::renson::entity::sensor::ventilation_level::state::level1%]", "level2": "[%key:component::renson::entity::sensor::ventilation_level::state::level2%]", "level3": "[%key:component::renson::entity::sensor::ventilation_level::state::level3%]", "level4": "[%key:component::renson::entity::sensor::ventilation_level::state::level4%]", - "breeze": "[%key:component::renson::entity::sensor::ventilation_level::state::breeze%]", - "holiday": "[%key:component::renson::entity::sensor::ventilation_level::state::holiday%]" + "off": "[%key:common::state::off%]" } } }, "services": { - "set_timer_level": { - "name": "Set timer", - "description": "Sets the ventilation timer", - "fields": { - "timer_level": { - "name": "Level", - "description": "Ventilation level" - }, - "minutes": { - "name": "Time", - "description": "Duration of the timer (0 will disable the timer)" - } - } - }, "set_breeze": { - "name": "Set Breeze", "description": "Sets the Breeze function of the ventilation system", "fields": { + "activate": { + "description": "Activate or disable the Breeze feature", + "name": "Activate" + }, "breeze_level": { - "name": "[%key:component::renson::services::set_timer_level::fields::timer_level::name%]", - "description": "Ventilation level when Breeze function is activated" + "description": "Ventilation level when Breeze function is activated", + "name": "[%key:component::renson::services::set_timer_level::fields::timer_level::name%]" }, "temperature": { - "name": "Temperature", - "description": "Temperature when the Breeze function should be activated" - }, - "activate": { - "name": "Activate", - "description": "Activate or disable the Breeze feature" + "description": "Temperature when the Breeze function should be activated", + "name": "Temperature" } - } + }, + "name": "Set Breeze" }, "set_pollution_settings": { - "name": "Set pollution settings", "description": "Sets all the pollution settings of the ventilation system", "fields": { - "day_pollution_level": { - "name": "Day pollution level", - "description": "Ventilation level when pollution is detected in the day" - }, - "night_pollution_level": { - "name": "Night pollution level", - "description": "Ventilation level when pollution is detected in the night" - }, - "humidity_control": { - "name": "Enable humidity control", - "description": "Activate or disable the humidity control" - }, "airquality_control": { - "name": "Enable air quality control", - "description": "Activate or disable the air quality control" + "description": "Activate or disable the air quality control", + "name": "Enable air quality control" }, "co2_control": { - "name": "Enable CO2 control", - "description": "Activate or disable the CO2 control" - }, - "co2_threshold": { - "name": "CO2 threshold", - "description": "The CO2 pollution threshold level in ppm" + "description": "Activate or disable the CO2 control", + "name": "Enable CO2 control" }, "co2_hysteresis": { - "name": "CO2 hysteresis", - "description": "The CO2 pollution threshold hysteresis level in ppm" + "description": "The CO2 pollution threshold hysteresis level in ppm", + "name": "CO2 hysteresis" + }, + "co2_threshold": { + "description": "The CO2 pollution threshold level in ppm", + "name": "CO2 threshold" + }, + "day_pollution_level": { + "description": "Ventilation level when pollution is detected in the day", + "name": "Day pollution level" + }, + "humidity_control": { + "description": "Activate or disable the humidity control", + "name": "Enable humidity control" + }, + "night_pollution_level": { + "description": "Ventilation level when pollution is detected in the night", + "name": "Night pollution level" } - } + }, + "name": "Set pollution settings" + }, + "set_timer_level": { + "description": "Sets the ventilation timer", + "fields": { + "minutes": { + "description": "Duration of the timer (0 will disable the timer)", + "name": "Time" + }, + "timer_level": { + "description": "Ventilation level", + "name": "Level" + } + }, + "name": "Set timer" } } } diff --git a/homeassistant/components/reolink/icons.json b/homeassistant/components/reolink/icons.json index dd2c1513db1..6cffb4aec0d 100644 --- a/homeassistant/components/reolink/icons.json +++ b/homeassistant/components/reolink/icons.json @@ -1,64 +1,16 @@ { "entity": { "binary_sensor": { - "face": { - "default": "mdi:motion-sensor-off", - "state": { - "on": "mdi:face-recognition" - } - }, - "vehicle": { - "default": "mdi:car-off", - "state": { - "on": "mdi:car" - } - }, - "non-motor_vehicle": { - "default": "mdi:motorbike-off", - "state": { - "on": "mdi:motorbike" - } - }, - "pet": { - "default": "mdi:dog-side-off", - "state": { - "on": "mdi:dog-side" - } - }, "animal": { "default": "mdi:paw-off", "state": { "on": "mdi:paw" } }, - "package": { - "default": "mdi:gift-off-outline", + "crossline_dog_cat": { + "default": "mdi:fence", "state": { - "on": "mdi:gift-outline" - } - }, - "visitor": { - "default": "mdi:doorbell", - "state": { - "on": "mdi:bell-ring-outline" - } - }, - "person": { - "default": "mdi:account-off", - "state": { - "on": "mdi:account" - } - }, - "cry": { - "default": "mdi:emoticon-happy-outline", - "state": { - "on": "mdi:emoticon-cry-outline" - } - }, - "sleep": { - "default": "mdi:sleep-off", - "state": { - "on": "mdi:sleep" + "on": "mdi:fence-electric" } }, "crossline_person": { @@ -73,10 +25,28 @@ "on": "mdi:fence-electric" } }, - "crossline_dog_cat": { - "default": "mdi:fence", + "cry": { + "default": "mdi:emoticon-happy-outline", "state": { - "on": "mdi:fence-electric" + "on": "mdi:emoticon-cry-outline" + } + }, + "face": { + "default": "mdi:motion-sensor-off", + "state": { + "on": "mdi:face-recognition" + } + }, + "forgotten_item": { + "default": "mdi:package-variant-closed-plus", + "state": { + "on": "mdi:package-variant-closed-check" + } + }, + "intrusion_dog_cat": { + "default": "mdi:location-enter", + "state": { + "on": "mdi:alert-circle-outline" } }, "intrusion_person": { @@ -91,10 +61,16 @@ "on": "mdi:alert-circle-outline" } }, - "intrusion_dog_cat": { - "default": "mdi:location-enter", + "io_input": { + "default": "mdi:electric-switch", "state": { - "on": "mdi:alert-circle-outline" + "on": "mdi:electric-switch-closed" + } + }, + "linger_dog_cat": { + "default": "mdi:account-switch", + "state": { + "on": "mdi:account-alert" } }, "linger_person": { @@ -109,16 +85,34 @@ "on": "mdi:account-alert" } }, - "linger_dog_cat": { - "default": "mdi:account-switch", + "non-motor_vehicle": { + "default": "mdi:motorbike-off", "state": { - "on": "mdi:account-alert" + "on": "mdi:motorbike" } }, - "forgotten_item": { - "default": "mdi:package-variant-closed-plus", + "package": { + "default": "mdi:gift-off-outline", "state": { - "on": "mdi:package-variant-closed-check" + "on": "mdi:gift-outline" + } + }, + "person": { + "default": "mdi:account-off", + "state": { + "on": "mdi:account" + } + }, + "pet": { + "default": "mdi:dog-side-off", + "state": { + "on": "mdi:dog-side" + } + }, + "sleep": { + "default": "mdi:sleep-off", + "state": { + "on": "mdi:sleep" } }, "taken_item": { @@ -127,15 +121,30 @@ "on": "mdi:package-variant-closed-check" } }, - "io_input": { - "default": "mdi:electric-switch", + "vehicle": { + "default": "mdi:car-off", "state": { - "on": "mdi:electric-switch-closed" + "on": "mdi:car" + } + }, + "visitor": { + "default": "mdi:doorbell", + "state": { + "on": "mdi:bell-ring-outline" } } }, "button": { - "ptz_stop": { + "guard_go_to": { + "default": "mdi:crosshairs-gps" + }, + "guard_set": { + "default": "mdi:crosshairs-gps" + }, + "ptz_calibrate": { + "default": "mdi:pan" + }, + "ptz_down": { "default": "mdi:pan" }, "ptz_left": { @@ -144,10 +153,10 @@ "ptz_right": { "default": "mdi:pan" }, - "ptz_up": { + "ptz_stop": { "default": "mdi:pan" }, - "ptz_down": { + "ptz_up": { "default": "mdi:pan" }, "ptz_zoom_in": { @@ -155,15 +164,6 @@ }, "ptz_zoom_out": { "default": "mdi:magnify" - }, - "ptz_calibrate": { - "default": "mdi:pan" - }, - "guard_go_to": { - "default": "mdi:crosshairs-gps" - }, - "guard_set": { - "default": "mdi:crosshairs-gps" } }, "light": { @@ -175,11 +175,77 @@ } }, "number": { - "zoom": { - "default": "mdi:magnify" + "ai_animal_delay": { + "default": "mdi:paw" }, - "focus": { - "default": "mdi:focus-field" + "ai_animal_sensitivity": { + "default": "mdi:paw" + }, + "ai_face_delay": { + "default": "mdi:face-recognition" + }, + "ai_face_sensitivity": { + "default": "mdi:face-recognition" + }, + "ai_non_motor_vehicle_delay": { + "default": "mdi:bicycle" + }, + "ai_non_motor_vehicle_sensitivity": { + "default": "mdi:bicycle" + }, + "ai_package_delay": { + "default": "mdi:gift-outline" + }, + "ai_package_sensitivity": { + "default": "mdi:gift-outline" + }, + "ai_person_delay": { + "default": "mdi:account" + }, + "ai_person_sensitivity": { + "default": "mdi:account" + }, + "ai_pet_delay": { + "default": "mdi:dog-side" + }, + "ai_pet_sensitivity": { + "default": "mdi:dog-side" + }, + "ai_vehicle_delay": { + "default": "mdi:car" + }, + "ai_vehicle_sensitivity": { + "default": "mdi:car" + }, + "alarm_volume": { + "default": "mdi:volume-high", + "state": { + "0": "mdi:volume-off" + } + }, + "auto_quick_reply_time": { + "default": "mdi:message-reply-text-outline" + }, + "auto_track_disappear_time": { + "default": "mdi:target-account" + }, + "auto_track_limit_left": { + "default": "mdi:angle-acute" + }, + "auto_track_limit_right": { + "default": "mdi:angle-acute" + }, + "auto_track_stop_time": { + "default": "mdi:target-account" + }, + "crossline_sensitivity": { + "default": "mdi:fence" + }, + "cry_sensitivity": { + "default": "mdi:emoticon-cry-outline" + }, + "day_night_switch_threshold": { + "default": "mdi:theme-light-dark" }, "floodlight_brightness": { "default": "mdi:spotlight-beam" @@ -187,22 +253,82 @@ "floodlight_event_brightness": { "default": "mdi:spotlight-beam" }, - "ir_brightness": { - "default": "mdi:led-off" + "floodlight_event_flash_time": { + "default": "mdi:spotlight-beam" }, "floodlight_event_on_time": { "default": "mdi:spotlight-beam" }, - "floodlight_event_flash_time": { - "default": "mdi:spotlight-beam" + "focus": { + "default": "mdi:focus-field" }, - "volume": { + "forgotten_item_delay": { + "default": "mdi:package-variant-closed-plus" + }, + "forgotten_item_sensitivity": { + "default": "mdi:package-variant-closed-plus" + }, + "guard_return_time": { + "default": "mdi:crosshairs-gps" + }, + "image_brightness": { + "default": "mdi:image-edit" + }, + "image_contrast": { + "default": "mdi:image-edit" + }, + "image_hue": { + "default": "mdi:image-edit" + }, + "image_saturation": { + "default": "mdi:image-edit" + }, + "image_sharpness": { + "default": "mdi:image-edit" + }, + "intrusion_delay": { + "default": "mdi:location-enter" + }, + "intrusion_sensitivity": { + "default": "mdi:location-enter" + }, + "ir_brightness": { + "default": "mdi:led-off" + }, + "linger_delay": { + "default": "mdi:account-switch" + }, + "linger_sensitivity": { + "default": "mdi:account-switch" + }, + "message_volume": { "default": "mdi:volume-high", "state": { "0": "mdi:volume-off" } }, - "volume_speak": { + "motion_sensitivity": { + "default": "mdi:motion-sensor" + }, + "pir_sensitivity": { + "default": "mdi:motion-sensor" + }, + "pre_record_battery_stop": { + "default": "mdi:history" + }, + "pre_record_time": { + "default": "mdi:history" + }, + "silent_time": { + "default": "mdi:volume-off" + }, + "taken_item_delay": { + "default": "mdi:package-variant-closed-minus" + }, + "taken_item_sensitivity": { + "default": "mdi:package-variant-closed-minus" + }, + "volume": { "default": "mdi:volume-high", "state": { "0": "mdi:volume-off" @@ -214,173 +340,38 @@ "0": "mdi:volume-off" } }, - "alarm_volume": { + "volume_speak": { "default": "mdi:volume-high", "state": { "0": "mdi:volume-off" } }, - "message_volume": { - "default": "mdi:volume-high", - "state": { - "0": "mdi:volume-off" - } - }, - "guard_return_time": { - "default": "mdi:crosshairs-gps" - }, - "motion_sensitivity": { - "default": "mdi:motion-sensor" - }, - "pir_sensitivity": { - "default": "mdi:motion-sensor" - }, - "ai_face_sensitivity": { - "default": "mdi:face-recognition" - }, - "ai_person_sensitivity": { - "default": "mdi:account" - }, - "ai_vehicle_sensitivity": { - "default": "mdi:car" - }, - "ai_non_motor_vehicle_sensitivity": { - "default": "mdi:bicycle" - }, - "ai_package_sensitivity": { - "default": "mdi:gift-outline" - }, - "ai_pet_sensitivity": { - "default": "mdi:dog-side" - }, - "ai_animal_sensitivity": { - "default": "mdi:paw" - }, - "cry_sensitivity": { - "default": "mdi:emoticon-cry-outline" - }, - "crossline_sensitivity": { - "default": "mdi:fence" - }, - "intrusion_sensitivity": { - "default": "mdi:location-enter" - }, - "linger_sensitivity": { - "default": "mdi:account-switch" - }, - "forgotten_item_sensitivity": { - "default": "mdi:package-variant-closed-plus" - }, - "taken_item_sensitivity": { - "default": "mdi:package-variant-closed-minus" - }, - "ai_face_delay": { - "default": "mdi:face-recognition" - }, - "ai_person_delay": { - "default": "mdi:account" - }, - "ai_vehicle_delay": { - "default": "mdi:car" - }, - "ai_non_motor_vehicle_delay": { - "default": "mdi:bicycle" - }, - "ai_package_delay": { - "default": "mdi:gift-outline" - }, - "ai_pet_delay": { - "default": "mdi:dog-side" - }, - "ai_animal_delay": { - "default": "mdi:paw" - }, - "intrusion_delay": { - "default": "mdi:location-enter" - }, - "linger_delay": { - "default": "mdi:account-switch" - }, - "forgotten_item_delay": { - "default": "mdi:package-variant-closed-plus" - }, - "taken_item_delay": { - "default": "mdi:package-variant-closed-minus" - }, - "auto_quick_reply_time": { - "default": "mdi:message-reply-text-outline" - }, - "auto_track_limit_left": { - "default": "mdi:angle-acute" - }, - "auto_track_limit_right": { - "default": "mdi:angle-acute" - }, - "auto_track_disappear_time": { - "default": "mdi:target-account" - }, - "auto_track_stop_time": { - "default": "mdi:target-account" - }, - "day_night_switch_threshold": { - "default": "mdi:theme-light-dark" - }, - "image_brightness": { - "default": "mdi:image-edit" - }, - "image_contrast": { - "default": "mdi:image-edit" - }, - "image_saturation": { - "default": "mdi:image-edit" - }, - "image_sharpness": { - "default": "mdi:image-edit" - }, - "image_hue": { - "default": "mdi:image-edit" - }, - "pre_record_time": { - "default": "mdi:history" - }, - "pre_record_battery_stop": { - "default": "mdi:history" - }, - "silent_time": { - "default": "mdi:volume-off" + "zoom": { + "default": "mdi:magnify" } }, "select": { - "floodlight_mode": { - "default": "mdi:spotlight-beam" - }, - "floodlight_event_mode": { - "default": "mdi:spotlight-beam" - }, - "day_night_mode": { - "default": "mdi:theme-light-dark" - }, - "ptz_preset": { - "default": "mdi:pan" - }, - "play_quick_reply_message": { - "default": "mdi:message-reply-text-outline" - }, "auto_quick_reply_message": { "default": "mdi:message-reply-text-outline" }, "auto_track_method": { "default": "mdi:target-account" }, - "status_led": { - "default": "mdi:lightning-bolt-circle" + "binning_mode": { + "default": "mdi:code-block-brackets" + }, + "day_night_mode": { + "default": "mdi:theme-light-dark" + }, + "floodlight_event_mode": { + "default": "mdi:spotlight-beam" + }, + "floodlight_mode": { + "default": "mdi:spotlight-beam" }, "hdr": { "default": "mdi:hdr" }, - "binning_mode": { - "default": "mdi:code-block-brackets" - }, "hub_alarm_ringtone": { "default": "mdi:music-note", "state": { @@ -393,18 +384,63 @@ "alarm": "mdi:bullhorn" } }, + "main_bit_rate": { + "default": "mdi:play-speed" + }, + "main_encoding": { + "default": "mdi:video-image" + }, + "main_frame_rate": { + "default": "mdi:play-speed" + }, "motion_tone": { "default": "mdi:music-note", "state": { "off": "mdi:music-note-off" } }, + "package_tone": { + "default": "mdi:music-note", + "state": { + "off": "mdi:music-note-off" + } + }, + "packing_time": { + "default": "mdi:record-rec" + }, "people_tone": { "default": "mdi:music-note", "state": { "off": "mdi:music-note-off" } }, + "play_quick_reply_message": { + "default": "mdi:message-reply-text-outline" + }, + "post_rec_time": { + "default": "mdi:record-rec" + }, + "pre_record_fps": { + "default": "mdi:history" + }, + "ptz_preset": { + "default": "mdi:pan" + }, + "scene_mode": { + "default": "mdi:view-list" + }, + "status_led": { + "default": "mdi:lightning-bolt-circle" + }, + "sub_bit_rate": { + "default": "mdi:play-speed" + }, + "sub_encoding": { + "default": "mdi:video-image" + }, + "sub_frame_rate": { + "default": "mdi:play-speed" + }, "vehicle_tone": { "default": "mdi:music-note", "state": { @@ -416,85 +452,49 @@ "state": { "off": "mdi:music-note-off" } - }, - "package_tone": { - "default": "mdi:music-note", - "state": { - "off": "mdi:music-note-off" - } - }, - "main_frame_rate": { - "default": "mdi:play-speed" - }, - "sub_frame_rate": { - "default": "mdi:play-speed" - }, - "main_bit_rate": { - "default": "mdi:play-speed" - }, - "sub_bit_rate": { - "default": "mdi:play-speed" - }, - "main_encoding": { - "default": "mdi:video-image" - }, - "sub_encoding": { - "default": "mdi:video-image" - }, - "scene_mode": { - "default": "mdi:view-list" - }, - "packing_time": { - "default": "mdi:record-rec" - }, - "pre_record_fps": { - "default": "mdi:history" - }, - "post_rec_time": { - "default": "mdi:record-rec" } }, "sensor": { + "animal_type": { + "default": "mdi:paw" + }, + "battery_state": { + "default": "mdi:battery-unknown", + "state": { + "chargecomplete": "mdi:battery-check", + "charging": "mdi:battery-charging", + "discharging": "mdi:battery-minus-variant" + } + }, + "battery_temperature": { + "default": "mdi:thermometer" + }, + "cpu_usage": { + "default": "mdi:cpu-64-bit" + }, + "day_night_state": { + "default": "mdi:theme-light-dark" + }, + "hdd_storage": { + "default": "mdi:harddisk" + }, + "person_type": { + "default": "mdi:account" + }, "ptz_pan_position": { "default": "mdi:pan-horizontal" }, "ptz_tilt_position": { "default": "mdi:pan-vertical" }, - "battery_temperature": { - "default": "mdi:thermometer" - }, - "battery_state": { - "default": "mdi:battery-unknown", - "state": { - "discharging": "mdi:battery-minus-variant", - "charging": "mdi:battery-charging", - "chargecomplete": "mdi:battery-check" - } - }, - "day_night_state": { - "default": "mdi:theme-light-dark" - }, - "wifi_signal": { - "default": "mdi:wifi" - }, - "cpu_usage": { - "default": "mdi:cpu-64-bit" - }, - "hdd_storage": { - "default": "mdi:harddisk" - }, "sd_storage": { "default": "mdi:micro-sd" }, - "person_type": { - "default": "mdi:account" - }, "vehicle_type": { "default": "mdi:car" }, - "animal_type": { - "default": "mdi:paw" + "wifi_signal": { + "default": "mdi:wifi" } }, "siren": { @@ -503,26 +503,14 @@ } }, "switch": { - "ir_lights": { - "default": "mdi:led-off" - }, - "record_audio": { - "default": "mdi:microphone" - }, - "siren_on_event": { - "default": "mdi:alarm-light" + "auto_focus": { + "default": "mdi:focus-field" }, "auto_tracking": { "default": "mdi:target-account" }, - "auto_focus": { - "default": "mdi:focus-field" - }, - "guard_return": { - "default": "mdi:crosshairs-gps" - }, - "ptz_patrol": { - "default": "mdi:map-marker-path" + "doorbell_button_sound": { + "default": "mdi:volume-high" }, "email": { "default": "mdi:email" @@ -530,29 +518,8 @@ "ftp_upload": { "default": "mdi:swap-horizontal" }, - "push_notifications": { - "default": "mdi:message-badge" - }, - "record": { - "default": "mdi:record-rec" - }, - "manual_record": { - "default": "mdi:record-rec" - }, - "rule": { - "default": "mdi:cctv", - "state": { - "off": "mdi:cctv-off" - } - }, - "pre_record": { - "default": "mdi:history" - }, - "hub_ringtone_on_event": { - "default": "mdi:music-note" - }, - "doorbell_button_sound": { - "default": "mdi:volume-high" + "guard_return": { + "default": "mdi:crosshairs-gps" }, "hardwired_chime_enabled": { "default": "mdi:bell", @@ -563,14 +530,32 @@ "hdr": { "default": "mdi:hdr" }, + "hub_ringtone_on_event": { + "default": "mdi:music-note" + }, + "ir_lights": { + "default": "mdi:led-off" + }, + "led": { + "default": "mdi:lightning-bolt-circle" + }, + "manual_record": { + "default": "mdi:record-rec" + }, "pir_enabled": { "default": "mdi:motion-sensor" }, "pir_reduce_alarm": { "default": "mdi:motion-sensor" }, - "led": { - "default": "mdi:lightning-bolt-circle" + "pre_record": { + "default": "mdi:history" + }, + "privacy_mask": { + "default": "mdi:eye", + "state": { + "on": "mdi:eye-off" + } }, "privacy_mode": { "default": "mdi:eye", @@ -578,20 +563,35 @@ "on": "mdi:eye-off" } }, - "privacy_mask": { - "default": "mdi:eye", + "ptz_patrol": { + "default": "mdi:map-marker-path" + }, + "push_notifications": { + "default": "mdi:message-badge" + }, + "record": { + "default": "mdi:record-rec" + }, + "record_audio": { + "default": "mdi:microphone" + }, + "rule": { + "default": "mdi:cctv", "state": { - "on": "mdi:eye-off" + "off": "mdi:cctv-off" } + }, + "siren_on_event": { + "default": "mdi:alarm-light" } } }, "services": { - "ptz_move": { - "service": "mdi:pan" - }, "play_chime": { "service": "mdi:music" + }, + "ptz_move": { + "service": "mdi:pan" } } } diff --git a/homeassistant/components/reolink/strings.json b/homeassistant/components/reolink/strings.json index 598775fe63c..c8030872bc7 100644 --- a/homeassistant/components/reolink/strings.json +++ b/homeassistant/components/reolink/strings.json @@ -1,30 +1,10 @@ { "config": { - "flow_title": "{hostname} ({ip_address})", - "step": { - "user": { - "description": "See the [troubleshooting steps]({troubleshooting_link}) if you encounter problems. {error}", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "use_https": "Enable HTTPS", - "baichuan_port": "Basic service port", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Reolink device. For example: '192.168.1.25'.", - "port": "The HTTP(s) port to connect to the Reolink device API. For HTTP normally: '80', for HTTPS normally '443'.", - "use_https": "Use an HTTPS (SSL) connection to the Reolink device.", - "baichuan_port": "The 'Basic Service Port' to connect to the Reolink device over TCP. Normally '9000' unless manually changed in the Reolink desktop client.", - "username": "Username to log in to the Reolink device itself. Not the Reolink cloud account.", - "password": "Password to log in to the Reolink device itself. Not the Reolink cloud account." - } - }, - "privacy": { - "title": "Permission to disable Reolink privacy mode", - "description": "Privacy mode is enabled on Reolink device {host}. By pressing SUBMIT, the privacy mode will be disabled to retrieve the necessary information from the Reolink device. You can abort the setup by pressing X and repeat the setup at a time in which privacy mode can be disabled. After this configuration, you are free to enable the privacy mode again using the privacy mode switch entity. During normal startup the privacy mode will not be disabled. Note however that all entities will be marked unavailable as long as the privacy mode is active." - } + "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": "The MAC address of the device does not match the previous MAC address" }, "error": { "api_error": "API error occurred", @@ -36,186 +16,35 @@ "update_needed": "Failed to log in because of outdated firmware, please update the firmware to version {needed_firmware} using the Reolink Download Center: {download_center_url}, currently version {current_firmware} is installed", "webhook_exception": "Home Assistant URL is not available, go to Settings > System > Network > Home Assistant URL and correct the URLs, see {more_info}" }, - "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": "The MAC address of the device does not match the previous MAC address" - } - }, - "options": { + "flow_title": "{hostname} ({ip_address})", "step": { - "init": { + "privacy": { + "description": "Privacy mode is enabled on Reolink device {host}. By pressing SUBMIT, the privacy mode will be disabled to retrieve the necessary information from the Reolink device. You can abort the setup by pressing X and repeat the setup at a time in which privacy mode can be disabled. After this configuration, you are free to enable the privacy mode again using the privacy mode switch entity. During normal startup the privacy mode will not be disabled. Note however that all entities will be marked unavailable as long as the privacy mode is active.", + "title": "Permission to disable Reolink privacy mode" + }, + "user": { "data": { - "protocol": "Protocol" + "baichuan_port": "Basic service port", + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "use_https": "Enable HTTPS", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "protocol": "Streaming protocol to use for the camera entities. RTSP supports 4K streams (H.265 encoding) while RTMP and FLV do not. FLV is the least demanding on the camera." - } - } - } - }, - "exceptions": { - "service_entry_ex": { - "message": "Reolink {service_name} error: config entry not found or not loaded" - }, - "service_not_chime": { - "message": "Reolink play_chime error: {device_name} is not a Chime" - }, - "invalid_parameter": { - "message": "Invalid input parameter: {err}" - }, - "api_error": { - "message": "The device responded with an error: {err}" - }, - "invalid_content_type": { - "message": "Received a different content type than expected: {err}" - }, - "invalid_credentials": { - "message": "Invalid credentials: {err}" - }, - "login_error": { - "message": "Error during login attempt: {err}" - }, - "no_data": { - "message": "Device returned no data: {err}" - }, - "unexpected_data": { - "message": "Device returned unexpected data: {err}" - }, - "not_supported": { - "message": "Function not supported by this device: {err}" - }, - "subscription_error": { - "message": "Error during ONVIF subscription: {err}" - }, - "connection_error": { - "message": "Could not connect to the device: {err}" - }, - "timeout": { - "message": "Timeout waiting on a response: {err}" - }, - "unexpected": { - "message": "Unexpected Reolink error: {err}" - }, - "firmware_install_error": { - "message": "Error trying to update Reolink firmware: {err}" - }, - "config_entry_not_ready": { - "message": "Error while trying to set up {host}: {err}" - }, - "update_already_running": { - "message": "Reolink firmware update already running, wait on completion before starting another" - }, - "firmware_rate_limit": { - "message": "Reolink firmware update server reached hourly rate limit: updating can be tried again in 1 hour" - } - }, - "issues": { - "https_webhook": { - "title": "Reolink webhook URL uses HTTPS (SSL)", - "description": "Reolink products can not push motion events to an HTTPS address (SSL), please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}). The current (local) address is: `{base_url}`, a valid address could, for example, be `http://192.168.1.10:8123` where `192.168.1.10` is the IP of the Home Assistant device" - }, - "ssl": { - "title": "Reolink incompatible with global SSL certificate", - "description": "Global SSL certificate configured in the [configuration.yaml under http]({ssl_link}) while a local HTTP address `{base_url}` is configured under \"Home Assistant URL\" in the [network settings]({network_link}). Therefore, the Reolink device can not reach Home Assistant to push its motion/AI events. Please make sure the local HTTP address is not covered by the SSL certificate, by for instance using [NGINX add-on]({nginx_link}) instead of a globally enforced SSL certificate." - }, - "webhook_url": { - "title": "Reolink webhook URL unreachable", - "description": "Did not receive initial ONVIF state from {name}. Most likely, the Reolink camera can not reach the current (local) Home Assistant URL `{base_url}`, please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}) that points to Home Assistant. For example `http://192.168.1.10:8123` where `192.168.1.10` is the IP of the Home Assistant device. Also, make sure the Reolink camera can reach that URL. Using fast motion/AI state polling until the first ONVIF push is received." - }, - "enable_port": { - "title": "Reolink port not enabled", - "description": "Failed to automatically enable {ports}port(s) on {name}. Use the [Reolink client]({info_link}) to manually set it to ON" - }, - "firmware_update": { - "title": "Reolink firmware update required", - "description": "\"{name}\" with model \"{model}\" and hardware version \"{hw_version}\" is running an old firmware version \"{current_firmware}\", while at least firmware version \"{required_firmware}\" is required for proper operation of the Reolink integration. The firmware can be updated by pressing \"install\" in the more info dialog of the update entity of \"{name}\" from within Home Assistant. Alternatively, the latest firmware can be downloaded from the [Reolink download center]({download_link})." - }, - "password_too_long": { - "title": "Reolink password too long", - "description": "The password for \"{name}\" is more than 31 characters long, this is no longer compatible with the Reolink API. Please change the password using the Reolink app/client to a password with is shorter than 32 characters. After changing the password, fill in the new password in the Reolink Re-authentication flow to continue using this integration. The latest version of the Reolink app/client also has a password limit of 31 characters." - } - }, - "services": { - "ptz_move": { - "name": "PTZ move", - "description": "Moves the camera with a specific speed.", - "fields": { - "speed": { - "name": "Speed", - "description": "PTZ move speed." - } - } - }, - "play_chime": { - "name": "Play chime", - "description": "Plays a ringtone on a Reolink Chime.", - "fields": { - "device_id": { - "name": "Target chime", - "description": "The Reolink Chime to play the ringtone on." + "baichuan_port": "The 'Basic Service Port' to connect to the Reolink device over TCP. Normally '9000' unless manually changed in the Reolink desktop client.", + "host": "The hostname or IP address of your Reolink device. For example: '192.168.1.25'.", + "password": "Password to log in to the Reolink device itself. Not the Reolink cloud account.", + "port": "The HTTP(s) port to connect to the Reolink device API. For HTTP normally: '80', for HTTPS normally '443'.", + "use_https": "Use an HTTPS (SSL) connection to the Reolink device.", + "username": "Username to log in to the Reolink device itself. Not the Reolink cloud account." }, - "ringtone": { - "name": "Ringtone", - "description": "Ringtone to play." - } - } - } - }, - "selector": { - "ringtone": { - "options": { - "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", - "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", - "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", - "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" + "description": "See the [troubleshooting steps]({troubleshooting_link}) if you encounter problems. {error}" } } }, "entity": { "binary_sensor": { - "face": { - "name": "Face", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "person": { - "name": "Person", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "vehicle": { - "name": "Vehicle", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "non-motor_vehicle": { - "name": "Bicycle", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "pet": { - "name": "Pet", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, "animal": { "name": "Animal", "state": { @@ -223,58 +52,6 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "visitor": { - "name": "Visitor" - }, - "package": { - "name": "Package", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "cry": { - "name": "Baby crying", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "motion_lens_0": { - "name": "Motion lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "face_lens_0": { - "name": "Face lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "person_lens_0": { - "name": "Person lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "vehicle_lens_0": { - "name": "Vehicle lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "pet_lens_0": { - "name": "Pet lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, "animal_lens_0": { "name": "Animal lens 0", "state": { @@ -282,51 +59,6 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "visitor_lens_0": { - "name": "Visitor lens 0" - }, - "package_lens_0": { - "name": "Package lens 0", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "motion_lens_1": { - "name": "Motion lens 1", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "face_lens_1": { - "name": "Face lens 1", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "person_lens_1": { - "name": "Person lens 1", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "vehicle_lens_1": { - "name": "Vehicle lens 1", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, - "pet_lens_1": { - "name": "Pet lens 1", - "state": { - "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", - "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" - } - }, "animal_lens_1": { "name": "Animal lens 1", "state": { @@ -334,23 +66,13 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "visitor_lens_1": { - "name": "Visitor lens 1" - }, - "package_lens_1": { - "name": "Package lens 1", + "crossline_dog_cat": { + "name": "Crossline {zone_name} animal", "state": { "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "sleep": { - "name": "Sleep status", - "state": { - "off": "Awake", - "on": "Sleeping" - } - }, "crossline_person": { "name": "Crossline {zone_name} person", "state": { @@ -365,8 +87,43 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "crossline_dog_cat": { - "name": "Crossline {zone_name} animal", + "cry": { + "name": "Baby crying", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "face": { + "name": "Face", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "face_lens_0": { + "name": "Face lens 0", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "face_lens_1": { + "name": "Face lens 1", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "forgotten_item": { + "name": "Item forgotten {zone_name}", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "intrusion_dog_cat": { + "name": "Intrusion {zone_name} animal", "state": { "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" @@ -386,8 +143,15 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "intrusion_dog_cat": { - "name": "Intrusion {zone_name} animal", + "io_input": { + "name": "IO input {index}", + "state": { + "off": "[%key:common::state::disconnected%]", + "on": "[%key:common::state::connected%]" + } + }, + "linger_dog_cat": { + "name": "Linger {zone_name} animal", "state": { "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" @@ -407,20 +171,97 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "linger_dog_cat": { - "name": "Linger {zone_name} animal", + "motion_lens_0": { + "name": "Motion lens 0", "state": { "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "forgotten_item": { - "name": "Item forgotten {zone_name}", + "motion_lens_1": { + "name": "Motion lens 1", "state": { "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, + "non-motor_vehicle": { + "name": "Bicycle", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "package": { + "name": "Package", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "package_lens_0": { + "name": "Package lens 0", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "package_lens_1": { + "name": "Package lens 1", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "person": { + "name": "Person", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "person_lens_0": { + "name": "Person lens 0", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "person_lens_1": { + "name": "Person lens 1", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "pet": { + "name": "Pet", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "pet_lens_0": { + "name": "Pet lens 0", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "pet_lens_1": { + "name": "Pet lens 1", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "sleep": { + "name": "Sleep status", + "state": { + "off": "Awake", + "on": "Sleeping" + } + }, "taken_item": { "name": "Item taken {zone_name}", "state": { @@ -428,17 +269,49 @@ "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } }, - "io_input": { - "name": "IO input {index}", + "vehicle": { + "name": "Vehicle", "state": { - "off": "[%key:common::state::disconnected%]", - "on": "[%key:common::state::connected%]" + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" } + }, + "vehicle_lens_0": { + "name": "Vehicle lens 0", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "vehicle_lens_1": { + "name": "Vehicle lens 1", + "state": { + "off": "[%key:component::binary_sensor::entity_component::gas::state::off%]", + "on": "[%key:component::binary_sensor::entity_component::gas::state::on%]" + } + }, + "visitor": { + "name": "Visitor" + }, + "visitor_lens_0": { + "name": "Visitor lens 0" + }, + "visitor_lens_1": { + "name": "Visitor lens 1" } }, "button": { - "ptz_stop": { - "name": "PTZ stop" + "guard_go_to": { + "name": "Guard go to" + }, + "guard_set": { + "name": "Guard set current position" + }, + "ptz_calibrate": { + "name": "PTZ calibrate" + }, + "ptz_down": { + "name": "PTZ down" }, "ptz_left": { "name": "PTZ left" @@ -446,85 +319,76 @@ "ptz_right": { "name": "PTZ right" }, + "ptz_stop": { + "name": "PTZ stop" + }, "ptz_up": { "name": "PTZ up" }, - "ptz_down": { - "name": "PTZ down" - }, "ptz_zoom_in": { "name": "PTZ zoom in" }, "ptz_zoom_out": { "name": "PTZ zoom out" - }, - "ptz_calibrate": { - "name": "PTZ calibrate" - }, - "guard_go_to": { - "name": "Guard go to" - }, - "guard_set": { - "name": "Guard set current position" } }, "camera": { - "sub": { - "name": "Fluent" - }, - "main": { - "name": "Clear" - }, - "snapshots_sub": { - "name": "Snapshots fluent" - }, - "snapshots_main": { - "name": "Snapshots clear" - }, "ext": { "name": "Balanced" }, - "sub_lens_0": { - "name": "Fluent lens 0" - }, - "main_lens_0": { - "name": "Clear lens 0" - }, - "snapshots_sub_lens_0": { - "name": "Snapshots fluent lens 0" - }, - "snapshots_main_lens_0": { - "name": "Snapshots clear lens 0" - }, "ext_lens_0": { "name": "Balanced lens 0" }, - "sub_lens_1": { - "name": "Fluent lens 1" + "ext_lens_1": { + "name": "Balanced lens 1" + }, + "main": { + "name": "Clear" + }, + "main_lens_0": { + "name": "Clear lens 0" }, "main_lens_1": { "name": "Clear lens 1" }, - "snapshots_sub_lens_1": { - "name": "Snapshots fluent lens 1" + "snapshots_main": { + "name": "Snapshots clear" + }, + "snapshots_main_lens_0": { + "name": "Snapshots clear lens 0" }, "snapshots_main_lens_1": { "name": "Snapshots clear lens 1" }, - "ext_lens_1": { - "name": "Balanced lens 1" + "snapshots_sub": { + "name": "Snapshots fluent" }, - "telephoto_sub": { - "name": "Telephoto fluent" + "snapshots_sub_lens_0": { + "name": "Snapshots fluent lens 0" + }, + "snapshots_sub_lens_1": { + "name": "Snapshots fluent lens 1" + }, + "sub": { + "name": "Fluent" + }, + "sub_lens_0": { + "name": "Fluent lens 0" + }, + "sub_lens_1": { + "name": "Fluent lens 1" }, "telephoto_main": { "name": "Telephoto clear" }, + "telephoto_snapshots_main": { + "name": "Telephoto snapshots clear" + }, "telephoto_snapshots_sub": { "name": "Telephoto snapshots fluent" }, - "telephoto_snapshots_main": { - "name": "Telephoto snapshots clear" + "telephoto_sub": { + "name": "Telephoto fluent" } }, "light": { @@ -536,200 +400,167 @@ } }, "number": { - "zoom": { - "name": "Zoom" - }, - "focus": { - "name": "Focus" - }, - "floodlight_brightness": { - "name": "Floodlight turn on brightness" - }, - "floodlight_event_brightness": { - "name": "Floodlight event brightness" - }, - "ir_brightness": { - "name": "Infrared light brightness" - }, - "floodlight_event_on_time": { - "name": "Floodlight event on time" - }, - "floodlight_event_flash_time": { - "name": "Floodlight event flash time" - }, - "volume": { - "name": "Volume" - }, - "volume_speak": { - "name": "Speak volume" - }, - "volume_doorbell": { - "name": "Doorbell volume" - }, - "alarm_volume": { - "name": "Alarm volume" - }, - "message_volume": { - "name": "Message volume" - }, - "guard_return_time": { - "name": "Guard return time" - }, - "motion_sensitivity": { - "name": "Motion sensitivity" - }, - "pir_sensitivity": { - "name": "PIR sensitivity" - }, - "ai_face_sensitivity": { - "name": "AI face sensitivity" - }, - "ai_person_sensitivity": { - "name": "AI person sensitivity" - }, - "ai_vehicle_sensitivity": { - "name": "AI vehicle sensitivity" - }, - "ai_non_motor_vehicle_sensitivity": { - "name": "AI bicycle sensitivity" - }, - "ai_package_sensitivity": { - "name": "AI package sensitivity" - }, - "ai_pet_sensitivity": { - "name": "AI pet sensitivity" + "ai_animal_delay": { + "name": "AI animal delay" }, "ai_animal_sensitivity": { "name": "AI animal sensitivity" }, - "cry_sensitivity": { - "name": "Baby cry sensitivity" - }, - "crossline_sensitivity": { - "name": "AI crossline {zone_name} sensitivity" - }, - "intrusion_sensitivity": { - "name": "AI intrusion {zone_name} sensitivity" - }, - "linger_sensitivity": { - "name": "AI linger {zone_name} sensitivity" - }, - "forgotten_item_sensitivity": { - "name": "AI item forgotten {zone_name} sensitivity" - }, - "taken_item_sensitivity": { - "name": "AI item taken {zone_name} sensitivity" - }, "ai_face_delay": { "name": "AI face delay" }, - "ai_person_delay": { - "name": "AI person delay" - }, - "ai_vehicle_delay": { - "name": "AI vehicle delay" + "ai_face_sensitivity": { + "name": "AI face sensitivity" }, "ai_non_motor_vehicle_delay": { "name": "AI bicycle delay" }, + "ai_non_motor_vehicle_sensitivity": { + "name": "AI bicycle sensitivity" + }, "ai_package_delay": { "name": "AI package delay" }, + "ai_package_sensitivity": { + "name": "AI package sensitivity" + }, + "ai_person_delay": { + "name": "AI person delay" + }, + "ai_person_sensitivity": { + "name": "AI person sensitivity" + }, "ai_pet_delay": { "name": "AI pet delay" }, - "ai_animal_delay": { - "name": "AI animal delay" + "ai_pet_sensitivity": { + "name": "AI pet sensitivity" }, - "intrusion_delay": { - "name": "AI intrusion {zone_name} delay" + "ai_vehicle_delay": { + "name": "AI vehicle delay" }, - "linger_delay": { - "name": "AI linger {zone_name} delay" + "ai_vehicle_sensitivity": { + "name": "AI vehicle sensitivity" }, - "forgotten_item_delay": { - "name": "AI item forgotten {zone_name} delay" - }, - "taken_item_delay": { - "name": "AI item taken {zone_name} delay" + "alarm_volume": { + "name": "Alarm volume" }, "auto_quick_reply_time": { "name": "Auto quick reply time" }, + "auto_track_disappear_time": { + "name": "Auto track disappear time" + }, "auto_track_limit_left": { "name": "Auto track limit left" }, "auto_track_limit_right": { "name": "Auto track limit right" }, - "auto_track_disappear_time": { - "name": "Auto track disappear time" - }, "auto_track_stop_time": { "name": "Auto track stop time" }, + "crossline_sensitivity": { + "name": "AI crossline {zone_name} sensitivity" + }, + "cry_sensitivity": { + "name": "Baby cry sensitivity" + }, "day_night_switch_threshold": { "name": "Day night switch threshold" }, + "floodlight_brightness": { + "name": "Floodlight turn on brightness" + }, + "floodlight_event_brightness": { + "name": "Floodlight event brightness" + }, + "floodlight_event_flash_time": { + "name": "Floodlight event flash time" + }, + "floodlight_event_on_time": { + "name": "Floodlight event on time" + }, + "focus": { + "name": "Focus" + }, + "forgotten_item_delay": { + "name": "AI item forgotten {zone_name} delay" + }, + "forgotten_item_sensitivity": { + "name": "AI item forgotten {zone_name} sensitivity" + }, + "guard_return_time": { + "name": "Guard return time" + }, "image_brightness": { "name": "Image brightness" }, "image_contrast": { "name": "Image contrast" }, + "image_hue": { + "name": "Image hue" + }, "image_saturation": { "name": "Image saturation" }, "image_sharpness": { "name": "Image sharpness" }, - "image_hue": { - "name": "Image hue" + "intrusion_delay": { + "name": "AI intrusion {zone_name} delay" }, - "pre_record_time": { - "name": "Pre-recording time" + "intrusion_sensitivity": { + "name": "AI intrusion {zone_name} sensitivity" + }, + "ir_brightness": { + "name": "Infrared light brightness" + }, + "linger_delay": { + "name": "AI linger {zone_name} delay" + }, + "linger_sensitivity": { + "name": "AI linger {zone_name} sensitivity" + }, + "message_volume": { + "name": "Message volume" + }, + "motion_sensitivity": { + "name": "Motion sensitivity" + }, + "pir_sensitivity": { + "name": "PIR sensitivity" }, "pre_record_battery_stop": { "name": "Pre-recording stop battery level" }, + "pre_record_time": { + "name": "Pre-recording time" + }, "silent_time": { "name": "Silent time" + }, + "taken_item_delay": { + "name": "AI item taken {zone_name} delay" + }, + "taken_item_sensitivity": { + "name": "AI item taken {zone_name} sensitivity" + }, + "volume": { + "name": "Volume" + }, + "volume_doorbell": { + "name": "Doorbell volume" + }, + "volume_speak": { + "name": "Speak volume" + }, + "zoom": { + "name": "Zoom" } }, "select": { - "floodlight_mode": { - "name": "Floodlight mode", - "state": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "onatnight": "On at night", - "schedule": "Schedule", - "adaptive": "Adaptive", - "autoadaptive": "Auto adaptive" - } - }, - "floodlight_event_mode": { - "name": "Floodlight event mode", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "flash": "Flash" - } - }, - "day_night_mode": { - "name": "Day night mode", - "state": { - "auto": "[%key:common::state::auto%]", - "color": "Color", - "blackwhite": "Black & white" - } - }, - "ptz_preset": { - "name": "PTZ preset" - }, - "play_quick_reply_message": { - "name": "Play quick reply message" - }, "auto_quick_reply_message": { "name": "Auto quick reply message", "state": { @@ -744,45 +575,72 @@ "pantiltfirst": "Pan/tilt first" } }, + "binning_mode": { + "name": "Binning mode", + "state": { + "auto": "[%key:common::state::auto%]", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "day_night_mode": { + "name": "Day night mode", + "state": { + "auto": "[%key:common::state::auto%]", + "blackwhite": "Black & white", + "color": "Color" + } + }, "doorbell_led": { "name": "Doorbell LED", "state": { - "stayoff": "Stay off", - "auto": "[%key:common::state::auto%]", - "alwaysonatnight": "Auto & always on at night", "always": "Always on", - "alwayson": "Always on" + "alwayson": "Always on", + "alwaysonatnight": "Auto & always on at night", + "auto": "[%key:common::state::auto%]", + "stayoff": "Stay off" + } + }, + "floodlight_event_mode": { + "name": "Floodlight event mode", + "state": { + "flash": "Flash", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "floodlight_mode": { + "name": "Floodlight mode", + "state": { + "adaptive": "Adaptive", + "auto": "[%key:common::state::auto%]", + "autoadaptive": "Auto adaptive", + "off": "[%key:common::state::off%]", + "onatnight": "On at night", + "schedule": "Schedule" } }, "hdr": { "name": "HDR", "state": { + "auto": "[%key:common::state::auto%]", "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "auto": "[%key:common::state::auto%]" - } - }, - "binning_mode": { - "name": "Binning mode", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "auto": "[%key:common::state::auto%]" + "on": "[%key:common::state::on%]" } }, "hub_alarm_ringtone": { "name": "Hub alarm ringtone", "state": { "alarm": "Alarm", + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" } }, @@ -790,173 +648,174 @@ "name": "Hub visitor ringtone", "state": { "alarm": "[%key:component::reolink::entity::select::hub_alarm_ringtone::state::alarm%]", + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" } }, + "main_bit_rate": { + "name": "Clear bit rate" + }, + "main_encoding": { + "name": "Clear encoding" + }, + "main_frame_rate": { + "name": "Clear frame rate" + }, "motion_tone": { "name": "Motion ringtone", "state": { - "off": "[%key:common::state::off%]", + "attraction": "Attraction", "citybird": "City bird", + "goodday": "Good day", + "hophop": "Hop hop", + "loop": "Loop", + "moonlight": "Moonlight", + "off": "[%key:common::state::off%]", + "operetta": "Operetta", "originaltune": "Original tune", "pianokey": "Piano key", - "loop": "Loop", - "attraction": "Attraction", - "hophop": "Hop hop", - "goodday": "Good day", - "operetta": "Operetta", - "moonlight": "Moonlight", "waybackhome": "Way back home" } }, + "package_tone": { + "name": "Package ringtone", + "state": { + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", + "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "off": "[%key:common::state::off%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", + "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", + "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", + "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" + } + }, + "packing_time": { + "name": "Recording packing time" + }, "people_tone": { "name": "Person ringtone", "state": { - "off": "[%key:common::state::off%]", + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "off": "[%key:common::state::off%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" } }, + "play_quick_reply_message": { + "name": "Play quick reply message" + }, + "post_rec_time": { + "name": "Post-recording time" + }, + "pre_record_fps": { + "name": "Pre-recording frame rate" + }, + "ptz_preset": { + "name": "PTZ preset" + }, + "scene_mode": { + "name": "Scene mode", + "state": { + "away": "[%key:common::state::not_home%]", + "disarm": "Disarmed", + "home": "[%key:common::state::home%]", + "off": "[%key:common::state::off%]" + } + }, + "sub_bit_rate": { + "name": "Fluent bit rate" + }, + "sub_encoding": { + "name": "Fluent encoding" + }, + "sub_frame_rate": { + "name": "Fluent frame rate" + }, "vehicle_tone": { "name": "Vehicle ringtone", "state": { - "off": "[%key:common::state::off%]", + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "off": "[%key:common::state::off%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" } }, "visitor_tone": { "name": "Visitor ringtone", "state": { - "off": "[%key:common::state::off%]", + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "off": "[%key:common::state::off%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" } - }, - "package_tone": { - "name": "Package ringtone", - "state": { - "off": "[%key:common::state::off%]", - "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", - "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", - "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", - "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", - "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", - "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", - "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", - "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", - "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", - "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" - } - }, - "main_frame_rate": { - "name": "Clear frame rate" - }, - "sub_frame_rate": { - "name": "Fluent frame rate" - }, - "main_bit_rate": { - "name": "Clear bit rate" - }, - "sub_bit_rate": { - "name": "Fluent bit rate" - }, - "main_encoding": { - "name": "Clear encoding" - }, - "sub_encoding": { - "name": "Fluent encoding" - }, - "scene_mode": { - "name": "Scene mode", - "state": { - "off": "[%key:common::state::off%]", - "disarm": "Disarmed", - "home": "[%key:common::state::home%]", - "away": "[%key:common::state::not_home%]" - } - }, - "packing_time": { - "name": "Recording packing time" - }, - "pre_record_fps": { - "name": "Pre-recording frame rate" - }, - "post_rec_time": { - "name": "Post-recording time" } }, "sensor": { - "wifi_signal": { - "name": "Wi-Fi signal" - }, - "cpu_usage": { - "name": "CPU usage" - }, - "ptz_pan_position": { - "name": "PTZ pan position" - }, - "ptz_tilt_position": { - "name": "PTZ tilt position" - }, - "battery_temperature": { - "name": "Battery temperature" + "animal_type": { + "name": "Animal type", + "state": { + "cat": "Cat", + "dog": "Dog" + } }, "battery_state": { "name": "Battery state", "state": { - "discharging": "[%key:common::state::discharging%]", + "chargecomplete": "Charge complete", "charging": "[%key:common::state::charging%]", - "chargecomplete": "Charge complete" + "discharging": "[%key:common::state::discharging%]" } }, + "battery_temperature": { + "name": "Battery temperature" + }, + "cpu_usage": { + "name": "CPU usage" + }, "day_night_state": { "name": "Day night state", "state": { "day": "Color", - "night": "Black & white", - "led_day": "Color with floodlight" + "led_day": "Color with floodlight", + "night": "Black & white" } }, "hdd_storage": { "name": "HDD {hdd_index} storage" }, - "sd_storage": { - "name": "SD {hdd_index} storage" - }, "person_type": { "name": "Person type", "state": { @@ -964,21 +823,26 @@ "woman": "Woman" } }, + "ptz_pan_position": { + "name": "PTZ pan position" + }, + "ptz_tilt_position": { + "name": "PTZ tilt position" + }, + "sd_storage": { + "name": "SD {hdd_index} storage" + }, "vehicle_type": { "name": "Vehicle type", "state": { - "sedan": "Sedan", - "suv": "SUV", + "motorcycle": "Motorcycle", "pickup_truck": "Pickup truck", - "motorcycle": "Motorcycle" + "sedan": "Sedan", + "suv": "SUV" } }, - "animal_type": { - "name": "Animal type", - "state": { - "dog": "Dog", - "cat": "Cat" - } + "wifi_signal": { + "name": "Wi-Fi signal" } }, "siren": { @@ -987,29 +851,14 @@ } }, "switch": { - "ir_lights": { - "name": "Infrared lights in night mode" - }, - "record_audio": { - "name": "Record audio" - }, - "siren_on_event": { - "name": "Siren on event" + "auto_focus": { + "name": "Auto focus" }, "auto_tracking": { "name": "Auto tracking" }, - "auto_focus": { - "name": "Auto focus" - }, - "hardwired_chime_enabled": { - "name": "Hardwired chime enabled" - }, - "guard_return": { - "name": "Guard return" - }, - "ptz_patrol": { - "name": "PTZ patrol" + "doorbell_button_sound": { + "name": "Doorbell button sound" }, "email": { "name": "Email on event" @@ -1017,29 +866,26 @@ "ftp_upload": { "name": "FTP upload" }, - "push_notifications": { - "name": "Push notifications" + "guard_return": { + "name": "Guard return" }, - "record": { - "name": "Record" + "hardwired_chime_enabled": { + "name": "Hardwired chime enabled" }, - "manual_record": { - "name": "Manual record" - }, - "rule": { - "name": "Surveillance rule {name}" - }, - "pre_record": { - "name": "Pre-recording" + "hdr": { + "name": "[%key:component::reolink::entity::select::hdr::name%]" }, "hub_ringtone_on_event": { "name": "Hub ringtone on event" }, - "doorbell_button_sound": { - "name": "Doorbell button sound" + "ir_lights": { + "name": "Infrared lights in night mode" }, - "hdr": { - "name": "[%key:component::reolink::entity::select::hdr::name%]" + "led": { + "name": "LED" + }, + "manual_record": { + "name": "Manual record" }, "pir_enabled": { "name": "PIR enabled" @@ -1047,15 +893,169 @@ "pir_reduce_alarm": { "name": "PIR reduce false alarm" }, - "led": { - "name": "LED" + "pre_record": { + "name": "Pre-recording" + }, + "privacy_mask": { + "name": "Privacy mask" }, "privacy_mode": { "name": "Privacy mode" }, - "privacy_mask": { - "name": "Privacy mask" + "ptz_patrol": { + "name": "PTZ patrol" + }, + "push_notifications": { + "name": "Push notifications" + }, + "record": { + "name": "Record" + }, + "record_audio": { + "name": "Record audio" + }, + "rule": { + "name": "Surveillance rule {name}" + }, + "siren_on_event": { + "name": "Siren on event" } } + }, + "exceptions": { + "api_error": { + "message": "The device responded with an error: {err}" + }, + "config_entry_not_ready": { + "message": "Error while trying to set up {host}: {err}" + }, + "connection_error": { + "message": "Could not connect to the device: {err}" + }, + "firmware_install_error": { + "message": "Error trying to update Reolink firmware: {err}" + }, + "firmware_rate_limit": { + "message": "Reolink firmware update server reached hourly rate limit: updating can be tried again in 1 hour" + }, + "invalid_content_type": { + "message": "Received a different content type than expected: {err}" + }, + "invalid_credentials": { + "message": "Invalid credentials: {err}" + }, + "invalid_parameter": { + "message": "Invalid input parameter: {err}" + }, + "login_error": { + "message": "Error during login attempt: {err}" + }, + "no_data": { + "message": "Device returned no data: {err}" + }, + "not_supported": { + "message": "Function not supported by this device: {err}" + }, + "service_entry_ex": { + "message": "Reolink {service_name} error: config entry not found or not loaded" + }, + "service_not_chime": { + "message": "Reolink play_chime error: {device_name} is not a Chime" + }, + "subscription_error": { + "message": "Error during ONVIF subscription: {err}" + }, + "timeout": { + "message": "Timeout waiting on a response: {err}" + }, + "unexpected": { + "message": "Unexpected Reolink error: {err}" + }, + "unexpected_data": { + "message": "Device returned unexpected data: {err}" + }, + "update_already_running": { + "message": "Reolink firmware update already running, wait on completion before starting another" + } + }, + "issues": { + "enable_port": { + "description": "Failed to automatically enable {ports}port(s) on {name}. Use the [Reolink client]({info_link}) to manually set it to ON", + "title": "Reolink port not enabled" + }, + "firmware_update": { + "description": "\"{name}\" with model \"{model}\" and hardware version \"{hw_version}\" is running an old firmware version \"{current_firmware}\", while at least firmware version \"{required_firmware}\" is required for proper operation of the Reolink integration. The firmware can be updated by pressing \"install\" in the more info dialog of the update entity of \"{name}\" from within Home Assistant. Alternatively, the latest firmware can be downloaded from the [Reolink download center]({download_link}).", + "title": "Reolink firmware update required" + }, + "https_webhook": { + "description": "Reolink products can not push motion events to an HTTPS address (SSL), please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}). The current (local) address is: `{base_url}`, a valid address could, for example, be `http://192.168.1.10:8123` where `192.168.1.10` is the IP of the Home Assistant device", + "title": "Reolink webhook URL uses HTTPS (SSL)" + }, + "password_too_long": { + "description": "The password for \"{name}\" is more than 31 characters long, this is no longer compatible with the Reolink API. Please change the password using the Reolink app/client to a password with is shorter than 32 characters. After changing the password, fill in the new password in the Reolink Re-authentication flow to continue using this integration. The latest version of the Reolink app/client also has a password limit of 31 characters.", + "title": "Reolink password too long" + }, + "ssl": { + "description": "Global SSL certificate configured in the [configuration.yaml under http]({ssl_link}) while a local HTTP address `{base_url}` is configured under \"Home Assistant URL\" in the [network settings]({network_link}). Therefore, the Reolink device can not reach Home Assistant to push its motion/AI events. Please make sure the local HTTP address is not covered by the SSL certificate, by for instance using [NGINX add-on]({nginx_link}) instead of a globally enforced SSL certificate.", + "title": "Reolink incompatible with global SSL certificate" + }, + "webhook_url": { + "description": "Did not receive initial ONVIF state from {name}. Most likely, the Reolink camera can not reach the current (local) Home Assistant URL `{base_url}`, please configure a (local) HTTP address under \"Home Assistant URL\" in the [network settings]({network_link}) that points to Home Assistant. For example `http://192.168.1.10:8123` where `192.168.1.10` is the IP of the Home Assistant device. Also, make sure the Reolink camera can reach that URL. Using fast motion/AI state polling until the first ONVIF push is received.", + "title": "Reolink webhook URL unreachable" + } + }, + "options": { + "step": { + "init": { + "data": { + "protocol": "Protocol" + }, + "data_description": { + "protocol": "Streaming protocol to use for the camera entities. RTSP supports 4K streams (H.265 encoding) while RTMP and FLV do not. FLV is the least demanding on the camera." + } + } + } + }, + "selector": { + "ringtone": { + "options": { + "attraction": "[%key:component::reolink::entity::select::motion_tone::state::attraction%]", + "citybird": "[%key:component::reolink::entity::select::motion_tone::state::citybird%]", + "goodday": "[%key:component::reolink::entity::select::motion_tone::state::goodday%]", + "hophop": "[%key:component::reolink::entity::select::motion_tone::state::hophop%]", + "loop": "[%key:component::reolink::entity::select::motion_tone::state::loop%]", + "moonlight": "[%key:component::reolink::entity::select::motion_tone::state::moonlight%]", + "operetta": "[%key:component::reolink::entity::select::motion_tone::state::operetta%]", + "originaltune": "[%key:component::reolink::entity::select::motion_tone::state::originaltune%]", + "pianokey": "[%key:component::reolink::entity::select::motion_tone::state::pianokey%]", + "waybackhome": "[%key:component::reolink::entity::select::motion_tone::state::waybackhome%]" + } + } + }, + "services": { + "play_chime": { + "description": "Plays a ringtone on a Reolink Chime.", + "fields": { + "device_id": { + "description": "The Reolink Chime to play the ringtone on.", + "name": "Target chime" + }, + "ringtone": { + "description": "Ringtone to play.", + "name": "Ringtone" + } + }, + "name": "Play chime" + }, + "ptz_move": { + "description": "Moves the camera with a specific speed.", + "fields": { + "speed": { + "description": "PTZ move speed.", + "name": "Speed" + } + }, + "name": "PTZ move" + } } } diff --git a/homeassistant/components/rest/strings.json b/homeassistant/components/rest/strings.json index d2b15461c9e..28d66cbd336 100644 --- a/homeassistant/components/rest/strings.json +++ b/homeassistant/components/rest/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads REST entities from the YAML-configuration." + "description": "Reloads REST entities from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/rest_command/strings.json b/homeassistant/components/rest_command/strings.json index fd0b26f6499..b074ebeb66b 100644 --- a/homeassistant/components/rest_command/strings.json +++ b/homeassistant/components/rest_command/strings.json @@ -1,19 +1,19 @@ { - "services": { - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads RESTful commands from the YAML-configuration." - } - }, "exceptions": { - "timeout": { - "message": "Timeout when calling resource \"{request_url}\"" - }, "client_error": { "message": "Client error occurred when calling resource \"{request_url}\"" }, "decoding_error": { "message": "The response of \"{request_url}\" could not be decoded as {decoding_type}" + }, + "timeout": { + "message": "Timeout when calling resource \"{request_url}\"" + } + }, + "services": { + "reload": { + "description": "Reloads RESTful commands from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/rflink/strings.json b/homeassistant/components/rflink/strings.json index 2c8eb584ca8..008d4607f82 100644 --- a/homeassistant/components/rflink/strings.json +++ b/homeassistant/components/rflink/strings.json @@ -1,18 +1,18 @@ { "services": { "send_command": { - "name": "Send command", "description": "Sends device command through RFLink.", "fields": { "command": { - "name": "Command", - "description": "The command to be sent." + "description": "The command to be sent.", + "name": "Command" }, "device_id": { - "name": "Device ID", - "description": "RFLink device ID." + "description": "RFLink device ID.", + "name": "Device ID" } - } + }, + "name": "Send command" } } } diff --git a/homeassistant/components/rfxtrx/strings.json b/homeassistant/components/rfxtrx/strings.json index d3b65dc238a..ebd077e493b 100644 --- a/homeassistant/components/rfxtrx/strings.json +++ b/homeassistant/components/rfxtrx/strings.json @@ -8,12 +8,6 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, "step": { - "user": { - "data": { - "type": "Connection type" - }, - "title": "Select connection type" - }, "setup_network": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -35,50 +29,23 @@ "device": "[%key:common::config_flow::data::usb_path%]" }, "title": "[%key:common::config_flow::data::path%]" - } - } - }, - "options": { - "step": { - "prompt_options": { - "data": { - "debug": "Enable debugging", - "automatic_add": "Enable automatic add", - "protocols": "Protocols", - "event_code": "Enter event code to add", - "device": "Select device to configure" - }, - "title": "RFXtrx options" }, - "set_device_options": { + "user": { "data": { - "off_delay": "Off delay", - "off_delay_enabled": "Enable off delay", - "data_bits": "Number of data bits", - "command_on": "Data bits value for command on", - "command_off": "Data bits value for command off", - "venetian_blind_mode": "Venetian blind mode", - "replace_device": "Select device to replace" + "type": "Connection type" }, - "title": "Configure device options" + "title": "Select connection type" } - }, - "error": { - "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_event_code": "Invalid event code", - "invalid_input_2262_on": "Invalid input for command on", - "invalid_input_2262_off": "Invalid input for command off", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "device_automation": { "action_type": { - "send_status": "Send status update: {subtype}", - "send_command": "Send command: {subtype}" + "send_command": "Send command: {subtype}", + "send_status": "Send status update: {subtype}" }, "trigger_type": { - "status": "Received status: {subtype}", - "command": "Received command: {subtype}" + "command": "Received command: {subtype}", + "status": "Received status: {subtype}" } }, "entity": { @@ -87,39 +54,36 @@ "state_attributes": { "event_type": { "state": { - "sound_0": "Sound 0", - "sound_1": "Sound 1", - "sound_2": "Sound 2", - "sound_3": "Sound 3", - "sound_4": "Sound 4", - "sound_5": "Sound 5", - "sound_6": "Sound 6", - "sound_7": "Sound 7", - "sound_8": "Sound 8", - "sound_9": "Sound 9", - "sound_10": "Sound 10", - "sound_11": "Sound 11", - "sound_12": "Sound 12", - "sound_13": "Sound 13", - "sound_14": "Sound 14", - "sound_15": "Sound 15", - "down": "Down", - "up": "Up", - "all_off": "All off", - "all_on": "All on", - "scene": "Scene", - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "dim": "Dim", - "bright": "Bright", + "0_5_seconds_down": "0.5 seconds down", + "0_5_seconds_up": "0.5 seconds up", + "2_seconds_down": "2 seconds down", + "2_seconds_up": "2 seconds up", + "alarm": "Alarm", + "alarm_delayed": "Alarm delayed", + "alarm_delayed_tamper": "Alarm delayed tamper", + "alarm_tamper": "Alarm tamper", "all_group_off": "All/group off", "all_group_on": "All/group on", + "all_off": "All off", + "all_on": "All on", + "arm_away": "Arm away", + "arm_away_delayed": "Arm away delayed", + "arm_home": "Arm home", + "arm_home_delayed": "Arm home delayed", + "battery_low": "Battery low", + "bright": "Bright", "chime": "Chime", - "illegal_command": "Illegal command", - "set_level": "Set level", + "dark_detected": "Dark detected", + "dim": "Dim", + "disable_sun_automation": "Disable sun automation", + "disarm": "Disarm", + "down": "Down", + "enable_sun_automation": "Enable sun automation", + "end_panic": "End panic", "group_off": "Group off", "group_on": "Group on", - "set_group_level": "Set group level", + "illegal_command": "Illegal command", + "ir": "IR", "level_1": "Level 1", "level_2": "Level 2", "level_3": "Level 3", @@ -129,48 +93,60 @@ "level_7": "Level 7", "level_8": "Level 8", "level_9": "Level 9", - "program": "Program", - "stop": "Stop", - "0_5_seconds_up": "0.5 seconds up", - "0_5_seconds_down": "0.5 seconds down", - "2_seconds_up": "2 seconds up", - "2_seconds_down": "2 seconds down", - "enable_sun_automation": "Enable sun automation", - "disable_sun_automation": "Disable sun automation", - "normal": "[%key:common::state::normal%]", - "normal_delayed": "Normal delayed", - "alarm": "Alarm", - "alarm_delayed": "Alarm delayed", - "motion": "Motion", - "no_motion": "No motion", - "panic": "Panic", - "end_panic": "End panic", - "ir": "IR", - "arm_away": "Arm away", - "arm_away_delayed": "Arm away delayed", - "arm_home": "Arm home", - "arm_home_delayed": "Arm home delayed", - "disarm": "Disarm", "light_1_off": "Light 1 off", "light_1_on": "Light 1 on", "light_2_off": "Light 2 off", "light_2_on": "Light 2 on", - "dark_detected": "Dark detected", "light_detected": "Light detected", - "battery_low": "Battery low", - "pairing_kd101": "Pairing KD101", - "normal_tamper": "Normal tamper", - "normal_delayed_tamper": "Normal delayed tamper", - "alarm_tamper": "Alarm tamper", - "alarm_delayed_tamper": "Alarm delayed tamper", + "motion": "Motion", "motion_tamper": "Motion tamper", - "no_motion_tamper": "No motion tamper" + "no_motion": "No motion", + "no_motion_tamper": "No motion tamper", + "normal": "[%key:common::state::normal%]", + "normal_delayed": "Normal delayed", + "normal_delayed_tamper": "Normal delayed tamper", + "normal_tamper": "Normal tamper", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "pairing_kd101": "Pairing KD101", + "panic": "Panic", + "program": "Program", + "scene": "Scene", + "set_group_level": "Set group level", + "set_level": "Set level", + "sound_0": "Sound 0", + "sound_1": "Sound 1", + "sound_10": "Sound 10", + "sound_11": "Sound 11", + "sound_12": "Sound 12", + "sound_13": "Sound 13", + "sound_14": "Sound 14", + "sound_15": "Sound 15", + "sound_2": "Sound 2", + "sound_3": "Sound 3", + "sound_4": "Sound 4", + "sound_5": "Sound 5", + "sound_6": "Sound 6", + "sound_7": "Sound 7", + "sound_8": "Sound 8", + "sound_9": "Sound 9", + "stop": "Stop", + "up": "Up" } } } } }, "sensor": { + "chill": { + "name": "Chill" + }, + "count": { + "name": "Count" + }, + "counter_value": { + "name": "Counter value" + }, "current_ch_1": { "name": "Current Ch. 1" }, @@ -180,63 +156,87 @@ "current_ch_3": { "name": "Current Ch. 3" }, + "forecast": { + "name": "Forecast" + }, + "forecast_status": { + "name": "Forecast status" + }, + "humidity_status": { + "name": "Humidity status" + }, "instantaneous_power": { "name": "Instantaneous power" }, + "sensor_status": { + "name": "Sensor status" + }, + "sound": { + "name": "Sound" + }, "temperature_2": { "name": "Temperature 2" }, "total_energy_usage": { "name": "Total energy usage" }, - "wind_direction": { - "name": "Wind direction" - }, - "sound": { - "name": "Sound" - }, - "sensor_status": { - "name": "Sensor status" - }, - "count": { - "name": "Count" - }, - "counter_value": { - "name": "Counter value" - }, - "chill": { - "name": "Chill" + "uv_index": { + "name": "UV index" }, "wind_average_speed": { "name": "Wind average speed" }, + "wind_direction": { + "name": "Wind direction" + }, "wind_gust": { "name": "Wind gust" + } + } + }, + "options": { + "error": { + "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", + "invalid_event_code": "Invalid event code", + "invalid_input_2262_off": "Invalid input for command off", + "invalid_input_2262_on": "Invalid input for command on", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "prompt_options": { + "data": { + "automatic_add": "Enable automatic add", + "debug": "Enable debugging", + "device": "Select device to configure", + "event_code": "Enter event code to add", + "protocols": "Protocols" + }, + "title": "RFXtrx options" }, - "forecast_status": { - "name": "Forecast status" - }, - "forecast": { - "name": "Forecast" - }, - "humidity_status": { - "name": "Humidity status" - }, - "uv_index": { - "name": "UV index" + "set_device_options": { + "data": { + "command_off": "Data bits value for command off", + "command_on": "Data bits value for command on", + "data_bits": "Number of data bits", + "off_delay": "Off delay", + "off_delay_enabled": "Enable off delay", + "replace_device": "Select device to replace", + "venetian_blind_mode": "Venetian blind mode" + }, + "title": "Configure device options" } } }, "services": { "send": { - "name": "Send", "description": "Sends a raw event on radio.", "fields": { "event": { - "name": "Event", - "description": "A hexadecimal string to send." + "description": "A hexadecimal string to send.", + "name": "Event" } - } + }, + "name": "Send" } } } diff --git a/homeassistant/components/ridwell/strings.json b/homeassistant/components/ridwell/strings.json index c3cf6365860..b37bf0c3d56 100644 --- a/homeassistant/components/ridwell/strings.json +++ b/homeassistant/components/ridwell/strings.json @@ -1,28 +1,28 @@ { "config": { - "step": { - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please re-enter the password for {username}:", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "description": "Input your username and password:", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please re-enter the password for {username}:", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Input your username and password:" + } } }, "entity": { diff --git a/homeassistant/components/ring/icons.json b/homeassistant/components/ring/icons.json index de999a5ef37..764033d0f84 100644 --- a/homeassistant/components/ring/icons.json +++ b/homeassistant/components/ring/icons.json @@ -1,9 +1,6 @@ { "entity": { "number": { - "volume": { - "default": "mdi:bell-ring" - }, "doorbell_volume": { "default": "mdi:bell-ring" }, @@ -12,9 +9,15 @@ }, "voice_volume": { "default": "mdi:account-voice" + }, + "volume": { + "default": "mdi:bell-ring" } }, "sensor": { + "doorbell_volume": { + "default": "mdi:bell-ring" + }, "last_activity": { "default": "mdi:history" }, @@ -24,20 +27,17 @@ "last_motion": { "default": "mdi:history" }, - "volume": { - "default": "mdi:bell-ring" - }, - "doorbell_volume": { - "default": "mdi:bell-ring" - }, "mic_volume": { "default": "mdi:microphone" }, + "open_door": { + "default": "mdi:door-closed-lock" + }, "voice_volume": { "default": "mdi:account-voice" }, - "open_door": { - "default": "mdi:door-closed-lock" + "volume": { + "default": "mdi:bell-ring" }, "wifi_signal_category": { "default": "mdi:wifi" @@ -47,9 +47,6 @@ } }, "switch": { - "siren": { - "default": "mdi:alarm-bell" - }, "in_home_chime": { "default": "mdi:bell-ring-outline", "state": { @@ -61,6 +58,9 @@ "state": { "on": "mdi:motion-sensor" } + }, + "siren": { + "default": "mdi:alarm-bell" } } } diff --git a/homeassistant/components/ring/strings.json b/homeassistant/components/ring/strings.json index d1a3deafa71..09f36d6dd74 100644 --- a/homeassistant/components/ring/strings.json +++ b/homeassistant/components/ring/strings.json @@ -1,55 +1,55 @@ { "config": { - "step": { - "user": { - "title": "Sign in with Ring account", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Your Ring account username.", - "password": "Your Ring account password." - } - }, - "2fa": { - "title": "Two-factor authentication", - "data": { - "2fa": "Two-factor code" - }, - "data_description": { - "2fa": "Account verification code via the method selected in your Ring account settings." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Ring integration needs to re-authenticate your account {username}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::ring::config::step::user::data_description::password%]" - } - }, - "reconfigure": { - "title": "Reconfigure Ring integration", - "description": "Will create a new Authorized Device for {username} at ring.com", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::ring::config::step::user::data_description::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "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%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "2fa": { + "data": { + "2fa": "Two-factor code" + }, + "data_description": { + "2fa": "Account verification code via the method selected in your Ring account settings." + }, + "title": "Two-factor authentication" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::ring::config::step::user::data_description::password%]" + }, + "description": "The Ring integration needs to re-authenticate your account {username}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "reconfigure": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::ring::config::step::user::data_description::password%]" + }, + "description": "Will create a new Authorized Device for {username} at ring.com", + "title": "Reconfigure Ring integration" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Your Ring account password.", + "username": "Your Ring account username." + }, + "title": "Sign in with Ring account" + } } }, "entity": { @@ -58,6 +58,19 @@ "name": "Ding" } }, + "button": { + "open_door": { + "name": "Open door" + } + }, + "camera": { + "last_recording": { + "name": "Last recording" + }, + "live_view": { + "name": "Live view" + } + }, "event": { "ding": { "name": "Ding" @@ -66,20 +79,12 @@ "name": "Intercom unlock" } }, - "button": { - "open_door": { - "name": "Open door" - } - }, "light": { "light": { "name": "[%key:component::light::title%]" } }, "number": { - "volume": { - "name": "Volume" - }, "doorbell_volume": { "name": "Doorbell volume" }, @@ -88,14 +93,15 @@ }, "voice_volume": { "name": "Voice volume" - } - }, - "siren": { - "siren": { - "name": "[%key:component::siren::title%]" + }, + "volume": { + "name": "Volume" } }, "sensor": { + "doorbell_volume": { + "name": "Doorbell volume" + }, "last_activity": { "name": "Last activity" }, @@ -105,39 +111,33 @@ "last_motion": { "name": "Last motion" }, - "volume": { - "name": "Volume" - }, - "doorbell_volume": { - "name": "Doorbell volume" - }, "mic_volume": { "name": "Mic volume" }, "voice_volume": { "name": "Voice volume" }, + "volume": { + "name": "Volume" + }, "wifi_signal_category": { "name": "Wi-Fi signal category" } }, - "switch": { + "siren": { "siren": { "name": "[%key:component::siren::title%]" - }, + } + }, + "switch": { "in_home_chime": { "name": "In-home chime" }, "motion_detection": { "name": "Motion detection" - } - }, - "camera": { - "live_view": { - "name": "Live view" }, - "last_recording": { - "name": "Last recording" + "siren": { + "name": "[%key:component::siren::title%]" } } }, @@ -145,20 +145,20 @@ "api_authentication": { "message": "Authentication error communicating with Ring API" }, - "api_timeout": { - "message": "Timeout communicating with Ring API" - }, "api_error": { "message": "Error communicating with Ring API" }, + "api_timeout": { + "message": "Timeout communicating with Ring API" + }, "sdp_m_line_index_required": { "message": "Error negotiating stream for {device}" } }, "issues": { "deprecated_entity": { - "title": "Detected deprecated {platform} entity usage", - "description": "We detected that entity `{entity}` is being used in `{info}`\n\nWe have created a new `{new_platform}` entity and you should migrate `{info}` to use this new entity.\n\nWhen you are done migrating `{info}` and are ready to have the deprecated `{entity}` entity removed, disable the entity and restart Home Assistant." + "description": "We detected that entity `{entity}` is being used in `{info}`\n\nWe have created a new `{new_platform}` entity and you should migrate `{info}` to use this new entity.\n\nWhen you are done migrating `{info}` and are ready to have the deprecated `{entity}` entity removed, disable the entity and restart Home Assistant.", + "title": "Detected deprecated {platform} entity usage" } } } diff --git a/homeassistant/components/risco/strings.json b/homeassistant/components/risco/strings.json index 22ed3ff4e52..60367b9d0e6 100644 --- a/homeassistant/components/risco/strings.json +++ b/homeassistant/components/risco/strings.json @@ -1,86 +1,57 @@ { "config": { - "step": { - "user": { - "menu_options": { - "cloud": "Risco Cloud (recommended)", - "local": "Local Risco Panel (advanced)" - } - }, - "cloud": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "pin": "[%key:common::config_flow::data::pin%]" - } - }, - "local": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "pin": "[%key:common::config_flow::data::pin%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { "step": { - "init": { - "title": "Configure options", + "cloud": { "data": { - "scan_interval": "How often to poll Risco Cloud (in seconds)", - "concurrency": "Maximum concurrent requests in Risco local", - "code_arm_required": "Require PIN to arm", - "code_disarm_required": "Require PIN to disarm" + "password": "[%key:common::config_flow::data::password%]", + "pin": "[%key:common::config_flow::data::pin%]", + "username": "[%key:common::config_flow::data::username%]" } }, - "risco_to_ha": { - "title": "Map Risco states to Home Assistant states", - "description": "Select what state your Home Assistant alarm control panel will report for every state reported by Risco", + "local": { "data": { - "arm": "Armed (AWAY)", - "partial_arm": "Partially Armed (STAY)", - "A": "Group A", - "B": "Group B", - "C": "Group C", - "D": "Group D" + "host": "[%key:common::config_flow::data::host%]", + "pin": "[%key:common::config_flow::data::pin%]", + "port": "[%key:common::config_flow::data::port%]" } }, - "ha_to_risco": { - "title": "Map Home Assistant states to Risco states", - "description": "Select what state to set your Risco alarm to when arming the Home Assistant alarm control panel", - "data": { - "armed_away": "[%key:component::alarm_control_panel::entity_component::_::state::armed_away%]", - "armed_home": "[%key:component::alarm_control_panel::entity_component::_::state::armed_home%]", - "armed_night": "[%key:component::alarm_control_panel::entity_component::_::state::armed_night%]", - "armed_custom_bypass": "[%key:component::alarm_control_panel::entity_component::_::state::armed_custom_bypass%]" + "user": { + "menu_options": { + "cloud": "Risco Cloud (recommended)", + "local": "Local Risco Panel (advanced)" } } } }, "entity": { "binary_sensor": { + "ac_trouble": { + "name": "A/C trouble" + }, "alarmed": { "name": "Alarmed" }, "armed": { "name": "Armed" }, + "box_tamper": { + "name": "Box tamper" + }, + "clock_trouble": { + "name": "Clock trouble" + }, "low_battery_trouble": { "name": "Low battery trouble" }, - "ac_trouble": { - "name": "A/C trouble" - }, "monitoring_station_1_trouble": { "name": "Monitoring station 1 trouble" }, @@ -92,12 +63,6 @@ }, "phone_line_trouble": { "name": "Phone line trouble" - }, - "clock_trouble": { - "name": "Clock trouble" - }, - "box_tamper": { - "name": "Box tamper" } }, "switch": { @@ -105,5 +70,40 @@ "name": "Bypassed" } } + }, + "options": { + "step": { + "ha_to_risco": { + "data": { + "armed_away": "[%key:component::alarm_control_panel::entity_component::_::state::armed_away%]", + "armed_custom_bypass": "[%key:component::alarm_control_panel::entity_component::_::state::armed_custom_bypass%]", + "armed_home": "[%key:component::alarm_control_panel::entity_component::_::state::armed_home%]", + "armed_night": "[%key:component::alarm_control_panel::entity_component::_::state::armed_night%]" + }, + "description": "Select what state to set your Risco alarm to when arming the Home Assistant alarm control panel", + "title": "Map Home Assistant states to Risco states" + }, + "init": { + "data": { + "code_arm_required": "Require PIN to arm", + "code_disarm_required": "Require PIN to disarm", + "concurrency": "Maximum concurrent requests in Risco local", + "scan_interval": "How often to poll Risco Cloud (in seconds)" + }, + "title": "Configure options" + }, + "risco_to_ha": { + "data": { + "A": "Group A", + "B": "Group B", + "C": "Group C", + "D": "Group D", + "arm": "Armed (AWAY)", + "partial_arm": "Partially Armed (STAY)" + }, + "description": "Select what state your Home Assistant alarm control panel will report for every state reported by Risco", + "title": "Map Risco states to Home Assistant states" + } + } } } diff --git a/homeassistant/components/rituals_perfume_genie/strings.json b/homeassistant/components/rituals_perfume_genie/strings.json index 48e9be670ec..d897b87908e 100644 --- a/homeassistant/components/rituals_perfume_genie/strings.json +++ b/homeassistant/components/rituals_perfume_genie/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Connect to your Rituals account", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "title": "Connect to your Rituals account" + } } }, "entity": { diff --git a/homeassistant/components/roborock/icons.json b/homeassistant/components/roborock/icons.json index ae22a8b05d1..b077362cac4 100644 --- a/homeassistant/components/roborock/icons.json +++ b/homeassistant/components/roborock/icons.json @@ -1,33 +1,33 @@ { "entity": { "binary_sensor": { - "mop_drying_status": { - "default": "mdi:heat-wave" + "in_cleaning": { + "default": "mdi:vacuum" }, "mop_attached": { "default": "mdi:square-rounded" }, + "mop_drying_status": { + "default": "mdi:heat-wave" + }, "water_box_attached": { "default": "mdi:water" }, "water_shortage": { "default": "mdi:water" - }, - "in_cleaning": { - "default": "mdi:vacuum" } }, "button": { - "reset_sensor_consumable": { - "default": "mdi:eye-outline" - }, "reset_air_filter_consumable": { "default": "mdi:air-filter" }, - "reset_side_brush_consumable": { + "reset_main_brush_consumable": { "default": "mdi:brush" }, - "reset_main_brush_consumable": { + "reset_sensor_consumable": { + "default": "mdi:eye-outline" + }, + "reset_side_brush_consumable": { "default": "mdi:brush" } }, @@ -37,32 +37,44 @@ } }, "sensor": { - "main_brush_time_left": { - "default": "mdi:brush" + "clean_percent": { + "default": "mdi:progress-check" }, - "side_brush_time_left": { - "default": "mdi:brush" - }, - "filter_time_left": { - "default": "mdi:air-filter" - }, - "sensor_time_left": { - "default": "mdi:eye-outline" - }, - "total_cleaning_time": { - "default": "mdi:history" + "cleaning_area": { + "default": "mdi:texture-box" }, "cleaning_brush_time_left": { "default": "mdi:brush" }, - "strainer_time_left": { - "default": "mdi:filter-variant" + "countdown": { + "default": "mdi:clock-outline" + }, + "dock_error": { + "default": "mdi:garage-open" + }, + "filter_time_left": { + "default": "mdi:air-filter" + }, + "last_clean_end": { + "default": "mdi:clock-time-twelve" + }, + "last_clean_start": { + "default": "mdi:clock-time-twelve" + }, + "main_brush_time_left": { + "default": "mdi:brush" + }, + "sensor_time_left": { + "default": "mdi:eye-outline" + }, + "side_brush_time_left": { + "default": "mdi:brush" }, "status": { "default": "mdi:information-outline" }, - "cleaning_area": { - "default": "mdi:texture-box" + "strainer_time_left": { + "default": "mdi:filter-variant" }, "total_cleaning_area": { "default": "mdi:texture-box" @@ -70,60 +82,48 @@ "total_cleaning_count": { "default": "mdi:counter" }, + "total_cleaning_time": { + "default": "mdi:history" + }, "vacuum_error": { "default": "mdi:alert-circle" }, - "last_clean_start": { - "default": "mdi:clock-time-twelve" - }, - "last_clean_end": { - "default": "mdi:clock-time-twelve" - }, - "clean_percent": { - "default": "mdi:progress-check" - }, - "dock_error": { - "default": "mdi:garage-open" + "washing_left": { + "default": "mdi:clock-outline" }, "zeo_error": { "default": "mdi:alert-circle" }, "zeo_state": { "default": "mdi:information-outline" - }, - "washing_left": { - "default": "mdi:clock-outline" - }, - "countdown": { - "default": "mdi:clock-outline" } }, "switch": { "child_lock": { "default": "mdi:account-lock" }, - "status_indicator": { - "default": "mdi:alarm-light-outline" - }, "dnd_switch": { "default": "mdi:bell-cancel" }, "off_peak_switch": { "default": "mdi:power-plug" + }, + "status_indicator": { + "default": "mdi:alarm-light-outline" } }, "time": { - "dnd_start_time": { - "default": "mdi:bell-cancel" - }, "dnd_end_time": { "default": "mdi:bell-ring" }, - "off_peak_start": { - "default": "mdi:power-plug" + "dnd_start_time": { + "default": "mdi:bell-cancel" }, "off_peak_end": { "default": "mdi:power-plug-off" + }, + "off_peak_start": { + "default": "mdi:power-plug" } } }, @@ -131,10 +131,10 @@ "get_maps": { "service": "mdi:floor-plan" }, - "set_vacuum_goto_position": { + "get_vacuum_current_position": { "service": "mdi:map-marker" }, - "get_vacuum_current_position": { + "set_vacuum_goto_position": { "service": "mdi:map-marker" } } diff --git a/homeassistant/components/roborock/strings.json b/homeassistant/components/roborock/strings.json index 8a00fc9445c..3c08b9e985d 100644 --- a/homeassistant/components/roborock/strings.json +++ b/homeassistant/components/roborock/strings.json @@ -1,95 +1,41 @@ { "config": { - "step": { - "user": { - "description": "Enter your Roborock email address.", - "data": { - "username": "[%key:common::config_flow::data::email%]" - }, - "data_description": { - "username": "The email address used to sign in to the Roborock app." - } - }, - "code": { - "description": "Type the verification code sent to your email", - "data": { - "code": "Verification code" - }, - "data_description": { - "code": "The verification code sent to your email." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Roborock integration needs to re-authenticate your account" - } + "abort": { + "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_account": "Wrong account: Please authenticate with the right account." }, "error": { "invalid_code": "The code you entered was incorrect, please check it and try again.", "invalid_email": "There is no account associated with the email you entered, please try again.", "invalid_email_format": "There is an issue with the formatting of your email - please try again.", "too_frequent_code_requests": "You have attempted to request too many codes. Try again later.", + "unknown": "[%key:common::config_flow::error::unknown%]", "unknown_roborock": "There was an unknown Roborock exception - please check your logs.", - "unknown_url": "There was an issue determining the correct URL for your Roborock account - please check your logs.", - "unknown": "[%key:common::config_flow::error::unknown%]" + "unknown_url": "There was an issue determining the correct URL for your Roborock account - please check your logs." }, - "abort": { - "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "Wrong account: Please authenticate with the right account." - } - }, - "issues": { - "cloud_api_used": { - "title": "Cloud API used", - "description": "The Roborock integration is unable to connect directly to {device_name} and falling back to the cloud API. This is not recommended as it can lead to rate limiting. Please make your vacuum accessible on the local network by your Home Assistant instance." - } - }, - - "options": { "step": { - "drawables": { - "description": "Specify which features to draw on the map.", + "code": { "data": { - "charger": "Charger", - "cleaned_area": "Cleaned area", - "goto_path": "Go-to path", - "ignored_obstacles": "Ignored obstacles", - "ignored_obstacles_with_photo": "Ignored obstacles with photo", - "mop_path": "Mop path", - "no_carpet_zones": "No carpet zones", - "no_go_zones": "No-go zones", - "no_mopping_zones": "No mopping zones", - "obstacles": "Obstacles", - "obstacles_with_photo": "Obstacles with photo", - "path": "Path", - "predicted_path": "Predicted path", - "room_names": "Room names", - "vacuum_position": "Vacuum position", - "virtual_walls": "Virtual walls", - "zones": "Zones", - "show_background": "Show background" + "code": "Verification code" }, "data_description": { - "charger": "Show the charger on the map.", - "cleaned_area": "Show the area cleaned on the map.", - "goto_path": "Show the go-to path on the map.", - "ignored_obstacles": "Show ignored obstacles on the map.", - "ignored_obstacles_with_photo": "Show ignored obstacles with photos on the map.", - "mop_path": "Show the mop path on the map.", - "no_carpet_zones": "Show the no carpet zones on the map.", - "no_go_zones": "Show the no-go zones on the map.", - "no_mopping_zones": "Show the no-mop zones on the map.", - "obstacles": "Show obstacles on the map.", - "obstacles_with_photo": "Show obstacles with photos on the map.", - "path": "Show the path on the map.", - "predicted_path": "Show the predicted path on the map.", - "room_names": "Show room names on the map.", - "vacuum_position": "Show the vacuum position on the map.", - "virtual_walls": "Show virtual walls on the map.", - "zones": "Show zones on the map.", - "show_background": "Add a background to the map." - } + "code": "The verification code sent to your email." + }, + "description": "Type the verification code sent to your email" + }, + "reauth_confirm": { + "description": "The Roborock integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "username": "[%key:common::config_flow::data::email%]" + }, + "data_description": { + "username": "The email address used to sign in to the Roborock app." + }, + "description": "Enter your Roborock email address." } } }, @@ -112,17 +58,17 @@ } }, "button": { - "reset_sensor_consumable": { - "name": "Reset sensor consumable" - }, "reset_air_filter_consumable": { "name": "Reset air filter consumable" }, - "reset_side_brush_consumable": { - "name": "Reset side brush consumable" - }, "reset_main_brush_consumable": { "name": "Reset main brush consumable" + }, + "reset_sensor_consumable": { + "name": "Reset sensor consumable" + }, + "reset_side_brush_consumable": { + "name": "Reset side brush consumable" } }, "number": { @@ -130,64 +76,110 @@ "name": "Volume" } }, + "select": { + "dust_collection_mode": { + "name": "Empty mode", + "state": { + "balanced": "[%key:component::roborock::entity::vacuum::roborock::state_attributes::fan_speed::state::balanced%]", + "light": "Light", + "max": "[%key:component::roborock::entity::select::mop_intensity::state::max%]", + "smart": "Smart" + } + }, + "mop_intensity": { + "name": "Mop intensity", + "state": { + "custom": "[%key:component::roborock::entity::select::mop_mode::state::custom%]", + "custom_water_flow": "Custom water flow", + "extreme": "Extreme", + "high": "[%key:common::state::high%]", + "intense": "Intense", + "low": "[%key:common::state::low%]", + "max": "Max", + "medium": "[%key:common::state::medium%]", + "mild": "Mild", + "moderate": "Moderate", + "off": "[%key:common::state::off%]", + "smart_mode": "[%key:component::roborock::entity::select::mop_mode::state::smart_mode%]", + "vac_followed_by_mop": "Vacuum followed by mop" + } + }, + "mop_mode": { + "name": "Mop mode", + "state": { + "custom": "Custom", + "deep": "Deep", + "deep_plus": "Deep+", + "fast": "Fast", + "smart_mode": "SmartPlan", + "standard": "Standard" + } + }, + "selected_map": { + "name": "Selected map" + } + }, "sensor": { "a01_error": { "name": "Error", "state": { - "none": "[%key:component::roborock::entity::sensor::vacuum_error::state::none%]", - "dirty_tank_full": "Dirty tank full", - "water_level_sensor_stuck": "Water level sensor stuck.", - "clean_tank_empty": "Clean tank empty", - "clean_head_entangled": "Cleaning head entangled", - "clean_head_too_hot": "Cleaning head too hot.", - "fan_protection_e5": "Fan protection", - "cleaning_head_blocked": "Cleaning head blocked", - "temperature_protection": "Temperature protection", - "fan_protection_e4": "[%key:component::roborock::entity::sensor::a01_error::state::fan_protection_e5%]", - "fan_protection_e9": "[%key:component::roborock::entity::sensor::a01_error::state::fan_protection_e5%]", - "battery_temperature_protection_e0": "[%key:component::roborock::entity::sensor::a01_error::state::temperature_protection%]", "battery_temperature_protection": "Battery temperature protection", "battery_temperature_protection_2": "[%key:component::roborock::entity::sensor::a01_error::state::battery_temperature_protection%]", - "power_adapter_error": "Power adapter error", + "battery_temperature_protection_e0": "[%key:component::roborock::entity::sensor::a01_error::state::temperature_protection%]", + "battery_under_10": "Battery under 10%", + "clean_head_entangled": "Cleaning head entangled", + "clean_head_too_hot": "Cleaning head too hot.", + "clean_tank_empty": "Clean tank empty", + "cleaning_head_blocked": "Cleaning head blocked", "dirty_charging_contacts": "Clean charging contacts", + "dirty_tank_full": "Dirty tank full", + "fan_protection_e4": "[%key:component::roborock::entity::sensor::a01_error::state::fan_protection_e5%]", + "fan_protection_e5": "Fan protection", + "fan_protection_e9": "[%key:component::roborock::entity::sensor::a01_error::state::fan_protection_e5%]", "low_battery": "[%key:component::roborock::entity::sensor::vacuum_error::state::low_battery%]", - "battery_under_10": "Battery under 10%" + "none": "[%key:component::roborock::entity::sensor::vacuum_error::state::none%]", + "power_adapter_error": "Power adapter error", + "temperature_protection": "Temperature protection", + "water_level_sensor_stuck": "Water level sensor stuck." } }, "a01_status": { "name": "Status", "state": { - "unknown": "[%key:component::roborock::entity::sensor::status::state::unknown%]", - "fetching": "Fetching", - "fetch_failed": "Fetch failed", - "updating": "[%key:component::roborock::entity::sensor::status::state::updating%]", - "washing": "Washing", - "ready": "Ready", "charging": "[%key:common::state::charging%]", + "drying": "Drying", + "dusting_mode": "Dusting mode", + "fetch_failed": "Fetch failed", + "fetching": "Fetching", "mop_washing": "Washing mop", + "mop_washing_paused": "Mop washing paused", + "ready": "Ready", + "reserving": "Reserving", "self_clean_cleaning": "Self-clean cleaning", "self_clean_deep_cleaning": "Self-clean deep cleaning", - "self_clean_rinsing": "Self-clean rinsing", "self_clean_dehydrating": "Self-clean drying", - "drying": "Drying", + "self_clean_rinsing": "Self-clean rinsing", + "unknown": "[%key:component::roborock::entity::sensor::status::state::unknown%]", + "updating": "[%key:component::roborock::entity::sensor::status::state::updating%]", "ventilating": "Ventilating", - "reserving": "Reserving", - "mop_washing_paused": "Mop washing paused", - "dusting_mode": "Dusting mode" + "washing": "Washing" } }, "brush_remaining": { "name": "Roller left" }, + "clean_percent": { + "name": "Cleaning progress" + }, "cleaning_area": { "name": "Cleaning area" }, + "cleaning_brush_time_left": { + "name": "Maintenance brush time left" + }, "cleaning_time": { "name": "Cleaning time" }, - "clean_percent": { - "name": "Cleaning progress" - }, "countdown": { "name": "Countdown" }, @@ -197,77 +189,71 @@ "dock_error": { "name": "Dock error", "state": { - "ok": "Ok", - "duct_blockage": "Duct blockage", - "water_empty": "Water empty", - "waste_water_tank_full": "Waste water tank full", + "cleaning_tank_full_or_blocked": "Cleaning tank full or blocked", "dirty_tank_latch_open": "Dirty tank latch open", + "duct_blockage": "Duct blockage", "no_dustbin": "No dustbin", - "cleaning_tank_full_or_blocked": "Cleaning tank full or blocked" + "ok": "Ok", + "waste_water_tank_full": "Waste water tank full", + "water_empty": "Water empty" } }, + "filter_time_left": { + "name": "Filter time left" + }, + "last_clean_end": { + "name": "Last clean end" + }, + "last_clean_start": { + "name": "Last clean begin" + }, "main_brush_time_left": { "name": "Main brush time left" }, "mop_drying_remaining_time": { "name": "Mop drying remaining time" }, - "last_clean_start": { - "name": "Last clean begin" - }, - "last_clean_end": { - "name": "Last clean end" + "sensor_time_left": { + "name": "Sensor time left" }, "side_brush_time_left": { "name": "Side brush time left" }, - "filter_time_left": { - "name": "Filter time left" - }, - "sensor_time_left": { - "name": "Sensor time left" - }, - "cleaning_brush_time_left": { - "name": "Maintenance brush time left" - }, - "strainer_time_left": { - "name": "Strainer time left" - }, "status": { "name": "Status", "state": { - "starting": "Starting", - "charger_disconnected": "Charger disconnected", - "idle": "[%key:common::state::idle%]", - "remote_control_active": "Remote control active", - "cleaning": "Cleaning", - "returning_home": "Returning home", - "manual_mode": "Manual mode", - "charging": "[%key:common::state::charging%]", - "charging_problem": "Charging problem", - "paused": "[%key:common::state::paused%]", - "spot_cleaning": "Spot cleaning", - "error": "[%key:common::state::error%]", - "shutting_down": "Shutting down", - "updating": "Updating", - "docking": "Docking", - "going_to_target": "Going to target", - "zoned_cleaning": "Zoned cleaning", - "segment_cleaning": "Segment cleaning", - "emptying_the_bin": "Emptying the bin", - "washing_the_mop": "Washing the mop", - "going_to_wash_the_mop": "Going to wash the mop", - "charging_complete": "Charging complete", - "device_offline": "Device offline", - "unknown": "Unknown", - "locked": "Locked", "air_drying_stopping": "Air drying stopping", + "charger_disconnected": "Charger disconnected", + "charging": "[%key:common::state::charging%]", + "charging_complete": "Charging complete", + "charging_problem": "Charging problem", + "cleaning": "Cleaning", + "device_offline": "Device offline", + "docking": "Docking", "egg_attack": "Cupid mode", - "mapping": "Mapping" + "emptying_the_bin": "Emptying the bin", + "error": "[%key:common::state::error%]", + "going_to_target": "Going to target", + "going_to_wash_the_mop": "Going to wash the mop", + "idle": "[%key:common::state::idle%]", + "locked": "Locked", + "manual_mode": "Manual mode", + "mapping": "Mapping", + "paused": "[%key:common::state::paused%]", + "remote_control_active": "Remote control active", + "returning_home": "Returning home", + "segment_cleaning": "Segment cleaning", + "shutting_down": "Shutting down", + "spot_cleaning": "Spot cleaning", + "starting": "Starting", + "unknown": "Unknown", + "updating": "Updating", + "washing_the_mop": "Washing the mop", + "zoned_cleaning": "Zoned cleaning" } }, - "total_cleaning_time": { - "name": "Total cleaning time" + "strainer_time_left": { + "name": "Strainer time left" }, "total_cleaning_area": { "name": "Total cleaning area" @@ -275,54 +261,57 @@ "total_cleaning_count": { "name": "Total cleaning count" }, + "total_cleaning_time": { + "name": "Total cleaning time" + }, "vacuum_error": { "name": "Vacuum error", "state": { - "none": "None", - "lidar_blocked": "Lidar blocked", - "bumper_stuck": "Bumper stuck", - "wheels_suspended": "Wheels suspended", - "cliff_sensor_error": "Cliff sensor error", - "main_brush_jammed": "Main brush jammed", - "side_brush_jammed": "Side brush jammed", - "wheels_jammed": "Wheels jammed", - "robot_trapped": "Robot trapped", - "no_dustbin": "No dustbin", - "low_battery": "Low battery", - "charging_error": "Charging error", "battery_error": "Battery error", - "wall_sensor_dirty": "Wall sensor dirty", - "robot_tilted": "Robot tilted", - "side_brush_error": "Side brush error", - "fan_error": "Fan error", - "vertical_bumper_pressed": "Vertical bumper pressed", - "dock_locator_error": "Dock locator error", - "return_to_dock_fail": "Return to dock fail", - "nogo_zone_detected": "No-go zone detected", - "vibrarise_jammed": "VibraRise jammed", - "robot_on_carpet": "Robot on carpet", - "filter_blocked": "Filter blocked", - "invisible_wall_detected": "Invisible wall detected", + "bumper_stuck": "Bumper stuck", "cannot_cross_carpet": "Cannot cross carpet", - "internal_error": "Internal error", - "strainer_error": "Filter is wet or blocked", - "compass_error": "Strong magnetic field detected", - "dock": "Dock not connected to power", - "visual_sensor": "Camera error", - "light_touch": "Wall sensor error", - "collect_dust_error_3": "Clean auto-empty dock", - "collect_dust_error_4": "Auto empty dock voltage error", - "mopping_roller_1": "Wash roller may be jammed", - "mopping_roller_error_2": "Wash roller not lowered properly", - "clear_water_box_hoare": "Check the clean water tank", - "dirty_water_box_hoare": "Check the dirty water tank", - "sink_strainer_hoare": "Reinstall the water filter", - "clear_water_box_exception": "Clean water tank empty", + "charging_error": "Charging error", "clear_brush_exception": "Check that the water filter has been correctly installed", "clear_brush_exception_2": "Positioning button error", + "clear_water_box_exception": "Clean water tank empty", + "clear_water_box_hoare": "Check the clean water tank", + "cliff_sensor_error": "Cliff sensor error", + "collect_dust_error_3": "Clean auto-empty dock", + "collect_dust_error_4": "Auto empty dock voltage error", + "compass_error": "Strong magnetic field detected", + "dirty_water_box_hoare": "Check the dirty water tank", + "dock": "Dock not connected to power", + "dock_locator_error": "Dock locator error", + "fan_error": "Fan error", + "filter_blocked": "Filter blocked", "filter_screen_exception": "Clean the dock water filter", + "internal_error": "Internal error", + "invisible_wall_detected": "Invisible wall detected", + "lidar_blocked": "Lidar blocked", + "light_touch": "Wall sensor error", + "low_battery": "Low battery", + "main_brush_jammed": "Main brush jammed", + "mopping_roller_1": "Wash roller may be jammed", "mopping_roller_2": "[%key:component::roborock::entity::sensor::vacuum_error::state::mopping_roller_1%]", - "temperature_protection": "Unit temperature protection" + "mopping_roller_error_2": "Wash roller not lowered properly", + "no_dustbin": "No dustbin", + "nogo_zone_detected": "No-go zone detected", + "none": "None", + "return_to_dock_fail": "Return to dock fail", + "robot_on_carpet": "Robot on carpet", + "robot_tilted": "Robot tilted", + "robot_trapped": "Robot trapped", + "side_brush_error": "Side brush error", + "side_brush_jammed": "Side brush jammed", + "sink_strainer_hoare": "Reinstall the water filter", + "strainer_error": "Filter is wet or blocked", + "temperature_protection": "Unit temperature protection", + "vertical_bumper_pressed": "Vertical bumper pressed", + "vibrarise_jammed": "VibraRise jammed", + "visual_sensor": "Camera error", + "wall_sensor_dirty": "Wall sensor dirty", + "wheels_jammed": "Wheels jammed", + "wheels_suspended": "Wheels suspended" } }, "washing_left": { @@ -331,82 +320,39 @@ "zeo_error": { "name": "Error", "state": { - "none": "[%key:component::roborock::entity::sensor::vacuum_error::state::none%]", - "refill_error": "Refill error", - "drain_error": "Drain error", - "door_lock_error": "Door lock error", - "water_level_error": "Water level error", - "inverter_error": "Inverter error", - "heating_error": "Heating error", - "temperature_error": "Temperature error", "communication_error": "Communication error", + "door_lock_error": "Door lock error", + "drain_error": "Drain error", "drying_error": "Drying error", "drying_error_e_12": "Drying error E12", "drying_error_e_13": "Drying error E13", "drying_error_e_14": "Drying error E14", "drying_error_e_15": "Drying error E15", "drying_error_e_16": "Drying error E16", - "drying_error_water_flow": "Check water flow", "drying_error_restart": "Restart the washer", - "spin_error": "Re-arrange clothes" + "drying_error_water_flow": "Check water flow", + "heating_error": "Heating error", + "inverter_error": "Inverter error", + "none": "[%key:component::roborock::entity::sensor::vacuum_error::state::none%]", + "refill_error": "Refill error", + "spin_error": "Re-arrange clothes", + "temperature_error": "Temperature error", + "water_level_error": "Water level error" } }, "zeo_state": { "name": "State", "state": { - "standby": "[%key:common::state::standby%]", - "weighing": "Weighing", - "soaking": "Soaking", - "washing": "Washing", - "rinsing": "Rinsing", - "spinning": "Spinning", - "drying": "Drying", "cooling": "Cooling", + "done": "Done", + "drying": "Drying", + "rinsing": "Rinsing", + "soaking": "Soaking", + "spinning": "Spinning", + "standby": "[%key:common::state::standby%]", "under_delay_start": "Delayed start", - "done": "Done" - } - } - }, - "select": { - "mop_mode": { - "name": "Mop mode", - "state": { - "standard": "Standard", - "deep": "Deep", - "deep_plus": "Deep+", - "custom": "Custom", - "fast": "Fast", - "smart_mode": "SmartPlan" - } - }, - "mop_intensity": { - "name": "Mop intensity", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "mild": "Mild", - "medium": "[%key:common::state::medium%]", - "moderate": "Moderate", - "max": "Max", - "high": "[%key:common::state::high%]", - "intense": "Intense", - "extreme": "Extreme", - "custom": "[%key:component::roborock::entity::select::mop_mode::state::custom%]", - "custom_water_flow": "Custom water flow", - "vac_followed_by_mop": "Vacuum followed by mop", - "smart_mode": "[%key:component::roborock::entity::select::mop_mode::state::smart_mode%]" - } - }, - "selected_map": { - "name": "Selected map" - }, - "dust_collection_mode": { - "name": "Empty mode", - "state": { - "smart": "Smart", - "light": "Light", - "balanced": "[%key:component::roborock::entity::vacuum::roborock::state_attributes::fan_speed::state::balanced%]", - "max": "[%key:component::roborock::entity::select::mop_intensity::state::max%]" + "washing": "Washing", + "weighing": "Weighing" } } }, @@ -425,17 +371,17 @@ } }, "time": { - "dnd_start_time": { - "name": "Do not disturb begin" - }, "dnd_end_time": { "name": "Do not disturb end" }, - "off_peak_start": { - "name": "Off-peak start" + "dnd_start_time": { + "name": "Do not disturb begin" }, "off_peak_end": { "name": "Off-peak end" + }, + "off_peak_start": { + "name": "Off-peak start" } }, "vacuum": { @@ -443,7 +389,6 @@ "state_attributes": { "fan_speed": { "state": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", "balanced": "Balanced", "custom": "[%key:component::roborock::entity::select::mop_mode::state::custom%]", @@ -451,11 +396,12 @@ "max": "[%key:component::roborock::entity::select::mop_intensity::state::max%]", "max_plus": "Max plus", "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]", "quiet": "Quiet", "silent": "Silent", + "smart_mode": "[%key:component::roborock::entity::select::mop_mode::state::smart_mode%]", "standard": "[%key:component::roborock::entity::select::mop_mode::state::standard%]", - "turbo": "Turbo", - "smart_mode": "[%key:component::roborock::entity::select::mop_mode::state::smart_mode%]" + "turbo": "Turbo" } } } @@ -472,50 +418,104 @@ "invalid_credentials": { "message": "Invalid credentials." }, + "invalid_user_agreement": { + "message": "User agreement must be accepted again. Open your Roborock app and accept the agreement." + }, "map_failure": { "message": "Something went wrong creating the map" }, + "no_coordinators": { + "message": "No devices were able to successfully setup" + }, + "no_user_agreement": { + "message": "You have not valid user agreement. Open your Roborock app and accept the agreement." + }, "position_not_found": { "message": "Robot position not found" }, "update_data_fail": { "message": "Failed to update data" }, - "no_coordinators": { - "message": "No devices were able to successfully setup" - }, "update_options_failed": { "message": "Failed to update Roborock options" - }, - "invalid_user_agreement": { - "message": "User agreement must be accepted again. Open your Roborock app and accept the agreement." - }, - "no_user_agreement": { - "message": "You have not valid user agreement. Open your Roborock app and accept the agreement." + } + }, + "issues": { + "cloud_api_used": { + "description": "The Roborock integration is unable to connect directly to {device_name} and falling back to the cloud API. This is not recommended as it can lead to rate limiting. Please make your vacuum accessible on the local network by your Home Assistant instance.", + "title": "Cloud API used" + } + }, + + "options": { + "step": { + "drawables": { + "data": { + "charger": "Charger", + "cleaned_area": "Cleaned area", + "goto_path": "Go-to path", + "ignored_obstacles": "Ignored obstacles", + "ignored_obstacles_with_photo": "Ignored obstacles with photo", + "mop_path": "Mop path", + "no_carpet_zones": "No carpet zones", + "no_go_zones": "No-go zones", + "no_mopping_zones": "No mopping zones", + "obstacles": "Obstacles", + "obstacles_with_photo": "Obstacles with photo", + "path": "Path", + "predicted_path": "Predicted path", + "room_names": "Room names", + "show_background": "Show background", + "vacuum_position": "Vacuum position", + "virtual_walls": "Virtual walls", + "zones": "Zones" + }, + "data_description": { + "charger": "Show the charger on the map.", + "cleaned_area": "Show the area cleaned on the map.", + "goto_path": "Show the go-to path on the map.", + "ignored_obstacles": "Show ignored obstacles on the map.", + "ignored_obstacles_with_photo": "Show ignored obstacles with photos on the map.", + "mop_path": "Show the mop path on the map.", + "no_carpet_zones": "Show the no carpet zones on the map.", + "no_go_zones": "Show the no-go zones on the map.", + "no_mopping_zones": "Show the no-mop zones on the map.", + "obstacles": "Show obstacles on the map.", + "obstacles_with_photo": "Show obstacles with photos on the map.", + "path": "Show the path on the map.", + "predicted_path": "Show the predicted path on the map.", + "room_names": "Show room names on the map.", + "show_background": "Add a background to the map.", + "vacuum_position": "Show the vacuum position on the map.", + "virtual_walls": "Show virtual walls on the map.", + "zones": "Show zones on the map." + }, + "description": "Specify which features to draw on the map." + } } }, "services": { "get_maps": { - "name": "Get maps", - "description": "Retrieves the map and room information of your device." + "description": "Retrieves the map and room information of your device.", + "name": "Get maps" + }, + "get_vacuum_current_position": { + "description": "Retrieves the current position of the vacuum.", + "name": "Get current position" }, "set_vacuum_goto_position": { - "name": "Go to position", "description": "Sends the vacuum to a specific position.", "fields": { "x": { - "name": "X-coordinate", - "description": "Coordinates are relative to the dock. x=25500,y=25500 is the dock position." + "description": "Coordinates are relative to the dock. x=25500,y=25500 is the dock position.", + "name": "X-coordinate" }, "y": { - "name": "Y-coordinate", - "description": "[%key:component::roborock::services::set_vacuum_goto_position::fields::x::description%]" + "description": "[%key:component::roborock::services::set_vacuum_goto_position::fields::x::description%]", + "name": "Y-coordinate" } - } - }, - "get_vacuum_current_position": { - "name": "Get current position", - "description": "Retrieves the current position of the vacuum." + }, + "name": "Go to position" } } } diff --git a/homeassistant/components/roku/manifest.json b/homeassistant/components/roku/manifest.json index d5e2e2e5224..b31a01dcdad 100644 --- a/homeassistant/components/roku/manifest.json +++ b/homeassistant/components/roku/manifest.json @@ -13,9 +13,9 @@ "requirements": ["rokuecp==0.19.5"], "ssdp": [ { - "st": "roku:ecp", + "deviceType": "urn:roku-com:device:player:1-0", "manufacturer": "Roku", - "deviceType": "urn:roku-com:device:player:1-0" + "st": "roku:ecp" } ] } diff --git a/homeassistant/components/roku/strings.json b/homeassistant/components/roku/strings.json index 62f1f8b1736..ff9a7104f98 100644 --- a/homeassistant/components/roku/strings.json +++ b/homeassistant/components/roku/strings.json @@ -1,40 +1,28 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Enter your Roku information.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the Roku device to control." - } - }, - "discovery_confirm": { - "description": "Do you want to set up {name}?" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "unknown": "[%key:common::config_flow::error::unknown%]", "wrong_device": "This Roku device does not match the existing device ID. Please make sure you entered the correct host information." - } - }, - "options": { + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "flow_title": "{name}", "step": { - "init": { + "discovery_confirm": { + "description": "Do you want to set up {name}?" + }, + "user": { "data": { - "play_media_app_id": "Play Media Roku Application ID" + "host": "[%key:common::config_flow::data::host%]" }, "data_description": { - "play_media_app_id": "The application ID to use when launching media playback. Must support the PlayOnRoku API." - } + "host": "The hostname or IP address of the Roku device to control." + }, + "description": "Enter your Roku information." } } }, @@ -70,16 +58,28 @@ } } }, - "services": { - "search": { - "name": "Search", - "description": "Emulates opening the search screen and entering the search keyword.", - "fields": { - "keyword": { - "name": "Keyword", - "description": "The keyword to search for." + "options": { + "step": { + "init": { + "data": { + "play_media_app_id": "Play Media Roku Application ID" + }, + "data_description": { + "play_media_app_id": "The application ID to use when launching media playback. Must support the PlayOnRoku API." } } } + }, + "services": { + "search": { + "description": "Emulates opening the search screen and entering the search keyword.", + "fields": { + "keyword": { + "description": "The keyword to search for.", + "name": "Keyword" + } + }, + "name": "Search" + } } } diff --git a/homeassistant/components/romy/icons.json b/homeassistant/components/romy/icons.json index 3425d5cfade..3a43ba86b0b 100644 --- a/homeassistant/components/romy/icons.json +++ b/homeassistant/components/romy/icons.json @@ -1,36 +1,36 @@ { "entity": { "binary_sensor": { - "water_tank_empty": { - "default": "mdi:cup-outline", - "state": { - "off": "mdi:cup-water", - "on": "mdi:cup-outline" - } - }, "dustbin_present": { "default": "mdi:basket-check", "state": { "off": "mdi:basket-remove", "on": "mdi:basket-check" } + }, + "water_tank_empty": { + "default": "mdi:cup-outline", + "state": { + "off": "mdi:cup-water", + "on": "mdi:cup-outline" + } } }, "sensor": { "dustbin_sensor": { "default": "mdi:basket-fill" }, - "total_cleaning_time": { - "default": "mdi:clock" - }, - "total_number_of_cleaning_runs": { - "default": "mdi:counter" - }, "total_area_cleaned": { "default": "mdi:texture-box" }, + "total_cleaning_time": { + "default": "mdi:clock" + }, "total_distance_driven": { "default": "mdi:run" + }, + "total_number_of_cleaning_runs": { + "default": "mdi:counter" } } } diff --git a/homeassistant/components/romy/strings.json b/homeassistant/components/romy/strings.json index aa7bfe26ea0..e372d596751 100644 --- a/homeassistant/components/romy/strings.json +++ b/homeassistant/components/romy/strings.json @@ -1,27 +1,27 @@ { "config": { - "flow_title": "{name}", - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "flow_title": "{name}", "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, "password": { - "title": "Password required", "data": { "password": "[%key:common::config_flow::data::password%]" }, "data_description": { "password": "(8 characters, see QR code under the dustbin)." + }, + "title": "Password required" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" } }, "zeroconf_confirm": { @@ -30,52 +30,52 @@ } }, "entity": { - "vacuum": { - "romy": { - "state_attributes": { - "fan_speed": { - "state": { - "default": "Default", - "auto": "[%key:common::state::auto%]", - "normal": "[%key:common::state::normal%]", - "high": "[%key:common::state::high%]", - "intensive": "Intensive", - "silent": "Silent", - "super_silent": "Super silent" - } - } - } - } - }, "binary_sensor": { - "dustbin_present": { - "name": "Dustbin present" - }, "docked": { "name": "Robot docked" }, - "water_tank_present": { - "name": "Watertank present" + "dustbin_present": { + "name": "Dustbin present" }, "water_tank_empty": { "name": "Watertank empty" + }, + "water_tank_present": { + "name": "Watertank present" } }, "sensor": { "dustbin_sensor": { "name": "Dustbin dirt level" }, - "total_cleaning_time": { - "name": "Total cleaning time" - }, - "total_number_of_cleaning_runs": { - "name": "Total cleaning runs" - }, "total_area_cleaned": { "name": "Total cleaned area" }, + "total_cleaning_time": { + "name": "Total cleaning time" + }, "total_distance_driven": { "name": "Total distance driven" + }, + "total_number_of_cleaning_runs": { + "name": "Total cleaning runs" + } + }, + "vacuum": { + "romy": { + "state_attributes": { + "fan_speed": { + "state": { + "auto": "[%key:common::state::auto%]", + "default": "Default", + "high": "[%key:common::state::high%]", + "intensive": "Intensive", + "normal": "[%key:common::state::normal%]", + "silent": "Silent", + "super_silent": "Super silent" + } + } + } } } } diff --git a/homeassistant/components/roomba/icons.json b/homeassistant/components/roomba/icons.json index 9cf2fdc9836..d3182a19921 100644 --- a/homeassistant/components/roomba/icons.json +++ b/homeassistant/components/roomba/icons.json @@ -6,41 +6,41 @@ } }, "sensor": { - "battery_cycles": { - "default": "mdi:counter" - }, - "total_cleaning_time": { - "default": "mdi:clock" - }, "average_mission_time": { "default": "mdi:clock" }, - "total_missions": { - "default": "mdi:counter" - }, - "successful_missions": { + "battery_cycles": { "default": "mdi:counter" }, "canceled_missions": { "default": "mdi:counter" }, + "dock_tank_level": { + "default": "mdi:water" + }, "failed_missions": { "default": "mdi:counter" }, - "scrubs_count": { - "default": "mdi:counter" - }, - "total_cleaned_area": { - "default": "mdi:texture-box" - }, "last_mission": { "default": "mdi:calendar-clock" }, + "scrubs_count": { + "default": "mdi:counter" + }, + "successful_missions": { + "default": "mdi:counter" + }, "tank_level": { "default": "mdi:water" }, - "dock_tank_level": { - "default": "mdi:water" + "total_cleaned_area": { + "default": "mdi:texture-box" + }, + "total_cleaning_time": { + "default": "mdi:clock" + }, + "total_missions": { + "default": "mdi:counter" } } } diff --git a/homeassistant/components/roomba/manifest.json b/homeassistant/components/roomba/manifest.json index dbfd803f89b..24af14bfba3 100644 --- a/homeassistant/components/roomba/manifest.json +++ b/homeassistant/components/roomba/manifest.json @@ -27,12 +27,12 @@ "requirements": ["roombapy==1.9.0"], "zeroconf": [ { - "type": "_amzn-alexa._tcp.local.", - "name": "irobot-*" + "name": "irobot-*", + "type": "_amzn-alexa._tcp.local." }, { - "type": "_amzn-alexa._tcp.local.", - "name": "roomba-*" + "name": "roomba-*", + "type": "_amzn-alexa._tcp.local." } ] } diff --git a/homeassistant/components/roomba/strings.json b/homeassistant/components/roomba/strings.json index 938c941f238..a6eebcc8f24 100644 --- a/homeassistant/components/roomba/strings.json +++ b/homeassistant/components/roomba/strings.json @@ -1,47 +1,92 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "title": "Automatically connect to the device", - "description": "Select a Roomba or Braava.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of your Roomba or Braava." - } - }, - "manual": { - "title": "Manually connect to the device", - "description": "No Roomba or Braava have been discovered on your network.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of your Roomba or Braava." - } - }, - "link": { - "title": "Retrieve password", - "description": "Make sure that the iRobot app is not running on any device. Press and hold the Home button (or both Home and Spot buttons) on {name} until the device generates a sound (about two seconds), then submit within 30 seconds." - }, - "link_manual": { - "title": "Enter password", - "description": "The password could not be retrieved from the device automatically. Please make sure that the iRobot app is not open on any device while trying to retrieve the password. Please follow the steps outlined in the documentation at: {auth_help_url}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "not_irobot_device": "Discovered device is not an iRobot device", + "short_blid": "The BLID was truncated" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "not_irobot_device": "Discovered device is not an iRobot device", - "short_blid": "The BLID was truncated" + "flow_title": "{name} ({host})", + "step": { + "link": { + "description": "Make sure that the iRobot app is not running on any device. Press and hold the Home button (or both Home and Spot buttons) on {name} until the device generates a sound (about two seconds), then submit within 30 seconds.", + "title": "Retrieve password" + }, + "link_manual": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The password could not be retrieved from the device automatically. Please make sure that the iRobot app is not open on any device while trying to retrieve the password. Please follow the steps outlined in the documentation at: {auth_help_url}", + "title": "Enter password" + }, + "manual": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of your Roomba or Braava." + }, + "description": "No Roomba or Braava have been discovered on your network.", + "title": "Manually connect to the device" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of your Roomba or Braava." + }, + "description": "Select a Roomba or Braava.", + "title": "Automatically connect to the device" + } + } + }, + "entity": { + "binary_sensor": { + "bin_full": { + "name": "Bin full" + } + }, + "sensor": { + "average_mission_time": { + "name": "Average mission time" + }, + "battery_cycles": { + "name": "Battery cycles" + }, + "canceled_missions": { + "name": "Canceled missions" + }, + "dock_tank_level": { + "name": "Dock tank level" + }, + "failed_missions": { + "name": "Failed missions" + }, + "last_mission": { + "name": "Last mission start time" + }, + "scrubs_count": { + "name": "Scrubs" + }, + "successful_missions": { + "name": "Successful missions" + }, + "tank_level": { + "name": "Tank level" + }, + "total_cleaned_area": { + "name": "Total cleaned area" + }, + "total_cleaning_time": { + "name": "Total cleaning time" + }, + "total_missions": { + "name": "Total missions" + } } }, "options": { @@ -53,50 +98,5 @@ } } } - }, - "entity": { - "binary_sensor": { - "bin_full": { - "name": "Bin full" - } - }, - "sensor": { - "battery_cycles": { - "name": "Battery cycles" - }, - "total_cleaning_time": { - "name": "Total cleaning time" - }, - "average_mission_time": { - "name": "Average mission time" - }, - "total_missions": { - "name": "Total missions" - }, - "successful_missions": { - "name": "Successful missions" - }, - "canceled_missions": { - "name": "Canceled missions" - }, - "failed_missions": { - "name": "Failed missions" - }, - "scrubs_count": { - "name": "Scrubs" - }, - "total_cleaned_area": { - "name": "Total cleaned area" - }, - "last_mission": { - "name": "Last mission start time" - }, - "tank_level": { - "name": "Tank level" - }, - "dock_tank_level": { - "name": "Dock tank level" - } - } } } diff --git a/homeassistant/components/roon/strings.json b/homeassistant/components/roon/strings.json index 463f0431891..050f70cb7e4 100644 --- a/homeassistant/components/roon/strings.json +++ b/homeassistant/components/roon/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": {}, - "fallback": { - "description": "Could not discover Roon server, please enter your Hostname and Port.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "link": { - "title": "Authorize Home Assistant in Roon", - "description": "You must authorize Home Assistant in Roon. After you select **Submit**, go to the Roon Core application, open **Settings** and enable Home Assistant on the **Extensions** tab." - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "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_device%]" + "step": { + "fallback": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "description": "Could not discover Roon server, please enter your Hostname and Port." + }, + "link": { + "description": "You must authorize Home Assistant in Roon. After you select **Submit**, go to the Roon Core application, open **Settings** and enable Home Assistant on the **Extensions** tab.", + "title": "Authorize Home Assistant in Roon" + }, + "user": {} } }, "entity": { @@ -28,9 +28,9 @@ "state_attributes": { "event_type": { "state": { - "volume_up": "Volume up", + "mute_toggle": "Mute toggle", "volume_down": "Volume down", - "mute_toggle": "Mute toggle" + "volume_up": "Volume up" } } } @@ -39,14 +39,14 @@ }, "services": { "transfer": { - "name": "Transfer", "description": "Transfers playback from one player to another.", "fields": { "transfer_id": { - "name": "Transfer ID", - "description": "ID of the destination player." + "description": "ID of the destination player.", + "name": "Transfer ID" } - } + }, + "name": "Transfer" } } } diff --git a/homeassistant/components/route53/strings.json b/homeassistant/components/route53/strings.json index 12b372d0ce2..fae6e06db73 100644 --- a/homeassistant/components/route53/strings.json +++ b/homeassistant/components/route53/strings.json @@ -1,8 +1,8 @@ { "services": { "update_records": { - "name": "Update records", - "description": "Triggers update of records." + "description": "Triggers update of records.", + "name": "Update records" } } } diff --git a/homeassistant/components/route_b_smart_meter/strings.json b/homeassistant/components/route_b_smart_meter/strings.json index 382ff6edaa0..aa4bc0a553c 100644 --- a/homeassistant/components/route_b_smart_meter/strings.json +++ b/homeassistant/components/route_b_smart_meter/strings.json @@ -1,41 +1,41 @@ { "config": { - "step": { - "user": { - "data_description": { - "device": "[%key:common::config_flow::data::device%]", - "id": "B Route ID", - "password": "[%key:common::config_flow::data::password%]" - }, - "data": { - "device": "[%key:common::config_flow::data::device%]", - "id": "B Route ID", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "device": "[%key:common::config_flow::data::device%]", + "id": "B Route ID", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "device": "[%key:common::config_flow::data::device%]", + "id": "B Route ID", + "password": "[%key:common::config_flow::data::password%]" + } + } } }, "entity": { "sensor": { + "instantaneous_current_r_phase": { + "name": "Instantaneous current R phase" + }, + "instantaneous_current_t_phase": { + "name": "Instantaneous current T phase" + }, "instantaneous_power": { "name": "Instantaneous power" }, "total_consumption": { "name": "Total consumption" - }, - "instantaneous_current_t_phase": { - "name": "Instantaneous current T phase" - }, - "instantaneous_current_r_phase": { - "name": "Instantaneous current R phase" } } } diff --git a/homeassistant/components/rova/strings.json b/homeassistant/components/rova/strings.json index 21f4146bf78..06da98df74c 100644 --- a/homeassistant/components/rova/strings.json +++ b/homeassistant/components/rova/strings.json @@ -1,30 +1,24 @@ { "config": { - "step": { - "user": { - "title": "Provide your address details", - "data": { - "zip_code": "Your ZIP code", - "house_number": "Your house number", - "house_number_suffix": "A suffix for your house number" - } - } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "invalid_rova_area": "Rova does not collect at this address", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "cannot_connect": "Could not connect to the Rova API", "invalid_rova_area": "Rova does not collect at this address" - } - }, - "issues": { - "no_rova_area": { - "title": "Rova does not collect at this address anymore", - "description": "Rova does not collect at {zip_code} anymore.\n\nPlease remove the integration." + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_rova_area": "Rova does not collect at this address" + }, + "step": { + "user": { + "data": { + "house_number": "Your house number", + "house_number_suffix": "A suffix for your house number", + "zip_code": "Your ZIP code" + }, + "title": "Provide your address details" + } } }, "entity": { @@ -42,5 +36,11 @@ "name": "Residual" } } + }, + "issues": { + "no_rova_area": { + "description": "Rova does not collect at {zip_code} anymore.\n\nPlease remove the integration.", + "title": "Rova does not collect at this address anymore" + } } } diff --git a/homeassistant/components/rpi_power/strings.json b/homeassistant/components/rpi_power/strings.json index 796a973335b..34033a40a53 100644 --- a/homeassistant/components/rpi_power/strings.json +++ b/homeassistant/components/rpi_power/strings.json @@ -1,13 +1,13 @@ { - "title": "Raspberry Pi Power Supply Checker", "config": { + "abort": { + "no_devices_found": "Can't find the system class needed for this component, make sure that your kernel is recent and the hardware is supported" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "no_devices_found": "Can't find the system class needed for this component, make sure that your kernel is recent and the hardware is supported" } - } + }, + "title": "Raspberry Pi Power Supply Checker" } diff --git a/homeassistant/components/ruckus_unleashed/strings.json b/homeassistant/components/ruckus_unleashed/strings.json index 65a39e5e218..068c8610dfc 100644 --- a/homeassistant/components/ruckus_unleashed/strings.json +++ b/homeassistant/components/ruckus_unleashed/strings.json @@ -1,16 +1,8 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Ruckus access point." - } - } + "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%]", @@ -18,9 +10,17 @@ "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "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%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your Ruckus access point." + } + } } } } diff --git a/homeassistant/components/russound_rio/strings.json b/homeassistant/components/russound_rio/strings.json index 9149a22aac0..7fdc3cdc7af 100644 --- a/homeassistant/components/russound_rio/strings.json +++ b/homeassistant/components/russound_rio/strings.json @@ -3,7 +3,30 @@ "error_cannot_connect": "Failed to connect to Russound device. Please make sure the device is powered up and connected to the network. Try power-cycling the device if it does not connect." }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:component::russound_rio::common::error_cannot_connect%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "wrong_device": "This Russound controller does not match the existing device ID. Please make sure you entered the correct IP address." + }, + "error": { + "cannot_connect": "[%key:component::russound_rio::common::error_cannot_connect%]" + }, "step": { + "discovery_confirm": { + "description": "Do you want to set up {name}?" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::russound_rio::config::step::user::data_description::host%]", + "port": "[%key:component::russound_rio::config::step::user::data_description::port%]" + }, + "description": "Reconfigure your Russound controller." + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -14,30 +37,7 @@ "host": "The IP address of the Russound controller.", "port": "The port of the Russound controller." } - }, - "discovery_confirm": { - "description": "Do you want to set up {name}?" - }, - "reconfigure": { - "description": "Reconfigure your Russound controller.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "[%key:component::russound_rio::config::step::user::data_description::host%]", - "port": "[%key:component::russound_rio::config::step::user::data_description::port%]" - } } - }, - "error": { - "cannot_connect": "[%key:component::russound_rio::common::error_cannot_connect%]" - }, - "abort": { - "cannot_connect": "[%key:component::russound_rio::common::error_cannot_connect%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "wrong_device": "This Russound controller does not match the existing device ID. Please make sure you entered the correct IP address." } }, "entity": { @@ -62,20 +62,20 @@ } }, "exceptions": { - "entry_cannot_connect": { - "message": "Error while connecting to {host}:{port}" - }, "command_error": { "message": "Error executing {function_name} on entity {entity_id}" }, - "unsupported_media_type": { - "message": "Unsupported media type for Russound zone: {media_type}" + "entry_cannot_connect": { + "message": "Error while connecting to {host}:{port}" }, "missing_preset": { "message": "The specified preset is not available for this source: {preset_id}" }, "preset_non_integer": { "message": "Preset must be an integer, got: {preset_id}" + }, + "unsupported_media_type": { + "message": "Unsupported media type for Russound zone: {media_type}" } } } diff --git a/homeassistant/components/ruuvi_gateway/strings.json b/homeassistant/components/ruuvi_gateway/strings.json index 10b149c9069..5078a84b139 100644 --- a/homeassistant/components/ruuvi_gateway/strings.json +++ b/homeassistant/components/ruuvi_gateway/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -7,14 +15,6 @@ "token": "Bearer token (configured during gateway setup)" } } - }, - "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%]" } } } diff --git a/homeassistant/components/ruuvitag_ble/manifest.json b/homeassistant/components/ruuvitag_ble/manifest.json index 1051c9613a6..a3692fd640f 100644 --- a/homeassistant/components/ruuvitag_ble/manifest.json +++ b/homeassistant/components/ruuvitag_ble/manifest.json @@ -3,12 +3,12 @@ "name": "RuuviTag BLE", "bluetooth": [ { - "manufacturer_id": 1177, - "connectable": false + "connectable": false, + "manufacturer_id": 1177 }, { - "local_name": "Ruuvi *", - "connectable": false + "connectable": false, + "local_name": "Ruuvi *" } ], "codeowners": ["@akx"], diff --git a/homeassistant/components/ruuvitag_ble/strings.json b/homeassistant/components/ruuvitag_ble/strings.json index 0abb8343c65..f0a5210d155 100644 --- a/homeassistant/components/ruuvitag_ble/strings.json +++ b/homeassistant/components/ruuvitag_ble/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } }, "entity": { diff --git a/homeassistant/components/rympro/strings.json b/homeassistant/components/rympro/strings.json index 589e91a6c6f..15b97aa11ef 100644 --- a/homeassistant/components/rympro/strings.json +++ b/homeassistant/components/rympro/strings.json @@ -1,5 +1,14 @@ { "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": { "user": { "data": { @@ -7,30 +16,21 @@ "password": "[%key:common::config_flow::data::password%]" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { "sensor": { - "total_consumption": { - "name": "Total consumption" + "daily_consumption": { + "name": "Daily consumption" }, "monthly_consumption": { "name": "Monthly consumption" }, - "daily_consumption": { - "name": "Daily consumption" - }, "monthly_forecast": { "name": "Monthly forecast" + }, + "total_consumption": { + "name": "Total consumption" } } } diff --git a/homeassistant/components/sabnzbd/strings.json b/homeassistant/components/sabnzbd/strings.json index e9c5b6884ab..899da3d9436 100644 --- a/homeassistant/components/sabnzbd/strings.json +++ b/homeassistant/components/sabnzbd/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" + }, "step": { "user": { "data": { @@ -7,18 +15,10 @@ "url": "[%key:common::config_flow::data::url%]" }, "data_description": { - "url": "The full URL, including port, of the SABnzbd server. Example: `{sabnzbd_full_url_local}` or `{sabnzbd_full_url_addon}`, if you are using the add-on.", - "api_key": "The API key of the SABnzbd server. This can be found in the SABnzbd web interface under Config cog (top right) > General > Security." + "api_key": "The API key of the SABnzbd server. This can be found in the SABnzbd web interface under Config cog (top right) > General > Security.", + "url": "The full URL, including port, of the SABnzbd server. Example: `{sabnzbd_full_url_local}` or `{sabnzbd_full_url_addon}`, if you are using the add-on." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" } }, "entity": { @@ -41,38 +41,38 @@ } }, "sensor": { - "status": { - "name": "Status" - }, - "speed": { - "name": "Speed" - }, - "queue": { - "name": "Queue" - }, - "left": { - "name": "Left to download" - }, - "total_disk_space": { - "name": "Total disk space" + "daily_total": { + "name": "Daily total" }, "free_disk_space": { "name": "Free disk space" }, - "queue_count": { - "name": "Queue count" - }, - "daily_total": { - "name": "Daily total" - }, - "weekly_total": { - "name": "Weekly total" + "left": { + "name": "Left to download" }, "monthly_total": { "name": "Monthly total" }, "overall_total": { "name": "Overall total" + }, + "queue": { + "name": "Queue" + }, + "queue_count": { + "name": "Queue count" + }, + "speed": { + "name": "Speed" + }, + "status": { + "name": "Status" + }, + "total_disk_space": { + "name": "Total disk space" + }, + "weekly_total": { + "name": "Weekly total" } } }, diff --git a/homeassistant/components/samsungtv/manifest.json b/homeassistant/components/samsungtv/manifest.json index e9ce8db0b95..cce90bc2c68 100644 --- a/homeassistant/components/samsungtv/manifest.json +++ b/homeassistant/components/samsungtv/manifest.json @@ -60,10 +60,10 @@ ], "zeroconf": [ { - "type": "_airplay._tcp.local.", "properties": { "manufacturer": "samsung*" - } + }, + "type": "_airplay._tcp.local." } ] } diff --git a/homeassistant/components/samsungtv/strings.json b/homeassistant/components/samsungtv/strings.json index aa0e77e0b76..f3c5f9ef2cb 100644 --- a/homeassistant/components/samsungtv/strings.json +++ b/homeassistant/components/samsungtv/strings.json @@ -1,59 +1,59 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "auth_missing": "Home Assistant is not authorized to connect to this Samsung TV. Check your TV's External Device Manager settings to authorize Home Assistant.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "id_missing": "This Samsung device doesn't have a serial number to identify it.", + "not_supported": "This Samsung device is currently not supported.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "auth_missing": "[%key:component::samsungtv::config::abort::auth_missing%]", + "invalid_host": "Host is invalid, please try again.", + "invalid_pin": "PIN is invalid, please try again." + }, "flow_title": "{device}", "step": { - "user": { - "description": "Enter your Samsung TV information. If you never connected Home Assistant before you should see a popup on your TV asking for authorization.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "host": "The hostname or IP address of your TV.", - "name": "The name of your TV. This will be used to identify the device in Home Assistant." - } - }, "confirm": { "description": "Do you want to set up {device}? If you never connected Home Assistant before you should see a popup on your TV asking for authorization." }, + "encrypted_pairing": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "data_description": { + "pin": "The PIN displayed on your TV." + }, + "description": "Please enter the PIN displayed on {device}." + }, "pairing": { "description": "[%key:component::samsungtv::config::step::confirm::description%]" }, "reauth_confirm": { "description": "After submitting, accept the popup on {device} requesting authorization within 30 seconds or input PIN." }, - "encrypted_pairing": { - "description": "Please enter the PIN displayed on {device}.", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - }, - "data_description": { - "pin": "The PIN displayed on your TV." - } - }, "reauth_confirm_encrypted": { - "description": "[%key:component::samsungtv::config::step::encrypted_pairing::description%]", "data": { "pin": "[%key:common::config_flow::data::pin%]" }, "data_description": { "pin": "[%key:component::samsungtv::config::step::encrypted_pairing::data_description::pin%]" - } + }, + "description": "[%key:component::samsungtv::config::step::encrypted_pairing::description%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "host": "The hostname or IP address of your TV.", + "name": "The name of your TV. This will be used to identify the device in Home Assistant." + }, + "description": "Enter your Samsung TV information. If you never connected Home Assistant before you should see a popup on your TV asking for authorization." } - }, - "error": { - "auth_missing": "[%key:component::samsungtv::config::abort::auth_missing%]", - "invalid_host": "Host is invalid, please try again.", - "invalid_pin": "PIN is invalid, please try again." - }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "auth_missing": "Home Assistant is not authorized to connect to this Samsung TV. Check your TV's External Device Manager settings to authorize Home Assistant.", - "id_missing": "This Samsung device doesn't have a serial number to identify it.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "not_supported": "This Samsung device is currently not supported.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "device_automation": { @@ -62,8 +62,14 @@ } }, "exceptions": { - "unhandled_trigger_type": { - "message": "Unhandled trigger type {trigger_type}." + "encrypted_mode_auth_failed": { + "message": "Token and session ID are required in encrypted mode." + }, + "error_sending_command": { + "message": "Unable to send command to {host}: {error}" + }, + "error_set_volume": { + "message": "Unable to set volume level on {host}: {error}" }, "service_unsupported": { "message": "Entity {entity} does not support this action." @@ -71,14 +77,8 @@ "source_unsupported": { "message": "Entity {entity} does not support source {source}." }, - "error_set_volume": { - "message": "Unable to set volume level on {host}: {error}" - }, - "error_sending_command": { - "message": "Unable to send command to {host}: {error}" - }, - "encrypted_mode_auth_failed": { - "message": "Token and session ID are required in encrypted mode." + "unhandled_trigger_type": { + "message": "Unhandled trigger type {trigger_type}." } } } diff --git a/homeassistant/components/sanix/strings.json b/homeassistant/components/sanix/strings.json index 6bff11e36af..cb1fd09b104 100644 --- a/homeassistant/components/sanix/strings.json +++ b/homeassistant/components/sanix/strings.json @@ -1,32 +1,32 @@ { "config": { - "step": { - "user": { - "description": "To get the Serial number and the Token you just have to sign in to the [Sanix Dashboard]({dashboard_url}) and open the Help -> System version page.", - "data": { - "serial_number": "Serial number", - "token": "[%key:common::config_flow::data::access_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "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_device%]" + "step": { + "user": { + "data": { + "serial_number": "Serial number", + "token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "To get the Serial number and the Token you just have to sign in to the [Sanix Dashboard]({dashboard_url}) and open the Help -> System version page." + } } }, "entity": { "sensor": { - "service_date": { - "name": "Service date" + "device_no": { + "name": "Device number" }, "fill_perc": { "name": "Filled" }, - "device_no": { - "name": "Device number" + "service_date": { + "name": "Service date" }, "ssid": { "name": "SSID" diff --git a/homeassistant/components/satel_integra/strings.json b/homeassistant/components/satel_integra/strings.json index 70502902de4..92944ab8b33 100644 --- a/homeassistant/components/satel_integra/strings.json +++ b/homeassistant/components/satel_integra/strings.json @@ -1,118 +1,38 @@ { "common": { - "code_input_description": "Code to toggle switchable outputs", - "code": "Access code" + "code": "Access code", + "code_input_description": "Code to toggle switchable outputs" }, "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { + "code": "[%key:component::satel_integra::common::code%]", "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "code": "[%key:component::satel_integra::common::code%]" + "port": "[%key:common::config_flow::data::port%]" }, "data_description": { + "code": "[%key:component::satel_integra::common::code_input_description%]", "host": "The IP address of the alarm panel", - "port": "The port of the alarm panel", - "code": "[%key:component::satel_integra::common::code_input_description%]" + "port": "The port of the alarm panel" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "config_subentries": { - "partition": { - "entry_type": "Partition", - "initiate_flow": { - "user": "Add partition" - }, - "step": { - "user": { - "title": "Configure partition", - "data": { - "partition_number": "Partition number", - "name": "[%key:common::config_flow::data::name%]", - "arm_home_mode": "Arm home mode" - }, - "data_description": { - "partition_number": "Enter partition number to configure", - "name": "The name to give to the alarm panel", - "arm_home_mode": "The mode in which the partition is armed when 'arm home' is used. For more information on what the differences are between them, please refer to Satel Integra manual." - } - }, - "reconfigure": { - "title": "Reconfigure partition {partition_number}", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "arm_home_mode": "[%key:component::satel_integra::config_subentries::partition::step::user::data::arm_home_mode%]" - }, - "data_description": { - "arm_home_mode": "[%key:component::satel_integra::config_subentries::partition::step::user::data_description::arm_home_mode%]" - } - } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "zone": { - "entry_type": "Zone", - "initiate_flow": { - "user": "Add zone" - }, - "step": { - "user": { - "title": "Configure zone", - "data": { - "zone_number": "Zone number", - "name": "[%key:common::config_flow::data::name%]", - "type": "Zone type" - }, - "data_description": { - "zone_number": "Enter zone number to configure", - "name": "The name to give to the sensor", - "type": "Choose the device class you would like the sensor to show as" - } - }, - "reconfigure": { - "title": "Reconfigure zone {zone_number}", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data::type%]" - }, - "data_description": { - "name": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::name%]", - "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::type%]" - } - } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, "output": { "entry_type": "Output", + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "initiate_flow": { "user": "Add output" }, "step": { - "user": { - "title": "Configure output", - "data": { - "output_number": "Output number", - "name": "[%key:common::config_flow::data::name%]", - "type": "Output type" - }, - "data_description": { - "output_number": "Enter output number to configure", - "name": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::name%]", - "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::type%]" - } - }, "reconfigure": { - "title": "Reconfigure output {output_number}", "data": { "name": "[%key:common::config_flow::data::name%]", "type": "[%key:component::satel_integra::config_subentries::output::step::user::data::type%]" @@ -120,45 +40,131 @@ "data_description": { "name": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::name%]", "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::type%]" - } + }, + "title": "Reconfigure output {output_number}" + }, + "user": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "output_number": "Output number", + "type": "Output type" + }, + "data_description": { + "name": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::name%]", + "output_number": "Enter output number to configure", + "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::type%]" + }, + "title": "Configure output" } - }, + } + }, + "partition": { + "entry_type": "Partition", "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "initiate_flow": { + "user": "Add partition" + }, + "step": { + "reconfigure": { + "data": { + "arm_home_mode": "[%key:component::satel_integra::config_subentries::partition::step::user::data::arm_home_mode%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "arm_home_mode": "[%key:component::satel_integra::config_subentries::partition::step::user::data_description::arm_home_mode%]" + }, + "title": "Reconfigure partition {partition_number}" + }, + "user": { + "data": { + "arm_home_mode": "Arm home mode", + "name": "[%key:common::config_flow::data::name%]", + "partition_number": "Partition number" + }, + "data_description": { + "arm_home_mode": "The mode in which the partition is armed when 'arm home' is used. For more information on what the differences are between them, please refer to Satel Integra manual.", + "name": "The name to give to the alarm panel", + "partition_number": "Enter partition number to configure" + }, + "title": "Configure partition" + } } }, "switchable_output": { "entry_type": "Switchable output", + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "initiate_flow": { "user": "Add switchable output" }, "step": { - "user": { - "title": "Configure switchable output", - "data": { - "switchable_output_number": "Switchable output number", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "switchable_output_number": "Enter switchable output number to configure", - "name": "The name to give to the switch" - } - }, "reconfigure": { - "title": "Reconfigure switchable output {switchable_output_number}", "data": { "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "name": "[%key:component::satel_integra::config_subentries::switchable_output::step::user::data_description::name%]" - } + }, + "title": "Reconfigure switchable output {switchable_output_number}" + }, + "user": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "switchable_output_number": "Switchable output number" + }, + "data_description": { + "name": "The name to give to the switch", + "switchable_output_number": "Enter switchable output number to configure" + }, + "title": "Configure switchable output" } - }, + } + }, + "zone": { + "entry_type": "Zone", "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "initiate_flow": { + "user": "Add zone" + }, + "step": { + "reconfigure": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data::type%]" + }, + "data_description": { + "name": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::name%]", + "type": "[%key:component::satel_integra::config_subentries::zone::step::user::data_description::type%]" + }, + "title": "Reconfigure zone {zone_number}" + }, + "user": { + "data": { + "name": "[%key:common::config_flow::data::name%]", + "type": "Zone type", + "zone_number": "Zone number" + }, + "data_description": { + "name": "The name to give to the sensor", + "type": "Choose the device class you would like the sensor to show as", + "zone_number": "Enter zone number to configure" + }, + "title": "Configure zone" + } } } }, + "issues": { + "deprecated_yaml_import_issue_cannot_connect": { + "description": "Configuring {integration_title} using YAML is being removed but there was an connection error importing your existing configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the `{domain}` YAML configuration from your configuration.yaml file and add the {integration_title} integration manually.", + "title": "YAML import failed due to a connection error" + } + }, "options": { "step": { "init": { @@ -171,12 +177,6 @@ } } }, - "issues": { - "deprecated_yaml_import_issue_cannot_connect": { - "title": "YAML import failed due to a connection error", - "description": "Configuring {integration_title} using YAML is being removed but there was an connection error importing your existing configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the `{domain}` YAML configuration from your configuration.yaml file and add the {integration_title} integration manually." - } - }, "selector": { "binary_sensor_device_class": { "options": { diff --git a/homeassistant/components/scene/icons.json b/homeassistant/components/scene/icons.json index b08d06fb434..aa5482d033f 100644 --- a/homeassistant/components/scene/icons.json +++ b/homeassistant/components/scene/icons.json @@ -5,12 +5,6 @@ } }, "services": { - "turn_on": { - "service": "mdi:power" - }, - "reload": { - "service": "mdi:reload" - }, "apply": { "service": "mdi:check" }, @@ -19,6 +13,12 @@ }, "delete": { "service": "mdi:delete" + }, + "reload": { + "service": "mdi:reload" + }, + "turn_on": { + "service": "mdi:power" } } } diff --git a/homeassistant/components/scene/strings.json b/homeassistant/components/scene/strings.json index 4c3e7ad43fe..d40df919440 100644 --- a/homeassistant/components/scene/strings.json +++ b/homeassistant/components/scene/strings.json @@ -1,63 +1,63 @@ { - "title": "Scene", + "exceptions": { + "entity_not_dynamically_created": { + "message": "The scene {entity_id} is not created with action `scene.create`." + }, + "entity_not_scene": { + "message": "{entity_id} is not a valid entity ID of a scene." + } + }, "services": { - "turn_on": { - "name": "Activate", - "description": "Activates a scene.", - "fields": { - "transition": { - "name": "Transition", - "description": "Time it takes the devices to transition into the states defined in the scene." - } - } - }, - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads the scenes from the YAML-configuration." - }, "apply": { - "name": "Apply", "description": "Activates a scene with configuration.", "fields": { "entities": { - "name": "Entities state", - "description": "List of entities and their target state." + "description": "List of entities and their target state.", + "name": "Entities state" }, "transition": { - "name": "Transition", - "description": "Time it takes the devices to transition into the states defined in the scene." + "description": "Time it takes the devices to transition into the states defined in the scene.", + "name": "Transition" } - } + }, + "name": "Apply" }, "create": { - "name": "Create", "description": "Creates a new scene.", "fields": { - "scene_id": { - "name": "Scene entity ID", - "description": "The entity ID of the new scene." - }, "entities": { - "name": "Entity states", - "description": "List of entities and their target state. If your entities are already in the target state right now, use 'Entities snapshot' instead." + "description": "List of entities and their target state. If your entities are already in the target state right now, use 'Entities snapshot' instead.", + "name": "Entity states" + }, + "scene_id": { + "description": "The entity ID of the new scene.", + "name": "Scene entity ID" }, "snapshot_entities": { - "name": "Entities snapshot", - "description": "List of entities to be included in the snapshot. By taking a snapshot, you record the current state of those entities. If you do not want to use the current state of all your entities for this scene, you can combine 'Entities snapshot' with 'Entity states'." + "description": "List of entities to be included in the snapshot. By taking a snapshot, you record the current state of those entities. If you do not want to use the current state of all your entities for this scene, you can combine 'Entities snapshot' with 'Entity states'.", + "name": "Entities snapshot" } - } + }, + "name": "Create" }, "delete": { - "name": "Delete", - "description": "Deletes a dynamically created scene." + "description": "Deletes a dynamically created scene.", + "name": "Delete" + }, + "reload": { + "description": "Reloads the scenes from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, + "turn_on": { + "description": "Activates a scene.", + "fields": { + "transition": { + "description": "Time it takes the devices to transition into the states defined in the scene.", + "name": "Transition" + } + }, + "name": "Activate" } }, - "exceptions": { - "entity_not_scene": { - "message": "{entity_id} is not a valid entity ID of a scene." - }, - "entity_not_dynamically_created": { - "message": "The scene {entity_id} is not created with action `scene.create`." - } - } + "title": "Scene" } diff --git a/homeassistant/components/schedule/icons.json b/homeassistant/components/schedule/icons.json index 7d631cfd42d..f7b3ca11370 100644 --- a/homeassistant/components/schedule/icons.json +++ b/homeassistant/components/schedule/icons.json @@ -1,10 +1,10 @@ { "services": { - "reload": { - "service": "mdi:reload" - }, "get_schedule": { "service": "mdi:calendar-export" + }, + "reload": { + "service": "mdi:reload" } } } diff --git a/homeassistant/components/schedule/strings.json b/homeassistant/components/schedule/strings.json index bb81c029dbf..b56d0252e4f 100644 --- a/homeassistant/components/schedule/strings.json +++ b/homeassistant/components/schedule/strings.json @@ -1,5 +1,4 @@ { - "title": "Schedule", "entity_component": { "_": { "name": "[%key:component::schedule::title%]", @@ -11,8 +10,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "next_event": { @@ -22,13 +21,14 @@ } }, "services": { - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads schedules from the YAML-configuration." - }, "get_schedule": { - "name": "Get schedule", - "description": "Retrieves the configured time ranges of one or multiple schedules." + "description": "Retrieves the configured time ranges of one or multiple schedules.", + "name": "Get schedule" + }, + "reload": { + "description": "Reloads schedules from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Schedule" } diff --git a/homeassistant/components/schlage/strings.json b/homeassistant/components/schlage/strings.json index e37f4789580..838dc049808 100644 --- a/homeassistant/components/schlage/strings.json +++ b/homeassistant/components/schlage/strings.json @@ -1,28 +1,28 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Schlage integration needs to re-authenticate your account", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_account": "The user credentials provided do not match this Schlage account." }, "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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "The user credentials provided do not match this Schlage account." + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The Schlage integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "entity": { diff --git a/homeassistant/components/scrape/strings.json b/homeassistant/components/scrape/strings.json index 7faa3ec91db..8a849ac6288 100644 --- a/homeassistant/components/scrape/strings.json +++ b/homeassistant/components/scrape/strings.json @@ -7,131 +7,131 @@ "resource_error": "Could not update rest data. Verify your configuration" }, "step": { - "user": { - "data": { - "resource": "Resource", - "authentication": "Select authentication method", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "headers": "Headers", - "method": "Method", - "payload": "Payload", - "timeout": "Timeout", - "encoding": "Character encoding" - }, - "data_description": { - "resource": "The URL to the website that contains the value.", - "authentication": "Type of the HTTP authentication. Either basic or digest.", - "verify_ssl": "Enables/disables verification of SSL/TLS certificate, for example if it is self-signed.", - "headers": "Headers to use for the web request.", - "timeout": "Timeout for connection to website.", - "encoding": "Character encoding to use. Defaults to UTF-8.", - "payload": "Payload to use when method is POST." - } - }, "sensor": { "data": { - "name": "[%key:common::config_flow::data::name%]", "attribute": "Attribute", - "index": "Index", - "select": "Select", - "value_template": "Value template", "availability": "Availability template", "device_class": "Device class", + "index": "Index", + "name": "[%key:common::config_flow::data::name%]", + "select": "Select", "state_class": "State class", - "unit_of_measurement": "Unit of measurement" + "unit_of_measurement": "Unit of measurement", + "value_template": "Value template" }, "data_description": { - "select": "Defines what tag to search for. Check Beautifulsoup CSS selectors for details.", "attribute": "Get value of an attribute on the selected tag.", - "index": "Defines which of the elements returned by the CSS selector to use.", - "value_template": "Defines a template to get the state of the sensor.", "availability": "Defines a template to get the availability of the sensor.", "device_class": "The type/class of the sensor to set the icon in the frontend.", + "index": "Defines which of the elements returned by the CSS selector to use.", + "select": "Defines what tag to search for. Check Beautifulsoup CSS selectors for details.", "state_class": "The state_class of the sensor.", - "unit_of_measurement": "Choose unit of measurement or create your own." + "unit_of_measurement": "Choose unit of measurement or create your own.", + "value_template": "Defines a template to get the state of the sensor." + } + }, + "user": { + "data": { + "authentication": "Select authentication method", + "encoding": "Character encoding", + "headers": "Headers", + "method": "Method", + "password": "[%key:common::config_flow::data::password%]", + "payload": "Payload", + "resource": "Resource", + "timeout": "Timeout", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "authentication": "Type of the HTTP authentication. Either basic or digest.", + "encoding": "Character encoding to use. Defaults to UTF-8.", + "headers": "Headers to use for the web request.", + "payload": "Payload to use when method is POST.", + "resource": "The URL to the website that contains the value.", + "timeout": "Timeout for connection to website.", + "verify_ssl": "Enables/disables verification of SSL/TLS certificate, for example if it is self-signed." } } } }, "options": { "step": { - "init": { - "menu_options": { - "add_sensor": "Add sensor", - "select_edit_sensor": "Configure sensor", - "remove_sensor": "Remove sensor", - "resource": "Configure resource" - } - }, "add_sensor": { "data": { - "name": "[%key:common::config_flow::data::name%]", "attribute": "[%key:component::scrape::config::step::sensor::data::attribute%]", - "index": "[%key:component::scrape::config::step::sensor::data::index%]", - "select": "[%key:component::scrape::config::step::sensor::data::select%]", - "value_template": "[%key:component::scrape::config::step::sensor::data::value_template%]", "availability": "[%key:component::scrape::config::step::sensor::data::availability%]", "device_class": "[%key:component::scrape::config::step::sensor::data::device_class%]", + "index": "[%key:component::scrape::config::step::sensor::data::index%]", + "name": "[%key:common::config_flow::data::name%]", + "select": "[%key:component::scrape::config::step::sensor::data::select%]", "state_class": "[%key:component::scrape::config::step::sensor::data::state_class%]", - "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data::unit_of_measurement%]" + "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data::unit_of_measurement%]", + "value_template": "[%key:component::scrape::config::step::sensor::data::value_template%]" }, "data_description": { - "select": "[%key:component::scrape::config::step::sensor::data_description::select%]", "attribute": "[%key:component::scrape::config::step::sensor::data_description::attribute%]", - "index": "[%key:component::scrape::config::step::sensor::data_description::index%]", - "value_template": "[%key:component::scrape::config::step::sensor::data_description::value_template%]", "availability": "[%key:component::scrape::config::step::sensor::data_description::availability%]", "device_class": "[%key:component::scrape::config::step::sensor::data_description::device_class%]", + "index": "[%key:component::scrape::config::step::sensor::data_description::index%]", + "select": "[%key:component::scrape::config::step::sensor::data_description::select%]", "state_class": "[%key:component::scrape::config::step::sensor::data_description::state_class%]", - "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data_description::unit_of_measurement%]" + "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data_description::unit_of_measurement%]", + "value_template": "[%key:component::scrape::config::step::sensor::data_description::value_template%]" } }, "edit_sensor": { "data": { - "name": "[%key:common::config_flow::data::name%]", "attribute": "[%key:component::scrape::config::step::sensor::data::attribute%]", - "index": "[%key:component::scrape::config::step::sensor::data::index%]", - "select": "[%key:component::scrape::config::step::sensor::data::select%]", - "value_template": "[%key:component::scrape::config::step::sensor::data::value_template%]", "availability": "[%key:component::scrape::config::step::sensor::data::availability%]", "device_class": "[%key:component::scrape::config::step::sensor::data::device_class%]", + "index": "[%key:component::scrape::config::step::sensor::data::index%]", + "name": "[%key:common::config_flow::data::name%]", + "select": "[%key:component::scrape::config::step::sensor::data::select%]", "state_class": "[%key:component::scrape::config::step::sensor::data::state_class%]", - "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data::unit_of_measurement%]" + "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data::unit_of_measurement%]", + "value_template": "[%key:component::scrape::config::step::sensor::data::value_template%]" }, "data_description": { - "select": "[%key:component::scrape::config::step::sensor::data_description::select%]", "attribute": "[%key:component::scrape::config::step::sensor::data_description::attribute%]", - "index": "[%key:component::scrape::config::step::sensor::data_description::index%]", - "value_template": "[%key:component::scrape::config::step::sensor::data_description::value_template%]", "availability": "[%key:component::scrape::config::step::sensor::data_description::availability%]", "device_class": "[%key:component::scrape::config::step::sensor::data_description::device_class%]", + "index": "[%key:component::scrape::config::step::sensor::data_description::index%]", + "select": "[%key:component::scrape::config::step::sensor::data_description::select%]", "state_class": "[%key:component::scrape::config::step::sensor::data_description::state_class%]", - "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data_description::unit_of_measurement%]" + "unit_of_measurement": "[%key:component::scrape::config::step::sensor::data_description::unit_of_measurement%]", + "value_template": "[%key:component::scrape::config::step::sensor::data_description::value_template%]" + } + }, + "init": { + "menu_options": { + "add_sensor": "Add sensor", + "remove_sensor": "Remove sensor", + "resource": "Configure resource", + "select_edit_sensor": "Configure sensor" } }, "resource": { "data": { - "resource": "[%key:component::scrape::config::step::user::data::resource%]", - "method": "[%key:component::scrape::config::step::user::data::method%]", - "payload": "[%key:component::scrape::config::step::user::data::payload%]", "authentication": "[%key:component::scrape::config::step::user::data::authentication%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", + "encoding": "[%key:component::scrape::config::step::user::data::encoding%]", "headers": "[%key:component::scrape::config::step::user::data::headers%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", + "method": "[%key:component::scrape::config::step::user::data::method%]", + "password": "[%key:common::config_flow::data::password%]", + "payload": "[%key:component::scrape::config::step::user::data::payload%]", + "resource": "[%key:component::scrape::config::step::user::data::resource%]", "timeout": "[%key:component::scrape::config::step::user::data::timeout%]", - "encoding": "[%key:component::scrape::config::step::user::data::encoding%]" + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, "data_description": { - "resource": "[%key:component::scrape::config::step::user::data_description::resource%]", "authentication": "[%key:component::scrape::config::step::user::data_description::authentication%]", - "headers": "[%key:component::scrape::config::step::user::data_description::headers%]", - "verify_ssl": "[%key:component::scrape::config::step::user::data_description::verify_ssl%]", - "timeout": "[%key:component::scrape::config::step::user::data_description::timeout%]", "encoding": "[%key:component::scrape::config::step::user::data_description::encoding%]", - "payload": "[%key:component::scrape::config::step::user::data_description::payload%]" + "headers": "[%key:component::scrape::config::step::user::data_description::headers%]", + "payload": "[%key:component::scrape::config::step::user::data_description::payload%]", + "resource": "[%key:component::scrape::config::step::user::data_description::resource%]", + "timeout": "[%key:component::scrape::config::step::user::data_description::timeout%]", + "verify_ssl": "[%key:component::scrape::config::step::user::data_description::verify_ssl%]" } } } @@ -171,9 +171,9 @@ "ozone": "[%key:component::sensor::entity_component::ozone::name%]", "ph": "[%key:component::sensor::entity_component::ph::name%]", "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "power": "[%key:component::sensor::entity_component::power::name%]", "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", diff --git a/homeassistant/components/screenlogic/strings.json b/homeassistant/components/screenlogic/strings.json index 97e12277eb6..026597eaff9 100644 --- a/homeassistant/components/screenlogic/strings.json +++ b/homeassistant/components/screenlogic/strings.json @@ -1,86 +1,35 @@ { "common": { - "service_config_entry_name": "Config entry", - "service_config_entry_description": "The config entry to use for this action.", + "climate_preset_dont_change": "Don't change", + "climate_preset_heater": "Heater", "climate_preset_solar": "Solar", "climate_preset_solar_preferred": "Solar preferred", - "climate_preset_heater": "Heater", - "climate_preset_dont_change": "Don't change" + "service_config_entry_description": "The config entry to use for this action.", + "service_config_entry_name": "Config entry" }, "config": { - "flow_title": "{name}", + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, + "flow_title": "{name}", "step": { "gateway_entry": { - "title": "ScreenLogic", - "description": "Enter your ScreenLogic gateway information.", "data": { "ip_address": "[%key:common::config_flow::data::ip%]", "port": "[%key:common::config_flow::data::port%]" - } + }, + "description": "Enter your ScreenLogic gateway information.", + "title": "ScreenLogic" }, "gateway_select": { - "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]", - "description": "The following ScreenLogic gateways were discovered. Please select one to configure, or choose to manually configure a ScreenLogic gateway.", "data": { "selected_gateway": "Gateway" - } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "options": { - "step": { - "init": { - "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]", - "description": "Specify settings for {gateway_name}", - "data": { - "scan_interval": "Seconds between scans" - } - } - } - }, - "services": { - "set_color_mode": { - "name": "Set color mode", - "description": "Sets the color mode for all color-capable lights attached to this ScreenLogic gateway.", - "fields": { - "config_entry": { - "name": "[%key:component::screenlogic::common::service_config_entry_name%]", - "description": "[%key:component::screenlogic::common::service_config_entry_description%]" }, - "color_mode": { - "name": "Color mode", - "description": "The ScreenLogic color mode to set." - } - } - }, - "start_super_chlorination": { - "name": "Start super chlorination", - "description": "Begins super chlorination, running for the specified period or 24 hours if none is specified.", - "fields": { - "config_entry": { - "name": "[%key:component::screenlogic::common::service_config_entry_name%]", - "description": "[%key:component::screenlogic::common::service_config_entry_description%]" - }, - "runtime": { - "name": "Run time", - "description": "Number of hours for super chlorination to run." - } - } - }, - "stop_super_chlorination": { - "name": "Stop super chlorination", - "description": "Stops super chlorination.", - "fields": { - "config_entry": { - "name": "[%key:component::screenlogic::common::service_config_entry_name%]", - "description": "[%key:component::screenlogic::common::service_config_entry_description%]" - } + "description": "The following ScreenLogic gateways were discovered. Please select one to configure, or choose to manually configure a ScreenLogic gateway.", + "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]" } } }, @@ -89,47 +38,47 @@ "active_alert": { "name": "Active alert" }, - "pool_delay": { - "name": "Pool delay" - }, - "spa_delay": { - "name": "Spa delay" - }, - "cleaner_delay": { - "name": "Cleaner delay" - }, - "freeze_mode": { - "name": "Freeze mode" - }, - "flow_alarm": { - "name": "Flow alarm" - }, "chem_high_alarm": { "name": "{chem} high alarm" }, + "chem_limit": { + "name": "{chem} dose limit reached" + }, "chem_low_alarm": { "name": "{chem} low alarm" }, "chem_supply_alarm": { "name": "{chem} supply alarm" }, - "probe_fault_alarm": { - "name": "Probe fault" + "cleaner_delay": { + "name": "Cleaner delay" }, - "chem_limit": { - "name": "{chem} dose limit reached" + "corosive": { + "name": "SI corrosive" + }, + "flow_alarm": { + "name": "Flow alarm" + }, + "freeze_mode": { + "name": "Freeze mode" }, "ph_lockout": { "name": "pH lockout" }, - "corosive": { - "name": "SI corrosive" + "pool_delay": { + "name": "Pool delay" + }, + "probe_fault_alarm": { + "name": "Probe fault" }, "scaling": { "name": "SI scaling" }, "scg_state": { "name": "Chlorinator" + }, + "spa_delay": { + "name": "Spa delay" } }, "climate": { @@ -138,10 +87,10 @@ "state_attributes": { "preset_mode": { "state": { - "solar": "[%key:component::screenlogic::common::climate_preset_solar%]", - "solar_preferred": "[%key:component::screenlogic::common::climate_preset_solar_preferred%]", + "dont_change": "[%key:component::screenlogic::common::climate_preset_dont_change%]", "heater": "[%key:component::screenlogic::common::climate_preset_heater%]", - "dont_change": "[%key:component::screenlogic::common::climate_preset_dont_change%]" + "solar": "[%key:component::screenlogic::common::climate_preset_solar%]", + "solar_preferred": "[%key:component::screenlogic::common::climate_preset_solar_preferred%]" } } } @@ -151,10 +100,10 @@ "state_attributes": { "preset_mode": { "state": { - "solar": "[%key:component::screenlogic::common::climate_preset_solar%]", - "solar_preferred": "[%key:component::screenlogic::common::climate_preset_solar_preferred%]", + "dont_change": "[%key:component::screenlogic::common::climate_preset_dont_change%]", "heater": "[%key:component::screenlogic::common::climate_preset_heater%]", - "dont_change": "[%key:component::screenlogic::common::climate_preset_dont_change%]" + "solar": "[%key:component::screenlogic::common::climate_preset_solar%]", + "solar_preferred": "[%key:component::screenlogic::common::climate_preset_solar_preferred%]" } } } @@ -167,58 +116,26 @@ "cya": { "name": "Cyanuric acid" }, - "total_alkalinity": { - "name": "Total alkalinity" + "pool_setpoint": { + "name": "Pool chlorinator setpoint" }, "salt_tds_ppm": { "name": "Salt/TDS" }, - "pool_setpoint": { - "name": "Pool chlorinator setpoint" - }, "spa_setpoint": { "name": "Spa chlorinator setpoint" + }, + "total_alkalinity": { + "name": "Total alkalinity" } }, "sensor": { "air_temperature": { "name": "Air temperature" }, - "controller_state": { - "name": "Controller state", - "state": { - "ready": "Ready", - "sync": "Sync", - "service": "Service" - } - }, - "chem_now": { - "name": "{chem} now" - }, - "chem_supply_level": { - "name": "{chem} supply level" - }, - "ph_probe_water_temp": { - "name": "pH probe water temperature" - }, - "saturation": { - "name": "Saturation index" - }, - "chem_setpoint": { - "name": "{chem} setpoint" - }, "calcium_hardness": { "name": "[%key:component::screenlogic::entity::number::calcium_hardness::name%]" }, - "cya": { - "name": "[%key:component::screenlogic::entity::number::cya::name%]" - }, - "total_alkalinity": { - "name": "[%key:component::screenlogic::entity::number::total_alkalinity::name%]" - }, - "salt_tds_ppm": { - "name": "[%key:component::screenlogic::entity::number::salt_tds_ppm::name%]" - }, "chem_dose_state": { "name": "{chem} dosing state", "state": { @@ -233,12 +150,95 @@ "chem_last_dose_volume": { "name": "{chem} last dose volume" }, + "chem_now": { + "name": "{chem} now" + }, + "chem_setpoint": { + "name": "{chem} setpoint" + }, + "chem_supply_level": { + "name": "{chem} supply level" + }, + "controller_state": { + "name": "Controller state", + "state": { + "ready": "Ready", + "service": "Service", + "sync": "Sync" + } + }, + "cya": { + "name": "[%key:component::screenlogic::entity::number::cya::name%]" + }, + "ph_probe_water_temp": { + "name": "pH probe water temperature" + }, "salt_ppm": { "name": "Chlorinator salt" }, + "salt_tds_ppm": { + "name": "[%key:component::screenlogic::entity::number::salt_tds_ppm::name%]" + }, + "saturation": { + "name": "Saturation index" + }, "super_chlor_timer": { "name": "Super chlorination timer" + }, + "total_alkalinity": { + "name": "[%key:component::screenlogic::entity::number::total_alkalinity::name%]" } } + }, + "options": { + "step": { + "init": { + "data": { + "scan_interval": "Seconds between scans" + }, + "description": "Specify settings for {gateway_name}", + "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]" + } + } + }, + "services": { + "set_color_mode": { + "description": "Sets the color mode for all color-capable lights attached to this ScreenLogic gateway.", + "fields": { + "color_mode": { + "description": "The ScreenLogic color mode to set.", + "name": "Color mode" + }, + "config_entry": { + "description": "[%key:component::screenlogic::common::service_config_entry_description%]", + "name": "[%key:component::screenlogic::common::service_config_entry_name%]" + } + }, + "name": "Set color mode" + }, + "start_super_chlorination": { + "description": "Begins super chlorination, running for the specified period or 24 hours if none is specified.", + "fields": { + "config_entry": { + "description": "[%key:component::screenlogic::common::service_config_entry_description%]", + "name": "[%key:component::screenlogic::common::service_config_entry_name%]" + }, + "runtime": { + "description": "Number of hours for super chlorination to run.", + "name": "Run time" + } + }, + "name": "Start super chlorination" + }, + "stop_super_chlorination": { + "description": "Stops super chlorination.", + "fields": { + "config_entry": { + "description": "[%key:component::screenlogic::common::service_config_entry_description%]", + "name": "[%key:component::screenlogic::common::service_config_entry_name%]" + } + }, + "name": "Stop super chlorination" + } } } diff --git a/homeassistant/components/script/icons.json b/homeassistant/components/script/icons.json index 7e160941c05..2303713b178 100644 --- a/homeassistant/components/script/icons.json +++ b/homeassistant/components/script/icons.json @@ -11,14 +11,14 @@ "reload": { "service": "mdi:reload" }, - "turn_on": { - "service": "mdi:script-text-play" + "toggle": { + "service": "mdi:script-text" }, "turn_off": { "service": "mdi:script-text" }, - "toggle": { - "service": "mdi:script-text" + "turn_on": { + "service": "mdi:script-text-play" } } } diff --git a/homeassistant/components/script/strings.json b/homeassistant/components/script/strings.json index d4fb227cf86..cde7a962112 100644 --- a/homeassistant/components/script/strings.json +++ b/homeassistant/components/script/strings.json @@ -2,7 +2,6 @@ "common": { "validation_failed_title": "Script {name} failed to set up" }, - "title": "Script", "entity_component": { "_": { "name": "[%key:component::script::title%]", @@ -37,34 +36,35 @@ }, "issues": { "validation_failed_blueprint": { - "title": "[%key:component::script::common::validation_failed_title%]", - "description": "The blueprinted script \"{name}\" (`{entity_id}`) failed to set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration." + "description": "The blueprinted script \"{name}\" (`{entity_id}`) failed to set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration.", + "title": "[%key:component::script::common::validation_failed_title%]" }, "validation_failed_schema": { - "title": "[%key:component::script::common::validation_failed_title%]", - "description": "The script \"{name}\" (`{entity_id}`) is not active because the configuration has errors.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration." + "description": "The script \"{name}\" (`{entity_id}`) is not active because the configuration has errors.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration.", + "title": "[%key:component::script::common::validation_failed_title%]" }, "validation_failed_sequence": { - "title": "[%key:component::script::common::validation_failed_title%]", - "description": "The script \"{name}\" (`{entity_id}`) is not active because its sequence could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration." + "description": "The script \"{name}\" (`{entity_id}`) is not active because its sequence could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the script]({edit}) to correct it, then save and reload the script configuration.", + "title": "[%key:component::script::common::validation_failed_title%]" } }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads all the available scripts." - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Runs the sequence of actions defined in a script." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Stops a running script." + "description": "Reloads all the available scripts.", + "name": "[%key:common::action::reload%]" }, "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Starts a script if it isn't running, stops it otherwise." + "description": "Starts a script if it isn't running, stops it otherwise.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Stops a running script.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Runs the sequence of actions defined in a script.", + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Script" } diff --git a/homeassistant/components/season/icons.json b/homeassistant/components/season/icons.json index 160ab257338..963b5c3f079 100644 --- a/homeassistant/components/season/icons.json +++ b/homeassistant/components/season/icons.json @@ -4,9 +4,9 @@ "season": { "default": "mdi:cloud", "state": { + "autumn": "mdi:leaf", "spring": "mdi:flower", "summer": "mdi:sunglasses", - "autumn": "mdi:leaf", "winter": "mdi:snowflake" } } diff --git a/homeassistant/components/season/strings.json b/homeassistant/components/season/strings.json index b0313d227a3..f7ac146e835 100644 --- a/homeassistant/components/season/strings.json +++ b/homeassistant/components/season/strings.json @@ -1,24 +1,23 @@ { - "title": "Season", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "step": { "user": { "data": { "type": "Type of season definition" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "entity": { "sensor": { "season": { "state": { + "autumn": "Autumn", "spring": "Spring", "summer": "Summer", - "autumn": "Autumn", "winter": "Winter" } } @@ -31,5 +30,6 @@ "meteorological": "Meteorological" } } - } + }, + "title": "Season" } diff --git a/homeassistant/components/select/strings.json b/homeassistant/components/select/strings.json index 02c1765133a..81c7a33b793 100644 --- a/homeassistant/components/select/strings.json +++ b/homeassistant/components/select/strings.json @@ -1,9 +1,5 @@ { - "title": "Select", "device_automation": { - "trigger_type": { - "current_option_changed": "{entity_name} option changed" - }, "action_type": { "select_first": "Change {entity_name} to first option", "select_last": "Change {entity_name} to last option", @@ -15,11 +11,14 @@ "selected_option": "Current {entity_name} selected option" }, "extra_fields": { - "for": "[%key:common::device_automation::extra_fields::for%]", - "to": "[%key:common::device_automation::extra_fields::to%]", "cycle": "Cycle", + "for": "[%key:common::device_automation::extra_fields::for%]", "from": "From", - "option": "Option" + "option": "Option", + "to": "[%key:common::device_automation::extra_fields::to%]" + }, + "trigger_type": { + "current_option_changed": "{entity_name} option changed" } }, "entity_component": { @@ -32,49 +31,50 @@ } } }, - "services": { - "select_first": { - "name": "First", - "description": "Selects the first option." - }, - "select_last": { - "name": "Last", - "description": "Selects the last option." - }, - "select_next": { - "name": "Next", - "description": "Selects the next option.", - "fields": { - "cycle": { - "name": "Cycle", - "description": "If the option should cycle from the last to the first." - } - } - }, - "select_option": { - "name": "Select", - "description": "Selects an option.", - "fields": { - "option": { - "name": "Option", - "description": "Option to be selected." - } - } - }, - "select_previous": { - "name": "Previous", - "description": "Selects the previous option.", - "fields": { - "cycle": { - "name": "Cycle", - "description": "If the option should cycle from the first to the last." - } - } - } - }, "exceptions": { "not_valid_option": { "message": "Option {option} is not valid for entity {entity_id}, valid options are: {options}." } - } + }, + "services": { + "select_first": { + "description": "Selects the first option.", + "name": "First" + }, + "select_last": { + "description": "Selects the last option.", + "name": "Last" + }, + "select_next": { + "description": "Selects the next option.", + "fields": { + "cycle": { + "description": "If the option should cycle from the last to the first.", + "name": "Cycle" + } + }, + "name": "Next" + }, + "select_option": { + "description": "Selects an option.", + "fields": { + "option": { + "description": "Option to be selected.", + "name": "Option" + } + }, + "name": "Select" + }, + "select_previous": { + "description": "Selects the previous option.", + "fields": { + "cycle": { + "description": "If the option should cycle from the first to the last.", + "name": "Cycle" + } + }, + "name": "Previous" + } + }, + "title": "Select" } diff --git a/homeassistant/components/sense/strings.json b/homeassistant/components/sense/strings.json index c9ff5527940..5248f02181d 100644 --- a/homeassistant/components/sense/strings.json +++ b/homeassistant/components/sense/strings.json @@ -1,54 +1,54 @@ { "config": { - "step": { - "user": { - "title": "Connect to your Sense Energy Monitor", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]", - "timeout": "Timeout" - } - }, - "validation": { - "title": "Sense multi-factor authentication", - "data": { - "code": "Verification code" - } - }, - "reauth_validate": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Sense integration needs to re-authenticate your account {email}.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_validate": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The Sense integration needs to re-authenticate your account {email}.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]", + "timeout": "Timeout" + }, + "title": "Connect to your Sense Energy Monitor" + }, + "validation": { + "data": { + "code": "Verification code" + }, + "title": "Sense multi-factor authentication" + } } }, "entity": { "sensor": { + "bill_energy": { + "name": "Bill energy" + }, "daily_energy": { "name": "Daily energy" }, - "weekly_energy": { - "name": "Weekly energy" - }, "monthly_energy": { "name": "Monthly energy" }, + "weekly_energy": { + "name": "Weekly energy" + }, "yearly_energy": { "name": "Yearly energy" - }, - "bill_energy": { - "name": "Bill energy" } } } diff --git a/homeassistant/components/sensibo/icons.json b/homeassistant/components/sensibo/icons.json index f97f0f1e80d..93e970c3765 100644 --- a/homeassistant/components/sensibo/icons.json +++ b/homeassistant/components/sensibo/icons.json @@ -19,28 +19,28 @@ } }, "sensor": { - "filter_last_reset": { - "default": "mdi:timer" + "airq_tvoc": { + "default": "mdi:air-filter" }, "battery_voltage": { "default": "mdi:battery" }, + "filter_last_reset": { + "default": "mdi:timer" + }, "sensitivity": { "default": "mdi:air-filter" }, "timer_time": { "default": "mdi:timer" - }, - "airq_tvoc": { - "default": "mdi:air-filter" } }, "switch": { - "timer_on_switch": { - "default": "mdi:timer" - }, "climate_react_switch": { "default": "mdi:wizard-hat" + }, + "timer_on_switch": { + "default": "mdi:timer" } } }, @@ -48,18 +48,18 @@ "assume_state": { "service": "mdi:shape-outline" }, - "enable_timer": { - "service": "mdi:timer-play" + "enable_climate_react": { + "service": "mdi:wizard-hat" }, "enable_pure_boost": { "service": "mdi:air-filter" }, + "enable_timer": { + "service": "mdi:timer-play" + }, "full_state": { "service": "mdi:shape" }, - "enable_climate_react": { - "service": "mdi:wizard-hat" - }, "get_device_capabilities": { "service": "mdi:shape-outline" } diff --git a/homeassistant/components/sensibo/strings.json b/homeassistant/components/sensibo/strings.json index 1071a7739f6..f155d9dfb49 100644 --- a/homeassistant/components/sensibo/strings.json +++ b/homeassistant/components/sensibo/strings.json @@ -7,20 +7,12 @@ }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "incorrect_api_key": "The provided API key does not match for this account", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "no_devices": "No devices found, ensure your Sensibo devices are correctly set up and have a remote defined", - "no_username": "Could not retrieve username, ensure your Sensibo account has a proper username and try again", - "incorrect_api_key": "The provided API key does not match for this account" + "no_username": "Could not retrieve username, ensure your Sensibo account has a proper username and try again" }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "Follow the [documentation]({url}) to get your API key" - } - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" @@ -36,6 +28,14 @@ "data_description": { "api_key": "[%key:component::sensibo::config::step::user::data_description::api_key%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "Follow the [documentation]({url}) to get your API key" + } } } }, @@ -47,9 +47,6 @@ "is_main_sensor": { "name": "Main sensor" }, - "room_occupied": { - "name": "Room occupied" - }, "pure_ac_integration": { "name": "Pure Boost linked with AC" }, @@ -61,6 +58,9 @@ }, "pure_prime_integration": { "name": "Pure Boost linked with outdoor air quality" + }, + "room_occupied": { + "name": "Room occupied" } }, "button": { @@ -68,143 +68,83 @@ "name": "Reset filter" } }, + "climate": { + "climate_device": { + "state_attributes": { + "fan_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "medium_high": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_high%]", + "medium_low": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_low%]", + "quiet": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::quiet%]", + "strong": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::strong%]" + } + }, + "swing_horizontal_mode": { + "state": { + "fixedcenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenter%]", + "fixedcenterleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterleft%]", + "fixedcenterright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterright%]", + "fixedleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleft%]", + "fixedleftright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleftright%]", + "fixedright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedright%]", + "rangecenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangecenter%]", + "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]", + "rangeleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangeleft%]", + "rangeright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangeright%]", + "stopped": "[%key:common::state::off%]" + } + }, + "swing_mode": { + "state": { + "both": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::state::both%]", + "fixedbottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedbottom%]", + "fixedmiddle": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddle%]", + "fixedmiddlebottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddlebottom%]", + "fixedmiddletop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddletop%]", + "fixedtop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedtop%]", + "horizontal": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::horizontal%]", + "rangebottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangebottom%]", + "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]", + "rangemiddle": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangemiddle%]", + "rangetop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangetop%]", + "stopped": "[%key:common::state::off%]" + } + } + } + } + }, "number": { - "calibration_temperature": { - "name": "Temperature calibration" - }, "calibration_humidity": { "name": "Humidity calibration" + }, + "calibration_temperature": { + "name": "Temperature calibration" } }, "select": { "light": { "name": "[%key:component::light::title%]", "state": { - "on": "[%key:common::state::on%]", "dim": "Dim", - "off": "[%key:common::state::off%]" + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" } } }, "sensor": { - "filter_last_reset": { - "name": "Filter last reset" + "airq_co2": { + "name": "AirQ CO2" }, - "rssi": { - "name": "RSSI" + "airq_tvoc": { + "name": "AirQ TVOC" }, "battery_voltage": { "name": "Battery voltage" }, - "sensitivity": { - "name": "Pure sensitivity", - "state": { - "n": "[%key:common::state::normal%]", - "s": "Sensitive" - } - }, - "pm25_pure": { - "name": "Pure AQI", - "state": { - "good": "Good", - "moderate": "Moderate", - "bad": "Bad" - } - }, - "timer_time": { - "name": "Timer end time" - }, - "feels_like": { - "name": "Temperature feels like" - }, - "climate_react_low": { - "name": "Climate React low temperature threshold", - "state_attributes": { - "fanlevel": { - "name": "[%key:component::climate::entity_component::_::state_attributes::fan_mode::name%]", - "state": { - "auto": "[%key:common::state::auto%]", - "high": "[%key:common::state::high%]", - "low": "[%key:common::state::low%]", - "medium_low": "Medium low", - "medium": "[%key:common::state::medium%]", - "medium_high": "Medium high", - "strong": "Strong", - "quiet": "Quiet" - } - }, - "horizontalswing": { - "name": "Horizontal swing", - "state": { - "stopped": "[%key:common::state::off%]", - "fixedleft": "Fixed left", - "fixedcenterleft": "Fixed center left", - "fixedcenter": "Fixed center", - "fixedcenterright": "Fixed center right", - "fixedright": "Fixed right", - "fixedleftright": "Fixed left right", - "rangecenter": "Range center", - "rangefull": "Range full", - "rangeleft": "Range left", - "rangeright": "Range right" - } - }, - "light": { - "name": "[%key:component::light::title%]", - "state": { - "on": "[%key:common::state::on%]", - "dim": "[%key:component::sensibo::entity::select::light::state::dim%]", - "off": "[%key:common::state::off%]" - } - }, - "mode": { - "name": "Mode", - "state": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "heat": "[%key:component::climate::entity_component::_::state::heat%]", - "cool": "[%key:component::climate::entity_component::_::state::cool%]", - "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", - "dry": "[%key:component::climate::entity_component::_::state::dry%]", - "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]" - } - }, - "on": { - "name": "[%key:common::state::on%]", - "state": { - "true": "[%key:common::state::on%]", - "false": "[%key:common::state::off%]" - } - }, - "swing": { - "name": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::name%]", - "state": { - "both": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::state::both%]", - "fixedbottom": "Fixed bottom", - "fixedmiddle": "Fixed middle", - "fixedmiddlebottom": "Fixed middle bottom", - "fixedmiddletop": "Fixed middle top", - "fixedtop": "Fixed top", - "horizontal": "Horizontal", - "rangebottom": "Range bottom", - "rangefull": "Range full", - "rangemiddle": "Range middle", - "rangetop": "Range top", - "stopped": "[%key:common::state::off%]" - } - }, - "targettemperature": { - "name": "[%key:component::climate::entity_component::_::state_attributes::temperature::name%]" - }, - "temperatureunit": { - "name": "Temperature unit", - "state": { - "c": "Celsius", - "f": "Fahrenheit" - } - } - } - }, "climate_react_high": { "name": "Climate React high temperature threshold", "state_attributes": { @@ -214,52 +154,52 @@ "auto": "[%key:common::state::auto%]", "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", - "medium_low": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_low%]", "medium": "[%key:common::state::medium%]", "medium_high": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_high%]", - "strong": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::strong%]", - "quiet": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::quiet%]" + "medium_low": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_low%]", + "quiet": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::quiet%]", + "strong": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::strong%]" } }, "horizontalswing": { "name": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::name%]", "state": { - "stopped": "[%key:common::state::off%]", - "fixedleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleft%]", - "fixedcenterleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterleft%]", "fixedcenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenter%]", + "fixedcenterleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterleft%]", "fixedcenterright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterright%]", - "fixedright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedright%]", + "fixedleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleft%]", "fixedleftright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleftright%]", + "fixedright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedright%]", "rangecenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangecenter%]", - "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]" + "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]", + "stopped": "[%key:common::state::off%]" } }, "light": { "name": "[%key:component::light::title%]", "state": { - "on": "[%key:common::state::on%]", "dim": "[%key:component::sensibo::entity::select::light::state::dim%]", - "off": "[%key:common::state::off%]" + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" } }, "mode": { "name": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::mode::name%]", "state": { - "off": "[%key:common::state::off%]", "auto": "[%key:common::state::auto%]", - "heat": "[%key:component::climate::entity_component::_::state::heat%]", "cool": "[%key:component::climate::entity_component::_::state::cool%]", - "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", "dry": "[%key:component::climate::entity_component::_::state::dry%]", - "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]" + "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]", + "heat": "[%key:component::climate::entity_component::_::state::heat%]", + "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", + "off": "[%key:common::state::off%]" } }, "on": { "name": "[%key:common::state::on%]", "state": { - "true": "[%key:common::state::on%]", - "false": "[%key:common::state::off%]" + "false": "[%key:common::state::off%]", + "true": "[%key:common::state::on%]" } }, "swing": { @@ -291,41 +231,137 @@ } } }, - "smart_type": { - "name": "Climate React type", - "state": { - "temperature": "[%key:component::sensor::entity_component::temperature::name%]", - "feelslike": "[%key:component::sensibo::entity::switch::climate_react_switch::state_attributes::type::state::feelslike%]", - "humidity": "[%key:component::sensor::entity_component::humidity::name%]" - } - }, - "airq_tvoc": { - "name": "AirQ TVOC" - }, - "airq_co2": { - "name": "AirQ CO2" - }, - "tvoc": { - "name": "TVOC" - }, - "ethanol": { - "name": "Ethanol" - } - }, - "switch": { - "timer_on_switch": { - "name": "Timer", + "climate_react_low": { + "name": "Climate React low temperature threshold", "state_attributes": { - "id": { "name": "ID" }, - "turn_on": { - "name": "Turns on", + "fanlevel": { + "name": "[%key:component::climate::entity_component::_::state_attributes::fan_mode::name%]", "state": { - "true": "[%key:common::state::on%]", - "false": "[%key:common::state::off%]" + "auto": "[%key:common::state::auto%]", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "medium_high": "Medium high", + "medium_low": "Medium low", + "quiet": "Quiet", + "strong": "Strong" + } + }, + "horizontalswing": { + "name": "Horizontal swing", + "state": { + "fixedcenter": "Fixed center", + "fixedcenterleft": "Fixed center left", + "fixedcenterright": "Fixed center right", + "fixedleft": "Fixed left", + "fixedleftright": "Fixed left right", + "fixedright": "Fixed right", + "rangecenter": "Range center", + "rangefull": "Range full", + "rangeleft": "Range left", + "rangeright": "Range right", + "stopped": "[%key:common::state::off%]" + } + }, + "light": { + "name": "[%key:component::light::title%]", + "state": { + "dim": "[%key:component::sensibo::entity::select::light::state::dim%]", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "mode": { + "name": "Mode", + "state": { + "auto": "[%key:common::state::auto%]", + "cool": "[%key:component::climate::entity_component::_::state::cool%]", + "dry": "[%key:component::climate::entity_component::_::state::dry%]", + "fan_only": "[%key:component::climate::entity_component::_::state::fan_only%]", + "heat": "[%key:component::climate::entity_component::_::state::heat%]", + "heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]", + "off": "[%key:common::state::off%]" + } + }, + "on": { + "name": "[%key:common::state::on%]", + "state": { + "false": "[%key:common::state::off%]", + "true": "[%key:common::state::on%]" + } + }, + "swing": { + "name": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::name%]", + "state": { + "both": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::state::both%]", + "fixedbottom": "Fixed bottom", + "fixedmiddle": "Fixed middle", + "fixedmiddlebottom": "Fixed middle bottom", + "fixedmiddletop": "Fixed middle top", + "fixedtop": "Fixed top", + "horizontal": "Horizontal", + "rangebottom": "Range bottom", + "rangefull": "Range full", + "rangemiddle": "Range middle", + "rangetop": "Range top", + "stopped": "[%key:common::state::off%]" + } + }, + "targettemperature": { + "name": "[%key:component::climate::entity_component::_::state_attributes::temperature::name%]" + }, + "temperatureunit": { + "name": "Temperature unit", + "state": { + "c": "Celsius", + "f": "Fahrenheit" } } } }, + "ethanol": { + "name": "Ethanol" + }, + "feels_like": { + "name": "Temperature feels like" + }, + "filter_last_reset": { + "name": "Filter last reset" + }, + "pm25_pure": { + "name": "Pure AQI", + "state": { + "bad": "Bad", + "good": "Good", + "moderate": "Moderate" + } + }, + "rssi": { + "name": "RSSI" + }, + "sensitivity": { + "name": "Pure sensitivity", + "state": { + "n": "[%key:common::state::normal%]", + "s": "Sensitive" + } + }, + "smart_type": { + "name": "Climate React type", + "state": { + "feelslike": "[%key:component::sensibo::entity::switch::climate_react_switch::state_attributes::type::state::feelslike%]", + "humidity": "[%key:component::sensor::entity_component::humidity::name%]", + "temperature": "[%key:component::sensor::entity_component::temperature::name%]" + } + }, + "timer_time": { + "name": "Timer end time" + }, + "tvoc": { + "name": "TVOC" + } + }, + "switch": { "climate_react_switch": { "name": "Climate React", "state_attributes": { @@ -333,248 +369,212 @@ "name": "Type", "state": { "feelslike": "Feels like", - "temperature": "[%key:component::sensor::entity_component::temperature::name%]", - "humidity": "[%key:component::sensor::entity_component::humidity::name%]" + "humidity": "[%key:component::sensor::entity_component::humidity::name%]", + "temperature": "[%key:component::sensor::entity_component::temperature::name%]" } } } }, "pure_boost_switch": { "name": "Pure Boost" - } - }, - "climate": { - "climate_device": { + }, + "timer_on_switch": { + "name": "Timer", "state_attributes": { - "fan_mode": { + "id": { "name": "ID" }, + "turn_on": { + "name": "Turns on", "state": { - "quiet": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::quiet%]", - "strong": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::strong%]", - "low": "[%key:common::state::low%]", - "medium_low": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_low%]", - "medium": "[%key:common::state::medium%]", - "medium_high": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::fanlevel::state::medium_high%]", - "high": "[%key:common::state::high%]", - "auto": "[%key:common::state::auto%]" - } - }, - "swing_mode": { - "state": { - "stopped": "[%key:common::state::off%]", - "fixedtop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedtop%]", - "fixedmiddletop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddletop%]", - "fixedmiddle": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddle%]", - "fixedmiddlebottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedmiddlebottom%]", - "fixedbottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::fixedbottom%]", - "rangetop": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangetop%]", - "rangemiddle": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangemiddle%]", - "rangebottom": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::rangebottom%]", - "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]", - "horizontal": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::swing::state::horizontal%]", - "both": "[%key:component::climate::entity_component::_::state_attributes::swing_mode::state::both%]" - } - }, - "swing_horizontal_mode": { - "state": { - "stopped": "[%key:common::state::off%]", - "fixedleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleft%]", - "fixedcenterleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterleft%]", - "fixedcenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenter%]", - "fixedcenterright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedcenterright%]", - "fixedright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedright%]", - "fixedleftright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::fixedleftright%]", - "rangecenter": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangecenter%]", - "rangefull": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangefull%]", - "rangeleft": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangeleft%]", - "rangeright": "[%key:component::sensibo::entity::sensor::climate_react_low::state_attributes::horizontalswing::state::rangeright%]" + "false": "[%key:common::state::off%]", + "true": "[%key:common::state::on%]" } } } } } }, - "services": { - "assume_state": { - "name": "Assume state", - "description": "Sets Sensibo device to external state.", - "fields": { - "state": { - "name": "State", - "description": "State to set." - } - } + "exceptions": { + "auth_error": { + "message": "Authentication failed, please update your API key" }, - "enable_timer": { - "name": "Enable timer", - "description": "Enables the timer with custom time.", - "fields": { - "minutes": { - "name": "Minutes", - "description": "Countdown for timer (for timer state on)." - } - } + "climate_react_not_available": { + "message": "Use the Sensibo 'Enable Climate React' action once to enable the switch, or use the Sensibo app" }, - "enable_pure_boost": { - "name": "Enable Pure Boost", - "description": "Enables and configures Pure Boost settings.", - "fields": { - "ac_integration": { - "name": "AC integration", - "description": "Integrate with air conditioner." - }, - "geo_integration": { - "name": "Geo integration", - "description": "Integrate with presence." - }, - "indoor_integration": { - "name": "Indoor air quality", - "description": "Integrate with checking indoor air quality." - }, - "outdoor_integration": { - "name": "Outdoor air quality", - "description": "Integrate with checking outdoor air quality." - }, - "sensitivity": { - "name": "Sensitivity", - "description": "Set the sensitivity for Pure Boost." - } - } + "fan_mode_not_supported": { + "message": "Climate fan mode {fan_mode} is not supported by the integration, please open an issue" }, - "full_state": { - "name": "Set full state", - "description": "Sets full state for Sensibo device.", - "fields": { - "mode": { - "name": "HVAC mode", - "description": "HVAC mode to set." - }, - "target_temperature": { - "name": "Target temperature", - "description": "Set target temperature." - }, - "fan_mode": { - "name": "Fan mode", - "description": "Set fan mode." - }, - "swing_mode": { - "name": "Swing mode", - "description": "Set swing mode." - }, - "horizontal_swing_mode": { - "name": "Horizontal swing mode", - "description": "Set horizontal swing mode." - }, - "light": { - "name": "Light", - "description": "Set light on or off." - } - } + "horizontal_swing_not_supported": { + "message": "Climate horizontal swing mode {horizontal_swing_mode} is not supported by the integration, please open an issue" }, - "enable_climate_react": { - "name": "Enable Climate React", - "description": "Enables and configures Climate React.", - "fields": { - "high_temperature_threshold": { - "name": "Threshold high", - "description": "When temp/humidity goes above." - }, - "high_temperature_state": { - "name": "State high threshold", - "description": "What should happen at high threshold. Requires full state." - }, - "low_temperature_threshold": { - "name": "Threshold low", - "description": "When temp/humidity goes below." - }, - "low_temperature_state": { - "name": "State low threshold", - "description": "What should happen at low threshold. Requires full state." - }, - "smart_type": { - "name": "Trigger type", - "description": "Choose between temperature/feels like/humidity." - } - } + "mode_not_exist": { + "message": "The entity does not support the chosen mode" }, - "get_device_capabilities": { - "name": "Get device mode capabilities", - "description": "Retrieves the device capabilities for a specific device according to API requirements.", - "fields": { - "hvac_mode": { - "name": "[%key:component::climate::services::set_hvac_mode::fields::hvac_mode::name%]", - "description": "[%key:component::climate::services::set_hvac_mode::fields::hvac_mode::description%]" - } - } + "no_data": { + "message": "[%key:component::sensibo::config::error::no_devices%]" + }, + "service_raised": { + "message": "Could not perform action for {name} with error {error}" + }, + "service_result_not_true": { + "message": "Could not perform action for {name}" + }, + "swing_not_supported": { + "message": "Climate swing mode {swing_mode} is not supported by the integration, please open an issue" + }, + "update_error": { + "message": "There was an error updating from the Sensibo API with the error: {error}" } }, "selector": { + "assume_state": { + "options": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "hvac_mode": { + "options": { + "auto": "[%key:common::state::auto%]", + "cool": "[%key:component::climate::entity_component::_::state::cool%]", + "dry": "[%key:component::climate::entity_component::_::state::dry%]", + "fan": "[%key:component::climate::entity_component::_::state::fan_only%]", + "heat": "[%key:component::climate::entity_component::_::state::heat%]", + "off": "[%key:common::state::off%]" + } + }, + "light_mode": { + "options": { + "dim": "[%key:component::sensibo::entity::select::light::state::dim%]", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, "sensitivity": { "options": { "normal": "[%key:common::state::normal%]", "sensitive": "[%key:component::sensibo::entity::sensor::sensitivity::state::s%]" } }, - "assume_state": { - "options": { - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]" - } - }, - "hvac_mode": { - "options": { - "off": "[%key:common::state::off%]", - "auto": "[%key:common::state::auto%]", - "cool": "[%key:component::climate::entity_component::_::state::cool%]", - "heat": "[%key:component::climate::entity_component::_::state::heat%]", - "fan": "[%key:component::climate::entity_component::_::state::fan_only%]", - "dry": "[%key:component::climate::entity_component::_::state::dry%]" - } - }, - "light_mode": { - "options": { - "on": "[%key:common::state::on%]", - "off": "[%key:common::state::off%]", - "dim": "[%key:component::sensibo::entity::select::light::state::dim%]" - } - }, "smart_type": { "options": { - "temperature": "[%key:component::sensor::entity_component::temperature::name%]", "feelslike": "[%key:component::sensibo::entity::switch::climate_react_switch::state_attributes::type::state::feelslike%]", - "humidity": "[%key:component::sensor::entity_component::humidity::name%]" + "humidity": "[%key:component::sensor::entity_component::humidity::name%]", + "temperature": "[%key:component::sensor::entity_component::temperature::name%]" } } }, - "exceptions": { - "fan_mode_not_supported": { - "message": "Climate fan mode {fan_mode} is not supported by the integration, please open an issue" + "services": { + "assume_state": { + "description": "Sets Sensibo device to external state.", + "fields": { + "state": { + "description": "State to set.", + "name": "State" + } + }, + "name": "Assume state" }, - "swing_not_supported": { - "message": "Climate swing mode {swing_mode} is not supported by the integration, please open an issue" + "enable_climate_react": { + "description": "Enables and configures Climate React.", + "fields": { + "high_temperature_state": { + "description": "What should happen at high threshold. Requires full state.", + "name": "State high threshold" + }, + "high_temperature_threshold": { + "description": "When temp/humidity goes above.", + "name": "Threshold high" + }, + "low_temperature_state": { + "description": "What should happen at low threshold. Requires full state.", + "name": "State low threshold" + }, + "low_temperature_threshold": { + "description": "When temp/humidity goes below.", + "name": "Threshold low" + }, + "smart_type": { + "description": "Choose between temperature/feels like/humidity.", + "name": "Trigger type" + } + }, + "name": "Enable Climate React" }, - "horizontal_swing_not_supported": { - "message": "Climate horizontal swing mode {horizontal_swing_mode} is not supported by the integration, please open an issue" + "enable_pure_boost": { + "description": "Enables and configures Pure Boost settings.", + "fields": { + "ac_integration": { + "description": "Integrate with air conditioner.", + "name": "AC integration" + }, + "geo_integration": { + "description": "Integrate with presence.", + "name": "Geo integration" + }, + "indoor_integration": { + "description": "Integrate with checking indoor air quality.", + "name": "Indoor air quality" + }, + "outdoor_integration": { + "description": "Integrate with checking outdoor air quality.", + "name": "Outdoor air quality" + }, + "sensitivity": { + "description": "Set the sensitivity for Pure Boost.", + "name": "Sensitivity" + } + }, + "name": "Enable Pure Boost" }, - "service_result_not_true": { - "message": "Could not perform action for {name}" + "enable_timer": { + "description": "Enables the timer with custom time.", + "fields": { + "minutes": { + "description": "Countdown for timer (for timer state on).", + "name": "Minutes" + } + }, + "name": "Enable timer" }, - "service_raised": { - "message": "Could not perform action for {name} with error {error}" + "full_state": { + "description": "Sets full state for Sensibo device.", + "fields": { + "fan_mode": { + "description": "Set fan mode.", + "name": "Fan mode" + }, + "horizontal_swing_mode": { + "description": "Set horizontal swing mode.", + "name": "Horizontal swing mode" + }, + "light": { + "description": "Set light on or off.", + "name": "Light" + }, + "mode": { + "description": "HVAC mode to set.", + "name": "HVAC mode" + }, + "swing_mode": { + "description": "Set swing mode.", + "name": "Swing mode" + }, + "target_temperature": { + "description": "Set target temperature.", + "name": "Target temperature" + } + }, + "name": "Set full state" }, - "climate_react_not_available": { - "message": "Use the Sensibo 'Enable Climate React' action once to enable the switch, or use the Sensibo app" - }, - "auth_error": { - "message": "Authentication failed, please update your API key" - }, - "update_error": { - "message": "There was an error updating from the Sensibo API with the error: {error}" - }, - "no_data": { - "message": "[%key:component::sensibo::config::error::no_devices%]" - }, - "mode_not_exist": { - "message": "The entity does not support the chosen mode" + "get_device_capabilities": { + "description": "Retrieves the device capabilities for a specific device according to API requirements.", + "fields": { + "hvac_mode": { + "description": "[%key:component::climate::services::set_hvac_mode::fields::hvac_mode::description%]", + "name": "[%key:component::climate::services::set_hvac_mode::fields::hvac_mode::name%]" + } + }, + "name": "Get device mode capabilities" } } } diff --git a/homeassistant/components/sensirion_ble/strings.json b/homeassistant/components/sensirion_ble/strings.json index 16a80220a20..f85ef2e6920 100644 --- a/homeassistant/components/sensirion_ble/strings.json +++ b/homeassistant/components/sensirion_ble/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } } } diff --git a/homeassistant/components/sensor/strings.json b/homeassistant/components/sensor/strings.json index 2c02bb73bdd..6f8ef1ae530 100644 --- a/homeassistant/components/sensor/strings.json +++ b/homeassistant/components/sensor/strings.json @@ -1,5 +1,4 @@ { - "title": "Sensor", "device_automation": { "condition_type": { "is_absolute_humidity": "Current {entity_name} absolute humidity", @@ -9,8 +8,8 @@ "is_atmospheric_pressure": "Current {entity_name} atmospheric pressure", "is_battery_level": "Current {entity_name} battery level", "is_blood_glucose_concentration": "Current {entity_name} blood glucose concentration", - "is_carbon_monoxide": "Current {entity_name} carbon monoxide concentration level", "is_carbon_dioxide": "Current {entity_name} carbon dioxide concentration level", + "is_carbon_monoxide": "Current {entity_name} carbon monoxide concentration level", "is_conductivity": "Current {entity_name} conductivity", "is_current": "Current {entity_name} current", "is_data_rate": "Current {entity_name} data rate", @@ -59,6 +58,11 @@ "is_wind_direction": "Current {entity_name} wind direction", "is_wind_speed": "Current {entity_name} wind speed" }, + "extra_fields": { + "above": "[%key:common::device_automation::extra_fields::above%]", + "below": "[%key:common::device_automation::extra_fields::below%]", + "for": "[%key:common::device_automation::extra_fields::for%]" + }, "trigger_type": { "absolute_humidity": "{entity_name} absolute humidity changes", "apparent_power": "{entity_name} apparent power changes", @@ -67,8 +71,8 @@ "atmospheric_pressure": "{entity_name} atmospheric pressure changes", "battery_level": "{entity_name} battery level changes", "blood_glucose_concentration": "{entity_name} blood glucose concentration changes", - "carbon_monoxide": "{entity_name} carbon monoxide concentration changes", "carbon_dioxide": "{entity_name} carbon dioxide concentration changes", + "carbon_monoxide": "{entity_name} carbon monoxide concentration changes", "conductivity": "{entity_name} conductivity changes", "current": "{entity_name} current changes", "data_rate": "{entity_name} data rate changes", @@ -116,11 +120,6 @@ "weight": "{entity_name} weight changes", "wind_direction": "{entity_name} wind direction changes", "wind_speed": "{entity_name} wind speed changes" - }, - "extra_fields": { - "above": "[%key:common::device_automation::extra_fields::above%]", - "below": "[%key:common::device_automation::extra_fields::below%]", - "for": "[%key:common::device_automation::extra_fields::for%]" } }, "entity_component": { @@ -148,12 +147,6 @@ } } }, - "date": { - "name": "Date" - }, - "duration": { - "name": "Duration" - }, "absolute_humidity": { "name": "Absolute humidity" }, @@ -175,12 +168,12 @@ "blood_glucose_concentration": { "name": "Blood glucose concentration" }, - "carbon_monoxide": { - "name": "Carbon monoxide" - }, "carbon_dioxide": { "name": "Carbon dioxide" }, + "carbon_monoxide": { + "name": "Carbon monoxide" + }, "conductivity": { "name": "Conductivity" }, @@ -193,9 +186,15 @@ "data_size": { "name": "Data size" }, + "date": { + "name": "Date" + }, "distance": { "name": "Distance" }, + "duration": { + "name": "Duration" + }, "energy": { "name": "Energy" }, @@ -247,21 +246,21 @@ "pm1": { "name": "PM1" }, - "pm4": { - "name": "PM4" - }, "pm10": { "name": "PM10" }, "pm25": { "name": "PM2.5" }, - "power_factor": { - "name": "Power factor" + "pm4": { + "name": "PM4" }, "power": { "name": "Power" }, + "power_factor": { + "name": "Power factor" + }, "precipitation": { "name": "Precipitation" }, @@ -331,16 +330,17 @@ }, "issues": { "mean_type_changed": { - "title": "The mean type of {statistic_id} has changed", - "description": "" + "description": "", + "title": "The mean type of {statistic_id} has changed" }, "state_class_removed": { - "title": "{statistic_id} no longer has a state class", - "description": "" + "description": "", + "title": "{statistic_id} no longer has a state class" }, "units_changed": { - "title": "The unit of {statistic_id} has changed", - "description": "" + "description": "", + "title": "The unit of {statistic_id} has changed" } - } + }, + "title": "Sensor" } diff --git a/homeassistant/components/sensorpro/manifest.json b/homeassistant/components/sensorpro/manifest.json index 1a6ec5527a0..88faa5a661f 100644 --- a/homeassistant/components/sensorpro/manifest.json +++ b/homeassistant/components/sensorpro/manifest.json @@ -3,14 +3,14 @@ "name": "SensorPro", "bluetooth": [ { - "manufacturer_id": 43605, + "connectable": false, "manufacturer_data_start": [1, 1, 164, 193], - "connectable": false + "manufacturer_id": 43605 }, { - "manufacturer_id": 43605, + "connectable": false, "manufacturer_data_start": [1, 5, 164, 193], - "connectable": false + "manufacturer_id": 43605 } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/sensorpro/strings.json b/homeassistant/components/sensorpro/strings.json index 16a80220a20..f85ef2e6920 100644 --- a/homeassistant/components/sensorpro/strings.json +++ b/homeassistant/components/sensorpro/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } } } diff --git a/homeassistant/components/sensorpush/manifest.json b/homeassistant/components/sensorpush/manifest.json index a7758960b2b..56db6f8f280 100644 --- a/homeassistant/components/sensorpush/manifest.json +++ b/homeassistant/components/sensorpush/manifest.json @@ -3,12 +3,12 @@ "name": "SensorPush", "bluetooth": [ { - "local_name": "SensorPush*", - "connectable": false + "connectable": false, + "local_name": "SensorPush*" }, { - "local_name": "s", "connectable": false, + "local_name": "s", "service_uuid": "ef090000-11d6-42ba-93b8-9dd7ec090aa9" } ], diff --git a/homeassistant/components/sensorpush/strings.json b/homeassistant/components/sensorpush/strings.json index 4e12a84b653..5e39fe3eab7 100644 --- a/homeassistant/components/sensorpush/strings.json +++ b/homeassistant/components/sensorpush/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } } } diff --git a/homeassistant/components/sensorpush_cloud/strings.json b/homeassistant/components/sensorpush_cloud/strings.json index 15db60e0a10..84851bd1575 100644 --- a/homeassistant/components/sensorpush_cloud/strings.json +++ b/homeassistant/components/sensorpush_cloud/strings.json @@ -1,8 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "description": "To activate API access, log in to the [Gateway Cloud Dashboard]({dashboard_url}) and agree to the terms of service. Devices are not available until activated with the SensorPush app on iOS or Android.", "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" @@ -10,15 +16,9 @@ "data_description": { "email": "The email address used to log in to the SensorPush Gateway Cloud Dashboard", "password": "The password used to log in to the SensorPush Gateway Cloud Dashboard" - } + }, + "description": "To activate API access, log in to the [Gateway Cloud Dashboard]({dashboard_url}) and agree to the terms of service. Devices are not available until activated with the SensorPush app on iOS or Android." } - }, - "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%]" } }, "entity": { diff --git a/homeassistant/components/sensoterra/strings.json b/homeassistant/components/sensoterra/strings.json index 86c4f2c2912..6c79f62fdad 100644 --- a/homeassistant/components/sensoterra/strings.json +++ b/homeassistant/components/sensoterra/strings.json @@ -1,37 +1,37 @@ { "config": { - "step": { - "user": { - "description": "Enter credentials to obtain a token", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reconfigure": { - "description": "[%key:component::sensoterra::config::step::user::description%]", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]" + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + "step": { + "reconfigure": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "[%key:component::sensoterra::config::step::user::description%]" + }, + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Enter credentials to obtain a token" + } } }, "entity": { "sensor": { - "soil_moisture_at_cm": { - "name": "Soil moisture @ {depth} cm" - }, "si_at_cm": { "name": "SI @ {depth} cm" + }, + "soil_moisture_at_cm": { + "name": "Soil moisture @ {depth} cm" } } } diff --git a/homeassistant/components/sentry/strings.json b/homeassistant/components/sentry/strings.json index 22f7b355e0e..d15d053524d 100644 --- a/homeassistant/components/sentry/strings.json +++ b/homeassistant/components/sentry/strings.json @@ -1,18 +1,18 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "error": { + "bad_dsn": "Invalid DSN", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "dsn": "Sentry DSN" } } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]", - "bad_dsn": "Invalid DSN" - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, "options": { diff --git a/homeassistant/components/senz/strings.json b/homeassistant/components/senz/strings.json index 32398c64c52..6726b6c9e1e 100644 --- a/homeassistant/components/senz/strings.json +++ b/homeassistant/components/senz/strings.json @@ -1,29 +1,29 @@ { "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%]", + "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%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "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%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } } } diff --git a/homeassistant/components/seventeentrack/icons.json b/homeassistant/components/seventeentrack/icons.json index 5ddfaacc8ac..7cad06b080a 100644 --- a/homeassistant/components/seventeentrack/icons.json +++ b/homeassistant/components/seventeentrack/icons.json @@ -1,13 +1,22 @@ { "entity": { "sensor": { - "not_found": { + "alert": { + "default": "mdi:package" + }, + "delivered": { + "default": "mdi:package" + }, + "expired": { "default": "mdi:package" }, "in_transit": { "default": "mdi:package" }, - "expired": { + "not_found": { + "default": "mdi:package" + }, + "package": { "default": "mdi:package" }, "ready_to_be_picked_up": { @@ -15,27 +24,18 @@ }, "undelivered": { "default": "mdi:package" - }, - "delivered": { - "default": "mdi:package" - }, - "alert": { - "default": "mdi:package" - }, - "package": { - "default": "mdi:package" } } }, "services": { - "get_packages": { - "service": "mdi:package" - }, "add_package": { "service": "mdi:package" }, "archive_package": { "service": "mdi:archive" + }, + "get_packages": { + "service": "mdi:package" } } } diff --git a/homeassistant/components/seventeentrack/strings.json b/homeassistant/components/seventeentrack/strings.json index bffb21cbfbd..f1fe0e75260 100644 --- a/homeassistant/components/seventeentrack/strings.json +++ b/homeassistant/components/seventeentrack/strings.json @@ -1,13 +1,5 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -16,6 +8,42 @@ "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } + } + }, + "entity": { + "sensor": { + "alert": { + "name": "Alert" + }, + "delivered": { + "name": "Delivered" + }, + "expired": { + "name": "Expired" + }, + "in_transit": { + "name": "In transit" + }, + "not_found": { + "name": "Not found" + }, + "package": { + "name": "Package {name}" + }, + "ready_to_be_picked_up": { + "name": "Ready to be picked up" + }, + "undelivered": { + "name": "Undelivered" + } } }, "exceptions": { @@ -29,101 +57,73 @@ "options": { "step": { "init": { - "description": "Configure general settings", "data": { "show_archived": "Whether sensors should be created for archived packages", "show_delivered": "Whether sensors should be created for delivered packages" - } - } - } - }, - "entity": { - "sensor": { - "not_found": { - "name": "Not found" - }, - "in_transit": { - "name": "In transit" - }, - "expired": { - "name": "Expired" - }, - "ready_to_be_picked_up": { - "name": "Ready to be picked up" - }, - "undelivered": { - "name": "Undelivered" - }, - "delivered": { - "name": "Delivered" - }, - "alert": { - "name": "Alert" - }, - "package": { - "name": "Package {name}" - } - } - }, - "services": { - "get_packages": { - "name": "Get packages", - "description": "Queries the 17track API for the latest package data.", - "fields": { - "package_state": { - "name": "Package states", - "description": "Only return packages with the specified states. Returns all packages if not specified." }, - "config_entry_id": { - "name": "17Track service", - "description": "The packages will be retrieved for the selected service." - } - } - }, - "add_package": { - "name": "Add a package", - "description": "Adds a package using the 17track API.", - "fields": { - "package_tracking_number": { - "name": "Package tracking number to add", - "description": "The package with the tracking number will be added." - }, - "package_friendly_name": { - "name": "Package friendly name", - "description": "The friendly name of the package to be added." - }, - "config_entry_id": { - "name": "17Track service", - "description": "The selected service to add the package to." - } - } - }, - "archive_package": { - "name": "Archive package", - "description": "Archives a package using the 17track API.", - "fields": { - "package_tracking_number": { - "name": "Package tracking number", - "description": "The package will be archived for the specified tracking number." - }, - "config_entry_id": { - "name": "[%key:component::seventeentrack::services::get_packages::fields::config_entry_id::name%]", - "description": "The package will be archived for the selected service." - } + "description": "Configure general settings" } } }, "selector": { "package_state": { "options": { - "not_found": "[%key:component::seventeentrack::entity::sensor::not_found::name%]", - "in_transit": "[%key:component::seventeentrack::entity::sensor::in_transit::name%]", - "expired": "[%key:component::seventeentrack::entity::sensor::expired::name%]", - "ready_to_be_picked_up": "[%key:component::seventeentrack::entity::sensor::ready_to_be_picked_up::name%]", - "undelivered": "[%key:component::seventeentrack::entity::sensor::undelivered::name%]", + "alert": "[%key:component::seventeentrack::entity::sensor::alert::name%]", "delivered": "[%key:component::seventeentrack::entity::sensor::delivered::name%]", - "alert": "[%key:component::seventeentrack::entity::sensor::alert::name%]" + "expired": "[%key:component::seventeentrack::entity::sensor::expired::name%]", + "in_transit": "[%key:component::seventeentrack::entity::sensor::in_transit::name%]", + "not_found": "[%key:component::seventeentrack::entity::sensor::not_found::name%]", + "ready_to_be_picked_up": "[%key:component::seventeentrack::entity::sensor::ready_to_be_picked_up::name%]", + "undelivered": "[%key:component::seventeentrack::entity::sensor::undelivered::name%]" } } + }, + "services": { + "add_package": { + "description": "Adds a package using the 17track API.", + "fields": { + "config_entry_id": { + "description": "The selected service to add the package to.", + "name": "17Track service" + }, + "package_friendly_name": { + "description": "The friendly name of the package to be added.", + "name": "Package friendly name" + }, + "package_tracking_number": { + "description": "The package with the tracking number will be added.", + "name": "Package tracking number to add" + } + }, + "name": "Add a package" + }, + "archive_package": { + "description": "Archives a package using the 17track API.", + "fields": { + "config_entry_id": { + "description": "The package will be archived for the selected service.", + "name": "[%key:component::seventeentrack::services::get_packages::fields::config_entry_id::name%]" + }, + "package_tracking_number": { + "description": "The package will be archived for the specified tracking number.", + "name": "Package tracking number" + } + }, + "name": "Archive package" + }, + "get_packages": { + "description": "Queries the 17track API for the latest package data.", + "fields": { + "config_entry_id": { + "description": "The packages will be retrieved for the selected service.", + "name": "17Track service" + }, + "package_state": { + "description": "Only return packages with the specified states. Returns all packages if not specified.", + "name": "Package states" + } + }, + "name": "Get packages" + } } } diff --git a/homeassistant/components/sfr_box/strings.json b/homeassistant/components/sfr_box/strings.json index 47f4b6a7bf3..3fd3d8abe2a 100644 --- a/homeassistant/components/sfr_box/strings.json +++ b/homeassistant/components/sfr_box/strings.json @@ -52,26 +52,26 @@ "dsl_attenuation_up": { "name": "DSL attenuation up" }, - "dsl_crc": { - "name": "DSL CRC" - }, "dsl_counter": { "name": "DSL counter" }, - "dsl_linemode": { - "name": "DSL line mode" + "dsl_crc": { + "name": "DSL CRC" }, "dsl_line_status": { "name": "DSL line status", "state": { - "no_defect": "No defect", "loss_of_frame": "Loss of frame", - "loss_of_signal": "Loss of signal", "loss_of_power": "Loss of power", + "loss_of_signal": "Loss of signal", "loss_of_signal_quality": "Loss of signal quality", + "no_defect": "No defect", "unknown": "Unknown" } }, + "dsl_linemode": { + "name": "DSL line mode" + }, "dsl_noise_down": { "name": "DSL noise down" }, @@ -87,14 +87,14 @@ "dsl_training": { "name": "DSL training", "state": { - "idle": "[%key:common::state::idle%]", - "g_994_training": "G.994 Training", - "g_992_started": "G.992 Started", "g_922_channel_analysis": "G.922 Channel Analysis", "g_992_message_exchange": "G.992 Message Exchange", - "g_993_started": "G.993 Started", + "g_992_started": "G.992 Started", "g_993_channel_analysis": "G.993 Channel Analysis", "g_993_message_exchange": "G.993 Message Exchange", + "g_993_started": "G.993 Started", + "g_994_training": "G.994 Training", + "idle": "[%key:common::state::idle%]", "showtime": "Showtime", "unknown": "Unknown" } diff --git a/homeassistant/components/sftp_storage/strings.json b/homeassistant/components/sftp_storage/strings.json index da328bfd854..9856286a0f1 100644 --- a/homeassistant/components/sftp_storage/strings.json +++ b/homeassistant/components/sftp_storage/strings.json @@ -1,25 +1,7 @@ { "config": { - "step": { - "user": { - "description": "Set up SFTP Storage", - "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%]", - "private_key_file": "Private key file", - "backup_location": "Remote path" - }, - "data_description": { - "host": "Hostname or IP address of SSH/SFTP server to connect to.", - "port": "Port of your SSH/SFTP server. This is usually 22.", - "username": "Username to authenticate with.", - "password": "Password to authenticate with. Provide this or private key file.", - "private_key_file": "Upload private key file used for authentication. Provide this or password.", - "backup_location": "Remote path where to upload backups." - } - } + "abort": { + "already_configured": "Integration already configured. Host with same address, port and backup location already exists." }, "error": { "invalid_key": "Invalid key uploaded. Please make sure key corresponds to valid SSH key algorithm.", @@ -30,8 +12,26 @@ "sftp_permission_denied": "Permission denied for directory {backup_location}", "unknown": "Unexpected exception ({exception}) occurred during config flow. {error_message}" }, - "abort": { - "already_configured": "Integration already configured. Host with same address, port and backup location already exists." + "step": { + "user": { + "data": { + "backup_location": "Remote path", + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "private_key_file": "Private key file", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "backup_location": "Remote path where to upload backups.", + "host": "Hostname or IP address of SSH/SFTP server to connect to.", + "password": "Password to authenticate with. Provide this or private key file.", + "port": "Port of your SSH/SFTP server. This is usually 22.", + "private_key_file": "Upload private key file used for authentication. Provide this or password.", + "username": "Username to authenticate with." + }, + "description": "Set up SFTP Storage" + } } } } diff --git a/homeassistant/components/sharkiq/strings.json b/homeassistant/components/sharkiq/strings.json index 33826baaf5b..a94c7b2208d 100644 --- a/homeassistant/components/sharkiq/strings.json +++ b/homeassistant/components/sharkiq/strings.json @@ -1,43 +1,35 @@ { "config": { - "flow_title": "Add Shark IQ account", - "step": { - "user": { - "description": "Sign in to your SharkClean account to control your devices.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "region": "Region" - }, - "data_description": { - "region": "Shark IQ uses different services in the EU. Select your region to connect to the correct service for your account." - } - }, - "reauth_confirm": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "region": "Region" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "selector": { - "region": { - "options": { - "europe": "Europe", - "elsewhere": "Everywhere else" + "flow_title": "Add Shark IQ account", + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "region": "Region", + "username": "[%key:common::config_flow::data::username%]" + } + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "region": "Region", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "region": "Shark IQ uses different services in the EU. Select your region to connect to the correct service for your account." + }, + "description": "Sign in to your SharkClean account to control your devices." } } }, @@ -46,16 +38,24 @@ "message": "The room {room} is unavailable to your vacuum. Make sure all rooms match the SharkClean app, including capitalization." } }, + "selector": { + "region": { + "options": { + "elsewhere": "Everywhere else", + "europe": "Europe" + } + } + }, "services": { "clean_room": { - "name": "Clean room", "description": "Cleans a specific user-defined room or set of rooms.", "fields": { "rooms": { - "name": "Rooms", - "description": "List of rooms to clean" + "description": "List of rooms to clean", + "name": "Rooms" } - } + }, + "name": "Clean room" } } } diff --git a/homeassistant/components/shell_command/strings.json b/homeassistant/components/shell_command/strings.json index c87dac15b2d..f2f2dc1b819 100644 --- a/homeassistant/components/shell_command/strings.json +++ b/homeassistant/components/shell_command/strings.json @@ -1,10 +1,10 @@ { "exceptions": { - "timeout": { - "message": "Timed out running command: `{command}`, after: {timeout} seconds" - }, "non_utf8_output": { "message": "Unable to handle non-utf8 output of command: `{command}`" + }, + "timeout": { + "message": "Timed out running command: `{command}`, after: {timeout} seconds" } } } diff --git a/homeassistant/components/shelly/icons.json b/homeassistant/components/shelly/icons.json index c223e9344c7..f19f0ea192b 100644 --- a/homeassistant/components/shelly/icons.json +++ b/homeassistant/components/shelly/icons.json @@ -32,6 +32,9 @@ "gas_detected": { "default": "mdi:gas-burner" }, + "illuminance_level": { + "default": "mdi:brightness-5" + }, "lamp_life": { "default": "mdi:progress-wrench" }, @@ -50,24 +53,14 @@ "valve_status": { "default": "mdi:valve" }, - "vial_name": { - "default": "mdi:scent" - }, - "illuminance_level": { - "default": "mdi:brightness-5" - }, "vial_level": { "default": "mdi:bottle-tonic-outline" + }, + "vial_name": { + "default": "mdi:scent" } }, "switch": { - "valve_switch": { - "default": "mdi:valve", - "state": { - "off": "mdi:valve-closed", - "on": "mdi:valve-open" - } - }, "cury_boost": { "default": "mdi:rocket-launch" }, @@ -77,6 +70,13 @@ "off": "mdi:scent-off", "on": "mdi:scent" } + }, + "valve_switch": { + "default": "mdi:valve", + "state": { + "off": "mdi:valve-closed", + "on": "mdi:valve-open" + } } } } diff --git a/homeassistant/components/shelly/manifest.json b/homeassistant/components/shelly/manifest.json index 4262245a5bc..3bd18205545 100644 --- a/homeassistant/components/shelly/manifest.json +++ b/homeassistant/components/shelly/manifest.json @@ -12,8 +12,8 @@ "requirements": ["aioshelly==13.15.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "shelly*" + "name": "shelly*", + "type": "_http._tcp.local." }, { "type": "_shelly._tcp.local." diff --git a/homeassistant/components/shelly/strings.json b/homeassistant/components/shelly/strings.json index c1f61a95e0b..e43969a2ef3 100644 --- a/homeassistant/components/shelly/strings.json +++ b/homeassistant/components/shelly/strings.json @@ -1,61 +1,5 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Before setup, battery-powered devices must be woken up, you can now wake the device up using a button on it.", - "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 Shelly device to connect to.", - "port": "The TCP port of the Shelly device to connect to (Gen2+)." - } - }, - "credentials": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Username for the device's web panel.", - "password": "Password for the device's web panel." - } - }, - "reauth_confirm": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::shelly::config::step::credentials::data_description::username%]", - "password": "[%key:component::shelly::config::step::credentials::data_description::password%]" - } - }, - "confirm_discovery": { - "description": "Do you want to set up the {model} at {host}?\n\nBattery-powered devices that are password-protected must be woken up before continuing with setting up.\nBattery-powered devices that are not password-protected will be added when the device wakes up, you can now manually wake the device up using a button on it or wait for the next data update from the device." - }, - "reconfigure": { - "description": "Update configuration for {device_name}.\n\nBefore setup, battery-powered devices must be woken up, you can now wake the device up using a button on it.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" - }, - "data_description": { - "host": "[%key:component::shelly::config::step::user::data_description::host%]", - "port": "[%key:component::shelly::config::step::user::data_description::port%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "custom_port_not_supported": "Gen1 device does not support custom port.", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "mac_address_mismatch": "The MAC address of the device does not match the one in the configuration, please reboot the device and try again.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "another_device": "Re-configuration was unsuccessful, the IP address/hostname of another Shelly device was used.", @@ -65,6 +9,62 @@ "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reauth_unsuccessful": "Re-authentication was unsuccessful, please remove the integration and set it up again.", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "custom_port_not_supported": "Gen1 device does not support custom port.", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "mac_address_mismatch": "The MAC address of the device does not match the one in the configuration, please reboot the device and try again.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name}", + "step": { + "confirm_discovery": { + "description": "Do you want to set up the {model} at {host}?\n\nBattery-powered devices that are password-protected must be woken up before continuing with setting up.\nBattery-powered devices that are not password-protected will be added when the device wakes up, you can now manually wake the device up using a button on it or wait for the next data update from the device." + }, + "credentials": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Password for the device's web panel.", + "username": "Username for the device's web panel." + } + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::shelly::config::step::credentials::data_description::password%]", + "username": "[%key:component::shelly::config::step::credentials::data_description::username%]" + } + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::shelly::config::step::user::data_description::host%]", + "port": "[%key:component::shelly::config::step::user::data_description::port%]" + }, + "description": "Update configuration for {device_name}.\n\nBefore setup, battery-powered devices must be woken up, you can now wake the device up using a button on it." + }, + "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 Shelly device to connect to.", + "port": "The TCP port of the Shelly device to connect to (Gen2+)." + }, + "description": "Before setup, battery-powered devices must be woken up, you can now wake the device up using a button on it." + } } }, "device_automation": { @@ -76,45 +76,18 @@ "button4": "Fourth button" }, "trigger_type": { - "single": "{subtype} single clicked", - "double": "{subtype} double clicked", - "triple": "{subtype} triple clicked", - "long": "{subtype} long clicked", - "single_long": "{subtype} single clicked and then long clicked", - "long_single": "{subtype} long clicked and then single clicked", "btn_down": "{subtype} button down", "btn_up": "{subtype} button up", - "single_push": "{subtype} single push", + "double": "{subtype} double clicked", "double_push": "{subtype} double push", - "triple_push": "{subtype} triple push", - "long_push": "{subtype} long push" - } - }, - "options": { - "step": { - "init": { - "description": "Bluetooth scanning can be active or passive. With active, the Shelly requests data from nearby devices; with passive, the Shelly receives unsolicited data from nearby devices.", - "data": { - "ble_scanner_mode": "Bluetooth scanner mode" - }, - "data_description": { - "ble_scanner_mode": "The scanner mode to use for Bluetooth scanning." - } - } - }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "no_scripts_support": "Device does not support scripts and cannot be used as a Bluetooth scanner.", - "zigbee_firmware": "A device with Zigbee firmware cannot be used as a Bluetooth scanner. Please switch to Matter firmware to use the device as a Bluetooth scanner." - } - }, - "selector": { - "ble_scanner_mode": { - "options": { - "disabled": "[%key:common::state::disabled%]", - "active": "[%key:common::state::active%]", - "passive": "Passive" - } + "long": "{subtype} long clicked", + "long_push": "{subtype} long push", + "long_single": "{subtype} long clicked and then single clicked", + "single": "{subtype} single clicked", + "single_long": "{subtype} single clicked and then long clicked", + "single_push": "{subtype} single push", + "triple": "{subtype} triple clicked", + "triple_push": "{subtype} triple push" } }, "entity": { @@ -136,16 +109,16 @@ "state": { "btn_down": "Button down", "btn_up": "Button up", - "double_push": "Double push", "double": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::double_push%]", + "double_push": "Double push", + "long": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::long_push%]", "long_push": "Long push", "long_single": "Long push and then short push", - "long": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::long_push%]", + "single": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::single_push%]", "single_long": "Short push and then long push", "single_push": "Single push", - "single": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::single_push%]", - "triple_push": "Triple push", - "triple": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::triple_push%]" + "triple": "[%key:component::shelly::entity::event::input::state_attributes::event_type::state::triple_push%]", + "triple_push": "Triple push" } } } @@ -169,43 +142,50 @@ }, "gas_detected": { "state": { - "none": "None", - "mild": "Mild", "heavy": "Heavy", + "mild": "Mild", + "none": "None", "test": "Test" }, "state_attributes": { "options": { "state": { - "none": "[%key:component::shelly::entity::sensor::gas_detected::state::none%]", - "mild": "[%key:component::shelly::entity::sensor::gas_detected::state::mild%]", "heavy": "[%key:component::shelly::entity::sensor::gas_detected::state::heavy%]", + "mild": "[%key:component::shelly::entity::sensor::gas_detected::state::mild%]", + "none": "[%key:component::shelly::entity::sensor::gas_detected::state::none%]", "test": "[%key:component::shelly::entity::sensor::gas_detected::state::test%]" } } } }, + "illuminance_level": { + "state": { + "bright": "Bright", + "dark": "Dark", + "twilight": "Twilight" + } + }, "operation": { "state": { - "warmup": "Warm-up", + "fault": "[%key:common::state::fault%]", "normal": "[%key:common::state::normal%]", - "fault": "[%key:common::state::fault%]" + "warmup": "Warm-up" } }, "self_test": { "state": { - "not_completed": "Not completed", "completed": "Completed", - "running": "Running", - "pending": "Pending" + "not_completed": "Not completed", + "pending": "Pending", + "running": "Running" }, "state_attributes": { "options": { "state": { - "not_completed": "[%key:component::shelly::entity::sensor::self_test::state::not_completed%]", "completed": "[%key:component::shelly::entity::sensor::self_test::state::completed%]", - "running": "[%key:component::shelly::entity::sensor::self_test::state::running%]", - "pending": "[%key:component::shelly::entity::sensor::self_test::state::pending%]" + "not_completed": "[%key:component::shelly::entity::sensor::self_test::state::not_completed%]", + "pending": "[%key:component::shelly::entity::sensor::self_test::state::pending%]", + "running": "[%key:component::shelly::entity::sensor::self_test::state::running%]" } } } @@ -219,13 +199,6 @@ "opened": "Opened", "opening": "[%key:common::state::opening%]" } - }, - "illuminance_level": { - "state": { - "dark": "Dark", - "twilight": "Twilight", - "bright": "Bright" - } } } }, @@ -233,12 +206,12 @@ "auth_error": { "message": "Authentication failed for {device}, please update your credentials" }, - "device_communication_error": { - "message": "Device communication error occurred for {device}" - }, "device_communication_action_error": { "message": "Device communication error occurred while calling action for {entity} of {device}" }, + "device_communication_error": { + "message": "Device communication error occurred for {device}" + }, "device_not_found": { "message": "{device} not found while configuring device automation triggers" }, @@ -272,59 +245,86 @@ }, "issues": { "ble_scanner_firmware_unsupported": { - "title": "{device_name} is running unsupported firmware", "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::shelly::issues::ble_scanner_firmware_unsupported::title%]", - "description": "Your Shelly device {device_name} with IP address {ip_address} is running firmware {firmware} and acts as BLE scanner with active mode. This firmware version is not supported for BLE scanner active mode.\n\nSelect **Submit** button to start the OTA update to the latest stable firmware version." - } - }, "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "update_not_available": "Device does not offer firmware update. Check internet connectivity (gateway, DNS, time) and restart the device." - } - } - }, - "device_not_calibrated": { - "title": "Shelly device {device_name} is not calibrated", - "description": "Shelly device {device_name} with IP address {ip_address} requires calibration. To calibrate the device, it must be rebooted after proper installation on the valve. You can reboot the device in its web panel, go to 'Settings' > 'Device Reboot'." - }, - "push_update_failure": { - "title": "Shelly device {device_name} push update failure", - "description": "Home Assistant is not receiving push updates from the Shelly device {device_name} with IP address {ip_address}. Check the CoIoT configuration in the web panel of the device and your network configuration." - }, - "unsupported_firmware": { - "title": "Unsupported firmware for device {device_name}", - "description": "Your Shelly device {device_name} with IP address {ip_address} is running an unsupported firmware. Please update the firmware.\n\nIf the device does not offer an update, check internet connectivity (gateway, DNS, time) and restart the device." - }, - "outbound_websocket_incorrectly_enabled": { - "title": "Outbound WebSocket is enabled for {device_name}", - "fix_flow": { + }, "step": { "confirm": { - "title": "[%key:component::shelly::issues::outbound_websocket_incorrectly_enabled::title%]", - "description": "Your Shelly device {device_name} with IP address {ip_address} is a non-sleeping device and Outbound WebSocket should be disabled in its configuration.\n\nSelect **Submit** button to disable Outbound WebSocket." + "description": "Your Shelly device {device_name} with IP address {ip_address} is running firmware {firmware} and acts as BLE scanner with active mode. This firmware version is not supported for BLE scanner active mode.\n\nSelect **Submit** button to start the OTA update to the latest stable firmware version.", + "title": "[%key:component::shelly::issues::ble_scanner_firmware_unsupported::title%]" } - }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } - } + }, + "title": "{device_name} is running unsupported firmware" }, "deprecated_firmware": { - "title": "{device_name} is running outdated firmware", "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::shelly::issues::deprecated_firmware::title%]", - "description": "Your Shelly device {device_name} with IP address {ip_address} is running firmware {firmware}. This firmware version will not be supported by Shelly integration starting from Home Assistant {ha_version}.\n\nSelect **Submit** button to start the OTA update to the latest stable firmware version." - } - }, "abort": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "update_not_available": "[%key:component::shelly::issues::ble_scanner_firmware_unsupported::fix_flow::abort::update_not_available%]" + }, + "step": { + "confirm": { + "description": "Your Shelly device {device_name} with IP address {ip_address} is running firmware {firmware}. This firmware version will not be supported by Shelly integration starting from Home Assistant {ha_version}.\n\nSelect **Submit** button to start the OTA update to the latest stable firmware version.", + "title": "[%key:component::shelly::issues::deprecated_firmware::title%]" + } } + }, + "title": "{device_name} is running outdated firmware" + }, + "device_not_calibrated": { + "description": "Shelly device {device_name} with IP address {ip_address} requires calibration. To calibrate the device, it must be rebooted after proper installation on the valve. You can reboot the device in its web panel, go to 'Settings' > 'Device Reboot'.", + "title": "Shelly device {device_name} is not calibrated" + }, + "outbound_websocket_incorrectly_enabled": { + "fix_flow": { + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "step": { + "confirm": { + "description": "Your Shelly device {device_name} with IP address {ip_address} is a non-sleeping device and Outbound WebSocket should be disabled in its configuration.\n\nSelect **Submit** button to disable Outbound WebSocket.", + "title": "[%key:component::shelly::issues::outbound_websocket_incorrectly_enabled::title%]" + } + } + }, + "title": "Outbound WebSocket is enabled for {device_name}" + }, + "push_update_failure": { + "description": "Home Assistant is not receiving push updates from the Shelly device {device_name} with IP address {ip_address}. Check the CoIoT configuration in the web panel of the device and your network configuration.", + "title": "Shelly device {device_name} push update failure" + }, + "unsupported_firmware": { + "description": "Your Shelly device {device_name} with IP address {ip_address} is running an unsupported firmware. Please update the firmware.\n\nIf the device does not offer an update, check internet connectivity (gateway, DNS, time) and restart the device.", + "title": "Unsupported firmware for device {device_name}" + } + }, + "options": { + "abort": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_scripts_support": "Device does not support scripts and cannot be used as a Bluetooth scanner.", + "zigbee_firmware": "A device with Zigbee firmware cannot be used as a Bluetooth scanner. Please switch to Matter firmware to use the device as a Bluetooth scanner." + }, + "step": { + "init": { + "data": { + "ble_scanner_mode": "Bluetooth scanner mode" + }, + "data_description": { + "ble_scanner_mode": "The scanner mode to use for Bluetooth scanning." + }, + "description": "Bluetooth scanning can be active or passive. With active, the Shelly requests data from nearby devices; with passive, the Shelly receives unsolicited data from nearby devices." + } + } + }, + "selector": { + "ble_scanner_mode": { + "options": { + "active": "[%key:common::state::active%]", + "disabled": "[%key:common::state::disabled%]", + "passive": "Passive" } } } diff --git a/homeassistant/components/shopping_list/icons.json b/homeassistant/components/shopping_list/icons.json index 9b3d8a08a79..166bee98635 100644 --- a/homeassistant/components/shopping_list/icons.json +++ b/homeassistant/components/shopping_list/icons.json @@ -10,22 +10,22 @@ "add_item": { "service": "mdi:cart-plus" }, - "remove_item": { + "clear_completed_items": { "service": "mdi:cart-remove" }, - "complete_item": { + "complete_all": { "service": "mdi:cart-check" }, - "incomplete_item": { - "service": "mdi:cart-off" - }, - "complete_all": { + "complete_item": { "service": "mdi:cart-check" }, "incomplete_all": { "service": "mdi:cart-off" }, - "clear_completed_items": { + "incomplete_item": { + "service": "mdi:cart-off" + }, + "remove_item": { "service": "mdi:cart-remove" }, "sort": { diff --git a/homeassistant/components/shopping_list/strings.json b/homeassistant/components/shopping_list/strings.json index 8618d9241b4..7826f06618a 100644 --- a/homeassistant/components/shopping_list/strings.json +++ b/homeassistant/components/shopping_list/strings.json @@ -1,77 +1,12 @@ { - "title": "Shopping List", "config": { - "step": { - "user": { - "title": "[%key:component::shopping_list::title%]", - "description": "Do you want to configure the shopping list?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - } - }, - "services": { - "add_item": { - "name": "Add item", - "description": "Adds an item to the shopping list.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The name of the item to add." - } - } }, - "remove_item": { - "name": "Remove item", - "description": "Removes the first item with matching name from the shopping list.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The name of the item to remove." - } - } - }, - "complete_item": { - "name": "Complete item", - "description": "Marks the first item with matching name as completed in the shopping list.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The name of the item to mark as completed (without removing)." - } - } - }, - "incomplete_item": { - "name": "Incomplete item", - "description": "Marks the first item with matching name as incomplete in the shopping list.", - "fields": { - "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The name of the item to mark as incomplete." - } - } - }, - "complete_all": { - "name": "Complete all", - "description": "Marks all items as completed in the shopping list (without removing them from the list)." - }, - "incomplete_all": { - "name": "Incomplete all", - "description": "Marks all items as incomplete in the shopping list." - }, - "clear_completed_items": { - "name": "Clear completed items", - "description": "Removes completed items from the shopping list." - }, - "sort": { - "name": "Sort all items", - "description": "Sorts all items by name in the shopping list.", - "fields": { - "reverse": { - "name": "Sort reverse", - "description": "Whether to sort in reverse (descending) order." - } + "step": { + "user": { + "description": "Do you want to configure the shopping list?", + "title": "[%key:component::shopping_list::title%]" } } }, @@ -81,5 +16,70 @@ "name": "[%key:component::shopping_list::title%]" } } - } + }, + "services": { + "add_item": { + "description": "Adds an item to the shopping list.", + "fields": { + "name": { + "description": "The name of the item to add.", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Add item" + }, + "clear_completed_items": { + "description": "Removes completed items from the shopping list.", + "name": "Clear completed items" + }, + "complete_all": { + "description": "Marks all items as completed in the shopping list (without removing them from the list).", + "name": "Complete all" + }, + "complete_item": { + "description": "Marks the first item with matching name as completed in the shopping list.", + "fields": { + "name": { + "description": "The name of the item to mark as completed (without removing).", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Complete item" + }, + "incomplete_all": { + "description": "Marks all items as incomplete in the shopping list.", + "name": "Incomplete all" + }, + "incomplete_item": { + "description": "Marks the first item with matching name as incomplete in the shopping list.", + "fields": { + "name": { + "description": "The name of the item to mark as incomplete.", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Incomplete item" + }, + "remove_item": { + "description": "Removes the first item with matching name from the shopping list.", + "fields": { + "name": { + "description": "The name of the item to remove.", + "name": "[%key:common::config_flow::data::name%]" + } + }, + "name": "Remove item" + }, + "sort": { + "description": "Sorts all items by name in the shopping list.", + "fields": { + "reverse": { + "description": "Whether to sort in reverse (descending) order.", + "name": "Sort reverse" + } + }, + "name": "Sort all items" + } + }, + "title": "Shopping List" } diff --git a/homeassistant/components/sia/strings.json b/homeassistant/components/sia/strings.json index 00b610e8dc8..c8a6ecc5175 100644 --- a/homeassistant/components/sia/strings.json +++ b/homeassistant/components/sia/strings.json @@ -1,40 +1,40 @@ { "config": { - "step": { - "user": { - "data": { - "port": "[%key:common::config_flow::data::port%]", - "protocol": "Protocol", - "account": "Account ID", - "encryption_key": "Encryption key", - "ping_interval": "Ping interval (min)", - "zones": "Number of zones for the account", - "additional_account": "Additional accounts" - }, - "title": "Create a connection for SIA-based alarm systems" - }, - "additional_account": { - "data": { - "account": "[%key:component::sia::config::step::user::data::account%]", - "encryption_key": "[%key:component::sia::config::step::user::data::encryption_key%]", - "ping_interval": "[%key:component::sia::config::step::user::data::ping_interval%]", - "zones": "[%key:component::sia::config::step::user::data::zones%]", - "additional_account": "[%key:component::sia::config::step::user::data::additional_account%]" - }, - "title": "Add another account to the current port" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { - "invalid_key_format": "The key is not a hex value, please use only 0-9 and A-F.", - "invalid_key_length": "The key is not the right length, it has to be 16, 24 or 32 hex characters.", "invalid_account_format": "The account is not a hex value, please use only 0-9 and A-F.", "invalid_account_length": "The account is not the right length, it has to be between 3 and 16 characters.", + "invalid_key_format": "The key is not a hex value, please use only 0-9 and A-F.", + "invalid_key_length": "The key is not the right length, it has to be 16, 24 or 32 hex characters.", "invalid_ping": "The ping interval needs to be between 1 and 1440 minutes.", "invalid_zones": "There needs to be at least 1 zone.", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "additional_account": { + "data": { + "account": "[%key:component::sia::config::step::user::data::account%]", + "additional_account": "[%key:component::sia::config::step::user::data::additional_account%]", + "encryption_key": "[%key:component::sia::config::step::user::data::encryption_key%]", + "ping_interval": "[%key:component::sia::config::step::user::data::ping_interval%]", + "zones": "[%key:component::sia::config::step::user::data::zones%]" + }, + "title": "Add another account to the current port" + }, + "user": { + "data": { + "account": "Account ID", + "additional_account": "Additional accounts", + "encryption_key": "Encryption key", + "ping_interval": "Ping interval (min)", + "port": "[%key:common::config_flow::data::port%]", + "protocol": "Protocol", + "zones": "Number of zones for the account" + }, + "title": "Create a connection for SIA-based alarm systems" + } } }, "options": { diff --git a/homeassistant/components/simplefin/strings.json b/homeassistant/components/simplefin/strings.json index b3750a96b1e..24128264765 100644 --- a/homeassistant/components/simplefin/strings.json +++ b/homeassistant/components/simplefin/strings.json @@ -1,23 +1,23 @@ { "config": { - "step": { - "user": { - "description": "Please enter a SimpleFIN setup token.", - "data": { - "api_token": "Setup token" - } - } + "abort": { + "already_configured": "This access URL is already configured.", + "missing_access_url": "Access URL or setup token missing" }, "error": { - "invalid_auth": "Authentication failed: This could be due to revoked access or incorrect credentials", "claim_error": "The setup token either does not exist or has already been used by someone else. Receiving this could mean that the user\u2019s transaction information has been compromised", + "invalid_auth": "Authentication failed: This could be due to revoked access or incorrect credentials", "invalid_claim_token": "The setup token is invalid and could not be decoded", "payment_required": "You presented a valid access URL, however payment is required before you can obtain data", "url_error": "There was an issue parsing the access URL" }, - "abort": { - "missing_access_url": "Access URL or setup token missing", - "already_configured": "This access URL is already configured." + "step": { + "user": { + "data": { + "api_token": "Setup token" + }, + "description": "Please enter a SimpleFIN setup token." + } } }, "entity": { @@ -25,11 +25,11 @@ "possible_error": { "name": "Possible error" } }, "sensor": { - "balance": { - "name": "Balance" - }, "age": { "name": "Data age" + }, + "balance": { + "name": "Balance" } } } diff --git a/homeassistant/components/simplepush/strings.json b/homeassistant/components/simplepush/strings.json index 0031dc32340..a0c41ea4b0a 100644 --- a/homeassistant/components/simplepush/strings.json +++ b/homeassistant/components/simplepush/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "device_key": "The device key of your device", - "event": "The event for the events.", - "password": "The password of the encryption used by your device", - "salt": "The salt used by your device." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "device_key": "The device key of your device", + "event": "The event for the events.", + "name": "[%key:common::config_flow::data::name%]", + "password": "The password of the encryption used by your device", + "salt": "The salt used by your device." + } + } } } } diff --git a/homeassistant/components/simplisafe/strings.json b/homeassistant/components/simplisafe/strings.json index 1f12b1ed65f..a8bbb867986 100644 --- a/homeassistant/components/simplisafe/strings.json +++ b/homeassistant/components/simplisafe/strings.json @@ -1,12 +1,9 @@ { "config": { - "step": { - "user": { - "description": "SimpliSafe authenticates users via its web app. Due to technical limitations, there is a manual step at the end of this process; please ensure that you read the [documentation]({documentation_url}) before starting.\n\nWhen you are ready, click [here]({url}) to open the SimpliSafe web app and input your credentials. If you've already logged into SimpliSafe in your browser, you may want to open a new tab, then copy/paste the above URL into that tab.\n\nWhen the process is complete, return here and input the authorization code from the `com.simplisafe.mobile` URL.", - "data": { - "auth_code": "Authorization Code" - } - } + "abort": { + "already_configured": "This SimpliSafe account is already in use.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "wrong_account": "The user credentials provided do not match this SimpliSafe account." }, "error": { "identifier_exists": "Account already registered", @@ -14,19 +11,12 @@ "invalid_auth_code_length": "SimpliSafe authorization codes are 45 characters in length", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "This SimpliSafe account is already in use.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "wrong_account": "The user credentials provided do not match this SimpliSafe account." - } - }, - "options": { "step": { - "init": { - "title": "Configure SimpliSafe", + "user": { "data": { - "code": "Code (used in Home Assistant UI)" - } + "auth_code": "Authorization Code" + }, + "description": "SimpliSafe authenticates users via its web app. Due to technical limitations, there is a manual step at the end of this process; please ensure that you read the [documentation]({documentation_url}) before starting.\n\nWhen you are ready, click [here]({url}) to open the SimpliSafe web app and input your credentials. If you've already logged into SimpliSafe in your browser, you may want to open a new tab, then copy/paste the above URL into that tab.\n\nWhen the process is complete, return here and input the authorization code from the `com.simplisafe.mobile` URL." } } }, @@ -37,84 +27,94 @@ } } }, + "options": { + "step": { + "init": { + "data": { + "code": "Code (used in Home Assistant UI)" + }, + "title": "Configure SimpliSafe" + } + } + }, "services": { "remove_pin": { - "name": "Remove PIN", "description": "Removes a PIN by its label or value.", "fields": { "device_id": { - "name": "System", - "description": "The system to remove the PIN from." + "description": "The system to remove the PIN from.", + "name": "System" }, "label_or_pin": { - "name": "Label/PIN", - "description": "The label/value to remove." + "description": "The label/value to remove.", + "name": "Label/PIN" } - } + }, + "name": "Remove PIN" }, "set_pin": { - "name": "Set PIN", "description": "Sets/updates a PIN.", "fields": { "device_id": { - "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]", - "description": "The system to set the PIN on." + "description": "The system to set the PIN on.", + "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]" }, "label": { - "name": "Label", - "description": "The label of the PIN." + "description": "The label of the PIN.", + "name": "Label" }, "pin": { - "name": "PIN", - "description": "The value of the PIN." + "description": "The value of the PIN.", + "name": "PIN" } - } + }, + "name": "Set PIN" }, "set_system_properties": { - "name": "Set system properties", "description": "Sets one or more system properties.", "fields": { - "device_id": { - "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]", - "description": "The system whose properties should be set." - }, "alarm_duration": { - "name": "Alarm duration", - "description": "The length of a triggered alarm." + "description": "The length of a triggered alarm.", + "name": "Alarm duration" }, "alarm_volume": { - "name": "Alarm volume", - "description": "The volume level of a triggered alarm." + "description": "The volume level of a triggered alarm.", + "name": "Alarm volume" }, "chime_volume": { - "name": "Chime volume", - "description": "The volume level of the door chime." + "description": "The volume level of the door chime.", + "name": "Chime volume" + }, + "device_id": { + "description": "The system whose properties should be set.", + "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]" }, "entry_delay_away": { - "name": "Entry delay away", - "description": "How long to delay when entering while \"away\"." + "description": "How long to delay when entering while \"away\".", + "name": "Entry delay away" }, "entry_delay_home": { - "name": "Entry delay home", - "description": "How long to delay when entering while \"home\"." + "description": "How long to delay when entering while \"home\".", + "name": "Entry delay home" }, "exit_delay_away": { - "name": "Exit delay away", - "description": "How long to delay when exiting while \"away\"." + "description": "How long to delay when exiting while \"away\".", + "name": "Exit delay away" }, "exit_delay_home": { - "name": "Exit delay home", - "description": "How long to delay when exiting while \"home\"." + "description": "How long to delay when exiting while \"home\".", + "name": "Exit delay home" }, "light": { - "name": "Light", - "description": "Whether the armed light should be visible." + "description": "Whether the armed light should be visible.", + "name": "Light" }, "voice_prompt_volume": { - "name": "Voice prompt volume", - "description": "The volume level of the voice prompt." + "description": "The volume level of the voice prompt.", + "name": "Voice prompt volume" } - } + }, + "name": "Set system properties" } } } diff --git a/homeassistant/components/siren/strings.json b/homeassistant/components/siren/strings.json index 90725da9e8f..1f3ce1ff4e9 100644 --- a/homeassistant/components/siren/strings.json +++ b/homeassistant/components/siren/strings.json @@ -1,5 +1,4 @@ { - "title": "Siren", "entity_component": { "_": { "name": "[%key:component::siren::title%]", @@ -15,31 +14,32 @@ } }, "services": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns the siren on.", - "fields": { - "tone": { - "name": "Tone", - "description": "The tone to emit. When `available_tones` property is a map, either the key or the value can be used. Must be supported by the integration." - }, - "volume_level": { - "name": "Volume", - "description": "The volume. 0 is inaudible, 1 is the maximum volume. Must be supported by the integration." - }, - "duration": { - "name": "Duration", - "description": "Number of seconds the sound is played. Must be supported by the integration." - } - } + "toggle": { + "description": "Toggles the siren on/off.", + "name": "[%key:common::action::toggle%]" }, "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns the siren off." + "description": "Turns the siren off.", + "name": "[%key:common::action::turn_off%]" }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles the siren on/off." + "turn_on": { + "description": "Turns the siren on.", + "fields": { + "duration": { + "description": "Number of seconds the sound is played. Must be supported by the integration.", + "name": "Duration" + }, + "tone": { + "description": "The tone to emit. When `available_tones` property is a map, either the key or the value can be used. Must be supported by the integration.", + "name": "Tone" + }, + "volume_level": { + "description": "The volume. 0 is inaudible, 1 is the maximum volume. Must be supported by the integration.", + "name": "Volume" + } + }, + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Siren" } diff --git a/homeassistant/components/sky_remote/strings.json b/homeassistant/components/sky_remote/strings.json index af794490c43..680eafd0df8 100644 --- a/homeassistant/components/sky_remote/strings.json +++ b/homeassistant/components/sky_remote/strings.json @@ -1,20 +1,20 @@ { "config": { - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { - "title": "Add Sky Remote", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "Hostname or IP address of your Sky device" - } + }, + "title": "Add Sky Remote" } } } diff --git a/homeassistant/components/skybell/icons.json b/homeassistant/components/skybell/icons.json index a2084cd2971..d7b31062f90 100644 --- a/homeassistant/components/skybell/icons.json +++ b/homeassistant/components/skybell/icons.json @@ -7,10 +7,10 @@ "last_button_event": { "default": "mdi:clock" }, - "last_motion_event": { + "last_check_in": { "default": "mdi:clock" }, - "last_check_in": { + "last_motion_event": { "default": "mdi:clock" }, "motion_threshold": { diff --git a/homeassistant/components/skybell/strings.json b/homeassistant/components/skybell/strings.json index 28a66df2d02..85b83166482 100644 --- a/homeassistant/components/skybell/strings.json +++ b/homeassistant/components/skybell/strings.json @@ -1,28 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please update your password for {email}", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { "data": { "email": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" } - }, - "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -46,12 +46,12 @@ "last_button_event": { "name": "Last button event" }, - "last_motion_event": { - "name": "Last motion event" - }, "last_check_in": { "name": "Last check in" }, + "last_motion_event": { + "name": "Last motion event" + }, "motion_threshold": { "name": "Motion threshold" }, diff --git a/homeassistant/components/slack/strings.json b/homeassistant/components/slack/strings.json index 960ae3cccbc..cefa5a41263 100644 --- a/homeassistant/components/slack/strings.json +++ b/homeassistant/components/slack/strings.json @@ -1,8 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "description": "Refer to the documentation on getting your Slack API key.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", "default_channel": "Default channel", @@ -14,16 +21,9 @@ "default_channel": "The channel to post to if no channel is specified when sending a message.", "icon": "Use one of the Slack emojis as an icon for the supplied username.", "username": "Home Assistant will post to Slack using the username specified." - } + }, + "description": "Refer to the documentation on getting your Slack API key." } - }, - "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_service%]" } }, "entity": { diff --git a/homeassistant/components/sleep_as_android/icons.json b/homeassistant/components/sleep_as_android/icons.json index 8fd915933f2..3bfe409ad6f 100644 --- a/homeassistant/components/sleep_as_android/icons.json +++ b/homeassistant/components/sleep_as_android/icons.json @@ -4,20 +4,8 @@ "alarm_clock": { "default": "mdi:alarm" }, - "user_notification": { - "default": "mdi:cellphone-message" - }, - "smart_wakeup": { - "default": "mdi:brain" - }, - "sleep_phase": { - "default": "mdi:bed" - }, - "sound_event": { - "default": "mdi:chat-sleep-outline" - }, - "sleep_tracking": { - "default": "mdi:record-rec" + "jet_lag_prevention": { + "default": "mdi:airplane-clock" }, "lullaby": { "default": "mdi:cradle-outline" @@ -25,16 +13,28 @@ "sleep_health": { "default": "mdi:heart-pulse" }, - "jet_lag_prevention": { - "default": "mdi:airplane-clock" + "sleep_phase": { + "default": "mdi:bed" + }, + "sleep_tracking": { + "default": "mdi:record-rec" + }, + "smart_wakeup": { + "default": "mdi:brain" + }, + "sound_event": { + "default": "mdi:chat-sleep-outline" + }, + "user_notification": { + "default": "mdi:cellphone-message" } }, "sensor": { - "alarm_time": { - "default": "mdi:alarm" - }, "alarm_label": { "default": "mdi:label-outline" + }, + "alarm_time": { + "default": "mdi:alarm" } } } diff --git a/homeassistant/components/sleep_as_android/strings.json b/homeassistant/components/sleep_as_android/strings.json index 3aa5a38b380..e6678a610d2 100644 --- a/homeassistant/components/sleep_as_android/strings.json +++ b/homeassistant/components/sleep_as_android/strings.json @@ -1,34 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Set up Sleep as Android", - "description": "Are you sure you want to set up the Sleep as Android integration?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "webhook_not_internet_accessible": "[%key:common::config_flow::abort::webhook_not_internet_accessible%]" }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up a webhook.\n\nOpen Sleep as Android and go to *Settings → Services → Automation → Webhooks*\n\nEnable *Webhooks* and fill in the following webhook in the URL field:\n\n`{webhook_url}`\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "Are you sure you want to set up the Sleep as Android integration?", + "title": "Set up Sleep as Android" + } } }, "entity": { "event": { - "sleep_tracking": { - "name": "Sleep tracking", - "state_attributes": { - "event_type": { - "state": { - "paused": "[%key:common::state::paused%]", - "resumed": "Resumed", - "started": "Started", - "stopped": "[%key:common::state::stopped%]" - } - } - } - }, "alarm_clock": { "name": "Alarm clock", "state_attributes": { @@ -44,53 +31,13 @@ } } }, - "smart_wakeup": { - "name": "Smart wake-up", + "jet_lag_prevention": { + "name": "Jet lag prevention", "state_attributes": { "event_type": { "state": { - "before_smart_period": "45min before smart wake-up", - "smart_period": "Smart wake-up started" - } - } - } - }, - "user_notification": { - "name": "User notification", - "state_attributes": { - "event_type": { - "state": { - "wake_up_check": "Wake-up check", - "show_skip_next_alarm": "Skip next alarm", - "time_to_bed_alarm_alert": "Time to bed" - } - } - } - }, - "sleep_phase": { - "name": "Sleep phase", - "state_attributes": { - "event_type": { - "state": { - "awake": "Woke up", - "deep_sleep": "Deep sleep", - "light_sleep": "Light sleep", - "not_awake": "Fell asleep", - "rem": "REM sleep" - } - } - } - }, - "sound_event": { - "name": "Sound recognition", - "state_attributes": { - "event_type": { - "state": { - "baby": "Baby crying", - "cough": "Coughing or sneezing", - "laugh": "Laughter", - "snore": "Snoring", - "talk": "Talking" + "jet_lag_start": "[%key:component::sleep_as_android::entity::event::lullaby::state_attributes::event_type::state::start%]", + "jet_lag_stop": "[%key:common::state::stopped%]" } } } @@ -118,27 +65,80 @@ } } }, - "jet_lag_prevention": { - "name": "Jet lag prevention", + "sleep_phase": { + "name": "Sleep phase", "state_attributes": { "event_type": { "state": { - "jet_lag_start": "[%key:component::sleep_as_android::entity::event::lullaby::state_attributes::event_type::state::start%]", - "jet_lag_stop": "[%key:common::state::stopped%]" + "awake": "Woke up", + "deep_sleep": "Deep sleep", + "light_sleep": "Light sleep", + "not_awake": "Fell asleep", + "rem": "REM sleep" + } + } + } + }, + "sleep_tracking": { + "name": "Sleep tracking", + "state_attributes": { + "event_type": { + "state": { + "paused": "[%key:common::state::paused%]", + "resumed": "Resumed", + "started": "Started", + "stopped": "[%key:common::state::stopped%]" + } + } + } + }, + "smart_wakeup": { + "name": "Smart wake-up", + "state_attributes": { + "event_type": { + "state": { + "before_smart_period": "45min before smart wake-up", + "smart_period": "Smart wake-up started" + } + } + } + }, + "sound_event": { + "name": "Sound recognition", + "state_attributes": { + "event_type": { + "state": { + "baby": "Baby crying", + "cough": "Coughing or sneezing", + "laugh": "Laughter", + "snore": "Snoring", + "talk": "Talking" + } + } + } + }, + "user_notification": { + "name": "User notification", + "state_attributes": { + "event_type": { + "state": { + "show_skip_next_alarm": "Skip next alarm", + "time_to_bed_alarm_alert": "Time to bed", + "wake_up_check": "Wake-up check" } } } } }, "sensor": { - "next_alarm": { - "name": "Next alarm" - }, "alarm_label": { "name": "Alarm label", "state": { "alarm": "Alarm" } + }, + "next_alarm": { + "name": "Next alarm" } } } diff --git a/homeassistant/components/sleepiq/strings.json b/homeassistant/components/sleepiq/strings.json index 58a35ea914b..5b92224babf 100644 --- a/homeassistant/components/sleepiq/strings.json +++ b/homeassistant/components/sleepiq/strings.json @@ -9,40 +9,40 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The SleepIQ integration needs to re-authenticate your account {username}.", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The SleepIQ integration needs to re-authenticate your account {username}.", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } } } }, "entity": { "select": { - "foot_warmer_temp": { - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, "core_temps": { "state": { - "off": "[%key:common::state::off%]", - "heating_low": "Heating low", - "heating_medium": "Heating medium", - "heating_high": "Heating high", + "cooling_high": "Cooling high", "cooling_low": "Cooling low", "cooling_medium": "Cooling medium", - "cooling_high": "Cooling high" + "heating_high": "Heating high", + "heating_low": "Heating low", + "heating_medium": "Heating medium", + "off": "[%key:common::state::off%]" + } + }, + "foot_warmer_temp": { + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" } } } diff --git a/homeassistant/components/slide_local/manifest.json b/homeassistant/components/slide_local/manifest.json index 7e524c54a25..44a91ed5d2e 100644 --- a/homeassistant/components/slide_local/manifest.json +++ b/homeassistant/components/slide_local/manifest.json @@ -10,8 +10,8 @@ "requirements": ["goslide-api==0.7.0"], "zeroconf": [ { - "type": "_http._tcp.local.", - "name": "slide*" + "name": "slide*", + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/slide_local/strings.json b/homeassistant/components/slide_local/strings.json index 10efa4bc4f2..571fea50456 100644 --- a/homeassistant/components/slide_local/strings.json +++ b/homeassistant/components/slide_local/strings.json @@ -1,33 +1,5 @@ { "config": { - "step": { - "user": { - "description": "Provide information to connect to the Slide device", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your local Slide", - "password": "The device code of your Slide (inside of the Slide or in the box, length is 8 characters). If your Slide runs firmware version 2 this is optional, as it is not used by the local API." - } - }, - "reconfigure": { - "description": "Reconfigure the information for your Slide device", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "[%key:component::slide_local::config::step::user::data_description::host%]", - "password": "[%key:component::slide_local::config::step::user::data_description::password%]" - } - }, - "zeroconf_confirm": { - "title": "Confirm setup for Slide", - "description": "Do you want to set up {host}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "discovery_connection_failed": "The setup of the discovered device failed with the following error: {error}. Please try to set it up manually.", @@ -38,19 +10,33 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { + }, "step": { - "init": { - "title": "Configure Slide", - "description": "Reconfigure the Slide device", + "reconfigure": { "data": { - "invert_position": "Invert position" + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]" }, "data_description": { - "invert_position": "Inverts the position of your Slide cover." - } + "host": "[%key:component::slide_local::config::step::user::data_description::host%]", + "password": "[%key:component::slide_local::config::step::user::data_description::password%]" + }, + "description": "Reconfigure the information for your Slide device" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "host": "The hostname or IP address of your local Slide", + "password": "The device code of your Slide (inside of the Slide or in the box, length is 8 characters). If your Slide runs firmware version 2 this is optional, as it is not used by the local API." + }, + "description": "Provide information to connect to the Slide device" + }, + "zeroconf_confirm": { + "description": "Do you want to set up {host}?", + "title": "Confirm setup for Slide" } } }, @@ -76,5 +62,19 @@ "update_error": { "message": "Error while updating data from the API." } + }, + "options": { + "step": { + "init": { + "data": { + "invert_position": "Invert position" + }, + "data_description": { + "invert_position": "Inverts the position of your Slide cover." + }, + "description": "Reconfigure the Slide device", + "title": "Configure Slide" + } + } } } diff --git a/homeassistant/components/slimproto/strings.json b/homeassistant/components/slimproto/strings.json index 8eb261b58fc..151035f1efe 100644 --- a/homeassistant/components/slimproto/strings.json +++ b/homeassistant/components/slimproto/strings.json @@ -1,10 +1,10 @@ { "config": { - "step": { - "user": {} - }, "abort": { "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "step": { + "user": {} } } } diff --git a/homeassistant/components/sma/strings.json b/homeassistant/components/sma/strings.json index 8253d94a749..07e4047de54 100644 --- a/homeassistant/components/sma/strings.json +++ b/homeassistant/components/sma/strings.json @@ -12,12 +12,22 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { + "discovery_confirm": { + "data": { + "group": "[%key:component::sma::config::step::user::data::group%]", + "password": "[%key:common::config_flow::data::password%]", + "ssl": "[%key:common::config_flow::data::ssl%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "Do you want to set up the discovered SMA device ({host})?", + "title": "[%key:component::sma::config::step::user::title%]" + }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The SMA integration needs to re-authenticate your connection details", "data": { "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "The SMA integration needs to re-authenticate your connection details", + "title": "[%key:common::config_flow::title::reauth%]" }, "user": { "data": { @@ -32,16 +42,6 @@ }, "description": "Enter your SMA device information.", "title": "Set up SMA Solar" - }, - "discovery_confirm": { - "title": "[%key:component::sma::config::step::user::title%]", - "description": "Do you want to set up the discovered SMA device ({host})?", - "data": { - "group": "[%key:component::sma::config::step::user::data::group%]", - "password": "[%key:common::config_flow::data::password%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } } } } diff --git a/homeassistant/components/smappee/manifest.json b/homeassistant/components/smappee/manifest.json index ec93b04fe9f..0f407d67816 100644 --- a/homeassistant/components/smappee/manifest.json +++ b/homeassistant/components/smappee/manifest.json @@ -10,16 +10,16 @@ "requirements": ["pysmappee==0.2.29"], "zeroconf": [ { - "type": "_ssh._tcp.local.", - "name": "smappee1*" + "name": "smappee1*", + "type": "_ssh._tcp.local." }, { - "type": "_ssh._tcp.local.", - "name": "smappee2*" + "name": "smappee2*", + "type": "_ssh._tcp.local." }, { - "type": "_ssh._tcp.local.", - "name": "smappee50*" + "name": "smappee50*", + "type": "_ssh._tcp.local." } ] } diff --git a/homeassistant/components/smappee/strings.json b/homeassistant/components/smappee/strings.json index ddb5c96db0a..99aa0205f0c 100644 --- a/homeassistant/components/smappee/strings.json +++ b/homeassistant/components/smappee/strings.json @@ -1,46 +1,46 @@ { "config": { - "flow_title": "{name}", - "step": { - "environment": { - "description": "Set up your Smappee to integrate with Home Assistant.", - "data": { - "environment": "Environment" - } - }, - "local": { - "description": "Enter the host to initiate the Smappee local integration", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "zeroconf_confirm": { - "description": "Do you want to add the Smappee device with serial number `{serialnumber}` to Home Assistant?", - "title": "Discovered Smappee device" - }, - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured_local_device": "Local device(s) is already configured. Please remove those first before configuring a cloud device.", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "invalid_mdns": "Unsupported device for the Smappee integration.", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]" + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]" + }, + "flow_title": "{name}", + "step": { + "environment": { + "data": { + "environment": "Environment" + }, + "description": "Set up your Smappee to integrate with Home Assistant." + }, + "local": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Enter the host to initiate the Smappee local integration" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "zeroconf_confirm": { + "description": "Do you want to add the Smappee device with serial number `{serialnumber}` to Home Assistant?", + "title": "Discovered Smappee device" + } } } } diff --git a/homeassistant/components/smarla/icons.json b/homeassistant/components/smarla/icons.json index a72e7e7ea12..a5d2f8d8dee 100644 --- a/homeassistant/components/smarla/icons.json +++ b/homeassistant/components/smarla/icons.json @@ -1,28 +1,28 @@ { "entity": { - "switch": { - "smart_mode": { - "default": "mdi:refresh-auto" - } - }, "number": { "intensity": { "default": "mdi:sine-wave" } }, "sensor": { + "activity": { + "default": "mdi:baby-face" + }, "amplitude": { "default": "mdi:sine-wave" }, "period": { "default": "mdi:sine-wave" }, - "activity": { - "default": "mdi:baby-face" - }, "swing_count": { "default": "mdi:counter" } + }, + "switch": { + "smart_mode": { + "default": "mdi:refresh-auto" + } } } } diff --git a/homeassistant/components/smarla/strings.json b/homeassistant/components/smarla/strings.json index edf306b1183..ac74fc671d9 100644 --- a/homeassistant/components/smarla/strings.json +++ b/homeassistant/components/smarla/strings.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "malformed_token": "Malformed access token" @@ -13,36 +16,33 @@ "access_token": "The access token generated by the Swing2Sleep app." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { - "switch": { - "smart_mode": { - "name": "Smart Mode" - } - }, "number": { "intensity": { "name": "Intensity" } }, "sensor": { + "activity": { + "name": "Activity" + }, "amplitude": { "name": "Amplitude" }, "period": { "name": "Period" }, - "activity": { - "name": "Activity" - }, "swing_count": { "name": "Swing count", "unit_of_measurement": "swings" } + }, + "switch": { + "smart_mode": { + "name": "Smart Mode" + } } } } diff --git a/homeassistant/components/smart_meter_texas/strings.json b/homeassistant/components/smart_meter_texas/strings.json index 96dc8b371d1..fed00595763 100644 --- a/homeassistant/components/smart_meter_texas/strings.json +++ b/homeassistant/components/smart_meter_texas/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } } } diff --git a/homeassistant/components/smartthings/icons.json b/homeassistant/components/smartthings/icons.json index 123668612ef..9751c1c81d2 100644 --- a/homeassistant/components/smartthings/icons.json +++ b/homeassistant/components/smartthings/icons.json @@ -1,26 +1,26 @@ { "entity": { "binary_sensor": { - "dryer_wrinkle_prevent_active": { - "default": "mdi:tumble-dryer", - "state": { - "on": "mdi:tumble-dryer-alert" - } - }, - "remote_control": { - "default": "mdi:remote-off", - "state": { - "on": "mdi:remote" - } - }, "child_lock": { "default": "mdi:lock-open", "state": { "on": "mdi:lock" } }, + "dryer_wrinkle_prevent_active": { + "default": "mdi:tumble-dryer", + "state": { + "on": "mdi:tumble-dryer-alert" + } + }, "keep_fresh_mode": { "default": "mdi:creation" + }, + "remote_control": { + "default": "mdi:remote-off", + "state": { + "on": "mdi:remote" + } } }, "button": { @@ -34,54 +34,54 @@ "climate": { "air_conditioner": { "state_attributes": { - "preset_mode": { - "state": { - "wind_free": "mdi:weather-dust", - "wind_free_sleep": "mdi:sleep", - "quiet": "mdi:volume-off", - "long_wind": "mdi:weather-windy", - "smart": "mdi:leaf", - "motion_direct": "mdi:account-arrow-left", - "motion_indirect": "mdi:account-arrow-right" - } - }, "fan_mode": { "state": { "turbo": "mdi:wind-power" } + }, + "preset_mode": { + "state": { + "long_wind": "mdi:weather-windy", + "motion_direct": "mdi:account-arrow-left", + "motion_indirect": "mdi:account-arrow-right", + "quiet": "mdi:volume-off", + "smart": "mdi:leaf", + "wind_free": "mdi:weather-dust", + "wind_free_sleep": "mdi:sleep" + } } } } }, "number": { - "washer_rinse_cycles": { - "default": "mdi:waves-arrow-up" - }, "freezer_temperature": { "default": "mdi:snowflake-thermometer" + }, + "washer_rinse_cycles": { + "default": "mdi:waves-arrow-up" } }, "select": { - "operating_state": { - "state": { - "run": "mdi:play", - "pause": "mdi:pause", - "stop": "mdi:stop" - } - }, - "lamp": { - "default": "mdi:lightbulb", - "state": { - "on": "mdi:lightbulb-on", - "off": "mdi:lightbulb-off" - } - }, "detergent_amount": { "default": "mdi:car-coolant-level" }, "flexible_detergent_amount": { "default": "mdi:car-coolant-level" }, + "lamp": { + "default": "mdi:lightbulb", + "state": { + "off": "mdi:lightbulb-off", + "on": "mdi:lightbulb-on" + } + }, + "operating_state": { + "state": { + "pause": "mdi:pause", + "run": "mdi:play", + "stop": "mdi:stop" + } + }, "spin_level": { "default": "mdi:rotate-right" } @@ -90,10 +90,10 @@ "cooktop_operating_state": { "default": "mdi:stove", "state": { - "ready": "mdi:play-speed", - "run": "mdi:play", + "finished": "mdi:food-turkey", "paused": "mdi:pause", - "finished": "mdi:food-turkey" + "ready": "mdi:play-speed", + "run": "mdi:play" } }, "diverter_valve_position": { @@ -102,26 +102,32 @@ "tank": "mdi:water-boiler" } }, + "heating_mode": { + "state": { + "boost": "mdi:flash", + "defrost": "mdi:car-defrost-rear", + "keep_warm": "mdi:fire", + "manual": "mdi:cog", + "melt": "mdi:snowflake-melt", + "off": "mdi:power", + "quick_preheat": "mdi:heat-wave", + "simmer": "mdi:fire" + } + }, "manual_level": { "default": "mdi:radiator", "state": { "0": "mdi:radiator-off" } - }, - "heating_mode": { - "state": { - "off": "mdi:power", - "manual": "mdi:cog", - "boost": "mdi:flash", - "keep_warm": "mdi:fire", - "quick_preheat": "mdi:heat-wave", - "defrost": "mdi:car-defrost-rear", - "melt": "mdi:snowflake-melt", - "simmer": "mdi:fire" - } } }, "switch": { + "auto_cycle_link": { + "default": "mdi:link-off", + "state": { + "on": "mdi:link" + } + }, "bubble_soak": { "default": "mdi:water-off", "state": { @@ -131,22 +137,16 @@ "display_lighting": { "default": "mdi:lightbulb", "state": { - "on": "mdi:lightbulb-on", - "off": "mdi:lightbulb-off" + "off": "mdi:lightbulb-off", + "on": "mdi:lightbulb-on" } }, - "wrinkle_prevent": { - "default": "mdi:tumble-dryer", - "state": { - "off": "mdi:tumble-dryer-off" - } - }, - "keep_fresh_mode": { - "default": "mdi:creation" - }, "ice_maker": { "default": "mdi:delete-variant" }, + "keep_fresh_mode": { + "default": "mdi:creation" + }, "power_cool": { "default": "mdi:snowflake-alert" }, @@ -156,10 +156,10 @@ "sanitize": { "default": "mdi:lotion" }, - "auto_cycle_link": { - "default": "mdi:link-off", + "wrinkle_prevent": { + "default": "mdi:tumble-dryer", "state": { - "on": "mdi:link" + "off": "mdi:tumble-dryer-off" } } } diff --git a/homeassistant/components/smartthings/strings.json b/homeassistant/components/smartthings/strings.json index 8e3ecf97bb8..a4dea962511 100644 --- a/homeassistant/components/smartthings/strings.json +++ b/homeassistant/components/smartthings/strings.json @@ -1,37 +1,37 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "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%]", + "missing_scopes": "Authentication failed. Please make sure you have granted all required permissions.", + "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_account_mismatch": "Authenticated account does not match the account to be reauthenticated. Please log in with the correct account and pick the right location.", + "reauth_location_mismatch": "Authenticated location does not match the location to be reauthenticated. Please log in with the correct account and pick the right location.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The SmartThings integration needs to re-authenticate your account" + "description": "The SmartThings integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" - }, - "abort": { - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_account_mismatch": "Authenticated account does not match the account to be reauthenticated. Please log in with the correct account and pick the right location.", - "reauth_location_mismatch": "Authenticated location does not match the location to be reauthenticated. Please log in with the correct account and pick the right location.", - "missing_scopes": "Authentication failed. Please make sure you have granted all required permissions.", - "cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml." } }, "entity": { @@ -39,33 +39,33 @@ "acceleration": { "name": "Acceleration" }, + "child_lock": { + "name": "Child lock" + }, + "cool_select_plus_door": { + "name": "CoolSelect+ door" + }, + "cooler_door": { + "name": "Fridge door" + }, "door": { "name": "[%key:component::binary_sensor::entity_component::door::name%]" }, "dryer_wrinkle_prevent_active": { "name": "Wrinkle prevent active" }, - "keep_fresh_mode_active": { - "name": "Keep fresh mode active" - }, "filter_status": { "name": "Filter status" }, "freezer_door": { "name": "Freezer door" }, - "cooler_door": { - "name": "Fridge door" - }, - "cool_select_plus_door": { - "name": "CoolSelect+ door" + "keep_fresh_mode_active": { + "name": "Keep fresh mode active" }, "remote_control": { "name": "Remote control" }, - "child_lock": { - "name": "Child lock" - }, "valve": { "name": "Valve" } @@ -81,21 +81,21 @@ "climate": { "air_conditioner": { "state_attributes": { - "preset_mode": { - "state": { - "wind_free": "WindFree", - "wind_free_sleep": "WindFree sleep", - "quiet": "Quiet", - "long_wind": "Long wind", - "smart": "Smart saver", - "motion_direct": "Motion direct", - "motion_indirect": "Motion indirect" - } - }, "fan_mode": { "state": { "turbo": "Turbo" } + }, + "preset_mode": { + "state": { + "long_wind": "Long wind", + "motion_direct": "Motion direct", + "motion_indirect": "Motion indirect", + "quiet": "Quiet", + "smart": "Smart saver", + "wind_free": "WindFree", + "wind_free_sleep": "WindFree sleep" + } } } } @@ -103,14 +103,7 @@ "event": { "button": { "state": { - "pushed": "Pushed", - "held": "Held", "double": "Double", - "pushed_2x": "Pushed 2x", - "pushed_3x": "Pushed 3x", - "pushed_4x": "Pushed 4x", - "pushed_5x": "Pushed 5x", - "pushed_6x": "Pushed 6x", "down": "Down", "down_2x": "Down 2x", "down_3x": "Down 3x", @@ -118,89 +111,100 @@ "down_5x": "Down 5x", "down_6x": "Down 6x", "down_hold": "Down hold", + "held": "Held", + "pushed": "Pushed", + "pushed_2x": "Pushed 2x", + "pushed_3x": "Pushed 3x", + "pushed_4x": "Pushed 4x", + "pushed_5x": "Pushed 5x", + "pushed_6x": "Pushed 6x", + "swipe_down": "Swipe down", + "swipe_left": "Swipe left", + "swipe_right": "Swipe right", + "swipe_up": "Swipe up", "up": "Up", "up_2x": "Up 2x", "up_3x": "Up 3x", "up_4x": "Up 4x", "up_5x": "Up 5x", "up_6x": "Up 6x", - "up_hold": "Up hold", - "swipe_up": "Swipe up", - "swipe_down": "Swipe down", - "swipe_left": "Swipe left", - "swipe_right": "Swipe right" + "up_hold": "Up hold" } } }, "number": { - "washer_rinse_cycles": { - "name": "Rinse cycles", - "unit_of_measurement": "cycles" - }, - "hood_fan_speed": { - "name": "Fan speed" - }, - "freezer_temperature": { - "name": "Freezer temperature" + "cool_select_plus_temperature": { + "name": "CoolSelect+ temperature" }, "cooler_temperature": { "name": "Fridge temperature" }, - "cool_select_plus_temperature": { - "name": "CoolSelect+ temperature" + "freezer_temperature": { + "name": "Freezer temperature" + }, + "hood_fan_speed": { + "name": "Fan speed" + }, + "washer_rinse_cycles": { + "name": "Rinse cycles", + "unit_of_measurement": "cycles" } }, "select": { - "operating_state": { - "state": { - "run": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]", - "pause": "[%key:common::state::paused%]", - "stop": "[%key:common::state::stopped%]" - } - }, - "lamp": { - "name": "Lamp", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]", - "low": "[%key:common::state::low%]", - "mid": "Mid", - "high": "[%key:common::state::high%]", - "extra_high": "Extra high" - } - }, "detergent_amount": { "name": "Detergent dispense amount", "state": { - "none": "[%key:common::state::off%]", - "less": "Less", - "standard": "Standard", + "custom": "Custom", "extra": "Extra", - "custom": "Custom" + "less": "Less", + "none": "[%key:common::state::off%]", + "standard": "Standard" } }, "flexible_detergent_amount": { "name": "Flexible compartment dispense amount", "state": { - "none": "[%key:common::state::off%]", - "less": "[%key:component::smartthings::entity::select::detergent_amount::state::less%]", - "standard": "[%key:component::smartthings::entity::select::detergent_amount::state::standard%]", + "custom": "[%key:component::smartthings::entity::select::detergent_amount::state::custom%]", "extra": "[%key:component::smartthings::entity::select::detergent_amount::state::extra%]", - "custom": "[%key:component::smartthings::entity::select::detergent_amount::state::custom%]" + "less": "[%key:component::smartthings::entity::select::detergent_amount::state::less%]", + "none": "[%key:common::state::off%]", + "standard": "[%key:component::smartthings::entity::select::detergent_amount::state::standard%]" + } + }, + "lamp": { + "name": "Lamp", + "state": { + "extra_high": "Extra high", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "mid": "Mid", + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, + "operating_state": { + "state": { + "pause": "[%key:common::state::paused%]", + "run": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]", + "stop": "[%key:common::state::stopped%]" + } + }, + "soil_level": { + "name": "Soil level", + "state": { + "down": "Down", + "extra_heavy": "Extra heavy", + "extra_light": "Extra light", + "heavy": "Heavy", + "light": "Light", + "none": "None", + "normal": "[%key:common::state::normal%]", + "up": "Up" } }, "spin_level": { "name": "Spin level", "state": { - "none": "None", - "rinse_hold": "Rinse hold", - "no_spin": "No spin", - "low": "[%key:common::state::low%]", - "extra_low": "Extra low", - "delicate": "Delicate", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "extra_high": "Extra high", "200": "200", "400": "400", "600": "600", @@ -208,27 +212,20 @@ "1000": "1000", "1200": "1200", "1400": "1400", - "1600": "1600" - } - }, - "soil_level": { - "name": "Soil level", - "state": { + "1600": "1600", + "delicate": "Delicate", + "extra_high": "Extra high", + "extra_low": "Extra low", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "no_spin": "No spin", "none": "None", - "heavy": "Heavy", - "normal": "[%key:common::state::normal%]", - "light": "Light", - "extra_light": "Extra light", - "extra_heavy": "Extra heavy", - "up": "Up", - "down": "Down" + "rinse_hold": "Rinse hold" } } }, "sensor": { - "lighting_mode": { - "name": "Activity lighting mode" - }, "air_conditioner_mode": { "name": "Air conditioner mode" }, @@ -239,9 +236,9 @@ "name": "Alarm", "state": { "both": "Strobe and siren", - "strobe": "Strobe", + "off": "[%key:common::state::off%]", "siren": "Siren", - "off": "[%key:common::state::off%]" + "strobe": "Strobe" } }, "audio_volume": { @@ -253,50 +250,32 @@ "body_weight": { "name": "Body weight" }, + "brightness_intensity": { + "name": "Brightness intensity" + }, "carbon_monoxide_detector": { "name": "Carbon monoxide detector", "state": { - "detected": "Detected", "clear": "Clear", + "detected": "Detected", "tested": "Tested" } }, + "completion_time": { + "name": "Completion time" + }, "cooktop_operating_state": { "name": "Operating state", "state": { - "ready": "[%key:component::smartthings::entity::sensor::oven_machine_state::state::ready%]", - "run": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]", + "finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]", "paused": "[%key:common::state::paused%]", - "finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]" + "ready": "[%key:component::smartthings::entity::sensor::oven_machine_state::state::ready%]", + "run": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]" } }, "cooler_temperature": { "name": "Fridge temperature" }, - "manual_level": { - "name": "Burner {burner_id} level" - }, - "heating_mode": { - "name": "Burner {burner_id} heating mode", - "state": { - "off": "[%key:common::state::off%]", - "manual": "[%key:common::state::manual%]", - "boost": "Boost", - "keep_warm": "Keep warm", - "quick_preheat": "Quick preheat", - "defrost": "Defrost", - "melt": "Melt", - "simmer": "Simmer" - } - }, - "dishwasher_machine_state": { - "name": "Machine state", - "state": { - "pause": "[%key:common::state::paused%]", - "run": "Running", - "stop": "[%key:common::state::stopped%]" - } - }, "dishwasher_job_state": { "name": "Job state", "state": { @@ -312,8 +291,13 @@ "wrinkle_prevent": "Wrinkle prevention" } }, - "completion_time": { - "name": "Completion time" + "dishwasher_machine_state": { + "name": "Machine state", + "state": { + "pause": "[%key:common::state::paused%]", + "run": "Running", + "stop": "[%key:common::state::stopped%]" + } }, "diverter_valve_position": { "name": "Valve position", @@ -322,8 +306,25 @@ "tank": "Tank" } }, - "dryer_mode": { - "name": "Dryer mode" + "dryer_job_state": { + "name": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::name%]", + "state": { + "ai_drying": "AI drying", + "continuous_dehumidifying": "Continuous dehumidifying", + "cooling": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::cooling%]", + "dehumidifying": "Dehumidifying", + "delay_wash": "[%key:component::smartthings::entity::sensor::washer_job_state::state::delay_wash%]", + "drying": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::drying%]", + "finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]", + "freeze_protection": "Freeze protection", + "internal_care": "Internal care", + "none": "[%key:component::smartthings::entity::sensor::washer_job_state::state::none%]", + "refreshing": "Refreshing", + "sanitizing": "Sanitizing", + "thawing_frozen_inside": "Thawing frozen inside", + "weight_sensing": "[%key:component::smartthings::entity::sensor::washer_job_state::state::weight_sensing%]", + "wrinkle_prevent": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wrinkle_prevent%]" + } }, "dryer_machine_state": { "name": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::name%]", @@ -333,35 +334,24 @@ "stop": "[%key:common::state::stopped%]" } }, - "dryer_job_state": { - "name": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::name%]", - "state": { - "cooling": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::cooling%]", - "delay_wash": "[%key:component::smartthings::entity::sensor::washer_job_state::state::delay_wash%]", - "drying": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::drying%]", - "finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]", - "none": "[%key:component::smartthings::entity::sensor::washer_job_state::state::none%]", - "refreshing": "Refreshing", - "weight_sensing": "[%key:component::smartthings::entity::sensor::washer_job_state::state::weight_sensing%]", - "wrinkle_prevent": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wrinkle_prevent%]", - "dehumidifying": "Dehumidifying", - "ai_drying": "AI drying", - "sanitizing": "Sanitizing", - "internal_care": "Internal care", - "freeze_protection": "Freeze protection", - "continuous_dehumidifying": "Continuous dehumidifying", - "thawing_frozen_inside": "Thawing frozen inside" - } + "dryer_mode": { + "name": "Dryer mode" + }, + "energy_difference": { + "name": "Energy difference" + }, + "energy_saved": { + "name": "Energy saved" }, "equivalent_carbon_dioxide": { "name": "Equivalent carbon dioxide" }, - "freezer_temperature": { - "name": "Freezer temperature" - }, "formaldehyde": { "name": "Formaldehyde" }, + "freezer_temperature": { + "name": "Freezer temperature" + }, "gas_meter": { "name": "Gas meter" }, @@ -371,15 +361,45 @@ "gas_meter_time": { "name": "Gas meter time" }, + "heating_mode": { + "name": "Burner {burner_id} heating mode", + "state": { + "boost": "Boost", + "defrost": "Defrost", + "keep_warm": "Keep warm", + "manual": "[%key:common::state::manual%]", + "melt": "Melt", + "off": "[%key:common::state::off%]", + "quick_preheat": "Quick preheat", + "simmer": "Simmer" + } + }, "infrared_level": { "name": "Infrared level" }, + "lighting_mode": { + "name": "Activity lighting mode" + }, + "link_quality": { + "name": "Link quality" + }, + "manual_level": { + "name": "Burner {burner_id} level" + }, "media_input_source": { "name": "Media input source", "state": { "am": "AM", - "fm": "FM", + "analog1": "Analog 1", + "analog2": "Analog 2", + "analog3": "Analog 3", + "aux": "AUX", + "bluetooth": "Bluetooth", "cd": "CD", + "coaxial": "Coaxial", + "digital": "Digital", + "digitaltv": "Digital TV", + "fm": "FM", "hdmi": "HDMI", "hdmi1": "HDMI 1", "hdmi2": "HDMI 2", @@ -387,21 +407,13 @@ "hdmi4": "HDMI 4", "hdmi5": "HDMI 5", "hdmi6": "HDMI 6", - "digitaltv": "Digital TV", - "usb": "USB", - "youtube": "YouTube", - "aux": "AUX", - "bluetooth": "Bluetooth", - "digital": "Digital", "melon": "Melon", - "wifi": "Wi-Fi", "network": "Network", "optical": "Optical", - "coaxial": "Coaxial", - "analog1": "Analog 1", - "analog2": "Analog 2", - "analog3": "Analog 3", - "phono": "Phono" + "phono": "Phono", + "usb": "USB", + "wifi": "Wi-Fi", + "youtube": "YouTube" } }, "media_playback_repeat": { @@ -416,134 +428,122 @@ "odor_sensor": { "name": "Odor sensor" }, - "oven_mode": { - "name": "Oven mode", - "state": { - "heating": "Heating", - "grill": "Grill", - "warming": "Warming", - "defrosting": "Defrosting", - "conventional": "Conventional", - "bake": "Bake", - "bottom_heat": "Bottom heat", - "convection_bake": "Convection bake", - "convection_roast": "Convection roast", - "broil": "Broil", - "convection_broil": "Convection broil", - "steam_cook": "Steam cook", - "steam_bake": "Steam bake", - "steam_roast": "Steam roast", - "steam_bottom_heat_plus_convection": "Steam bottom heat plus convection", - "microwave": "Microwave", - "microwave_plus_grill": "Microwave plus grill", - "microwave_plus_convection": "Microwave plus convection", - "microwave_plus_hot_blast": "Microwave plus hot blast", - "microwave_plus_hot_blast_2": "Microwave plus hot blast 2", - "slim_middle": "Slim middle", - "slim_strong": "Slim strong", - "slow_cook": "Slow cook", - "proof": "Proof", - "dehydrate": "Dehydrate", - "others": "Others", - "strong_steam": "Strong steam", - "descale": "Descale", - "rinse": "Rinse" - } - }, - "oven_machine_state": { - "name": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::name%]", - "state": { - "ready": "Ready", - "running": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]", - "paused": "[%key:common::state::paused%]" - } - }, "oven_job_state": { "name": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::name%]", "state": { "cleaning": "Cleaning", "cooking": "Cooking", "cooling": "Cooling", + "defrosting": "Defrosting", "draining": "Draining", + "fast_preheat": "Fast preheat", + "finished": "Finished", "preheat": "Preheat", "ready": "Ready", "rinsing": "Rinsing", - "finished": "Finished", - "scheduled_start": "Scheduled start", - "warming": "Warming", - "defrosting": "Defrosting", - "sensing": "Sensing", - "searing": "Searing", - "fast_preheat": "Fast preheat", "scheduled_end": "Scheduled end", + "scheduled_start": "Scheduled start", + "searing": "Searing", + "sensing": "Sensing", "stone_heating": "Stone heating", - "time_hold_preheat": "Time hold preheat" + "time_hold_preheat": "Time hold preheat", + "warming": "Warming" + } + }, + "oven_machine_state": { + "name": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::name%]", + "state": { + "paused": "[%key:common::state::paused%]", + "ready": "Ready", + "running": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::state::run%]" + } + }, + "oven_mode": { + "name": "Oven mode", + "state": { + "bake": "Bake", + "bottom_heat": "Bottom heat", + "broil": "Broil", + "convection_bake": "Convection bake", + "convection_broil": "Convection broil", + "convection_roast": "Convection roast", + "conventional": "Conventional", + "defrosting": "Defrosting", + "dehydrate": "Dehydrate", + "descale": "Descale", + "grill": "Grill", + "heating": "Heating", + "microwave": "Microwave", + "microwave_plus_convection": "Microwave plus convection", + "microwave_plus_grill": "Microwave plus grill", + "microwave_plus_hot_blast": "Microwave plus hot blast", + "microwave_plus_hot_blast_2": "Microwave plus hot blast 2", + "others": "Others", + "proof": "Proof", + "rinse": "Rinse", + "slim_middle": "Slim middle", + "slim_strong": "Slim strong", + "slow_cook": "Slow cook", + "steam_bake": "Steam bake", + "steam_bottom_heat_plus_convection": "Steam bottom heat plus convection", + "steam_cook": "Steam cook", + "steam_roast": "Steam roast", + "strong_steam": "Strong steam", + "warming": "Warming" } }, "oven_setpoint": { "name": "Setpoint" }, - "energy_difference": { - "name": "Energy difference" - }, "power_energy": { "name": "Power energy" }, - "energy_saved": { - "name": "Energy saved" - }, "power_source": { "name": "Power source" }, "refrigeration_setpoint": { "name": "[%key:component::smartthings::entity::sensor::oven_setpoint::name%]" }, - "brightness_intensity": { - "name": "Brightness intensity" - }, "robot_cleaner_cleaning_mode": { "name": "Cleaning mode", "state": { - "stop": "[%key:common::action::stop%]", "auto": "[%key:common::state::auto%]", "manual": "[%key:common::state::manual%]", + "map": "Map", "part": "Partial", "repeat": "Repeat", - "map": "Map" + "stop": "[%key:common::action::stop%]" } }, "robot_cleaner_movement": { "name": "Movement", "state": { + "after": "After", + "alarm": "Alarm", + "charging": "[%key:common::state::charging%]", + "cleaning": "Cleaning", "homing": "Homing", "idle": "[%key:common::state::idle%]", - "charging": "[%key:common::state::charging%]", - "alarm": "Alarm", "off": "[%key:common::state::off%]", - "reserve": "Reserve", + "pause": "[%key:common::state::paused%]", "point": "Point", - "after": "After", - "cleaning": "Cleaning", - "pause": "[%key:common::state::paused%]" + "reserve": "Reserve" } }, "robot_cleaner_turbo_mode": { "name": "Turbo mode", "state": { - "on": "[%key:common::state::on%]", + "extra_silence": "Extra silent", "off": "[%key:common::state::off%]", - "silence": "Silent", - "extra_silence": "Extra silent" + "on": "[%key:common::state::on%]", + "silence": "Silent" } }, - "link_quality": { - "name": "Link quality" - }, "smoke_detector": { "name": "Smoke detector", "state": { - "detected": "[%key:component::smartthings::entity::sensor::carbon_monoxide_detector::state::detected%]", "clear": "[%key:component::smartthings::entity::sensor::carbon_monoxide_detector::state::clear%]", + "detected": "[%key:component::smartthings::entity::sensor::carbon_monoxide_detector::state::detected%]", "tested": "[%key:component::smartthings::entity::sensor::carbon_monoxide_detector::state::tested%]" } }, @@ -565,15 +565,6 @@ "thermostat_setpoint": { "name": "[%key:component::smartthings::entity::sensor::oven_setpoint::name%]" }, - "x_coordinate": { - "name": "X coordinate" - }, - "y_coordinate": { - "name": "Y coordinate" - }, - "z_coordinate": { - "name": "Z coordinate" - }, "tv_channel": { "name": "TV channel" }, @@ -583,8 +574,26 @@ "uv_index": { "name": "UV index" }, - "washer_mode": { - "name": "Washer mode" + "washer_job_state": { + "name": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::name%]", + "state": { + "ai_rinse": "AI rinse", + "ai_spin": "AI spin", + "ai_wash": "AI wash", + "air_wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::air_wash%]", + "cooling": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::cooling%]", + "delay_wash": "Delay wash", + "drying": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::drying%]", + "finish": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::finish%]", + "freeze_protection": "Freeze protection", + "none": "None", + "pre_wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::pre_wash%]", + "rinse": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::rinse%]", + "spin": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::spin%]", + "wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wash%]", + "weight_sensing": "Weight sensing", + "wrinkle_prevent": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wrinkle_prevent%]" + } }, "washer_machine_state": { "name": "[%key:component::smartthings::entity::sensor::dishwasher_machine_state::name%]", @@ -594,52 +603,43 @@ "stop": "[%key:common::state::stopped%]" } }, - "washer_job_state": { - "name": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::name%]", - "state": { - "air_wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::air_wash%]", - "ai_rinse": "AI rinse", - "ai_spin": "AI spin", - "ai_wash": "AI wash", - "cooling": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::cooling%]", - "delay_wash": "Delay wash", - "drying": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::drying%]", - "finish": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::finish%]", - "none": "None", - "pre_wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::pre_wash%]", - "rinse": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::rinse%]", - "spin": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::spin%]", - "wash": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wash%]", - "weight_sensing": "Weight sensing", - "wrinkle_prevent": "[%key:component::smartthings::entity::sensor::dishwasher_job_state::state::wrinkle_prevent%]", - "freeze_protection": "Freeze protection" - } + "washer_mode": { + "name": "Washer mode" }, "water_consumption": { "name": "Water consumption" }, "water_filter_usage": { "name": "Water filter usage" + }, + "x_coordinate": { + "name": "X coordinate" + }, + "y_coordinate": { + "name": "Y coordinate" + }, + "z_coordinate": { + "name": "Z coordinate" } }, "switch": { + "auto_cycle_link": { + "name": "Auto Cycle Link" + }, "bubble_soak": { "name": "Bubble Soak" }, "display_lighting": { "name": "Display lighting" }, - "wrinkle_prevent": { - "name": "Wrinkle prevent" - }, "ice_maker": { "name": "Cubed ice" }, "ice_maker_2": { "name": "Ice Bites" }, - "sabbath_mode": { - "name": "Sabbath mode" + "keep_fresh_mode": { + "name": "Keep fresh mode" }, "power_cool": { "name": "Power cool" @@ -647,73 +647,73 @@ "power_freeze": { "name": "Power freeze" }, - "auto_cycle_link": { - "name": "Auto Cycle Link" + "sabbath_mode": { + "name": "Sabbath mode" }, "sanitize": { "name": "Sanitize" }, - "keep_fresh_mode": { - "name": "Keep fresh mode" + "wrinkle_prevent": { + "name": "Wrinkle prevent" } } }, "issues": { - "deprecated_binary_valve": { - "title": "Valve binary sensor deprecated", - "description": "The valve binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. A valve entity with controls is available and should be used going forward. Please update your dashboards, templates accordingly and disable the entity to fix this issue." - }, - "deprecated_binary_valve_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_binary_valve::title%]", - "description": "The valve binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. The entity is used in the following automations or scripts:\n{items}\n\nA valve entity with controls is available and should be used going forward. Please use the new valve entity in the above automations or scripts and disable the entity to fix this issue." - }, "deprecated_binary_fridge_door": { - "title": "Refrigerator door binary sensor deprecated", - "description": "The refrigerator door binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. Separate entities for cooler and freezer door are available and should be used going forward. Please update your dashboards, templates accordingly and disable the entity to fix this issue." + "description": "The refrigerator door binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. Separate entities for cooler and freezer door are available and should be used going forward. Please update your dashboards, templates accordingly and disable the entity to fix this issue.", + "title": "Refrigerator door binary sensor deprecated" }, "deprecated_binary_fridge_door_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_binary_fridge_door::title%]", - "description": "The refrigerator door binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. The entity is used in the following automations or scripts:\n{items}\n\nSeparate entities for cooler and freezer door are available and should be used going forward. Please use them in the above automations or scripts and disable the entity to fix this issue." + "description": "The refrigerator door binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. The entity is used in the following automations or scripts:\n{items}\n\nSeparate entities for cooler and freezer door are available and should be used going forward. Please use them in the above automations or scripts and disable the entity to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_binary_fridge_door::title%]" }, - "deprecated_switch_appliance": { - "title": "Appliance switch deprecated", - "description": "The switch `{entity_id}` is deprecated because the actions did not work, so it has been replaced with a binary sensor instead.\n\nPlease update your dashboards, templates accordingly and disable the entity to fix this issue." + "deprecated_binary_valve": { + "description": "The valve binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. A valve entity with controls is available and should be used going forward. Please update your dashboards, templates accordingly and disable the entity to fix this issue.", + "title": "Valve binary sensor deprecated" }, - "deprecated_switch_appliance_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]", - "description": "The switch `{entity_id}` is deprecated because the actions did not work, so it has been replaced with a binary sensor instead.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new binary sensor in the above automations or scripts and disable the switch to fix this issue." - }, - "deprecated_switch_media_player": { - "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]", - "description": "The switch `{entity_id}` is deprecated and a media player entity has been added to replace it.\n\nPlease update your dashboards and templates accordingly and disable the switch to fix this issue." - }, - "deprecated_switch_media_player_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]", - "description": "The switch `{entity_id}` is deprecated and a media player entity has been added to replace it.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new media player entity in the above automations or scripts and disable the switch to fix this issue." - }, - "deprecated_switch_dhw": { - "title": "Heat pump switch deprecated", - "description": "The switch `{entity_id}` is deprecated and a water heater entity has been added to replace it.\n\nPlease update your dashboards and templates accordingly and disable the switch to fix this issue." - }, - "deprecated_switch_dhw_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_switch_dhw::title%]", - "description": "The switch `{entity_id}` is deprecated and a water heater entity has been added to replace it.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new water heater entity in the above automations or scripts and disable the switch to fix this issue." - }, - "deprecated_media_player": { - "title": "Media player sensors deprecated", - "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a media player entity.\n\nPlease update your dashboards and templates to use the new media player entity and disable the sensor to fix this issue." - }, - "deprecated_media_player_scripts": { - "title": "Deprecated sensor detected in some automations or scripts", - "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a media player entity.\n\nThe sensor was used in the following automations or scripts:\n{items}\n\nPlease update the above automations or scripts to use the new media player entity and disable the sensor to fix this issue." + "deprecated_binary_valve_scripts": { + "description": "The valve binary sensor {entity_name} (`{entity_id}`) is deprecated and will be removed in the future. The entity is used in the following automations or scripts:\n{items}\n\nA valve entity with controls is available and should be used going forward. Please use the new valve entity in the above automations or scripts and disable the entity to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_binary_valve::title%]" }, "deprecated_dhw": { - "title": "Water heater sensors deprecated", - "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a water heater entity.\n\nPlease update your dashboards and templates to use the new water heater entity and disable the sensor to fix this issue." + "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a water heater entity.\n\nPlease update your dashboards and templates to use the new water heater entity and disable the sensor to fix this issue.", + "title": "Water heater sensors deprecated" }, "deprecated_dhw_scripts": { - "title": "[%key:component::smartthings::issues::deprecated_dhw::title%]", - "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a water heater entity.\n\nThe sensor was used in the following automations or scripts:\n{items}\n\nPlease update the above automations or scripts to use the new water heater entity and disable the sensor to fix this issue." + "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a water heater entity.\n\nThe sensor was used in the following automations or scripts:\n{items}\n\nPlease update the above automations or scripts to use the new water heater entity and disable the sensor to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_dhw::title%]" + }, + "deprecated_media_player": { + "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a media player entity.\n\nPlease update your dashboards and templates to use the new media player entity and disable the sensor to fix this issue.", + "title": "Media player sensors deprecated" + }, + "deprecated_media_player_scripts": { + "description": "The sensor {entity_name} (`{entity_id}`) is deprecated because it has been replaced with a media player entity.\n\nThe sensor was used in the following automations or scripts:\n{items}\n\nPlease update the above automations or scripts to use the new media player entity and disable the sensor to fix this issue.", + "title": "Deprecated sensor detected in some automations or scripts" + }, + "deprecated_switch_appliance": { + "description": "The switch `{entity_id}` is deprecated because the actions did not work, so it has been replaced with a binary sensor instead.\n\nPlease update your dashboards, templates accordingly and disable the entity to fix this issue.", + "title": "Appliance switch deprecated" + }, + "deprecated_switch_appliance_scripts": { + "description": "The switch `{entity_id}` is deprecated because the actions did not work, so it has been replaced with a binary sensor instead.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new binary sensor in the above automations or scripts and disable the switch to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]" + }, + "deprecated_switch_dhw": { + "description": "The switch `{entity_id}` is deprecated and a water heater entity has been added to replace it.\n\nPlease update your dashboards and templates accordingly and disable the switch to fix this issue.", + "title": "Heat pump switch deprecated" + }, + "deprecated_switch_dhw_scripts": { + "description": "The switch `{entity_id}` is deprecated and a water heater entity has been added to replace it.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new water heater entity in the above automations or scripts and disable the switch to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_switch_dhw::title%]" + }, + "deprecated_switch_media_player": { + "description": "The switch `{entity_id}` is deprecated and a media player entity has been added to replace it.\n\nPlease update your dashboards and templates accordingly and disable the switch to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]" + }, + "deprecated_switch_media_player_scripts": { + "description": "The switch `{entity_id}` is deprecated and a media player entity has been added to replace it.\n\nThe switch was used in the following automations or scripts:\n{items}\n\nPlease use the new media player entity in the above automations or scripts and disable the switch to fix this issue.", + "title": "[%key:component::smartthings::issues::deprecated_switch_appliance::title%]" } } } diff --git a/homeassistant/components/smarttub/icons.json b/homeassistant/components/smarttub/icons.json index 2b89445754c..f91a1746a88 100644 --- a/homeassistant/components/smarttub/icons.json +++ b/homeassistant/components/smarttub/icons.json @@ -1,5 +1,8 @@ { "services": { + "reset_reminder": { + "service": "mdi:timer-sync" + }, "set_primary_filtration": { "service": "mdi:filter" }, @@ -8,9 +11,6 @@ }, "snooze_reminder": { "service": "mdi:timer-pause" - }, - "reset_reminder": { - "service": "mdi:timer-sync" } } } diff --git a/homeassistant/components/smarttub/strings.json b/homeassistant/components/smarttub/strings.json index 8391aaa4d47..33147d07511 100644 --- a/homeassistant/components/smarttub/strings.json +++ b/homeassistant/components/smarttub/strings.json @@ -1,71 +1,71 @@ { "config": { - "step": { - "user": { - "title": "Login", - "description": "Enter your SmartTub email address and password to log in", - "data": { - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The SmartTub integration needs to re-authenticate your account" - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "description": "The SmartTub integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Enter your SmartTub email address and password to log in", + "title": "Login" + } } }, "services": { - "set_primary_filtration": { - "name": "Update primary filtration settings", - "description": "Updates the primary filtration settings.", - "fields": { - "duration": { - "name": "Duration", - "description": "The desired duration of the primary filtration cycle." - }, - "start_hour": { - "name": "Start hour", - "description": "The hour of the day at which to begin the primary filtration cycle." - } - } - }, - "set_secondary_filtration": { - "name": "Update secondary filtration settings", - "description": "Updates the secondary filtration settings.", - "fields": { - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The secondary filtration mode." - } - } - }, - "snooze_reminder": { - "name": "Snooze a reminder", - "description": "Temporarily suppresses the maintenance reminder on a hot tub.", - "fields": { - "days": { - "name": "Days", - "description": "The number of days to snooze the reminder." - } - } - }, "reset_reminder": { - "name": "Reset a reminder", "description": "Resets the maintenance reminder on a hot tub.", "fields": { "days": { - "name": "[%key:component::smarttub::services::snooze_reminder::fields::days::name%]", - "description": "The number of days when the next reminder should trigger." + "description": "The number of days when the next reminder should trigger.", + "name": "[%key:component::smarttub::services::snooze_reminder::fields::days::name%]" } - } + }, + "name": "Reset a reminder" + }, + "set_primary_filtration": { + "description": "Updates the primary filtration settings.", + "fields": { + "duration": { + "description": "The desired duration of the primary filtration cycle.", + "name": "Duration" + }, + "start_hour": { + "description": "The hour of the day at which to begin the primary filtration cycle.", + "name": "Start hour" + } + }, + "name": "Update primary filtration settings" + }, + "set_secondary_filtration": { + "description": "Updates the secondary filtration settings.", + "fields": { + "mode": { + "description": "The secondary filtration mode.", + "name": "[%key:common::config_flow::data::mode%]" + } + }, + "name": "Update secondary filtration settings" + }, + "snooze_reminder": { + "description": "Temporarily suppresses the maintenance reminder on a hot tub.", + "fields": { + "days": { + "description": "The number of days to snooze the reminder.", + "name": "Days" + } + }, + "name": "Snooze a reminder" } } } diff --git a/homeassistant/components/smarty/strings.json b/homeassistant/components/smarty/strings.json index d9852ab40d3..74f29aa00ac 100644 --- a/homeassistant/components/smarty/strings.json +++ b/homeassistant/components/smarty/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,15 +18,6 @@ "host": "The hostname or IP address of the Smarty device" } } - }, - "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { @@ -25,11 +25,11 @@ "alarm": { "name": "Alarm" }, - "warning": { - "name": "Warning" - }, "boost_state": { "name": "Boost state" + }, + "warning": { + "name": "Warning" } }, "button": { @@ -38,23 +38,23 @@ } }, "sensor": { - "supply_air_temperature": { - "name": "Supply air temperature" - }, "extract_air_temperature": { "name": "Extract air temperature" }, - "outdoor_air_temperature": { - "name": "Outdoor air temperature" - }, - "supply_fan_speed": { - "name": "Supply fan speed" - }, "extract_fan_speed": { "name": "Extract fan speed" }, "filter_days_left": { "name": "Filter days left" + }, + "outdoor_air_temperature": { + "name": "Outdoor air temperature" + }, + "supply_air_temperature": { + "name": "Supply air temperature" + }, + "supply_fan_speed": { + "name": "Supply fan speed" } }, "switch": { diff --git a/homeassistant/components/smhi/icons.json b/homeassistant/components/smhi/icons.json index c50cefb946f..5eaa0b78ed1 100644 --- a/homeassistant/components/smhi/icons.json +++ b/homeassistant/components/smhi/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "thunder": { - "default": "mdi:weather-lightning" + "frozen_precipitation": { + "default": "mdi:weather-snowy-rainy" }, - "total_cloud": { - "default": "mdi:cloud" + "high_cloud": { + "default": "mdi:cloud-arrow-up" }, "low_cloud": { "default": "mdi:cloud-arrow-down" @@ -13,14 +13,14 @@ "medium_cloud": { "default": "mdi:cloud-arrow-right" }, - "high_cloud": { - "default": "mdi:cloud-arrow-up" - }, "precipitation_category": { "default": "mdi:weather-pouring" }, - "frozen_precipitation": { - "default": "mdi:weather-snowy-rainy" + "thunder": { + "default": "mdi:weather-lightning" + }, + "total_cloud": { + "default": "mdi:cloud" } } } diff --git a/homeassistant/components/smhi/strings.json b/homeassistant/components/smhi/strings.json index b6c8f2049fe..bc1362fd468 100644 --- a/homeassistant/components/smhi/strings.json +++ b/homeassistant/components/smhi/strings.json @@ -4,33 +4,33 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, - "step": { - "user": { - "title": "Location in Sweden", - "data": { - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - } - }, - "reconfigure": { - "title": "Reconfigure your location in Sweden", - "data": { - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - } - } - }, "error": { "wrong_location": "Location Sweden only" + }, + "step": { + "reconfigure": { + "data": { + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]" + }, + "title": "Reconfigure your location in Sweden" + }, + "user": { + "data": { + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]" + }, + "title": "Location in Sweden" + } } }, "entity": { "sensor": { - "thunder": { - "name": "Thunder probability" + "frozen_precipitation": { + "name": "Frozen precipitation" }, - "total_cloud": { - "name": "Total cloud coverage" + "high_cloud": { + "name": "High cloud coverage" }, "low_cloud": { "name": "Low cloud coverage" @@ -38,9 +38,6 @@ "medium_cloud": { "name": "Medium cloud coverage" }, - "high_cloud": { - "name": "High cloud coverage" - }, "precipitation_category": { "name": "Precipitation category", "state": { @@ -53,8 +50,11 @@ "6": "Freezing drizzle" } }, - "frozen_precipitation": { - "name": "Frozen precipitation" + "thunder": { + "name": "Thunder probability" + }, + "total_cloud": { + "name": "Total cloud coverage" } } } diff --git a/homeassistant/components/smlight/icons.json b/homeassistant/components/smlight/icons.json index 1afd7c71d67..7ddb037408e 100644 --- a/homeassistant/components/smlight/icons.json +++ b/homeassistant/components/smlight/icons.json @@ -1,5 +1,13 @@ { "entity": { + "button": { + "reconnect_zigbee_router": { + "default": "mdi:connection" + }, + "zigbee_flash_mode": { + "default": "mdi:memory-arrow-down" + } + }, "sensor": { "device_mode": { "default": "mdi:connection" @@ -12,26 +20,18 @@ } }, "switch": { - "disable_led": { - "default": "mdi:led-off" - }, "auto_zigbee_update": { "default": "mdi:autorenew" }, + "disable_led": { + "default": "mdi:led-off" + }, "night_mode": { "default": "mdi:lightbulb-night" }, "vpn_enabled": { "default": "mdi:shield-lock" } - }, - "button": { - "zigbee_flash_mode": { - "default": "mdi:memory-arrow-down" - }, - "reconnect_zigbee_router": { - "default": "mdi:connection" - } } } } diff --git a/homeassistant/components/smlight/strings.json b/homeassistant/components/smlight/strings.json index 4abc6349d1e..1b9afbbd485 100644 --- a/homeassistant/components/smlight/strings.json +++ b/homeassistant/components/smlight/strings.json @@ -1,53 +1,53 @@ { "config": { - "step": { - "user": { - "description": "Set up SMLIGHT Zigbee integration", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The hostname or IP address of the SMLIGHT SLZB-06x device" - } - }, - "auth": { - "description": "Please enter the username and password", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Username for the device's web login.", - "password": "Password for the device's web login." - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please enter the correct username and password", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::smlight::config::step::auth::data_description::username%]", - "password": "[%key:component::smlight::config::step::auth::data_description::password%]" - } - }, - "confirm_discovery": { - "description": "Do you want to set up SMLIGHT at {host}?" - } - }, - "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%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "reauth_failed": "[%key:common::config_flow::error::invalid_auth%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unsupported_device": "This device is not yet supported by the SMLIGHT integration" + }, + "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": { + "auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Password for the device's web login.", + "username": "Username for the device's web login." + }, + "description": "Please enter the username and password" + }, + "confirm_discovery": { + "description": "Do you want to set up SMLIGHT at {host}?" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::smlight::config::step::auth::data_description::password%]", + "username": "[%key:component::smlight::config::step::auth::data_description::username%]" + }, + "description": "Please enter the correct username and password", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "The hostname or IP address of the SMLIGHT SLZB-06x device" + }, + "description": "Set up SMLIGHT Zigbee integration" + } } }, "entity": { @@ -65,31 +65,33 @@ "name": "Wi-Fi" } }, - "sensor": { - "zigbee_temperature": { - "name": "Zigbee chip temp" + "button": { + "core_restart": { + "name": "Core restart" }, + "reconnect_zigbee_router": { + "name": "Reconnect Zigbee router" + }, + "zigbee_flash_mode": { + "name": "Zigbee flash mode" + }, + "zigbee_restart": { + "name": "Zigbee restart" + } + }, + "sensor": { "core_temperature": { "name": "Core chip temp" }, - "fs_usage": { - "name": "Filesystem usage" - }, - "ram_usage": { - "name": "RAM usage" - }, "core_uptime": { "name": "Core uptime" }, - "socket_uptime": { - "name": "Zigbee uptime" - }, "device_mode": { "name": "Connection mode", "state": { "eth": "Ethernet", - "wifi": "Wi-Fi", - "usb": "USB" + "usb": "USB", + "wifi": "Wi-Fi" } }, "firmware_channel": { @@ -99,6 +101,18 @@ "release": "Stable" } }, + "fs_usage": { + "name": "Filesystem usage" + }, + "ram_usage": { + "name": "RAM usage" + }, + "socket_uptime": { + "name": "Zigbee uptime" + }, + "zigbee_temperature": { + "name": "Zigbee chip temp" + }, "zigbee_type": { "name": "Zigbee type", "state": { @@ -108,20 +122,6 @@ } } }, - "button": { - "core_restart": { - "name": "Core restart" - }, - "zigbee_restart": { - "name": "Zigbee restart" - }, - "zigbee_flash_mode": { - "name": "Zigbee flash mode" - }, - "reconnect_zigbee_router": { - "name": "Reconnect Zigbee router" - } - }, "switch": { "auto_zigbee_update": { "name": "Auto Zigbee update" @@ -146,17 +146,17 @@ } }, "exceptions": { - "firmware_update_failed": { - "message": "Firmware update failed for {device_name}." - }, "cannot_connect_device": { "message": "An error occurred while connecting to the SMLIGHT device: {error}." + }, + "firmware_update_failed": { + "message": "Firmware update failed for {device_name}." } }, "issues": { "unsupported_firmware": { - "title": "SLZB core firmware update required", - "description": "Your SMLIGHT SLZB-06x device is running an unsupported core firmware version. Please update it to the latest version to enjoy all the features of this integration." + "description": "Your SMLIGHT SLZB-06x device is running an unsupported core firmware version. Please update it to the latest version to enjoy all the features of this integration.", + "title": "SLZB core firmware update required" } } } diff --git a/homeassistant/components/sms/icons.json b/homeassistant/components/sms/icons.json index f863d7a35a4..6ed4cd63c67 100644 --- a/homeassistant/components/sms/icons.json +++ b/homeassistant/components/sms/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "signal_percent": { - "default": "mdi:signal-cellular-3" - }, "cid": { "default": "mdi:radio-tower" + }, + "signal_percent": { + "default": "mdi:signal-cellular-3" } } } diff --git a/homeassistant/components/sms/strings.json b/homeassistant/components/sms/strings.json index ae3324aa156..62547603ba2 100644 --- a/homeassistant/components/sms/strings.json +++ b/homeassistant/components/sms/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Connect to the modem", - "data": { - "device": "[%key:common::config_flow::data::device%]", - "baud_speed": "Baud Speed" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "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%]", - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + "step": { + "user": { + "data": { + "baud_speed": "Baud Speed", + "device": "[%key:common::config_flow::data::device%]" + }, + "title": "Connect to the modem" + } } }, "entity": { diff --git a/homeassistant/components/smtp/strings.json b/homeassistant/components/smtp/strings.json index 37250fa6447..f0fed718bf6 100644 --- a/homeassistant/components/smtp/strings.json +++ b/homeassistant/components/smtp/strings.json @@ -1,13 +1,13 @@ { - "services": { - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads smtp notify services." - } - }, "exceptions": { "remote_path_not_allowed": { "message": "Cannot send email with attachment \"{file_name}\" from directory \"{file_path}\" which is not secure to load data from. Only folders added to `{allow_list}` are accessible. See {url} for more information." } + }, + "services": { + "reload": { + "description": "Reloads smtp notify services.", + "name": "[%key:common::action::reload%]" + } } } diff --git a/homeassistant/components/snapcast/icons.json b/homeassistant/components/snapcast/icons.json index d6511d768e2..57d5c43cec1 100644 --- a/homeassistant/components/snapcast/icons.json +++ b/homeassistant/components/snapcast/icons.json @@ -3,17 +3,17 @@ "join": { "service": "mdi:music-note-plus" }, - "unjoin": { - "service": "mdi:music-note-minus" - }, - "snapshot": { - "service": "mdi:camera" - }, "restore": { "service": "mdi:camera-retake" }, "set_latency": { "service": "mdi:camera-timer" + }, + "snapshot": { + "service": "mdi:camera" + }, + "unjoin": { + "service": "mdi:music-note-minus" } } } diff --git a/homeassistant/components/snapcast/strings.json b/homeassistant/components/snapcast/strings.json index 9336b1fac86..1b08105b4d0 100644 --- a/homeassistant/components/snapcast/strings.json +++ b/homeassistant/components/snapcast/strings.json @@ -1,8 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, "step": { "user": { - "description": "Please enter your server connection details", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" @@ -10,63 +16,57 @@ "data_description": { "host": "The hostname or IP address of your Snapcast server." }, + "description": "Please enter your server connection details", "title": "[%key:common::action::connect%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]" - } - }, - "services": { - "join": { - "name": "Join", - "description": "Groups players together in a single group.", - "fields": { - "master": { - "name": "Master", - "description": "Entity ID of the player to synchronize to." - }, - "entity_id": { - "name": "Entity", - "description": "The players to join to the \"master\"." - } - } - }, - "unjoin": { - "name": "Unjoin", - "description": "Removes one or more players from a group." - }, - "snapshot": { - "name": "Snapshot", - "description": "Takes a snapshot of what is currently playing on a media player." - }, - "restore": { - "name": "Restore", - "description": "Restores a previously taken snapshot of a media player." - }, - "set_latency": { - "name": "Set latency", - "description": "Sets the latency of a speaker.", - "fields": { - "latency": { - "name": "Latency", - "description": "Latency in milliseconds." - } - } } }, "issues": { - "deprecated_grouping_actions": { - "title": "Snapcast Actions Deprecated", - "description": "Actions 'snapcast.join' and 'snapcast.unjoin' are deprecated and will be removed in 2026.2. Use the 'media_player.join' and 'media_player.unjoin' actions instead." - }, "deprecated_group_entities": { - "title": "Snapcast Groups Entities Deprecated", - "description": "Snapcast group entities are deprecated and will be removed in 2026.2. Please use the 'media_player.join' and 'media_player.unjoin' actions instead." + "description": "Snapcast group entities are deprecated and will be removed in 2026.2. Please use the 'media_player.join' and 'media_player.unjoin' actions instead.", + "title": "Snapcast Groups Entities Deprecated" + }, + "deprecated_grouping_actions": { + "description": "Actions 'snapcast.join' and 'snapcast.unjoin' are deprecated and will be removed in 2026.2. Use the 'media_player.join' and 'media_player.unjoin' actions instead.", + "title": "Snapcast Actions Deprecated" + } + }, + "services": { + "join": { + "description": "Groups players together in a single group.", + "fields": { + "entity_id": { + "description": "The players to join to the \"master\".", + "name": "Entity" + }, + "master": { + "description": "Entity ID of the player to synchronize to.", + "name": "Master" + } + }, + "name": "Join" + }, + "restore": { + "description": "Restores a previously taken snapshot of a media player.", + "name": "Restore" + }, + "set_latency": { + "description": "Sets the latency of a speaker.", + "fields": { + "latency": { + "description": "Latency in milliseconds.", + "name": "Latency" + } + }, + "name": "Set latency" + }, + "snapshot": { + "description": "Takes a snapshot of what is currently playing on a media player.", + "name": "Snapshot" + }, + "unjoin": { + "description": "Removes one or more players from a group.", + "name": "Unjoin" } } } diff --git a/homeassistant/components/snips/strings.json b/homeassistant/components/snips/strings.json index 23b255b05a9..bfeee86010f 100644 --- a/homeassistant/components/snips/strings.json +++ b/homeassistant/components/snips/strings.json @@ -1,68 +1,68 @@ { "services": { "feedback_off": { - "name": "Feedback off", "description": "Turns feedback sounds off.", "fields": { "site_id": { - "name": "Site ID", - "description": "Site to turn sounds on, defaults to all sites." + "description": "Site to turn sounds on, defaults to all sites.", + "name": "Site ID" } - } + }, + "name": "Feedback off" }, "feedback_on": { - "name": "Feedback on", "description": "Turns feedback sounds on.", "fields": { "site_id": { - "name": "Site ID", - "description": "[%key:component::snips::services::feedback_off::fields::site_id::description%]" + "description": "[%key:component::snips::services::feedback_off::fields::site_id::description%]", + "name": "Site ID" } - } + }, + "name": "Feedback on" }, "say": { - "name": "Say", "description": "Sends a TTS message to Snips.", "fields": { "custom_data": { - "name": "Custom data", - "description": "Custom data that will be included with all messages in this session." + "description": "Custom data that will be included with all messages in this session.", + "name": "Custom data" }, "site_id": { - "name": "Site ID", - "description": "Site to use to start session, defaults to default." + "description": "Site to use to start session, defaults to default.", + "name": "Site ID" }, "text": { - "name": "Text", - "description": "Text to say." + "description": "Text to say.", + "name": "Text" } - } + }, + "name": "Say" }, "say_action": { - "name": "Say action", "description": "Sends a TTS message to Snips to listen for a response.", "fields": { "can_be_enqueued": { - "name": "Can be enqueued", - "description": "Whether the session should wait for an open session to end. Otherwise it is dropped if another session is already running." + "description": "Whether the session should wait for an open session to end. Otherwise it is dropped if another session is already running.", + "name": "Can be enqueued" }, "custom_data": { - "name": "[%key:component::snips::services::say::fields::custom_data::name%]", - "description": "[%key:component::snips::services::say::fields::custom_data::description%]" + "description": "[%key:component::snips::services::say::fields::custom_data::description%]", + "name": "[%key:component::snips::services::say::fields::custom_data::name%]" }, "intent_filter": { - "name": "Intent filter", - "description": "Optional Array of Strings - A list of intents names to restrict the NLU resolution to on the first query." + "description": "Optional Array of Strings - A list of intents names to restrict the NLU resolution to on the first query.", + "name": "Intent filter" }, "site_id": { - "name": "Site ID", - "description": "[%key:component::snips::services::say::fields::site_id::description%]" + "description": "[%key:component::snips::services::say::fields::site_id::description%]", + "name": "Site ID" }, "text": { - "name": "Text", - "description": "[%key:component::snips::services::say::fields::text::description%]" + "description": "[%key:component::snips::services::say::fields::text::description%]", + "name": "Text" } - } + }, + "name": "Say action" } } } diff --git a/homeassistant/components/snoo/strings.json b/homeassistant/components/snoo/strings.json index f096acc57a5..d47e11034db 100644 --- a/homeassistant/components/snoo/strings.json +++ b/homeassistant/components/snoo/strings.json @@ -1,38 +1,24 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Your Snoo username or email", - "password": "Your Snoo password" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "exceptions": { - "select_failed": { - "message": "Error while updating {name} to {option}" - }, - "start_snoo_failed": { - "message": "Starting {name} failed" - }, - "switch_on_failed": { - "message": "Turning {name} on failed" - }, - "switch_off_failed": { - "message": "Turning {name} off failed" + "step": { + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Your Snoo password", + "username": "Your Snoo username or email" + } + } } }, "entity": { @@ -55,41 +41,22 @@ "state_attributes": { "event_type": { "state": { - "timer": "Timer", - "cry": "Cry", - "command": "Command sent", - "safety_clip": "Safety clip changed", - "long_activity_press": "Long activity press", "activity": "Activity press", + "command": "Command sent", + "config_change": "Config changed", + "cry": "Cry", + "long_activity_press": "Long activity press", "power": "Power button pressed", + "restart": "Restart", + "safety_clip": "Safety clip changed", "status_requested": "Status requested", "sticky_white_noise_updated": "Sleepytime sounds updated", - "config_change": "Config changed", - "restart": "Restart" + "timer": "Timer" } } } } }, - "sensor": { - "state": { - "name": "State", - "state": { - "baseline": "Baseline", - "weaning_baseline": "Baseline (Weaning)", - "level1": "Level 1", - "level2": "Level 2", - "level3": "Level 3", - "level4": "Level 4", - "stop": "[%key:common::state::stopped%]", - "pretimeout": "Pre-timeout", - "timeout": "Timeout" - } - }, - "time_left": { - "name": "Time left" - } - }, "select": { "intensity": { "name": "Intensity", @@ -103,13 +70,46 @@ } } }, - "switch": { - "sticky_white_noise": { - "name": "Sleepytime sounds" + "sensor": { + "state": { + "name": "State", + "state": { + "baseline": "Baseline", + "level1": "Level 1", + "level2": "Level 2", + "level3": "Level 3", + "level4": "Level 4", + "pretimeout": "Pre-timeout", + "stop": "[%key:common::state::stopped%]", + "timeout": "Timeout", + "weaning_baseline": "Baseline (Weaning)" + } }, + "time_left": { + "name": "Time left" + } + }, + "switch": { "hold": { "name": "Level lock" + }, + "sticky_white_noise": { + "name": "Sleepytime sounds" } } + }, + "exceptions": { + "select_failed": { + "message": "Error while updating {name} to {option}" + }, + "start_snoo_failed": { + "message": "Starting {name} failed" + }, + "switch_off_failed": { + "message": "Turning {name} off failed" + }, + "switch_on_failed": { + "message": "Turning {name} on failed" + } } } diff --git a/homeassistant/components/snooz/icons.json b/homeassistant/components/snooz/icons.json index be7d2714a20..98fb6477095 100644 --- a/homeassistant/components/snooz/icons.json +++ b/homeassistant/components/snooz/icons.json @@ -1,10 +1,10 @@ { "services": { - "transition_on": { - "service": "mdi:blur" - }, "transition_off": { "service": "mdi:blur-off" + }, + "transition_on": { + "service": "mdi:blur" } } } diff --git a/homeassistant/components/snooz/strings.json b/homeassistant/components/snooz/strings.json index ca252b2117c..cd956856441 100644 --- a/homeassistant/components/snooz/strings.json +++ b/homeassistant/components/snooz/strings.json @@ -1,53 +1,53 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", + "progress": { + "wait_for_pairing_mode": "To complete setup, put this device in pairing mode.\n\n### How to enter pairing mode\n1. Force quit SNOOZ mobile apps.\n2. Press and hold the power button on the device. Release when the lights start blinking (approximately 5 seconds)." + }, "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%]" }, "pairing_timeout": { "description": "The device did not enter pairing mode. Select Submit to try again.\n\n### Troubleshooting\n1. Check that the device isn't connected to the mobile app.\n2. Unplug the device for 5 seconds, then plug it back in." + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "progress": { - "wait_for_pairing_mode": "To complete setup, put this device in pairing mode.\n\n### How to enter pairing mode\n1. Force quit SNOOZ mobile apps.\n2. Press and hold the power button on the device. Release when the lights start blinking (approximately 5 seconds)." - }, - "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%]" } }, "services": { - "transition_on": { - "name": "Transition on", - "description": "Transitions the volume level over a specified duration. If the device is powered off, the transition will start at the lowest volume level.", - "fields": { - "duration": { - "name": "Transition duration", - "description": "Time to transition to the target volume." - }, - "volume": { - "name": "Target volume", - "description": "Relative volume level. If not specified, the setting on the device is used." - } - } - }, "transition_off": { - "name": "Transition off", "description": "Transitions the volume level to the lowest setting over a specified duration, then powers off the device.", "fields": { "duration": { - "name": "[%key:component::snooz::services::transition_on::fields::duration::name%]", - "description": "Time to complete the transition." + "description": "Time to complete the transition.", + "name": "[%key:component::snooz::services::transition_on::fields::duration::name%]" } - } + }, + "name": "Transition off" + }, + "transition_on": { + "description": "Transitions the volume level over a specified duration. If the device is powered off, the transition will start at the lowest volume level.", + "fields": { + "duration": { + "description": "Time to transition to the target volume.", + "name": "Transition duration" + }, + "volume": { + "description": "Relative volume level. If not specified, the setting on the device is used.", + "name": "Target volume" + } + }, + "name": "Transition on" } } } diff --git a/homeassistant/components/solaredge/icons.json b/homeassistant/components/solaredge/icons.json index d190c2abddd..14a6ab561ba 100644 --- a/homeassistant/components/solaredge/icons.json +++ b/homeassistant/components/solaredge/icons.json @@ -1,19 +1,22 @@ { "entity": { "sensor": { - "lifetime_energy": { - "default": "mdi:solar-power" - }, - "energy_this_year": { + "current_power": { "default": "mdi:solar-power" }, "energy_this_month": { "default": "mdi:solar-power" }, + "energy_this_year": { + "default": "mdi:solar-power" + }, "energy_today": { "default": "mdi:solar-power" }, - "current_power": { + "grid_power": { + "default": "mdi:power-plug" + }, + "lifetime_energy": { "default": "mdi:solar-power" }, "power_consumption": { @@ -22,9 +25,6 @@ "solar_power": { "default": "mdi:solar-power" }, - "grid_power": { - "default": "mdi:power-plug" - }, "storage_power": { "default": "mdi:car-battery" } diff --git a/homeassistant/components/solaredge/strings.json b/homeassistant/components/solaredge/strings.json index e0a037ab173..2dd02f70ade 100644 --- a/homeassistant/components/solaredge/strings.json +++ b/homeassistant/components/solaredge/strings.json @@ -1,149 +1,149 @@ { "config": { - "step": { - "user": { - "title": "Set up your SolarEdge integration", - "description": "Provide your site ID and at least one method of authentication", - "data": { - "name": "The name of this installation", - "site_id": "The SolarEdge site ID", - "api_key": "[%key:common::config_flow::data::api_key%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "api_key": "Optional, used for general site sensors", - "username": "Optional, used for detailed module-level production statistics", - "password": "Required if username is provided" - }, - "sections": { - "api_auth": { - "name": "API key authentication", - "description": "Optionally provide your SolarEdge API key. Used for real-time detailed site sensors", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "web_auth": { - "name": "Web account authentication", - "description": "Optionally provide your SolarEdge web portal credentials. Used for non real-time module-level production statistics", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - } - }, - "reconfigure": { - "title": "Reconfigure SolarEdge", - "description": "Update your API key or web account credentials for site {site_id}.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "api_key": "[%key:component::solaredge::config::step::user::data_description::api_key%]", - "username": "[%key:component::solaredge::config::step::user::data_description::username%]", - "password": "[%key:component::solaredge::config::step::user::data_description::password%]" - }, - "sections": { - "api_auth": { - "name": "[%key:component::solaredge::config::step::user::sections::api_auth::name%]", - "description": "[%key:component::solaredge::config::step::user::sections::api_auth::description%]", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "web_auth": { - "name": "[%key:component::solaredge::config::step::user::sections::web_auth::name%]", - "description": "[%key:component::solaredge::config::step::user::sections::web_auth::description%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - } - } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "site_not_active": "The site is not active for the provided API key", - "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%]", - "auth_missing": "You must provide either an API key or a username and password." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "auth_missing": "You must provide either an API key or a username and password.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "site_not_active": "The site is not active for the provided API key", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reconfigure": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "api_key": "[%key:component::solaredge::config::step::user::data_description::api_key%]", + "password": "[%key:component::solaredge::config::step::user::data_description::password%]", + "username": "[%key:component::solaredge::config::step::user::data_description::username%]" + }, + "description": "Update your API key or web account credentials for site {site_id}.", + "sections": { + "api_auth": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "[%key:component::solaredge::config::step::user::sections::api_auth::description%]", + "name": "[%key:component::solaredge::config::step::user::sections::api_auth::name%]" + }, + "web_auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "[%key:component::solaredge::config::step::user::sections::web_auth::description%]", + "name": "[%key:component::solaredge::config::step::user::sections::web_auth::name%]" + } + }, + "title": "Reconfigure SolarEdge" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "name": "The name of this installation", + "password": "[%key:common::config_flow::data::password%]", + "site_id": "The SolarEdge site ID", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "api_key": "Optional, used for general site sensors", + "password": "Required if username is provided", + "username": "Optional, used for detailed module-level production statistics" + }, + "description": "Provide your site ID and at least one method of authentication", + "sections": { + "api_auth": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Optionally provide your SolarEdge API key. Used for real-time detailed site sensors", + "name": "API key authentication" + }, + "web_auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Optionally provide your SolarEdge web portal credentials. Used for non real-time module-level production statistics", + "name": "Web account authentication" + } + }, + "title": "Set up your SolarEdge integration" + } } }, "entity": { "sensor": { - "lifetime_energy": { - "name": "Lifetime energy" - }, - "energy_this_year": { - "name": "Energy this year" - }, - "energy_this_month": { - "name": "Energy this month" - }, - "energy_today": { - "name": "Energy today" - }, - "current_power": { - "name": "Current power" - }, - "site_details": { - "name": "Site details" - }, - "meters": { - "name": "Meters" - }, - "sensors": { - "name": "Sensors" - }, - "gateways": { - "name": "Gateways" - }, "batteries": { "name": "Batteries" }, - "inverters": { - "name": "Inverters" - }, - "power_consumption": { - "name": "Power consumption" - }, - "solar_power": { - "name": "Solar power" - }, - "grid_power": { - "name": "Grid power" - }, - "storage_power": { - "name": "Storage power" - }, - "purchased_energy": { - "name": "Imported energy" - }, - "production_energy": { - "name": "Produced energy" - }, "consumption_energy": { "name": "Consumed energy" }, - "selfconsumption_energy": { - "name": "Self-consumed energy" + "current_power": { + "name": "Current power" + }, + "energy_this_month": { + "name": "Energy this month" + }, + "energy_this_year": { + "name": "Energy this year" + }, + "energy_today": { + "name": "Energy today" }, "feedin_energy": { "name": "Exported energy" }, + "gateways": { + "name": "Gateways" + }, + "grid_power": { + "name": "Grid power" + }, + "inverters": { + "name": "Inverters" + }, + "lifetime_energy": { + "name": "Lifetime energy" + }, + "meters": { + "name": "Meters" + }, + "power_consumption": { + "name": "Power consumption" + }, + "production_energy": { + "name": "Produced energy" + }, + "purchased_energy": { + "name": "Imported energy" + }, + "selfconsumption_energy": { + "name": "Self-consumed energy" + }, + "sensors": { + "name": "Sensors" + }, + "site_details": { + "name": "Site details" + }, + "solar_power": { + "name": "Solar power" + }, "storage_level": { "name": "Storage level" + }, + "storage_power": { + "name": "Storage power" } } } diff --git a/homeassistant/components/solarlog/icons.json b/homeassistant/components/solarlog/icons.json index 487f11acbe4..94d2761f2fc 100644 --- a/homeassistant/components/solarlog/icons.json +++ b/homeassistant/components/solarlog/icons.json @@ -1,38 +1,38 @@ { "entity": { "sensor": { - "power_ac": { - "default": "mdi:solar-power" - }, - "power_dc": { - "default": "mdi:solar-power" - }, - "yield_day": { - "default": "mdi:solar-power" - }, - "yield_yesterday": { - "default": "mdi:solar-power" - }, - "yield_month": { - "default": "mdi:solar-power" - }, - "yield_year": { - "default": "mdi:solar-power" - }, - "yield_total": { - "default": "mdi:solar-power" - }, - "total_power": { - "default": "mdi:solar-power" - }, "alternator_loss": { "default": "mdi:solar-power" }, "capacity": { "default": "mdi:solar-power" }, + "power_ac": { + "default": "mdi:solar-power" + }, "power_available": { "default": "mdi:solar-power" + }, + "power_dc": { + "default": "mdi:solar-power" + }, + "total_power": { + "default": "mdi:solar-power" + }, + "yield_day": { + "default": "mdi:solar-power" + }, + "yield_month": { + "default": "mdi:solar-power" + }, + "yield_total": { + "default": "mdi:solar-power" + }, + "yield_year": { + "default": "mdi:solar-power" + }, + "yield_yesterday": { + "default": "mdi:solar-power" } } } diff --git a/homeassistant/components/solarlog/strings.json b/homeassistant/components/solarlog/strings.json index bba1380fb9f..ba66e5988d3 100644 --- a/homeassistant/components/solarlog/strings.json +++ b/homeassistant/components/solarlog/strings.json @@ -1,48 +1,9 @@ { "config": { - "step": { - "user": { - "title": "Define your Solar-Log connection", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "has_password": "I have the password for the Solar-Log user account." - }, - "data_description": { - "host": "The hostname or IP address of your Solar-Log device.", - "has_password": "The password is required, if the open JSON-API is deactivated or if you would like to access additional data provided by your Solar-Log device." - } - }, - "password": { - "title": "Define your Solar-Log connection", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "The password for the general user of your Solar-Log device." - } - }, - "reauth_confirm": { - "description": "Update your credentials for Solar-Log device", - "data": { - "has_password": "[%key:component::solarlog::config::step::user::data::has_password%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "has_password": "[%key:component::solarlog::config::step::user::data_description::has_password%]", - "password": "[%key:component::solarlog::config::step::password::data_description::password%]" - } - }, - "reconfigure": { - "title": "Configure SolarLog", - "data": { - "has_password": "[%key:component::solarlog::config::step::user::data::has_password%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "has_password": "[%key:component::solarlog::config::step::user::data_description::has_password%]", - "password": "[%key:component::solarlog::config::step::password::data_description::password%]" - } - } + "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%]" }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", @@ -50,32 +11,110 @@ "password_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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "password": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "The password for the general user of your Solar-Log device." + }, + "title": "Define your Solar-Log connection" + }, + "reauth_confirm": { + "data": { + "has_password": "[%key:component::solarlog::config::step::user::data::has_password%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "has_password": "[%key:component::solarlog::config::step::user::data_description::has_password%]", + "password": "[%key:component::solarlog::config::step::password::data_description::password%]" + }, + "description": "Update your credentials for Solar-Log device" + }, + "reconfigure": { + "data": { + "has_password": "[%key:component::solarlog::config::step::user::data::has_password%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "has_password": "[%key:component::solarlog::config::step::user::data_description::has_password%]", + "password": "[%key:component::solarlog::config::step::password::data_description::password%]" + }, + "title": "Configure SolarLog" + }, + "user": { + "data": { + "has_password": "I have the password for the Solar-Log user account.", + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "has_password": "The password is required, if the open JSON-API is deactivated or if you would like to access additional data provided by your Solar-Log device.", + "host": "The hostname or IP address of your Solar-Log device." + }, + "title": "Define your Solar-Log connection" + } } }, "entity": { "sensor": { + "alternator_loss": { + "name": "Alternator loss" + }, + "capacity": { + "name": "Capacity" + }, "charge_level": { "name": "Charge level" }, "charging_power": { "name": "Charging power" }, + "consumption_ac": { + "name": "Consumption AC" + }, + "consumption_day": { + "name": "Consumption day" + }, + "consumption_month": { + "name": "Consumption month" + }, + "consumption_total": { + "name": "Consumption total" + }, + "consumption_year": { + "name": "Consumption year" + }, + "consumption_yesterday": { + "name": "Consumption yesterday" + }, "discharging_power": { "name": "Discharging power" }, + "efficiency": { + "name": "Efficiency" + }, "last_update": { "name": "Last update" }, "power_ac": { "name": "Power AC" }, + "power_available": { + "name": "Power available" + }, "power_dc": { "name": "Power DC" }, + "self_consumption_year": { + "name": "Self-consumption year" + }, + "total_power": { + "name": "Installed peak power" + }, + "usage": { + "name": "Usage" + }, "voltage_ac": { "name": "Voltage AC" }, @@ -85,68 +124,29 @@ "yield_day": { "name": "Yield day" }, - "yield_yesterday": { - "name": "Yield yesterday" - }, "yield_month": { "name": "Yield month" }, - "yield_year": { - "name": "Yield year" - }, "yield_total": { "name": "Yield total" }, - "consumption_ac": { - "name": "Consumption AC" + "yield_year": { + "name": "Yield year" }, - "consumption_day": { - "name": "Consumption day" - }, - "consumption_yesterday": { - "name": "Consumption yesterday" - }, - "consumption_month": { - "name": "Consumption month" - }, - "consumption_year": { - "name": "Consumption year" - }, - "consumption_total": { - "name": "Consumption total" - }, - "self_consumption_year": { - "name": "Self-consumption year" - }, - "total_power": { - "name": "Installed peak power" - }, - "alternator_loss": { - "name": "Alternator loss" - }, - "capacity": { - "name": "Capacity" - }, - "efficiency": { - "name": "Efficiency" - }, - "power_available": { - "name": "Power available" - }, - "usage": { - "name": "Usage" + "yield_yesterday": { + "name": "Yield yesterday" } } }, "exceptions": { - "update_error": { - "message": "Error while updating data from the API." + "auth_failed": { + "message": "Error while logging in to the API." }, "config_entry_not_ready": { "message": "Error while loading the config entry." }, - "auth_failed": { - "message": "Error while logging in to the API." + "update_error": { + "message": "Error while updating data from the API." } } } diff --git a/homeassistant/components/solax/strings.json b/homeassistant/components/solax/strings.json index 75d0a8d87db..31a0e6a08bc 100644 --- a/homeassistant/components/solax/strings.json +++ b/homeassistant/components/solax/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]", - "port": "[%key:common::config_flow::data::port%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]" + } + } } } } diff --git a/homeassistant/components/soma/strings.json b/homeassistant/components/soma/strings.json index abf87b3dde2..54468a84035 100644 --- a/homeassistant/components/soma/strings.json +++ b/homeassistant/components/soma/strings.json @@ -3,9 +3,9 @@ "abort": { "already_setup": "[%key:common::config_flow::abort::single_instance_allowed%]", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "connection_error": "[%key:common::config_flow::error::cannot_connect%]", "missing_configuration": "The Soma component is not configured. Please follow the documentation.", - "result_error": "SOMA Connect responded with error status.", - "connection_error": "[%key:common::config_flow::error::cannot_connect%]" + "result_error": "SOMA Connect responded with error status." }, "create_entry": { "default": "[%key:common::config_flow::create_entry::authenticated%]" diff --git a/homeassistant/components/somfy_mylink/strings.json b/homeassistant/components/somfy_mylink/strings.json index ec501fac302..cb3811ae95f 100644 --- a/homeassistant/components/somfy_mylink/strings.json +++ b/homeassistant/components/somfy_mylink/strings.json @@ -1,9 +1,16 @@ { "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%]" + }, "flow_title": "{mac} ({ip})", "step": { "user": { - "description": "The System ID can be obtained in the MyLink app under Integration by selecting any non-Cloud service.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]", @@ -11,16 +18,9 @@ }, "data_description": { "host": "The hostname or IP address of your Somfy MyLink hub." - } + }, + "description": "The System ID can be obtained in the MyLink app under Integration by selecting any non-Cloud service." } - }, - "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%]" } }, "options": { @@ -29,17 +29,17 @@ }, "step": { "init": { - "title": "Configure MyLink options", "data": { "target_id": "Configure options for a cover." - } + }, + "title": "Configure MyLink options" }, "target_config": { - "title": "Configure MyLink cover", - "description": "Configure options for `{target_name}`", "data": { "reverse": "Cover is reversed" - } + }, + "description": "Configure options for `{target_name}`", + "title": "Configure MyLink cover" } } } diff --git a/homeassistant/components/sonarr/strings.json b/homeassistant/components/sonarr/strings.json index 940ec650270..6424825e1ad 100644 --- a/homeassistant/components/sonarr/strings.json +++ b/homeassistant/components/sonarr/strings.json @@ -1,35 +1,25 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Sonarr integration needs to be manually re-authenticated with the Sonarr API hosted at: {url}" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { + "flow_title": "{name}", "step": { - "init": { + "reauth_confirm": { + "description": "The Sonarr integration needs to be manually re-authenticated with the Sonarr API hosted at: {url}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { "data": { - "upcoming_days": "Number of upcoming days to display", - "wanted_max_items": "Max number of wanted items to display" + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" } } } @@ -60,5 +50,15 @@ "unit_of_measurement": "[%key:component::sonarr::entity::sensor::queue::unit_of_measurement%]" } } + }, + "options": { + "step": { + "init": { + "data": { + "upcoming_days": "Number of upcoming days to display", + "wanted_max_items": "Max number of wanted items to display" + } + } + } } } diff --git a/homeassistant/components/songpal/manifest.json b/homeassistant/components/songpal/manifest.json index a04bea0c48d..d9794a69e05 100644 --- a/homeassistant/components/songpal/manifest.json +++ b/homeassistant/components/songpal/manifest.json @@ -9,8 +9,8 @@ "requirements": ["python-songpal==0.16.2"], "ssdp": [ { - "st": "urn:schemas-sony-com:service:ScalarWebAPI:1", - "manufacturer": "Sony Corporation" + "manufacturer": "Sony Corporation", + "st": "urn:schemas-sony-com:service:ScalarWebAPI:1" } ] } diff --git a/homeassistant/components/songpal/strings.json b/homeassistant/components/songpal/strings.json index d6874f94f95..0472689dbf3 100644 --- a/homeassistant/components/songpal/strings.json +++ b/homeassistant/components/songpal/strings.json @@ -1,38 +1,38 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "data": { - "endpoint": "Endpoint" - } - }, - "init": { - "description": "Do you want to set up {name} ({host})?" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "not_songpal_device": "Not a Songpal device" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "not_songpal_device": "Not a Songpal device" + "flow_title": "{name} ({host})", + "step": { + "init": { + "description": "Do you want to set up {name} ({host})?" + }, + "user": { + "data": { + "endpoint": "Endpoint" + } + } } }, "services": { "set_sound_setting": { - "name": "Sets sound setting", "description": "Change sound setting.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "Name of the setting." + "description": "Name of the setting.", + "name": "[%key:common::config_flow::data::name%]" }, "value": { - "name": "Value", - "description": "Value to set." + "description": "Value to set.", + "name": "Value" } - } + }, + "name": "Sets sound setting" } } } diff --git a/homeassistant/components/sonos/icons.json b/homeassistant/components/sonos/icons.json index 45027d8eabd..e28e4c305a9 100644 --- a/homeassistant/components/sonos/icons.json +++ b/homeassistant/components/sonos/icons.json @@ -14,20 +14,20 @@ } }, "switch": { - "loudness": { - "default": "mdi:bullhorn-variant" + "buttons_enabled": { + "default": "mdi:gesture-tap" }, - "surround_mode": { - "default": "mdi:music-note-plus" - }, - "night_mode": { - "default": "mdi:chat-sleep" + "cross_fade": { + "default": "mdi:swap-horizontal" }, "dialog_level": { "default": "mdi:ear-hearing" }, - "cross_fade": { - "default": "mdi:swap-horizontal" + "loudness": { + "default": "mdi:bullhorn-variant" + }, + "night_mode": { + "default": "mdi:chat-sleep" }, "status_light": { "default": "mdi:led-on" @@ -38,35 +38,35 @@ "surround_enabled": { "default": "mdi:surround-sound" }, - "buttons_enabled": { - "default": "mdi:gesture-tap" + "surround_mode": { + "default": "mdi:music-note-plus" } } }, "services": { - "snapshot": { - "service": "mdi:camera" - }, - "restore": { - "service": "mdi:camera-retake" - }, - "set_sleep_timer": { - "service": "mdi:alarm" - }, "clear_sleep_timer": { "service": "mdi:alarm-off" }, + "get_queue": { + "service": "mdi:queue-first-in-last-out" + }, "play_queue": { "service": "mdi:play" }, "remove_from_queue": { "service": "mdi:playlist-remove" }, - "update_alarm": { + "restore": { + "service": "mdi:camera-retake" + }, + "set_sleep_timer": { "service": "mdi:alarm" }, - "get_queue": { - "service": "mdi:queue-first-in-last-out" + "snapshot": { + "service": "mdi:camera" + }, + "update_alarm": { + "service": "mdi:alarm" } } } diff --git a/homeassistant/components/sonos/strings.json b/homeassistant/components/sonos/strings.json index adb233519b2..28f6a7c4d61 100644 --- a/homeassistant/components/sonos/strings.json +++ b/homeassistant/components/sonos/strings.json @@ -1,21 +1,15 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_ipv4_address": "No IPv4 address in SSDP discovery information", + "not_sonos_device": "Discovered device is not a Sonos device", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up Sonos?" } - }, - "abort": { - "not_sonos_device": "Discovered device is not a Sonos device", - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "not_ipv4_address": "No IPv4 address in SSDP discovery information" - } - }, - "issues": { - "subscriptions_failed": { - "title": "Networking error: subscriptions failed", - "description": "Falling back to polling, functionality may be limited.\n\nSonos device at {device_ip} cannot reach Home Assistant at {listener_address}.\n\nSee our [documentation]({sub_fail_url}) for more information on how to solve this issue." } }, "entity": { @@ -28,14 +22,14 @@ "audio_delay": { "name": "Audio delay" }, - "bass": { - "name": "Bass" - }, "balance": { "name": "Balance" }, - "treble": { - "name": "Treble" + "bass": { + "name": "Bass" + }, + "music_surround_level": { + "name": "Music surround level" }, "sub_crossover": { "name": "Sub crossover frequency" @@ -46,19 +40,19 @@ "surround_level": { "name": "Surround level" }, - "music_surround_level": { - "name": "Music surround level" + "treble": { + "name": "Treble" } }, "select": { "speech_dialog_level": { "name": "Speech enhancement", "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", "high": "[%key:common::state::high%]", - "max": "Max" + "low": "[%key:common::state::low%]", + "max": "Max", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" } } }, @@ -76,21 +70,21 @@ } }, "switch": { + "buttons_enabled": { + "name": "Touch controls" + }, "cross_fade": { "name": "Crossfade" }, + "dialog_level": { + "name": "Speech enhancement" + }, "loudness": { "name": "Loudness" }, - "surround_mode": { - "name": "Surround music full volume" - }, "night_mode": { "name": "Night sound" }, - "dialog_level": { - "name": "Speech enhancement" - }, "status_light": { "name": "Status light" }, @@ -100,132 +94,138 @@ "surround_enabled": { "name": "Surround enabled" }, - "buttons_enabled": { - "name": "Touch controls" + "surround_mode": { + "name": "Surround music full volume" } } }, - "services": { - "snapshot": { - "name": "Snapshot", - "description": "Takes a snapshot of a media player.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of entity that will be snapshot." - }, - "with_group": { - "name": "With group", - "description": "Whether the snapshot should include the group layout and the state of other speakers in the group." - } - } - }, - "restore": { - "name": "Restore", - "description": "Restores a snapshot of a media player.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name of entity that will be restored." - }, - "with_group": { - "name": "[%key:component::sonos::services::snapshot::fields::with_group::name%]", - "description": "Whether the group layout and the state of other speakers in the group should also be restored." - } - } - }, - "set_sleep_timer": { - "name": "Set timer", - "description": "Sets a Sonos timer.", - "fields": { - "sleep_time": { - "name": "Sleep Time", - "description": "Number of seconds to set the timer." - } - } - }, - "clear_sleep_timer": { - "name": "Clear timer", - "description": "Clears a Sonos timer." - }, - "play_queue": { - "name": "Play queue", - "description": "Starts playing the queue from the first item.", - "fields": { - "queue_position": { - "name": "Queue position", - "description": "Position of the song in the queue to start playing from." - } - } - }, - "remove_from_queue": { - "name": "Remove from queue", - "description": "Removes an item from the queue.", - "fields": { - "queue_position": { - "name": "[%key:component::sonos::services::play_queue::fields::queue_position::name%]", - "description": "Position in the queue to remove." - } - } - }, - "update_alarm": { - "name": "Update alarm", - "description": "Updates an alarm with new time and volume settings.", - "fields": { - "alarm_id": { - "name": "Alarm ID", - "description": "The ID of the alarm to be updated." - }, - "time": { - "name": "Time", - "description": "The time for the alarm." - }, - "volume": { - "name": "Volume", - "description": "The alarm volume level." - }, - "enabled": { - "name": "Alarm enabled", - "description": "Whether or not to enable the alarm." - }, - "include_linked_zones": { - "name": "Include linked zones", - "description": "Whether the alarm also plays on grouped players." - } - } - }, - "get_queue": { - "name": "Get queue", - "description": "Returns the contents of the queue." - } - }, "exceptions": { - "invalid_favorite": { - "message": "Could not find a Sonos favorite: {name}" - }, - "invalid_sonos_playlist": { - "message": "Could not find Sonos playlist: {name}" - }, - "invalid_media": { - "message": "Could not find media in library: {media_id}" - }, - "invalid_content_type": { - "message": "Sonos does not support media content type: {media_type}" - }, "announce_media_error": { "message": "Announcing clip {media_id} failed {response}" }, "entity_not_found": { "message": "Entity {entity_id} not found." }, + "invalid_alarm_id": { + "message": "Alarm {alarm_id} does not exist and cannot be updated." + }, + "invalid_content_type": { + "message": "Sonos does not support media content type: {media_type}" + }, + "invalid_favorite": { + "message": "Could not find a Sonos favorite: {name}" + }, + "invalid_media": { + "message": "Could not find media in library: {media_id}" + }, + "invalid_sonos_playlist": { + "message": "Could not find Sonos playlist: {name}" + }, "speaker_not_found": { "message": "{entity_id} is not a known Sonos speaker." }, "timeout_join": { "message": "Timeout while waiting for Sonos player to join the group {group_description}" + } + }, + "issues": { + "subscriptions_failed": { + "description": "Falling back to polling, functionality may be limited.\n\nSonos device at {device_ip} cannot reach Home Assistant at {listener_address}.\n\nSee our [documentation]({sub_fail_url}) for more information on how to solve this issue.", + "title": "Networking error: subscriptions failed" + } + }, + "services": { + "clear_sleep_timer": { + "description": "Clears a Sonos timer.", + "name": "Clear timer" }, - "invalid_alarm_id": { - "message": "Alarm {alarm_id} does not exist and cannot be updated." + "get_queue": { + "description": "Returns the contents of the queue.", + "name": "Get queue" + }, + "play_queue": { + "description": "Starts playing the queue from the first item.", + "fields": { + "queue_position": { + "description": "Position of the song in the queue to start playing from.", + "name": "Queue position" + } + }, + "name": "Play queue" + }, + "remove_from_queue": { + "description": "Removes an item from the queue.", + "fields": { + "queue_position": { + "description": "Position in the queue to remove.", + "name": "[%key:component::sonos::services::play_queue::fields::queue_position::name%]" + } + }, + "name": "Remove from queue" + }, + "restore": { + "description": "Restores a snapshot of a media player.", + "fields": { + "entity_id": { + "description": "Name of entity that will be restored.", + "name": "Entity" + }, + "with_group": { + "description": "Whether the group layout and the state of other speakers in the group should also be restored.", + "name": "[%key:component::sonos::services::snapshot::fields::with_group::name%]" + } + }, + "name": "Restore" + }, + "set_sleep_timer": { + "description": "Sets a Sonos timer.", + "fields": { + "sleep_time": { + "description": "Number of seconds to set the timer.", + "name": "Sleep Time" + } + }, + "name": "Set timer" + }, + "snapshot": { + "description": "Takes a snapshot of a media player.", + "fields": { + "entity_id": { + "description": "Name of entity that will be snapshot.", + "name": "Entity" + }, + "with_group": { + "description": "Whether the snapshot should include the group layout and the state of other speakers in the group.", + "name": "With group" + } + }, + "name": "Snapshot" + }, + "update_alarm": { + "description": "Updates an alarm with new time and volume settings.", + "fields": { + "alarm_id": { + "description": "The ID of the alarm to be updated.", + "name": "Alarm ID" + }, + "enabled": { + "description": "Whether or not to enable the alarm.", + "name": "Alarm enabled" + }, + "include_linked_zones": { + "description": "Whether the alarm also plays on grouped players.", + "name": "Include linked zones" + }, + "time": { + "description": "The time for the alarm.", + "name": "Time" + }, + "volume": { + "description": "The alarm volume level.", + "name": "Volume" + } + }, + "name": "Update alarm" } } } diff --git a/homeassistant/components/soundtouch/icons.json b/homeassistant/components/soundtouch/icons.json index 721a5c77032..6505dd7f20a 100644 --- a/homeassistant/components/soundtouch/icons.json +++ b/homeassistant/components/soundtouch/icons.json @@ -1,13 +1,13 @@ { "services": { - "play_everywhere": { - "service": "mdi:play" + "add_zone_slave": { + "service": "mdi:plus" }, "create_zone": { "service": "mdi:plus" }, - "add_zone_slave": { - "service": "mdi:plus" + "play_everywhere": { + "service": "mdi:play" }, "remove_zone_slave": { "service": "mdi:minus" diff --git a/homeassistant/components/soundtouch/strings.json b/homeassistant/components/soundtouch/strings.json index 2544eeb14a9..78c16f40d5f 100644 --- a/homeassistant/components/soundtouch/strings.json +++ b/homeassistant/components/soundtouch/strings.json @@ -1,5 +1,11 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { @@ -10,69 +16,63 @@ } }, "zeroconf_confirm": { - "title": "Confirm adding Bose SoundTouch device", - "description": "You are about to add the SoundTouch device named `{name}` to Home Assistant." + "description": "You are about to add the SoundTouch device named `{name}` to Home Assistant.", + "title": "Confirm adding Bose SoundTouch device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "services": { - "play_everywhere": { - "name": "Play everywhere", - "description": "Plays on all Bose SoundTouch devices.", - "fields": { - "master": { - "name": "Leader", - "description": "The media player entity that will coordinate the grouping. Platform dependent. It is a shortcut for creating a multi-room zone with all devices." - } - } - }, - "create_zone": { - "name": "Create zone", - "description": "Creates a SoundTouch multi-room zone.", - "fields": { - "master": { - "name": "Leader", - "description": "The media player entity that will coordinate the multi-room zone. Platform dependent." - }, - "slaves": { - "name": "Follower", - "description": "The media player entities to add to the new zone." - } - } - }, "add_zone_slave": { - "name": "Add zone follower", "description": "Adds media players to a SoundTouch multi-room zone.", "fields": { "master": { - "name": "[%key:component::soundtouch::services::create_zone::fields::master::name%]", - "description": "The media player entity that is coordinating the multi-room zone. Platform dependent." + "description": "The media player entity that is coordinating the multi-room zone. Platform dependent.", + "name": "[%key:component::soundtouch::services::create_zone::fields::master::name%]" }, "slaves": { - "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]", - "description": "The media player entities to add to the existing zone." + "description": "The media player entities to add to the existing zone.", + "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]" } - } + }, + "name": "Add zone follower" + }, + "create_zone": { + "description": "Creates a SoundTouch multi-room zone.", + "fields": { + "master": { + "description": "The media player entity that will coordinate the multi-room zone. Platform dependent.", + "name": "Leader" + }, + "slaves": { + "description": "The media player entities to add to the new zone.", + "name": "Follower" + } + }, + "name": "Create zone" + }, + "play_everywhere": { + "description": "Plays on all Bose SoundTouch devices.", + "fields": { + "master": { + "description": "The media player entity that will coordinate the grouping. Platform dependent. It is a shortcut for creating a multi-room zone with all devices.", + "name": "Leader" + } + }, + "name": "Play everywhere" }, "remove_zone_slave": { - "name": "Remove zone follower", "description": "Removes media players from a SoundTouch multi-room zone.", "fields": { "master": { - "name": "[%key:component::soundtouch::services::create_zone::fields::master::name%]", - "description": "[%key:component::soundtouch::services::add_zone_slave::fields::master::description%]" + "description": "[%key:component::soundtouch::services::add_zone_slave::fields::master::description%]", + "name": "[%key:component::soundtouch::services::create_zone::fields::master::name%]" }, "slaves": { - "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]", - "description": "The media player entities to remove from the existing zone." + "description": "The media player entities to remove from the existing zone.", + "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]" } - } + }, + "name": "Remove zone follower" } } } diff --git a/homeassistant/components/speedtestdotnet/icons.json b/homeassistant/components/speedtestdotnet/icons.json index 9f3beebdf21..61831f01be8 100644 --- a/homeassistant/components/speedtestdotnet/icons.json +++ b/homeassistant/components/speedtestdotnet/icons.json @@ -1,10 +1,10 @@ { "entity": { "sensor": { - "ping": { + "download": { "default": "mdi:speedometer" }, - "download": { + "ping": { "default": "mdi:speedometer" }, "upload": { diff --git a/homeassistant/components/speedtestdotnet/strings.json b/homeassistant/components/speedtestdotnet/strings.json index 72ebec6c9e0..84afe51ed95 100644 --- a/homeassistant/components/speedtestdotnet/strings.json +++ b/homeassistant/components/speedtestdotnet/strings.json @@ -1,12 +1,64 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "user": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + } + }, + "entity": { + "sensor": { + "download": { + "name": "Download", + "state_attributes": { + "bytes_received": { + "name": "Bytes received" + }, + "server_country": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_country::name%]" + }, + "server_id": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_id::name%]" + }, + "server_name": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_name::name%]" + } + } + }, + "ping": { + "name": "Ping", + "state_attributes": { + "server_country": { + "name": "Server country" + }, + "server_id": { + "name": "Server ID" + }, + "server_name": { + "name": "Server name" + } + } + }, + "upload": { + "name": "Upload", + "state_attributes": { + "bytes_sent": { + "name": "Bytes sent" + }, + "server_country": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_country::name%]" + }, + "server_id": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_id::name%]" + }, + "server_name": { + "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_name::name%]" + } + } + } } }, "options": { @@ -17,57 +69,5 @@ } } } - }, - "entity": { - "sensor": { - "ping": { - "name": "Ping", - "state_attributes": { - "server_name": { - "name": "Server name" - }, - "server_country": { - "name": "Server country" - }, - "server_id": { - "name": "Server ID" - } - } - }, - "download": { - "name": "Download", - "state_attributes": { - "server_name": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_name::name%]" - }, - "server_country": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_country::name%]" - }, - "server_id": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_id::name%]" - }, - "bytes_received": { - "name": "Bytes received" - } - } - }, - "upload": { - "name": "Upload", - "state_attributes": { - "server_name": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_name::name%]" - }, - "server_country": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_country::name%]" - }, - "server_id": { - "name": "[%key:component::speedtestdotnet::entity::sensor::ping::state_attributes::server_id::name%]" - }, - "bytes_sent": { - "name": "Bytes sent" - } - } - } - } } } diff --git a/homeassistant/components/spider/strings.json b/homeassistant/components/spider/strings.json index 338ae3aa762..b135d2307ed 100644 --- a/homeassistant/components/spider/strings.json +++ b/homeassistant/components/spider/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Spider integration has been removed", - "description": "The Spider integration has been removed from Home Assistant.\n\nItho daalderop has [discontinued]({link}) the Spider Connect System.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Spider integration entries]({entries})." + "description": "The Spider integration has been removed from Home Assistant.\n\nItho daalderop has [discontinued]({link}) the Spider Connect System.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Spider integration entries]({entries}).", + "title": "The Spider integration has been removed" } } } diff --git a/homeassistant/components/spotify/strings.json b/homeassistant/components/spotify/strings.json index 352a2fb7fa2..3cbebf4c5b6 100644 --- a/homeassistant/components/spotify/strings.json +++ b/homeassistant/components/spotify/strings.json @@ -1,35 +1,35 @@ { "config": { + "abort": { + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "connection_error": "Could not fetch account information. Is the user registered in the Spotify Developer Dashboard?", + "missing_configuration": "The Spotify integration is not configured. Please follow the documentation.", + "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_account_mismatch": "The Spotify account authenticated with does not match the account that needed re-authentication.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "Successfully authenticated with Spotify." + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Spotify integration needs to re-authenticate with Spotify for account: {account}" + "description": "The Spotify integration needs to re-authenticate with Spotify for account: {account}", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "abort": { - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "missing_configuration": "The Spotify integration is not configured. Please follow the documentation.", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "reauth_account_mismatch": "The Spotify account authenticated with does not match the account that needed re-authentication.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]", - "connection_error": "Could not fetch account information. Is the user registered in the Spotify Developer Dashboard?", - "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]" - }, - "create_entry": { - "default": "Successfully authenticated with Spotify." } }, "system_health": { diff --git a/homeassistant/components/sql/strings.json b/homeassistant/components/sql/strings.json index 32e95ae6037..2a2cb6ab47f 100644 --- a/homeassistant/components/sql/strings.json +++ b/homeassistant/components/sql/strings.json @@ -4,13 +4,41 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "error": { + "column_invalid": "The column `{column}` is not returned by the query", "db_url_invalid": "Database URL invalid", - "query_invalid": "SQL query invalid", - "query_no_read_only": "SQL query must be read-only", "multiple_queries": "Multiple SQL queries are not supported", - "column_invalid": "The column `{column}` is not returned by the query" + "query_invalid": "SQL query invalid", + "query_no_read_only": "SQL query must be read-only" }, "step": { + "options": { + "data": { + "column": "Column", + "query": "Select query" + }, + "data_description": { + "column": "Column for returned query to present as state", + "query": "Query to run, needs to start with 'SELECT'" + }, + "sections": { + "advanced_options": { + "data": { + "device_class": "Device class", + "state_class": "State class", + "unit_of_measurement": "Unit of measurement", + "value_template": "Value template" + }, + "data_description": { + "device_class": "The type/class of the sensor to set the icon in the frontend", + "state_class": "The state class of the sensor", + "unit_of_measurement": "The unit of measurement for the sensor (optional)", + "value_template": "Template to extract a value from the payload (optional)" + }, + "description": "Provide additional configuration to the sensor", + "name": "Advanced options" + } + } + }, "user": { "data": { "db_url": "Database URL", @@ -20,34 +48,6 @@ "db_url": "Leave empty to use Home Assistant Recorder database", "name": "Name that will be used for config entry and also the sensor" } - }, - "options": { - "data": { - "query": "Select query", - "column": "Column" - }, - "data_description": { - "query": "Query to run, needs to start with 'SELECT'", - "column": "Column for returned query to present as state" - }, - "sections": { - "advanced_options": { - "name": "Advanced options", - "description": "Provide additional configuration to the sensor", - "data": { - "unit_of_measurement": "Unit of measurement", - "value_template": "Value template", - "device_class": "Device class", - "state_class": "State class" - }, - "data_description": { - "unit_of_measurement": "The unit of measurement for the sensor (optional)", - "value_template": "Template to extract a value from the payload (optional)", - "device_class": "The type/class of the sensor to set the icon in the frontend", - "state_class": "The state class of the sensor" - } - } - } } } }, @@ -62,59 +62,53 @@ "message": "The provided query is not allowed: {error}" } }, - "services": { - "query": { - "name": "Query", - "description": "Executes a SQL query and returns the result.", - "fields": { - "query": { - "name": "Query", - "description": "The SELECT query to execute." - }, - "db_url": { - "name": "Database URL", - "description": "The URL of the database to connect to. If not provided, the default Home Assistant recorder database will be used." - } - } + "issues": { + "entity_id_query_does_full_table_scan": { + "description": "The query `{query}` contains the keyword `entity_id` but does not reference the `states_meta` table. This will cause a full table scan and database instability. Please check the documentation and use `states_meta.entity_id` instead.", + "title": "SQL query does full table scan" + }, + "platform_yaml_not_supported": { + "description": "Platform YAML setup is not supported.\nChange from configuring it in the `sensor:` key to using the `sql:` key directly in configuration.yaml.\nTo see the detailed documentation, select Learn more.", + "title": "Platform YAML is not supported in SQL" } }, "options": { + "error": { + "column_invalid": "[%key:component::sql::config::error::column_invalid%]", + "db_url_invalid": "[%key:component::sql::config::error::db_url_invalid%]", + "multiple_queries": "[%key:component::sql::config::error::multiple_queries%]", + "query_invalid": "[%key:component::sql::config::error::query_invalid%]", + "query_no_read_only": "[%key:component::sql::config::error::query_no_read_only%]" + }, "step": { "init": { "data": { - "query": "[%key:component::sql::config::step::options::data::query%]", - "column": "[%key:component::sql::config::step::options::data::column%]" + "column": "[%key:component::sql::config::step::options::data::column%]", + "query": "[%key:component::sql::config::step::options::data::query%]" }, "data_description": { - "query": "[%key:component::sql::config::step::options::data_description::query%]", - "column": "[%key:component::sql::config::step::options::data_description::column%]" + "column": "[%key:component::sql::config::step::options::data_description::column%]", + "query": "[%key:component::sql::config::step::options::data_description::query%]" }, "sections": { "advanced_options": { - "name": "[%key:component::sql::config::step::options::sections::advanced_options::name%]", - "description": "[%key:component::sql::config::step::options::sections::advanced_options::name%]", "data": { - "unit_of_measurement": "[%key:component::sql::config::step::options::sections::advanced_options::data::unit_of_measurement%]", - "value_template": "[%key:component::sql::config::step::options::sections::advanced_options::data::value_template%]", "device_class": "[%key:component::sql::config::step::options::sections::advanced_options::data::device_class%]", - "state_class": "[%key:component::sql::config::step::options::sections::advanced_options::data::state_class%]" + "state_class": "[%key:component::sql::config::step::options::sections::advanced_options::data::state_class%]", + "unit_of_measurement": "[%key:component::sql::config::step::options::sections::advanced_options::data::unit_of_measurement%]", + "value_template": "[%key:component::sql::config::step::options::sections::advanced_options::data::value_template%]" }, "data_description": { - "unit_of_measurement": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::unit_of_measurement%]", - "value_template": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::value_template%]", "device_class": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::device_class%]", - "state_class": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::state_class%]" - } + "state_class": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::state_class%]", + "unit_of_measurement": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::unit_of_measurement%]", + "value_template": "[%key:component::sql::config::step::options::sections::advanced_options::data_description::value_template%]" + }, + "description": "[%key:component::sql::config::step::options::sections::advanced_options::name%]", + "name": "[%key:component::sql::config::step::options::sections::advanced_options::name%]" } } } - }, - "error": { - "db_url_invalid": "[%key:component::sql::config::error::db_url_invalid%]", - "query_invalid": "[%key:component::sql::config::error::query_invalid%]", - "query_no_read_only": "[%key:component::sql::config::error::query_no_read_only%]", - "multiple_queries": "[%key:component::sql::config::error::multiple_queries%]", - "column_invalid": "[%key:component::sql::config::error::column_invalid%]" } }, "selector": { @@ -152,9 +146,9 @@ "ozone": "[%key:component::sensor::entity_component::ozone::name%]", "ph": "[%key:component::sensor::entity_component::ph::name%]", "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "power": "[%key:component::sensor::entity_component::power::name%]", "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", @@ -189,14 +183,20 @@ } } }, - "issues": { - "entity_id_query_does_full_table_scan": { - "title": "SQL query does full table scan", - "description": "The query `{query}` contains the keyword `entity_id` but does not reference the `states_meta` table. This will cause a full table scan and database instability. Please check the documentation and use `states_meta.entity_id` instead." - }, - "platform_yaml_not_supported": { - "title": "Platform YAML is not supported in SQL", - "description": "Platform YAML setup is not supported.\nChange from configuring it in the `sensor:` key to using the `sql:` key directly in configuration.yaml.\nTo see the detailed documentation, select Learn more." + "services": { + "query": { + "description": "Executes a SQL query and returns the result.", + "fields": { + "db_url": { + "description": "The URL of the database to connect to. If not provided, the default Home Assistant recorder database will be used.", + "name": "Database URL" + }, + "query": { + "description": "The SELECT query to execute.", + "name": "Query" + } + }, + "name": "Query" } } } diff --git a/homeassistant/components/squeezebox/icons.json b/homeassistant/components/squeezebox/icons.json index 06779ea5e60..ef2e4d3bf80 100644 --- a/homeassistant/components/squeezebox/icons.json +++ b/homeassistant/components/squeezebox/icons.json @@ -13,26 +13,26 @@ "info_total_songs": { "default": "mdi:file-music" }, - "player_count": { - "default": "mdi:folder-play" - }, "other_player_count": { "default": "mdi:folder-play-outline" + }, + "player_count": { + "default": "mdi:folder-play" } }, "switch": { - "alarms_enabled": { - "default": "mdi:alarm-check", - "state": { - "on": "mdi:alarm-check", - "off": "mdi:alarm-off" - } - }, "alarm": { "default": "mdi:alarm", "state": { - "on": "mdi:alarm", - "off": "mdi:alarm-off" + "off": "mdi:alarm-off", + "on": "mdi:alarm" + } + }, + "alarms_enabled": { + "default": "mdi:alarm-check", + "state": { + "off": "mdi:alarm-off", + "on": "mdi:alarm-check" } } } diff --git a/homeassistant/components/squeezebox/strings.json b/homeassistant/components/squeezebox/strings.json index 69e8c646338..af712ec8341 100644 --- a/homeassistant/components/squeezebox/strings.json +++ b/homeassistant/components/squeezebox/strings.json @@ -1,7 +1,34 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_server_found": "No LMS found." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_server_found": "Could not automatically discover server.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{host}", "step": { + "edit": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "https": "Connect over HTTPS (requires reverse proxy)", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "[%key:component::squeezebox::config::step::user::data_description::host%]", + "https": "Connect to the LMS over HTTPS (requires reverse proxy).", + "password": "The password from LMS Advanced Security (if defined).", + "port": "The web interface port on the LMS. The default is 9000.", + "username": "The username from LMS Advanced Security (if defined)." + }, + "title": "Edit connection information" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -9,102 +36,42 @@ "data_description": { "host": "The hostname or IP address of your Lyrion Music Server." } - }, - "edit": { - "title": "Edit connection information", - "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%]", - "https": "Connect over HTTPS (requires reverse proxy)" - }, - "data_description": { - "host": "[%key:component::squeezebox::config::step::user::data_description::host%]", - "port": "The web interface port on the LMS. The default is 9000.", - "username": "The username from LMS Advanced Security (if defined).", - "password": "The password from LMS Advanced Security (if defined).", - "https": "Connect to the LMS over HTTPS (requires reverse proxy)." - } - } - }, - "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%]", - "no_server_found": "Could not automatically discover server." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_server_found": "No LMS found." - } - }, - "services": { - "call_method": { - "name": "Call method", - "description": "Calls a custom Squeezebox JSONRPC API.", - "fields": { - "command": { - "name": "Command", - "description": "Command to pass to Lyrion Music Server (p0 in the CLI documentation)." - }, - "parameters": { - "name": "Parameters", - "description": "Array of additional parameters to pass to Lyrion Music Server (p1, ..., pN in the CLI documentation)." - } - } - }, - "call_query": { - "name": "Call query", - "description": "Calls a custom Squeezebox JSONRPC API. Result will be stored in 'query_result' attribute of the Squeezebox entity.", - "fields": { - "command": { - "name": "Command", - "description": "[%key:component::squeezebox::services::call_method::fields::command::description%]" - }, - "parameters": { - "name": "Parameters", - "description": "[%key:component::squeezebox::services::call_method::fields::parameters::description%]" - } } } }, "entity": { + "binary_sensor": { + "needsrestart": { + "name": "Needs restart" + }, + "rescan": { + "name": "Library rescan" + } + }, "button": { - "preset": { - "name": "Preset {index}" - }, - "brightness_up": { - "name": "Brightness up" - }, - "brightness_down": { - "name": "Brightness down" + "bass_down": { + "name": "Bass down" }, "bass_up": { "name": "Bass up" }, - "bass_down": { - "name": "Bass down" + "brightness_down": { + "name": "Brightness down" }, - "treble_up": { - "name": "Treble up" + "brightness_up": { + "name": "Brightness up" + }, + "preset": { + "name": "Preset {index}" }, "treble_down": { "name": "Treble down" - } - }, - "binary_sensor": { - "rescan": { - "name": "Library rescan" }, - "needsrestart": { - "name": "Needs restart" + "treble_up": { + "name": "Treble up" } }, "sensor": { - "lastscan": { - "name": "Last scan" - }, "info_total_albums": { "name": "Total albums", "unit_of_measurement": "albums" @@ -124,13 +91,16 @@ "name": "Total songs", "unit_of_measurement": "songs" }, - "player_count": { - "name": "Player count", - "unit_of_measurement": "players" + "lastscan": { + "name": "Last scan" }, "other_player_count": { "name": "Player count off service", "unit_of_measurement": "[%key:component::squeezebox::entity::sensor::player_count::unit_of_measurement%]" + }, + "player_count": { + "name": "Player count", + "unit_of_measurement": "players" } }, "switch": { @@ -142,32 +112,35 @@ } }, "update": { - "newversion": { - "name": "Lyrion Music Server" - }, "newplugins": { "name": "Updated plugins" - } - } - }, - "options": { - "step": { - "init": { - "title": "LMS Configuration", - "data": { - "browse_limit": "Browse limit", - "volume_step": "Volume step" - }, - "data_description": { - "browse_limit": "Maximum number of items when browsing or in a playlist.", - "volume_step": "Amount to adjust the volume when turning volume up or down." - } + }, + "newversion": { + "name": "Lyrion Music Server" } } }, "exceptions": { - "init_timeout": { - "message": "Timeout connecting to LMS {host}." + "browse_media_not_found": { + "message": "Media not found: {type} / {id}." + }, + "browse_media_type_not_supported": { + "message": "Media type not supported: {media_type}." + }, + "call_method_failed": { + "message": "Failed to call method {command}." + }, + "call_query_failed": { + "message": "Failed to query method {command}." + }, + "clear_playlist_failed": { + "message": "Failed to clear the playlist." + }, + "coordinator_no_data": { + "message": "No data from status poll." + }, + "generate_image_url_failed": { + "message": "Failed to generate image URL for track ID {track_id}." }, "init_auth_failed": { "message": "Authentication failed with {host}." @@ -178,14 +151,20 @@ "init_missing_uuid": { "message": "LMS {host} status response missing essential data (UUID)." }, + "init_timeout": { + "message": "Timeout connecting to LMS {host}." + }, "invalid_announce_media_type": { "message": "Only type 'music' can be played as announcement (received type {media_type})." }, + "invalid_announce_timeout": { + "message": "{announce_timeout} must be a number greater than 0." + }, "invalid_announce_volume": { "message": "{announce_volume} must be a number greater than 0 and less than or equal to 1." }, - "invalid_announce_timeout": { - "message": "{announce_timeout} must be a number greater than 0." + "invalid_search_media_content_type": { + "message": "If specified, Media content type must be one of {media_content_type}" }, "join_cannot_find_other_player": { "message": "Could not find player with entity_id {other_player_entity_id}." @@ -193,50 +172,26 @@ "join_cannot_join_unknown_player": { "message": "Could not join unknown player {other_player_entity_id}." }, - "coordinator_no_data": { - "message": "No data from status poll." + "load_playlist_failed": { + "message": "Failed to load playlist with command {cmd}." }, - "browse_media_not_found": { - "message": "Media not found: {type} / {id}." + "load_url_failed": { + "message": "Failed to load media URL {media_id} with command {cmd}." }, - "browse_media_type_not_supported": { - "message": "Media type not supported: {media_type}." - }, - "update_restart_failed": { - "message": "Error trying to update LMS Plugins: Restart failed." - }, - "invalid_search_media_content_type": { - "message": "If specified, Media content type must be one of {media_content_type}" - }, - "turn_on_failed": { - "message": "Failed to turn on the player." - }, - "turn_off_failed": { - "message": "Failed to turn off the player." - }, - "set_shuffle_failed": { - "message": "Failed to set shuffle mode." - }, - "set_volume_failed": { - "message": "Failed to set volume to {volume}%." - }, - "set_mute_failed": { - "message": "Failed to mute/unmute the player." - }, - "stop_failed": { - "message": "Failed to stop playback." - }, - "play_pause_failed": { - "message": "Failed to toggle play/pause." - }, - "play_failed": { - "message": "Failed to start playback." + "next_track_failed": { + "message": "Failed to skip to the next track." }, "pause_failed": { "message": "Failed to pause playback." }, - "next_track_failed": { - "message": "Failed to skip to the next track." + "play_failed": { + "message": "Failed to start playback." + }, + "play_pause_failed": { + "message": "Failed to toggle play/pause." + }, + "press_failed": { + "message": "Failed to execute button action {action}." }, "previous_track_failed": { "message": "Failed to return to the previous track." @@ -244,32 +199,77 @@ "seek_failed": { "message": "Failed to seek to position {position} seconds." }, + "set_mute_failed": { + "message": "Failed to mute/unmute the player." + }, "set_repeat_failed": { "message": "Failed to set repeat mode." }, - "clear_playlist_failed": { - "message": "Failed to clear the playlist." + "set_shuffle_failed": { + "message": "Failed to set shuffle mode." }, - "call_method_failed": { - "message": "Failed to call method {command}." + "set_volume_failed": { + "message": "Failed to set volume to {volume}%." }, - "call_query_failed": { - "message": "Failed to query method {command}." + "stop_failed": { + "message": "Failed to stop playback." + }, + "turn_off_failed": { + "message": "Failed to turn off the player." + }, + "turn_on_failed": { + "message": "Failed to turn on the player." }, "unjoin_failed": { "message": "Failed to unsync the player." }, - "press_failed": { - "message": "Failed to execute button action {action}." + "update_restart_failed": { + "message": "Error trying to update LMS Plugins: Restart failed." + } + }, + "options": { + "step": { + "init": { + "data": { + "browse_limit": "Browse limit", + "volume_step": "Volume step" + }, + "data_description": { + "browse_limit": "Maximum number of items when browsing or in a playlist.", + "volume_step": "Amount to adjust the volume when turning volume up or down." + }, + "title": "LMS Configuration" + } + } + }, + "services": { + "call_method": { + "description": "Calls a custom Squeezebox JSONRPC API.", + "fields": { + "command": { + "description": "Command to pass to Lyrion Music Server (p0 in the CLI documentation).", + "name": "Command" + }, + "parameters": { + "description": "Array of additional parameters to pass to Lyrion Music Server (p1, ..., pN in the CLI documentation).", + "name": "Parameters" + } + }, + "name": "Call method" }, - "load_url_failed": { - "message": "Failed to load media URL {media_id} with command {cmd}." - }, - "load_playlist_failed": { - "message": "Failed to load playlist with command {cmd}." - }, - "generate_image_url_failed": { - "message": "Failed to generate image URL for track ID {track_id}." + "call_query": { + "description": "Calls a custom Squeezebox JSONRPC API. Result will be stored in 'query_result' attribute of the Squeezebox entity.", + "fields": { + "command": { + "description": "[%key:component::squeezebox::services::call_method::fields::command::description%]", + "name": "Command" + }, + "parameters": { + "description": "[%key:component::squeezebox::services::call_method::fields::parameters::description%]", + "name": "Parameters" + } + }, + "name": "Call query" } } } diff --git a/homeassistant/components/srp_energy/strings.json b/homeassistant/components/srp_energy/strings.json index dfe2ea32888..cdea706e1f9 100644 --- a/homeassistant/components/srp_energy/strings.json +++ b/homeassistant/components/srp_energy/strings.json @@ -1,24 +1,24 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_account": "Account ID should be a 9 digit number", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { "id": "Account ID", - "username": "[%key:common::config_flow::data::username%]", + "is_tou": "Is Time-of-Use Price Plan", "password": "[%key:common::config_flow::data::password%]", - "is_tou": "Is Time-of-Use Price Plan" + "username": "[%key:common::config_flow::data::username%]" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "Account ID should be a 9 digit number", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { diff --git a/homeassistant/components/starline/icons.json b/homeassistant/components/starline/icons.json index 07713a0cdfe..23210d7f534 100644 --- a/homeassistant/components/starline/icons.json +++ b/homeassistant/components/starline/icons.json @@ -1,32 +1,32 @@ { "entity": { "binary_sensor": { + "autostart": { + "default": "mdi:auto-mode" + }, "hand_brake": { "default": "mdi:car-brake-parking" }, "handsfree": { "default": "mdi:hand-back-right" }, - "neutral": { - "default": "mdi:car-shift-pattern" + "ignition": { + "default": "mdi:key-variant" }, "moving_ban": { "default": "mdi:car-off" }, - "ignition": { - "default": "mdi:key-variant" - }, - "autostart": { - "default": "mdi:auto-mode" + "neutral": { + "default": "mdi:car-shift-pattern" } }, "button": { - "horn": { - "default": "mdi:bullhorn-outline" - }, "flex": { "default": "mdi:star-circle-outline" }, + "horn": { + "default": "mdi:bullhorn-outline" + }, "panic": { "default": "mdi:alarm-note" } @@ -40,55 +40,55 @@ "balance": { "default": "mdi:cash-multiple" }, - "fuel": { - "default": "mdi:fuel" - }, "errors": { "default": "mdi:alert-octagon" }, - "mileage": { - "default": "mdi:counter" + "fuel": { + "default": "mdi:fuel" }, "gps_count": { "default": "mdi:satellite-variant" + }, + "mileage": { + "default": "mdi:counter" } }, "switch": { - "engine": { - "default": "mdi:engine-off-outline", - "state": { - "on": "mdi:engine-outline" - } - }, - "webasto": { - "default": "mdi:radiator-off", - "state": { - "on": "mdi:radiator" - } - }, "additional_channel": { "default": "mdi:access-point-network-off", "state": { "on": "mdi:access-point-network" } }, + "engine": { + "default": "mdi:engine-off-outline", + "state": { + "on": "mdi:engine-outline" + } + }, "service_mode": { "default": "mdi:car-wrench", "state": { "on": "mdi:wrench-clock" } + }, + "webasto": { + "default": "mdi:radiator-off", + "state": { + "on": "mdi:radiator" + } } } }, "services": { - "update_state": { - "service": "mdi:reload" - }, "set_scan_interval": { "service": "mdi:timer" }, "set_scan_obd_interval": { "service": "mdi:timer" + }, + "update_state": { + "service": "mdi:reload" } } } diff --git a/homeassistant/components/starline/strings.json b/homeassistant/components/starline/strings.json index 9452e0b4757..6f3588ea36e 100644 --- a/homeassistant/components/starline/strings.json +++ b/homeassistant/components/starline/strings.json @@ -1,74 +1,85 @@ { "config": { + "error": { + "error_auth_app": "Incorrect application ID or secret", + "error_auth_mfa": "Incorrect code", + "error_auth_user": "Incorrect username or password" + }, "step": { "auth_app": { - "title": "Application credentials", - "description": "Application ID and secret code from [StarLine developer account]({developer_account_url})", "data": { "app_id": "App ID", "app_secret": "Secret" - } - }, - "auth_user": { - "title": "User credentials", - "description": "StarLine account email and password", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "auth_mfa": { - "title": "Two-factor authorization", - "description": "Enter the code sent to phone {phone_number}", - "data": { - "mfa_code": "SMS code" - } + }, + "description": "Application ID and secret code from [StarLine developer account]({developer_account_url})", + "title": "Application credentials" }, "auth_captcha": { - "title": "Captcha", - "description": "{captcha_img}", "data": { "captcha_code": "Code from image" - } + }, + "description": "{captcha_img}", + "title": "Captcha" + }, + "auth_mfa": { + "data": { + "mfa_code": "SMS code" + }, + "description": "Enter the code sent to phone {phone_number}", + "title": "Two-factor authorization" + }, + "auth_user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "StarLine account email and password", + "title": "User credentials" } - }, - "error": { - "error_auth_app": "Incorrect application ID or secret", - "error_auth_user": "Incorrect username or password", - "error_auth_mfa": "Incorrect code" } }, "entity": { "binary_sensor": { - "hand_brake": { - "name": "Hand brake" - }, - "hood": { - "name": "Hood" - }, - "trunk": { - "name": "Trunk" - }, "alarm": { "name": "Alarm" }, + "autostart": { + "name": "Autostart" + }, "doors": { "name": "Doors" }, + "hand_brake": { + "name": "Hand brake" + }, "handsfree": { "name": "Handsfree" }, - "neutral": { - "name": "Programmable neutral" - }, - "moving_ban": { - "name": "Moving ban" + "hood": { + "name": "Hood" }, "ignition": { "name": "Ignition" }, - "autostart": { - "name": "Autostart" + "moving_ban": { + "name": "Moving ban" + }, + "neutral": { + "name": "Programmable neutral" + }, + "trunk": { + "name": "Trunk" + } + }, + "button": { + "flex": { + "name": "Flex logic {num}" + }, + "horn": { + "name": "Horn" + }, + "panic": { + "name": "Panic mode" } }, "device_tracker": { @@ -82,84 +93,73 @@ } }, "sensor": { - "battery": { - "name": "[%key:component::sensor::entity_component::battery::name%]" - }, "balance": { "name": "Balance" }, - "interior_temperature": { - "name": "Interior temperature" + "battery": { + "name": "[%key:component::sensor::entity_component::battery::name%]" }, "engine_temperature": { "name": "Engine temperature" }, - "gsm_signal": { - "name": "GSM signal" + "errors": { + "name": "OBD errors" }, "fuel": { "name": "Fuel volume" }, - "errors": { - "name": "OBD errors" + "gps_count": { + "name": "GPS satellites" + }, + "gsm_signal": { + "name": "GSM signal" + }, + "interior_temperature": { + "name": "Interior temperature" }, "mileage": { "name": "Mileage" - }, - "gps_count": { - "name": "GPS satellites" } }, "switch": { - "engine": { - "name": "Engine" - }, - "webasto": { - "name": "Webasto" - }, "additional_channel": { "name": "Additional channel" }, + "engine": { + "name": "Engine" + }, "service_mode": { "name": "Service mode" - } - }, - "button": { - "horn": { - "name": "Horn" }, - "flex": { - "name": "Flex logic {num}" - }, - "panic": { - "name": "Panic mode" + "webasto": { + "name": "Webasto" } } }, "services": { - "update_state": { - "name": "Update state", - "description": "Fetches the last state of the devices from the StarLine server." - }, "set_scan_interval": { - "name": "Set scan interval", "description": "Sets the update frequency for entities.", "fields": { "scan_interval": { - "name": "Scan interval", - "description": "Update frequency." + "description": "Update frequency.", + "name": "Scan interval" } - } + }, + "name": "Set scan interval" }, "set_scan_obd_interval": { - "name": "Set scan OBD interval", "description": "Sets the update frequency for OBD information.", "fields": { "scan_interval": { - "name": "Scan interval", - "description": "[%key:component::starline::services::set_scan_interval::fields::scan_interval::description%]" + "description": "[%key:component::starline::services::set_scan_interval::fields::scan_interval::description%]", + "name": "Scan interval" } - } + }, + "name": "Set scan OBD interval" + }, + "update_state": { + "description": "Fetches the last state of the devices from the StarLine server.", + "name": "Update state" } } } diff --git a/homeassistant/components/starlink/icons.json b/homeassistant/components/starlink/icons.json index 02de62aeb8a..ecb1f946204 100644 --- a/homeassistant/components/starlink/icons.json +++ b/homeassistant/components/starlink/icons.json @@ -1,29 +1,29 @@ { "entity": { "sensor": { - "ping": { - "default": "mdi:speedometer" - }, "azimuth": { "default": "mdi:compass" }, - "elevation": { - "default": "mdi:compass" - }, - "uplink_throughput": { - "default": "mdi:upload" - }, "downlink_throughput": { "default": "mdi:download" }, + "download": { + "default": "mdi:download" + }, + "elevation": { + "default": "mdi:compass" + }, "last_boot_time": { "default": "mdi:clock" }, - "upload": { + "ping": { + "default": "mdi:speedometer" + }, + "uplink_throughput": { "default": "mdi:upload" }, - "download": { - "default": "mdi:download" + "upload": { + "default": "mdi:upload" } } } diff --git a/homeassistant/components/starlink/strings.json b/homeassistant/components/starlink/strings.json index 395b6288c71..7298a74077d 100644 --- a/homeassistant/components/starlink/strings.json +++ b/homeassistant/components/starlink/strings.json @@ -16,24 +16,24 @@ }, "entity": { "binary_sensor": { - "roaming": { - "name": "Roaming mode" - }, "currently_obstructed": { "name": "Obstructed" }, "heating": { "name": "Heating" }, - "power_save_idle": { - "name": "Sleep" - }, "mast_near_vertical": { "name": "Mast near vertical" }, "motors_stuck": { "name": "Motors stuck" }, + "power_save_idle": { + "name": "Sleep" + }, + "roaming": { + "name": "Roaming mode" + }, "slow_ethernet": { "name": "Ethernet speeds" }, @@ -50,48 +50,48 @@ } }, "sensor": { - "ping": { - "name": "Ping" - }, "azimuth": { "name": "Azimuth" }, - "elevation": { - "name": "[%key:common::config_flow::data::elevation%]" - }, - "uplink_throughput": { - "name": "Uplink throughput" - }, "downlink_throughput": { "name": "Downlink throughput" }, + "download": { + "name": "Download" + }, + "elevation": { + "name": "[%key:common::config_flow::data::elevation%]" + }, "last_boot_time": { "name": "Last boot time" }, + "ping": { + "name": "Ping" + }, "ping_drop_rate": { "name": "Ping drop rate" }, + "uplink_throughput": { + "name": "Uplink throughput" + }, "upload": { "name": "Upload" - }, - "download": { - "name": "Download" } }, "switch": { - "stowed": { - "name": "Stowed" - }, "sleep_schedule": { "name": "Sleep schedule" + }, + "stowed": { + "name": "Stowed" } }, "time": { - "sleep_start": { - "name": "Sleep start" - }, "sleep_end": { "name": "Sleep end" + }, + "sleep_start": { + "name": "Sleep start" } } } diff --git a/homeassistant/components/statistics/strings.json b/homeassistant/components/statistics/strings.json index e0093fd08c8..efd6eab7342 100644 --- a/homeassistant/components/statistics/strings.json +++ b/homeassistant/components/statistics/strings.json @@ -1,54 +1,53 @@ { - "title": "Statistics", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "error": { - "missing_max_age_or_sampling_size": "The sensor configuration must provide 'Max age' and/or 'Sampling size'", - "missing_keep_last_sample": "The sensor configuration must provide 'Max age' if 'Keep last sample' is true" + "missing_keep_last_sample": "The sensor configuration must provide 'Max age' if 'Keep last sample' is true", + "missing_max_age_or_sampling_size": "The sensor configuration must provide 'Max age' and/or 'Sampling size'" }, "step": { - "user": { - "description": "Create a statistics sensor", + "options": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "Entity" + "entity_id": "[%key:component::statistics::config::step::user::data::entity_id%]", + "keep_last_sample": "Keep last sample", + "max_age": "Max age", + "percentile": "Percentile", + "precision": "Precision", + "sampling_size": "Sampling size", + "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data::state_characteristic%]" }, "data_description": { - "name": "Name for the created entity.", - "entity_id": "Entity to get statistics from." - } + "entity_id": "[%key:component::statistics::config::step::user::data_description::entity_id%]", + "keep_last_sample": "Defines whether the most recent sampled value should be preserved regardless of the 'Max age' setting.", + "max_age": "Maximum age of source sensor measurements stored.", + "percentile": "Only relevant in combination with the 'Percentile' characteristic. Must be a value between 1 and 99.", + "precision": "Defines the number of decimal places of the calculated sensor value.", + "sampling_size": "Maximum number of source sensor measurements stored.", + "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data_description::state_characteristic%]" + }, + "description": "Read the documentation for further details on how to configure the statistics sensor using these options." }, "state_characteristic": { - "description": "Read the documentation for further details on available options and how to use them.", "data": { "state_characteristic": "Statistic characteristic" }, "data_description": { "state_characteristic": "The statistic characteristic that should be used as the state of the sensor." - } + }, + "description": "Read the documentation for further details on available options and how to use them." }, - "options": { - "description": "Read the documentation for further details on how to configure the statistics sensor using these options.", + "user": { "data": { - "entity_id": "[%key:component::statistics::config::step::user::data::entity_id%]", - "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data::state_characteristic%]", - "sampling_size": "Sampling size", - "max_age": "Max age", - "keep_last_sample": "Keep last sample", - "percentile": "Percentile", - "precision": "Precision" + "entity_id": "Entity", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { - "entity_id": "[%key:component::statistics::config::step::user::data_description::entity_id%]", - "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data_description::state_characteristic%]", - "sampling_size": "Maximum number of source sensor measurements stored.", - "max_age": "Maximum age of source sensor measurements stored.", - "keep_last_sample": "Defines whether the most recent sampled value should be preserved regardless of the 'Max age' setting.", - "percentile": "Only relevant in combination with the 'Percentile' characteristic. Must be a value between 1 and 99.", - "precision": "Defines the number of decimal places of the calculated sensor value." - } + "entity_id": "Entity to get statistics from.", + "name": "Name for the created entity." + }, + "description": "Create a statistics sensor" } } }, @@ -57,30 +56,30 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" }, "error": { - "missing_max_age_or_sampling_size": "[%key:component::statistics::config::error::missing_max_age_or_sampling_size%]", - "missing_keep_last_sample": "[%key:component::statistics::config::error::missing_keep_last_sample%]" + "missing_keep_last_sample": "[%key:component::statistics::config::error::missing_keep_last_sample%]", + "missing_max_age_or_sampling_size": "[%key:component::statistics::config::error::missing_max_age_or_sampling_size%]" }, "step": { "init": { - "description": "[%key:component::statistics::config::step::options::description%]", "data": { "entity_id": "[%key:component::statistics::config::step::user::data::entity_id%]", - "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data::state_characteristic%]", - "sampling_size": "[%key:component::statistics::config::step::options::data::sampling_size%]", - "max_age": "[%key:component::statistics::config::step::options::data::max_age%]", "keep_last_sample": "[%key:component::statistics::config::step::options::data::keep_last_sample%]", + "max_age": "[%key:component::statistics::config::step::options::data::max_age%]", "percentile": "[%key:component::statistics::config::step::options::data::percentile%]", - "precision": "[%key:component::statistics::config::step::options::data::precision%]" + "precision": "[%key:component::statistics::config::step::options::data::precision%]", + "sampling_size": "[%key:component::statistics::config::step::options::data::sampling_size%]", + "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data::state_characteristic%]" }, "data_description": { "entity_id": "[%key:component::statistics::config::step::user::data_description::entity_id%]", - "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data_description::state_characteristic%]", - "sampling_size": "[%key:component::statistics::config::step::options::data_description::sampling_size%]", - "max_age": "[%key:component::statistics::config::step::options::data_description::max_age%]", "keep_last_sample": "[%key:component::statistics::config::step::options::data_description::keep_last_sample%]", + "max_age": "[%key:component::statistics::config::step::options::data_description::max_age%]", "percentile": "[%key:component::statistics::config::step::options::data_description::percentile%]", - "precision": "[%key:component::statistics::config::step::options::data_description::precision%]" - } + "precision": "[%key:component::statistics::config::step::options::data_description::precision%]", + "sampling_size": "[%key:component::statistics::config::step::options::data_description::sampling_size%]", + "state_characteristic": "[%key:component::statistics::config::step::state_characteristic::data_description::state_characteristic%]" + }, + "description": "[%key:component::statistics::config::step::options::description%]" } } }, @@ -94,8 +93,8 @@ "change_sample": "Change sample", "change_second": "Change second", "count": "Count", - "count_on": "Count on", "count_off": "Count off", + "count_on": "Count on", "datetime_newest": "Newest datetime", "datetime_oldest": "Oldest datetime", "datetime_value_max": "Max value datetime", @@ -121,8 +120,9 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads statistics sensors from the YAML-configuration." + "description": "Reloads statistics sensors from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } - } + }, + "title": "Statistics" } diff --git a/homeassistant/components/steam_online/strings.json b/homeassistant/components/steam_online/strings.json index 1b431795ea4..3b4bf381e9b 100644 --- a/homeassistant/components/steam_online/strings.json +++ b/homeassistant/components/steam_online/strings.json @@ -1,39 +1,39 @@ { "config": { - "step": { - "user": { - "description": "Use {account_id_url} to find your Steam account ID", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "account": "Steam account ID" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Steam integration needs to be manually re-authenticated\n\nYou can find your key here: {api_key_url}" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "Invalid account ID", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_account": "Invalid account ID", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "description": "The Steam integration needs to be manually re-authenticated\n\nYou can find your key here: {api_key_url}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "account": "Steam account ID", + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Use {account_id_url} to find your Steam account ID" + } } }, "options": { + "error": { + "unauthorized": "Friends list restricted: Please refer to the documentation on how to see all other friends" + }, "step": { "init": { "data": { "accounts": "Names of accounts to be monitored" } } - }, - "error": { - "unauthorized": "Friends list restricted: Please refer to the documentation on how to see all other friends" } } } diff --git a/homeassistant/components/steamist/manifest.json b/homeassistant/components/steamist/manifest.json index ab81c8b5a53..cabb8835608 100644 --- a/homeassistant/components/steamist/manifest.json +++ b/homeassistant/components/steamist/manifest.json @@ -9,8 +9,8 @@ "registered_devices": true }, { - "macaddress": "001E0C*", - "hostname": "my[45]50*" + "hostname": "my[45]50*", + "macaddress": "001E0C*" } ], "documentation": "https://www.home-assistant.io/integrations/steamist", diff --git a/homeassistant/components/steamist/strings.json b/homeassistant/components/steamist/strings.json index 7bc3685472a..4a6317aa90b 100644 --- a/homeassistant/components/steamist/strings.json +++ b/homeassistant/components/steamist/strings.json @@ -1,32 +1,32 @@ { "config": { - "flow_title": "{name} ({ipaddress})", - "step": { - "user": { - "description": "If you leave the host empty, discovery will be used to find devices.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "pick_device": { - "data": { - "device": "[%key:common::config_flow::data::device%]" - } - }, - "discovery_confirm": { - "description": "Do you want to set up {name} ({ipaddress})?" - } - }, - "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%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "not_steamist_device": "Not a steamist device" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "{name} ({ipaddress})", + "step": { + "discovery_confirm": { + "description": "Do you want to set up {name} ({ipaddress})?" + }, + "pick_device": { + "data": { + "device": "[%key:common::config_flow::data::device%]" + } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "If you leave the host empty, discovery will be used to find devices." + } } }, "entity": { diff --git a/homeassistant/components/stiebel_eltron/strings.json b/homeassistant/components/stiebel_eltron/strings.json index 8ff2b4025a9..9f56e616baa 100644 --- a/homeassistant/components/stiebel_eltron/strings.json +++ b/homeassistant/components/stiebel_eltron/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -11,33 +20,24 @@ "port": "The port of your Stiebel Eltron device." } } - }, - "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "issues": { "deprecated_yaml": { - "title": "The {integration_title} YAML configuration is being removed", - "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove both the `{domain}` and the relevant Modbus configuration from your configuration.yaml file and restart Home Assistant to fix this issue." + "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove both the `{domain}` and the relevant Modbus configuration from your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "The {integration_title} YAML configuration is being removed" }, "deprecated_yaml_import_issue_cannot_connect": { - "title": "YAML import failed due to a connection error", - "description": "Configuring {integration_title} using YAML is being removed but there was a connect error while importing your existing configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually." + "description": "Configuring {integration_title} using YAML is being removed but there was a connect error while importing your existing configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually.", + "title": "YAML import failed due to a connection error" }, "deprecated_yaml_import_issue_missing_hub": { - "title": "YAML import failed due to incomplete config", - "description": "Configuring {integration_title} using YAML is being removed but the configuration was not complete, thus we could not import your configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually." + "description": "Configuring {integration_title} using YAML is being removed but the configuration was not complete, thus we could not import your configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually.", + "title": "YAML import failed due to incomplete config" }, "deprecated_yaml_import_issue_unknown": { - "title": "YAML import failed due to an unknown error", - "description": "Configuring {integration_title} using YAML is being removed but there was an unknown error while importing your existing configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually." + "description": "Configuring {integration_title} using YAML is being removed but there was an unknown error while importing your existing configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually.", + "title": "YAML import failed due to an unknown error" } } } diff --git a/homeassistant/components/stookwijzer/strings.json b/homeassistant/components/stookwijzer/strings.json index 160387ed8aa..aa5621e4aca 100644 --- a/homeassistant/components/stookwijzer/strings.json +++ b/homeassistant/components/stookwijzer/strings.json @@ -1,18 +1,18 @@ { "config": { + "error": { + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { - "description": "Select the location you want to receive the Stookwijzer information for.", "data": { "location": "[%key:common::config_flow::data::location%]" }, "data_description": { "location": "Use the map to set the location for Stookwijzer." - } + }, + "description": "Select the location you want to receive the Stookwijzer information for." } - }, - "error": { - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { @@ -20,23 +20,22 @@ "advice": { "name": "Advice code", "state": { - "code_yellow": "Yellow", "code_orange": "Orange", - "code_red": "Red" + "code_red": "Red", + "code_yellow": "Yellow" } } } }, - "services": { - "get_forecast": { - "name": "Get forecast", - "description": "Retrieves the advice forecast from Stookwijzer.", - "fields": { - "config_entry_id": { - "name": "Stookwijzer instance", - "description": "The Stookwijzer instance to get the forecast from." - } - } + "exceptions": { + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, + "no_data_received": { + "message": "No data received from Stookwijzer." + }, + "not_loaded": { + "message": "{target} is not loaded." } }, "issues": { @@ -45,15 +44,16 @@ "title": "Migration of your location failed" } }, - "exceptions": { - "no_data_received": { - "message": "No data received from Stookwijzer." - }, - "not_loaded": { - "message": "{target} is not loaded." - }, - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." + "services": { + "get_forecast": { + "description": "Retrieves the advice forecast from Stookwijzer.", + "fields": { + "config_entry_id": { + "description": "The Stookwijzer instance to get the forecast from.", + "name": "Stookwijzer instance" + } + }, + "name": "Get forecast" } } } diff --git a/homeassistant/components/streamlabswater/strings.json b/homeassistant/components/streamlabswater/strings.json index 2cc543b9f2e..bfb19fea57d 100644 --- a/homeassistant/components/streamlabswater/strings.json +++ b/homeassistant/components/streamlabswater/strings.json @@ -1,32 +1,16 @@ { "config": { - "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "services": { - "set_away_mode": { - "name": "Set away mode", - "description": "Sets the home/away mode for a Streamlabs Water Monitor.", - "fields": { - "away_mode": { - "name": "Away mode", - "description": "Home or away." - }, - "location_id": { - "name": "Location ID", - "description": "The location ID of the Streamlabs Water Monitor." + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" } } } @@ -48,5 +32,21 @@ "name": "Yearly usage" } } + }, + "services": { + "set_away_mode": { + "description": "Sets the home/away mode for a Streamlabs Water Monitor.", + "fields": { + "away_mode": { + "description": "Home or away.", + "name": "Away mode" + }, + "location_id": { + "description": "The location ID of the Streamlabs Water Monitor.", + "name": "Location ID" + } + }, + "name": "Set away mode" + } } } diff --git a/homeassistant/components/subaru/icons.json b/homeassistant/components/subaru/icons.json index ca8648296c7..be9628303b7 100644 --- a/homeassistant/components/subaru/icons.json +++ b/homeassistant/components/subaru/icons.json @@ -6,20 +6,20 @@ } }, "sensor": { - "odometer": { - "default": "mdi:road-variant" - }, "average_fuel_consumption": { "default": "mdi:leaf" }, - "range": { - "default": "mdi:gas-station" + "ev_range": { + "default": "mdi:ev-station" }, "fuel_level": { "default": "mdi:gas-station" }, - "ev_range": { - "default": "mdi:ev-station" + "odometer": { + "default": "mdi:road-variant" + }, + "range": { + "default": "mdi:gas-station" } } }, diff --git a/homeassistant/components/subaru/strings.json b/homeassistant/components/subaru/strings.json index e2399344544..e43fc4a67cb 100644 --- a/homeassistant/components/subaru/strings.json +++ b/homeassistant/components/subaru/strings.json @@ -1,59 +1,48 @@ { "config": { - "step": { - "user": { - "title": "Subaru Starlink configuration", - "description": "Please enter your MySubaru credentials\nNOTE: Initial setup may take up to 30 seconds", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "country": "Select country" - } - }, - "two_factor": { - "title": "[%key:component::subaru::config::step::user::title%]", - "description": "Two-factor authentication required", - "data": { - "contact_method": "Please select a contact method:" - } - }, - "two_factor_validate": { - "title": "[%key:component::subaru::config::step::user::title%]", - "description": "Please enter validation code received", - "data": { - "validation_code": "Validation code" - } - }, - "pin": { - "title": "[%key:component::subaru::config::step::user::title%]", - "description": "Please enter your MySubaru PIN\nNOTE: All vehicles in account must have the same PIN", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "incorrect_pin": "Incorrect PIN", - "bad_pin_format": "PIN should be 4 digits", - "bad_validation_code_format": "Validation code should be 6 digits", - "incorrect_validation_code": "Incorrect validation code" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "two_factor_request_failed": "Request for 2FA code failed, please try again" - } - }, - "options": { + }, + "error": { + "bad_pin_format": "PIN should be 4 digits", + "bad_validation_code_format": "Validation code should be 6 digits", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "incorrect_pin": "Incorrect PIN", + "incorrect_validation_code": "Incorrect validation code", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { - "init": { - "title": "Subaru Starlink options", - "description": "When enabled, vehicle polling will send a remote command to your vehicle every 2 hours to obtain new sensor data. Without vehicle polling, new sensor data is only received when the vehicle automatically pushes data (normally after engine shutdown).", + "pin": { "data": { - "update_enabled": "Enable vehicle polling" - } + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Please enter your MySubaru PIN\nNOTE: All vehicles in account must have the same PIN", + "title": "[%key:component::subaru::config::step::user::title%]" + }, + "two_factor": { + "data": { + "contact_method": "Please select a contact method:" + }, + "description": "Two-factor authentication required", + "title": "[%key:component::subaru::config::step::user::title%]" + }, + "two_factor_validate": { + "data": { + "validation_code": "Validation code" + }, + "description": "Please enter validation code received", + "title": "[%key:component::subaru::config::step::user::title%]" + }, + "user": { + "data": { + "country": "Select country", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please enter your MySubaru credentials\nNOTE: Initial setup may take up to 30 seconds", + "title": "Subaru Starlink configuration" } } }, @@ -64,12 +53,24 @@ } }, "sensor": { - "odometer": { - "name": "Odometer" - }, "average_fuel_consumption": { "name": "Average fuel consumption" }, + "ev_battery_level": { + "name": "EV battery level" + }, + "ev_range": { + "name": "EV range" + }, + "ev_time_to_full_charge": { + "name": "EV time to full charge" + }, + "fuel_level": { + "name": "Fuel level" + }, + "odometer": { + "name": "Odometer" + }, "range": { "name": "Range" }, @@ -84,31 +85,30 @@ }, "tire_pressure_rear_right": { "name": "Tire pressure rear right" - }, - "fuel_level": { - "name": "Fuel level" - }, - "ev_range": { - "name": "EV range" - }, - "ev_battery_level": { - "name": "EV battery level" - }, - "ev_time_to_full_charge": { - "name": "EV time to full charge" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "update_enabled": "Enable vehicle polling" + }, + "description": "When enabled, vehicle polling will send a remote command to your vehicle every 2 hours to obtain new sensor data. Without vehicle polling, new sensor data is only received when the vehicle automatically pushes data (normally after engine shutdown).", + "title": "Subaru Starlink options" } } }, "services": { "unlock_specific_door": { - "name": "Unlock specific door", "description": "Unlocks the driver door, all doors, or the tailgate.", "fields": { "door": { - "name": "Door", - "description": "The specific door(s) to unlock." + "description": "The specific door(s) to unlock.", + "name": "Door" } - } + }, + "name": "Unlock specific door" } } } diff --git a/homeassistant/components/suez_water/strings.json b/homeassistant/components/suez_water/strings.json index a8632fcb24a..b17ebbe7b3b 100644 --- a/homeassistant/components/suez_water/strings.json +++ b/homeassistant/components/suez_water/strings.json @@ -1,37 +1,37 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "counter_id": "Meter ID" - }, - "data_description": { - "username": "Enter your login associated with your {tout_sur_mon_eau} account", - "password": "Enter your password associated with your {tout_sur_mon_eau} account", - "counter_id": "Enter your meter ID (ex: 12345678). Should be found automatically during setup, if not see integration documentation for more information" - }, - "description": "Connect your Suez Water {tout_sur_mon_eau} account to retrieve your water consumption" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "counter_not_found": "Could not find meter ID automatically", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "counter_not_found": "Could not find meter ID automatically" + "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "counter_id": "Meter ID", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "counter_id": "Enter your meter ID (ex: 12345678). Should be found automatically during setup, if not see integration documentation for more information", + "password": "Enter your password associated with your {tout_sur_mon_eau} account", + "username": "Enter your login associated with your {tout_sur_mon_eau} account" + }, + "description": "Connect your Suez Water {tout_sur_mon_eau} account to retrieve your water consumption" + } } }, "entity": { "sensor": { - "water_usage_yesterday": { - "name": "Water usage yesterday" - }, "water_price": { "name": "Water price" + }, + "water_usage_yesterday": { + "name": "Water usage yesterday" } } } diff --git a/homeassistant/components/sun/icons.json b/homeassistant/components/sun/icons.json index 1fee6beba3a..9de555aca06 100644 --- a/homeassistant/components/sun/icons.json +++ b/homeassistant/components/sun/icons.json @@ -1,5 +1,14 @@ { "entity": { + "binary_sensor": { + "solar_rising": { + "default": "mdi:weather-sunny-off", + "state": { + "off": "mdi:weather-sunset-down", + "on": "mdi:weather-sunset-up" + } + } + }, "sensor": { "next_dawn": { "default": "mdi:sun-clock" @@ -19,24 +28,15 @@ "next_setting": { "default": "mdi:sun-clock" }, - "solar_elevation": { - "default": "mdi:theme-light-dark" - }, "solar_azimuth": { "default": "mdi:sun-angle" }, + "solar_elevation": { + "default": "mdi:theme-light-dark" + }, "solar_rising": { "default": "mdi:sun-clock" } - }, - "binary_sensor": { - "solar_rising": { - "default": "mdi:weather-sunny-off", - "state": { - "on": "mdi:weather-sunset-up", - "off": "mdi:weather-sunset-down" - } - } } } } diff --git a/homeassistant/components/sun/strings.json b/homeassistant/components/sun/strings.json index e703e58e942..e9fafe36aef 100644 --- a/homeassistant/components/sun/strings.json +++ b/homeassistant/components/sun/strings.json @@ -1,5 +1,4 @@ { - "title": "Sun", "config": { "step": { "user": { @@ -7,6 +6,28 @@ } } }, + "entity": { + "binary_sensor": { + "solar_rising": { + "name": "Solar rising", + "state": { + "off": "Setting", + "on": "Rising" + } + } + }, + "sensor": { + "next_dawn": { "name": "Next dawn" }, + "next_dusk": { "name": "Next dusk" }, + "next_midnight": { "name": "Next midnight" }, + "next_noon": { "name": "Next noon" }, + "next_rising": { "name": "Next rising" }, + "next_setting": { "name": "Next setting" }, + "solar_azimuth": { "name": "Solar azimuth" }, + "solar_elevation": { "name": "Solar elevation" }, + "solar_rising": { "name": "Solar rising" } + } + }, "entity_component": { "_": { "name": "[%key:component::sun::title%]", @@ -16,32 +37,11 @@ } } }, - "entity": { - "sensor": { - "next_dawn": { "name": "Next dawn" }, - "next_dusk": { "name": "Next dusk" }, - "next_midnight": { "name": "Next midnight" }, - "next_noon": { "name": "Next noon" }, - "next_rising": { "name": "Next rising" }, - "next_setting": { "name": "Next setting" }, - "solar_azimuth": { "name": "Solar azimuth" }, - "solar_elevation": { "name": "Solar elevation" }, - "solar_rising": { "name": "Solar rising" } - }, - "binary_sensor": { - "solar_rising": { - "name": "Solar rising", - "state": { - "on": "Rising", - "off": "Setting" - } - } - } - }, "issues": { "deprecated_sun_solar_rising": { - "title": "Deprecated 'Solar rising' sensor", - "description": "The 'Solar rising' sensor of the Sun integration is being deprecated; an equivalent 'Solar rising' binary sensor has been made available as a replacement. To resolve this issue, disable {entity}." + "description": "The 'Solar rising' sensor of the Sun integration is being deprecated; an equivalent 'Solar rising' binary sensor has been made available as a replacement. To resolve this issue, disable {entity}.", + "title": "Deprecated 'Solar rising' sensor" } - } + }, + "title": "Sun" } diff --git a/homeassistant/components/sunricher_dali_center/strings.json b/homeassistant/components/sunricher_dali_center/strings.json index c9fe7aaeeaf..ed2c9dc6d62 100644 --- a/homeassistant/components/sunricher_dali_center/strings.json +++ b/homeassistant/components/sunricher_dali_center/strings.json @@ -1,20 +1,7 @@ { "config": { - "step": { - "user": { - "title": "Set up DALI Center gateway", - "description": "**Three-step process:**\n\n1. Ensure the gateway is powered and on the same network.\n2. Select **Submit** to start discovery (searches for up to 3 minutes)\n3. While discovery is in progress, press the **Reset** button on your DALI gateway device **once**.\n\nThe gateway will respond immediately after the button press." - }, - "select_gateway": { - "title": "Select DALI gateway", - "description": "Select the gateway to configure.", - "data": { - "selected_gateway": "Gateway" - }, - "data_description": { - "selected_gateway": "Each option shows the gateway name, serial number, and IP address." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -22,8 +9,21 @@ "no_devices_found": "No DALI gateways found on the network", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "select_gateway": { + "data": { + "selected_gateway": "Gateway" + }, + "data_description": { + "selected_gateway": "Each option shows the gateway name, serial number, and IP address." + }, + "description": "Select the gateway to configure.", + "title": "Select DALI gateway" + }, + "user": { + "description": "**Three-step process:**\n\n1. Ensure the gateway is powered and on the same network.\n2. Select **Submit** to start discovery (searches for up to 3 minutes)\n3. While discovery is in progress, press the **Reset** button on your DALI gateway device **once**.\n\nThe gateway will respond immediately after the button press.", + "title": "Set up DALI Center gateway" + } } } } diff --git a/homeassistant/components/sunweg/strings.json b/homeassistant/components/sunweg/strings.json index 75abf5d9271..5bbefdbc561 100644 --- a/homeassistant/components/sunweg/strings.json +++ b/homeassistant/components/sunweg/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The SunWEG integration has been removed", - "description": "The SunWEG integration has been removed from Home Assistant.\n\nThe library that Home Assistant uses to connect with SunWEG services, [doesn't work as expected anymore, demanding daily token renew]({issue}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing SunWEG integration entries]({entries})." + "description": "The SunWEG integration has been removed from Home Assistant.\n\nThe library that Home Assistant uses to connect with SunWEG services, [doesn't work as expected anymore, demanding daily token renew]({issue}).\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing SunWEG integration entries]({entries}).", + "title": "The SunWEG integration has been removed" } } } diff --git a/homeassistant/components/surepetcare/strings.json b/homeassistant/components/surepetcare/strings.json index 58db669732a..890c97ba3e5 100644 --- a/homeassistant/components/surepetcare/strings.json +++ b/homeassistant/components/surepetcare/strings.json @@ -1,58 +1,58 @@ { "config": { - "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Re-authenticate by entering password for {username}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Re-authenticate by entering password for {username}", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + } } }, "services": { "set_lock_state": { - "name": "Set lock state", "description": "Sets lock state.", "fields": { "flap_id": { - "name": "Flap ID", - "description": "Flap ID to lock/unlock." + "description": "Flap ID to lock/unlock.", + "name": "Flap ID" }, "lock_state": { - "name": "Lock state", - "description": "New lock state." + "description": "New lock state.", + "name": "Lock state" } - } + }, + "name": "Set lock state" }, "set_pet_location": { - "name": "Set pet location", "description": "Sets pet location.", "fields": { - "pet_name": { - "name": "Pet name", - "description": "Name of pet." - }, "location": { - "name": "[%key:common::config_flow::data::location%]", - "description": "Pet location (Inside or Outside)." + "description": "Pet location (Inside or Outside).", + "name": "[%key:common::config_flow::data::location%]" + }, + "pet_name": { + "description": "Name of pet.", + "name": "Pet name" } - } + }, + "name": "Set pet location" } } } diff --git a/homeassistant/components/swiss_public_transport/icons.json b/homeassistant/components/swiss_public_transport/icons.json index 45cf4713705..0d763a51897 100644 --- a/homeassistant/components/swiss_public_transport/icons.json +++ b/homeassistant/components/swiss_public_transport/icons.json @@ -1,6 +1,9 @@ { "entity": { "sensor": { + "delay": { + "default": "mdi:clock-plus" + }, "departure0": { "default": "mdi:bus-clock" }, @@ -10,20 +13,17 @@ "departure2": { "default": "mdi:bus-clock" }, - "trip_duration": { - "default": "mdi:timeline-clock" - }, - "transfers": { - "default": "mdi:transit-transfer" + "line": { + "default": "mdi:transit-connection-variant" }, "platform": { "default": "mdi:bus-stop-uncovered" }, - "delay": { - "default": "mdi:clock-plus" + "transfers": { + "default": "mdi:transit-transfer" }, - "line": { - "default": "mdi:transit-connection-variant" + "trip_duration": { + "default": "mdi:timeline-clock" } } }, diff --git a/homeassistant/components/swiss_public_transport/strings.json b/homeassistant/components/swiss_public_transport/strings.json index f1b28f5ed14..cd5bc1a5916 100644 --- a/homeassistant/components/swiss_public_transport/strings.json +++ b/homeassistant/components/swiss_public_transport/strings.json @@ -1,36 +1,18 @@ { "config": { - "error": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "bad_config": "Request failed due to bad config: Check the [stationboard]({stationboard_url}) for valid stations.", "cannot_connect": "Cannot connect to server", + "unknown": "An unknown error was raised by python-opendata-transport" + }, + "error": { "bad_config": "Request failed due to bad config: Check the stationboard linked above if your station names are valid", + "cannot_connect": "Cannot connect to server", "too_many_via_stations": "Too many via stations, only up to 5 via stations are allowed per connection.", "unknown": "An unknown error was raised by python-opendata-transport" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "cannot_connect": "Cannot connect to server", - "bad_config": "Request failed due to bad config: Check the [stationboard]({stationboard_url}) for valid stations.", - "unknown": "An unknown error was raised by python-opendata-transport" - }, "step": { - "user": { - "data": { - "from": "Start station", - "to": "End station", - "via": "Via stations", - "time_station": "Select the relevant station", - "time_mode": "Select a time mode" - }, - "data_description": { - "from": "The station where the connection starts", - "to": "The station where the connection ends", - "via": "List of up to 5 stations the route must go through", - "time_station": "Usually the departure time of a connection when it leaves the start station is tracked. Alternatively, track the time when the connection arrives at its end station.", - "time_mode": "Time mode lets you change the departure timing and fix it to a specific time (e.g. 7:12:00 AM every morning) or add a moving offset (e.g. +00:05:00 taking into account the time to walk to the station)." - }, - "description": "Provide start and end station for your connection, and optionally up to 5 via stations.\n\nCheck the [stationboard]({stationboard_url}) for valid stations.", - "title": "Swiss Public Transport" - }, "time_fixed": { "data": { "time_fixed": "Time of day" @@ -50,11 +32,32 @@ }, "description": "Please select the relevant offset to add to the earliest possible connection (e.g. add +00:05:00 offset, taking into account the time to walk to the station)", "title": "Swiss Public Transport" + }, + "user": { + "data": { + "from": "Start station", + "time_mode": "Select a time mode", + "time_station": "Select the relevant station", + "to": "End station", + "via": "Via stations" + }, + "data_description": { + "from": "The station where the connection starts", + "time_mode": "Time mode lets you change the departure timing and fix it to a specific time (e.g. 7:12:00 AM every morning) or add a moving offset (e.g. +00:05:00 taking into account the time to walk to the station).", + "time_station": "Usually the departure time of a connection when it leaves the start station is tracked. Alternatively, track the time when the connection arrives at its end station.", + "to": "The station where the connection ends", + "via": "List of up to 5 stations the route must go through" + }, + "description": "Provide start and end station for your connection, and optionally up to 5 via stations.\n\nCheck the [stationboard]({stationboard_url}) for valid stations.", + "title": "Swiss Public Transport" } } }, "entity": { "sensor": { + "delay": { + "name": "Delay" + }, "departure0": { "name": "Departure" }, @@ -64,69 +67,66 @@ "departure2": { "name": "Departure +2" }, - "trip_duration": { - "name": "Trip duration" - }, - "transfers": { - "name": "Transfers" + "line": { + "name": "Line" }, "platform": { "name": "Platform" }, - "delay": { - "name": "Delay" + "transfers": { + "name": "Transfers" }, - "line": { - "name": "Line" + "trip_duration": { + "name": "Trip duration" + } + } + }, + "exceptions": { + "cannot_connect": { + "message": "Cannot connect to server.\n{error}" + }, + "config_entry_not_found": { + "message": "Swiss public transport integration instance \"{target}\" not found." + }, + "invalid_data": { + "message": "Setup failed for entry {config_title} with invalid data, check at the [stationboard]({stationboard_url}) if your station names are valid.\n{error}" + }, + "not_loaded": { + "message": "{target} is not loaded." + }, + "request_timeout": { + "message": "Timeout while connecting for entry {config_title}.\n{error}" + } + }, + "selector": { + "time_mode": { + "options": { + "fixed": "At a fixed time of day", + "now": "Now", + "offset": "At an offset from now" + } + }, + "time_station": { + "options": { + "arrival": "Show arrival time at end station", + "departure": "Show departure time from start station" } } }, "services": { "fetch_connections": { - "name": "Fetch connections", "description": "Fetches a list of connections from Swiss public transport.", "fields": { "config_entry_id": { - "name": "Instance", - "description": "Swiss public transport instance to fetch connections for." + "description": "Swiss public transport instance to fetch connections for.", + "name": "Instance" }, "limit": { - "name": "Limit", - "description": "Number of connections to fetch." + "description": "Number of connections to fetch.", + "name": "Limit" } - } - } - }, - "exceptions": { - "invalid_data": { - "message": "Setup failed for entry {config_title} with invalid data, check at the [stationboard]({stationboard_url}) if your station names are valid.\n{error}" - }, - "request_timeout": { - "message": "Timeout while connecting for entry {config_title}.\n{error}" - }, - "cannot_connect": { - "message": "Cannot connect to server.\n{error}" - }, - "not_loaded": { - "message": "{target} is not loaded." - }, - "config_entry_not_found": { - "message": "Swiss public transport integration instance \"{target}\" not found." - } - }, - "selector": { - "time_station": { - "options": { - "departure": "Show departure time from start station", - "arrival": "Show arrival time at end station" - } - }, - "time_mode": { - "options": { - "now": "Now", - "fixed": "At a fixed time of day", - "offset": "At an offset from now" - } + }, + "name": "Fetch connections" } } } diff --git a/homeassistant/components/switch/icons.json b/homeassistant/components/switch/icons.json index 10299a2ffc8..de17079d8ed 100644 --- a/homeassistant/components/switch/icons.json +++ b/homeassistant/components/switch/icons.json @@ -6,17 +6,17 @@ "off": "mdi:toggle-switch-variant-off" } }, - "switch": { - "default": "mdi:toggle-switch-variant", - "state": { - "off": "mdi:toggle-switch-variant-off" - } - }, "outlet": { "default": "mdi:power-plug", "state": { "off": "mdi:power-plug-off" } + }, + "switch": { + "default": "mdi:toggle-switch-variant", + "state": { + "off": "mdi:toggle-switch-variant-off" + } } }, "services": { diff --git a/homeassistant/components/switch/strings.json b/homeassistant/components/switch/strings.json index be5aa09cf34..198ad255e3e 100644 --- a/homeassistant/components/switch/strings.json +++ b/homeassistant/components/switch/strings.json @@ -1,22 +1,21 @@ { - "title": "Switch", "device_automation": { "action_type": { "toggle": "[%key:common::device_automation::action_type::toggle%]", - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", - "turn_off": "[%key:common::device_automation::action_type::turn_off%]" + "turn_off": "[%key:common::device_automation::action_type::turn_off%]", + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" }, "condition_type": { - "is_on": "[%key:common::device_automation::condition_type::is_on%]", - "is_off": "[%key:common::device_automation::condition_type::is_off%]" - }, - "trigger_type": { - "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", - "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]", - "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]" + "is_off": "[%key:common::device_automation::condition_type::is_off%]", + "is_on": "[%key:common::device_automation::condition_type::is_on%]" }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "changed_states": "[%key:common::device_automation::trigger_type::changed_states%]", + "turned_off": "[%key:common::device_automation::trigger_type::turned_off%]", + "turned_on": "[%key:common::device_automation::trigger_type::turned_on%]" } }, "entity_component": { @@ -27,33 +26,34 @@ "on": "[%key:common::state::on%]" } }, - "switch": { - "name": "[%key:component::switch::title%]", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } - }, "outlet": { "name": "Outlet", "state": { "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]" } + }, + "switch": { + "name": "[%key:component::switch::title%]", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } } }, "services": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns a switch on." + "toggle": { + "description": "Toggles a switch on/off.", + "name": "[%key:common::action::toggle%]" }, "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns a switch off." + "description": "Turns a switch off.", + "name": "[%key:common::action::turn_off%]" }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles a switch on/off." + "turn_on": { + "description": "Turns a switch on.", + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Switch" } diff --git a/homeassistant/components/switch_as_x/strings.json b/homeassistant/components/switch_as_x/strings.json index 9c3db05231b..1ccd261ec70 100644 --- a/homeassistant/components/switch_as_x/strings.json +++ b/homeassistant/components/switch_as_x/strings.json @@ -1,9 +1,7 @@ { - "title": "Change device type of a switch", "config": { "step": { "user": { - "description": "Pick a switch that you want to show up in Home Assistant as a light, cover or anything else. The original switch will be hidden.", "data": { "entity_id": "Switch", "invert": "Invert state", @@ -11,7 +9,8 @@ }, "data_description": { "invert": "Invert state, only supported for cover, lock and valve." - } + }, + "description": "Pick a switch that you want to show up in Home Assistant as a light, cover or anything else. The original switch will be hidden." } } }, @@ -38,5 +37,6 @@ "valve": "[%key:component::valve::title%]" } } - } + }, + "title": "Change device type of a switch" } diff --git a/homeassistant/components/switchbee/strings.json b/homeassistant/components/switchbee/strings.json index 858bda35c0f..d293bfe31b0 100644 --- a/homeassistant/components/switchbee/strings.json +++ b/homeassistant/components/switchbee/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "description": "Set up SwitchBee integration with Home Assistant.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your SwitchBee device." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "The hostname or IP address of your SwitchBee device." + }, + "description": "Set up SwitchBee integration with Home Assistant." + } } } } diff --git a/homeassistant/components/switchbot/icons.json b/homeassistant/components/switchbot/icons.json index b04c04188d1..db0ccd3f49c 100644 --- a/homeassistant/components/switchbot/icons.json +++ b/homeassistant/components/switchbot/icons.json @@ -1,5 +1,107 @@ { "entity": { + "fan": { + "air_purifier": { + "default": "mdi:air-purifier", + "state": { + "off": "mdi:air-purifier-off" + }, + "state_attributes": { + "preset_mode": { + "state": { + "auto": "mdi:auto-mode", + "level_1": "mdi:fan-speed-1", + "level_2": "mdi:fan-speed-2", + "level_3": "mdi:fan-speed-3", + "pet": "mdi:paw", + "sleep": "mdi:power-sleep" + } + } + } + }, + "fan": { + "state_attributes": { + "preset_mode": { + "state": { + "baby": "mdi:baby-face-outline", + "natural": "mdi:leaf", + "normal": "mdi:fan", + "sleep": "mdi:power-sleep" + } + } + } + } + }, + "humidifier": { + "evaporative_humidifier": { + "state_attributes": { + "mode": { + "state": { + "auto": "mdi:autorenew", + "drying_filter": "mdi:water-remove", + "high": "mdi:water-plus", + "low": "mdi:water-outline", + "medium": "mdi:water", + "quiet": "mdi:volume-off", + "sleep": "mdi:weather-night", + "target_humidity": "mdi:target" + } + } + } + } + }, + "light": { + "light": { + "state_attributes": { + "effect": { + "state": { + "alarm": "mdi:alarm-light", + "autumn": "mdi:leaf-maple", + "breathing": "mdi:heart-pulse", + "cherry_blossom": "mdi:flower-outline", + "christmas": "mdi:string-lights", + "colorful": "mdi:looks", + "cool": "mdi:emoticon-cool-outline", + "dream": "mdi:sleep", + "dynamic": "mdi:palette", + "energy": "mdi:run", + "fade": "mdi:water-opacity", + "fireworks": "mdi:firework", + "flashing": "mdi:flash", + "flickering": "mdi:led-strip-variant", + "flow": "mdi:pulse", + "forest": "mdi:forest", + "game": "mdi:gamepad-variant-outline", + "halloween": "mdi:halloween", + "heartbeat": "mdi:heart-pulse", + "lightning": "mdi:flash-outline", + "meditation": "mdi:meditation", + "modern": "mdi:school-outline", + "movie": "mdi:popcorn", + "mystery": "mdi:alien-outline", + "new_year": "mdi:glass-wine", + "ocean": "mdi:waves", + "party": "mdi:party-popper", + "rainbow": "mdi:looks", + "relax": "mdi:coffee", + "rock": "mdi:guitar-electric", + "romance": "mdi:heart-outline", + "rose": "mdi:flower", + "sleep": "mdi:power-sleep", + "smooth": "mdi:led-strip-variant", + "starlight": "mdi:creation", + "starlit_sky": "mdi:weather-night", + "strobe": "mdi:led-strip-variant", + "sunrise": "mdi:weather-sunset-up", + "sunset": "mdi:weather-sunset", + "valentine_day": "mdi:emoticon-kiss-outline", + "vitality": "mdi:parachute", + "waves": "mdi:waves" + } + } + } + } + }, "sensor": { "light_level": { "default": "mdi:brightness-7", @@ -20,111 +122,9 @@ "default": "mdi:water-percent", "state": { "empty": "mdi:water-off", + "high": "mdi:water-check", "low": "mdi:water-outline", - "medium": "mdi:water", - "high": "mdi:water-check" - } - } - }, - "fan": { - "fan": { - "state_attributes": { - "preset_mode": { - "state": { - "normal": "mdi:fan", - "natural": "mdi:leaf", - "sleep": "mdi:power-sleep", - "baby": "mdi:baby-face-outline" - } - } - } - }, - "air_purifier": { - "default": "mdi:air-purifier", - "state": { - "off": "mdi:air-purifier-off" - }, - "state_attributes": { - "preset_mode": { - "state": { - "level_1": "mdi:fan-speed-1", - "level_2": "mdi:fan-speed-2", - "level_3": "mdi:fan-speed-3", - "auto": "mdi:auto-mode", - "pet": "mdi:paw", - "sleep": "mdi:power-sleep" - } - } - } - } - }, - "humidifier": { - "evaporative_humidifier": { - "state_attributes": { - "mode": { - "state": { - "high": "mdi:water-plus", - "medium": "mdi:water", - "low": "mdi:water-outline", - "quiet": "mdi:volume-off", - "target_humidity": "mdi:target", - "sleep": "mdi:weather-night", - "auto": "mdi:autorenew", - "drying_filter": "mdi:water-remove" - } - } - } - } - }, - "light": { - "light": { - "state_attributes": { - "effect": { - "state": { - "christmas": "mdi:string-lights", - "halloween": "mdi:halloween", - "sunset": "mdi:weather-sunset", - "vitality": "mdi:parachute", - "flashing": "mdi:flash", - "strobe": "mdi:led-strip-variant", - "fade": "mdi:water-opacity", - "smooth": "mdi:led-strip-variant", - "forest": "mdi:forest", - "ocean": "mdi:waves", - "autumn": "mdi:leaf-maple", - "cool": "mdi:emoticon-cool-outline", - "flow": "mdi:pulse", - "relax": "mdi:coffee", - "modern": "mdi:school-outline", - "rose": "mdi:flower", - "colorful": "mdi:looks", - "flickering": "mdi:led-strip-variant", - "breathing": "mdi:heart-pulse", - "romance": "mdi:heart-outline", - "energy": "mdi:run", - "heartbeat": "mdi:heart-pulse", - "party": "mdi:party-popper", - "dynamic": "mdi:palette", - "mystery": "mdi:alien-outline", - "lightning": "mdi:flash-outline", - "rock": "mdi:guitar-electric", - "starlight": "mdi:creation", - "valentine_day": "mdi:emoticon-kiss-outline", - "dream": "mdi:sleep", - "alarm": "mdi:alarm-light", - "fireworks": "mdi:firework", - "waves": "mdi:waves", - "rainbow": "mdi:looks", - "game": "mdi:gamepad-variant-outline", - "meditation": "mdi:meditation", - "starlit_sky": "mdi:weather-night", - "sleep": "mdi:power-sleep", - "movie": "mdi:popcorn", - "sunrise": "mdi:weather-sunset-up", - "new_year": "mdi:glass-wine", - "cherry_blossom": "mdi:flower-outline" - } - } + "medium": "mdi:water" } } } diff --git a/homeassistant/components/switchbot/manifest.json b/homeassistant/components/switchbot/manifest.json index 27f5e46821e..372ee991b77 100644 --- a/homeassistant/components/switchbot/manifest.json +++ b/homeassistant/components/switchbot/manifest.json @@ -3,28 +3,28 @@ "name": "SwitchBot Bluetooth", "bluetooth": [ { - "service_data_uuid": "00000d00-0000-1000-8000-00805f9b34fb", - "connectable": false + "connectable": false, + "service_data_uuid": "00000d00-0000-1000-8000-00805f9b34fb" }, { - "service_data_uuid": "0000fd3d-0000-1000-8000-00805f9b34fb", - "connectable": false + "connectable": false, + "service_data_uuid": "0000fd3d-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "cba20d00-224d-11e6-9fb8-0002a5d5c51b", - "connectable": false + "connectable": false, + "service_uuid": "cba20d00-224d-11e6-9fb8-0002a5d5c51b" }, { - "manufacturer_id": 2409, - "connectable": false + "connectable": false, + "manufacturer_id": 2409 }, { - "manufacturer_id": 89, - "connectable": true + "connectable": true, + "manufacturer_id": 89 }, { - "manufacturer_id": 741, - "connectable": true + "connectable": true, + "manufacturer_id": 741 } ], "codeowners": [ diff --git a/homeassistant/components/switchbot/strings.json b/homeassistant/components/switchbot/strings.json index b2e2d2dc4b1..91b3ba7b85f 100644 --- a/homeassistant/components/switchbot/strings.json +++ b/homeassistant/components/switchbot/strings.json @@ -1,24 +1,69 @@ { "config": { + "abort": { + "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", + "api_error": "Error while communicating with SwitchBot API: {error_detail}", + "no_devices_found": "No supported SwitchBot devices found in range; If the device is in range, ensure the scanner has active scanning enabled, as SwitchBot devices cannot be discovered with passive scans. Active scans can be disabled once the device is configured. If you need clarification on whether the device is in-range, download the diagnostics for the integration that provides your Bluetooth adapter or proxy and check if the MAC address of the SwitchBot device is present.", + "switchbot_unsupported_type": "Unsupported SwitchBot type.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "auth_failed": "Authentication failed: {error_detail}", + "encryption_key_invalid": "Key ID or encryption key is invalid" + }, "flow_title": "{name} ({address})", "step": { - "user": { - "description": "One or more of your Bluetooth adapters is using passive scanning, which may not discover all SwitchBot devices. Would you like to sign in to your SwitchBot account to download device information and automate discovery? If you're not sure, we recommend signing in.", + "cloud_login": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::switchbot::config::step::encrypted_auth::data_description::password%]", + "username": "[%key:component::switchbot::config::step::encrypted_auth::data_description::username%]" + }, + "description": "Please provide your SwitchBot app username and password. This data won't be saved and is only used to retrieve device model information to automate discovery. Usernames and passwords are case-sensitive." + }, + "confirm": { + "description": "Do you want to set up {name}?" + }, + "encrypted_auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The password of your SwitchBot account", + "username": "The username of your SwitchBot account" + }, + "description": "Please provide your SwitchBot app username and password. This data won't be saved and only used to retrieve your device's encryption key. Usernames and passwords are case-sensitive." + }, + "encrypted_choose_method": { + "description": "An encrypted SwitchBot device can be set up in Home Assistant in two different ways.\n\nYou can enter the key ID and encryption key yourself, or Home Assistant can import them from your SwitchBot account.", "menu_options": { - "cloud_login": "Sign in to SwitchBot account", - "select_device": "Continue without signing in" + "encrypted_auth": "SwitchBot account (recommended)", + "encrypted_key": "Enter encryption key manually" } }, - "cloud_login": { - "description": "Please provide your SwitchBot app username and password. This data won't be saved and is only used to retrieve device model information to automate discovery. Usernames and passwords are case-sensitive.", + "encrypted_key": { + "data": { + "encryption_key": "Encryption key", + "key_id": "Key ID" + }, + "data_description": { + "encryption_key": "The encryption key for the device", + "key_id": "The ID of the encryption key" + }, + "description": "The {name} device requires encryption key, details on how to obtain it can be found in the documentation." + }, + "password": { "data": { - "username": "[%key:common::config_flow::data::username%]", "password": "[%key:common::config_flow::data::password%]" }, "data_description": { - "username": "[%key:component::switchbot::config::step::encrypted_auth::data_description::username%]", - "password": "[%key:component::switchbot::config::step::encrypted_auth::data_description::password%]" - } + "password": "The password required for the Bot device access" + }, + "description": "The {name} device requires a password" }, "select_device": { "data": { @@ -28,70 +73,11 @@ "address": "The Bluetooth MAC address of your SwitchBot device" } }, - "confirm": { - "description": "Do you want to set up {name}?" - }, - "password": { - "description": "The {name} device requires a password", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "The password required for the Bot device access" - } - }, - "encrypted_key": { - "description": "The {name} device requires encryption key, details on how to obtain it can be found in the documentation.", - "data": { - "key_id": "Key ID", - "encryption_key": "Encryption key" - }, - "data_description": { - "key_id": "The ID of the encryption key", - "encryption_key": "The encryption key for the device" - } - }, - "encrypted_auth": { - "description": "Please provide your SwitchBot app username and password. This data won't be saved and only used to retrieve your device's encryption key. Usernames and passwords are case-sensitive.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The username of your SwitchBot account", - "password": "The password of your SwitchBot account" - } - }, - "encrypted_choose_method": { - "description": "An encrypted SwitchBot device can be set up in Home Assistant in two different ways.\n\nYou can enter the key ID and encryption key yourself, or Home Assistant can import them from your SwitchBot account.", + "user": { + "description": "One or more of your Bluetooth adapters is using passive scanning, which may not discover all SwitchBot devices. Would you like to sign in to your SwitchBot account to download device information and automate discovery? If you're not sure, we recommend signing in.", "menu_options": { - "encrypted_auth": "SwitchBot account (recommended)", - "encrypted_key": "Enter encryption key manually" - } - } - }, - "error": { - "encryption_key_invalid": "Key ID or encryption key is invalid", - "auth_failed": "Authentication failed: {error_detail}" - }, - "abort": { - "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "No supported SwitchBot devices found in range; If the device is in range, ensure the scanner has active scanning enabled, as SwitchBot devices cannot be discovered with passive scans. Active scans can be disabled once the device is configured. If you need clarification on whether the device is in-range, download the diagnostics for the integration that provides your Bluetooth adapter or proxy and check if the MAC address of the SwitchBot device is present.", - "unknown": "[%key:common::config_flow::error::unknown%]", - "api_error": "Error while communicating with SwitchBot API: {error_detail}", - "switchbot_unsupported_type": "Unsupported SwitchBot type." - } - }, - "options": { - "step": { - "init": { - "data": { - "retry_count": "Retry count", - "lock_force_nightlatch": "Force Nightlatch operation mode" - }, - "data_description": { - "retry_count": "How many times to retry sending commands to your SwitchBot devices", - "lock_force_nightlatch": "Force Nightlatch operation mode even if Nightlatch is not detected" + "cloud_login": "Sign in to SwitchBot account", + "select_device": "Continue without signing in" } } } @@ -101,6 +87,9 @@ "calibration": { "name": "Calibration" }, + "door_auto_lock_paused": { + "name": "Auto-lock paused" + }, "door_timeout": { "name": "Timeout" }, @@ -109,38 +98,6 @@ }, "door_unlocked_alarm": { "name": "Unlocked alarm" - }, - "door_auto_lock_paused": { - "name": "Auto-lock paused" - } - }, - "sensor": { - "bluetooth_signal": { - "name": "Bluetooth signal" - }, - "wifi_signal": { - "name": "Wi-Fi signal" - }, - "light_level": { - "name": "Light level" - }, - "aqi_quality_level": { - "name": "Air quality level", - "state": { - "excellent": "Excellent", - "good": "Good", - "moderate": "Moderate", - "unhealthy": "Unhealthy" - } - }, - "water_level": { - "name": "Water level", - "state": { - "empty": "[%key:common::state::empty%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } } }, "cover": { @@ -148,118 +105,76 @@ "state_attributes": { "last_run_success": { "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - } - } - } - } - }, - "humidifier": { - "humidifier": { - "state_attributes": { - "last_run_success": { - "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - } - } - } - }, - "evaporative_humidifier": { - "state_attributes": { - "mode": { - "state": { - "high": "[%key:common::state::high%]", - "medium": "[%key:common::state::medium%]", - "low": "[%key:common::state::low%]", - "quiet": "Quiet", - "target_humidity": "Target humidity", - "sleep": "Sleep", - "auto": "[%key:common::state::auto%]", - "drying_filter": "Drying filter" - } - } - } - } - }, - "lock": { - "lock": { - "state_attributes": { - "last_run_success": { - "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - } - } - } - } - }, - "switch": { - "bot": { - "state_attributes": { - "last_run_success": { - "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - } - }, - "switch_mode": { - "state": { - "true": "Pull/Retract", - "false": "Momentary" + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" } } } } }, "fan": { - "fan": { - "state_attributes": { - "last_run_success": { - "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" - } - }, - "preset_mode": { - "state": { - "normal": "[%key:common::state::normal%]", - "natural": "Natural", - "sleep": "Sleep", - "baby": "Baby" - } - } - } - }, "air_purifier": { "state_attributes": { "last_run_success": { "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" } }, "preset_mode": { "state": { + "auto": "[%key:common::state::auto%]", "level_1": "Level 1", "level_2": "Level 2", "level_3": "Level 3", - "auto": "[%key:common::state::auto%]", "pet": "Pet", "sleep": "Sleep" } } } + }, + "fan": { + "state_attributes": { + "last_run_success": { + "state": { + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" + } + }, + "preset_mode": { + "state": { + "baby": "Baby", + "natural": "Natural", + "normal": "[%key:common::state::normal%]", + "sleep": "Sleep" + } + } + } } }, - "vacuum": { - "vacuum": { + "humidifier": { + "evaporative_humidifier": { + "state_attributes": { + "mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "drying_filter": "Drying filter", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "quiet": "Quiet", + "sleep": "Sleep", + "target_humidity": "Target humidity" + } + } + } + }, + "humidifier": { "state_attributes": { "last_run_success": { "state": { - "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]", - "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]" + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" } } } @@ -270,48 +185,119 @@ "state_attributes": { "effect": { "state": { - "christmas": "Christmas", - "halloween": "Halloween", - "sunset": "Sunset", - "vitality": "Vitality", - "flashing": "Flashing", - "strobe": "Strobe", - "fade": "Fade", - "smooth": "Smooth", - "forest": "Forest", - "ocean": "Ocean", - "autumn": "Autumn", - "cool": "Cool", - "flow": "Flow", - "relax": "Relax", - "modern": "Modern", - "rose": "Rose", - "colorful": "Colorful", - "flickering": "Flickering", - "breathing": "Breathing", - "romance": "Romance", - "energy": "Energy", - "heartbeat": "Heartbeat", - "party": "Party", - "dynamic": "Dynamic", - "mystery": "Mystery", - "lightning": "Lightning", - "rock": "Rock", - "starlight": "Starlight", - "valentine_day": "Valentine's Day", - "dream": "Dream", "alarm": "Alarm", + "autumn": "Autumn", + "breathing": "Breathing", + "cherry_blossom": "Cherry Blossom", + "christmas": "Christmas", + "colorful": "Colorful", + "cool": "Cool", + "dream": "Dream", + "dynamic": "Dynamic", + "energy": "Energy", + "fade": "Fade", "fireworks": "Fireworks", - "waves": "Waves", - "rainbow": "Rainbow", + "flashing": "Flashing", + "flickering": "Flickering", + "flow": "Flow", + "forest": "Forest", "game": "Game", + "halloween": "Halloween", + "heartbeat": "Heartbeat", + "lightning": "Lightning", "meditation": "Meditation", - "starlit_sky": "Starlit Sky", - "sleep": "Sleep", + "modern": "Modern", "movie": "Movie", - "sunrise": "Sunrise", + "mystery": "Mystery", "new_year": "New Year", - "cherry_blossom": "Cherry Blossom" + "ocean": "Ocean", + "party": "Party", + "rainbow": "Rainbow", + "relax": "Relax", + "rock": "Rock", + "romance": "Romance", + "rose": "Rose", + "sleep": "Sleep", + "smooth": "Smooth", + "starlight": "Starlight", + "starlit_sky": "Starlit Sky", + "strobe": "Strobe", + "sunrise": "Sunrise", + "sunset": "Sunset", + "valentine_day": "Valentine's Day", + "vitality": "Vitality", + "waves": "Waves" + } + } + } + } + }, + "lock": { + "lock": { + "state_attributes": { + "last_run_success": { + "state": { + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" + } + } + } + } + }, + "sensor": { + "aqi_quality_level": { + "name": "Air quality level", + "state": { + "excellent": "Excellent", + "good": "Good", + "moderate": "Moderate", + "unhealthy": "Unhealthy" + } + }, + "bluetooth_signal": { + "name": "Bluetooth signal" + }, + "light_level": { + "name": "Light level" + }, + "water_level": { + "name": "Water level", + "state": { + "empty": "[%key:common::state::empty%]", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } + }, + "wifi_signal": { + "name": "Wi-Fi signal" + } + }, + "switch": { + "bot": { + "state_attributes": { + "last_run_success": { + "state": { + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" + } + }, + "switch_mode": { + "state": { + "false": "Momentary", + "true": "Pull/Retract" + } + } + } + } + }, + "vacuum": { + "vacuum": { + "state_attributes": { + "last_run_success": { + "state": { + "false": "[%key:component::binary_sensor::entity_component::problem::state::on%]", + "true": "[%key:component::binary_sensor::entity_component::problem::state::off%]" } } } @@ -319,17 +305,31 @@ } }, "exceptions": { - "operation_error": { - "message": "An error occurred while performing the action: {error}" - }, - "value_error": { - "message": "Switchbot device initialization failed because of incorrect configuration parameters: {error}" - }, "advertising_state_error": { "message": "{address} is not advertising state" }, "device_not_found_error": { "message": "Could not find Switchbot {sensor_type} with address {address}" + }, + "operation_error": { + "message": "An error occurred while performing the action: {error}" + }, + "value_error": { + "message": "Switchbot device initialization failed because of incorrect configuration parameters: {error}" + } + }, + "options": { + "step": { + "init": { + "data": { + "lock_force_nightlatch": "Force Nightlatch operation mode", + "retry_count": "Retry count" + }, + "data_description": { + "lock_force_nightlatch": "Force Nightlatch operation mode even if Nightlatch is not detected", + "retry_count": "How many times to retry sending commands to your SwitchBot devices" + } + } } } } diff --git a/homeassistant/components/switchbot_cloud/icons.json b/homeassistant/components/switchbot_cloud/icons.json index c7624d3f83d..a9a74feb5a1 100644 --- a/homeassistant/components/switchbot_cloud/icons.json +++ b/homeassistant/components/switchbot_cloud/icons.json @@ -9,8 +9,8 @@ "state_attributes": { "preset_mode": { "state": { - "normal": "mdi:fan", "auto": "mdi:auto-mode", + "normal": "mdi:fan", "pet": "mdi:paw", "sleep": "mdi:power-sleep" } @@ -18,6 +18,22 @@ } } }, + "humidifier": { + "evaporative_humidifier": { + "state_attributes": { + "mode": { + "state": { + "drying_filter": "mdi:water-remove", + "high": "mdi:water-plus", + "low": "mdi:water-outline", + "medium": "mdi:water", + "quiet": "mdi:volume-off", + "target_humidity": "mdi:target" + } + } + } + } + }, "sensor": { "light_level": { "default": "mdi:brightness-7", @@ -34,22 +50,6 @@ "10": "mdi:brightness-7" } } - }, - "humidifier": { - "evaporative_humidifier": { - "state_attributes": { - "mode": { - "state": { - "high": "mdi:water-plus", - "medium": "mdi:water", - "low": "mdi:water-outline", - "quiet": "mdi:volume-off", - "target_humidity": "mdi:target", - "drying_filter": "mdi:water-remove" - } - } - } - } } } } diff --git a/homeassistant/components/switchbot_cloud/strings.json b/homeassistant/components/switchbot_cloud/strings.json index 928e2e1e01b..4436f562e4f 100644 --- a/homeassistant/components/switchbot_cloud/strings.json +++ b/homeassistant/components/switchbot_cloud/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "api_token": "[%key:common::config_flow::data::api_token%]" + } + } } }, "entity": { @@ -23,8 +23,8 @@ "state_attributes": { "preset_mode": { "state": { - "normal": "[%key:common::state::normal%]", "auto": "[%key:common::state::auto%]", + "normal": "[%key:common::state::normal%]", "pet": "Pet", "sleep": "Sleep" } @@ -32,26 +32,26 @@ } } }, + "humidifier": { + "evaporative_humidifier": { + "state_attributes": { + "mode": { + "state": { + "drying_filter": "Drying filter", + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "quiet": "Quiet", + "target_humidity": "Target humidity" + } + } + } + } + }, "sensor": { "light_level": { "name": "Light level" } - }, - "humidifier": { - "evaporative_humidifier": { - "state_attributes": { - "mode": { - "state": { - "high": "[%key:common::state::high%]", - "medium": "[%key:common::state::medium%]", - "low": "[%key:common::state::low%]", - "quiet": "Quiet", - "target_humidity": "Target humidity", - "drying_filter": "Drying filter" - } - } - } - } } } } diff --git a/homeassistant/components/switcher_kis/icons.json b/homeassistant/components/switcher_kis/icons.json index 6ca8e0e8351..f4d86399dd6 100644 --- a/homeassistant/components/switcher_kis/icons.json +++ b/homeassistant/components/switcher_kis/icons.json @@ -1,25 +1,25 @@ { "entity": { "button": { - "assume_on": { - "default": "mdi:fan" - }, "assume_off": { "default": "mdi:fan-off" }, - "vertical_swing_on": { - "default": "mdi:autorenew" + "assume_on": { + "default": "mdi:fan" }, "vertical_swing_off": { "default": "mdi:autorenew-off" + }, + "vertical_swing_on": { + "default": "mdi:autorenew" } }, "sensor": { - "remaining_time": { - "default": "mdi:av-timer" - }, "auto_shutdown": { "default": "mdi:progress-clock" + }, + "remaining_time": { + "default": "mdi:av-timer" } } }, diff --git a/homeassistant/components/switcher_kis/strings.json b/homeassistant/components/switcher_kis/strings.json index 33bbdc345d3..32a00fc442a 100644 --- a/homeassistant/components/switcher_kis/strings.json +++ b/homeassistant/components/switcher_kis/strings.json @@ -1,54 +1,54 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" }, "credentials": { - "description": "Found a Switcher device that requires a token\nEnter your username and token\nFor more information see {prerequisites_url}", "data": { - "username": "[%key:common::config_flow::data::username%]", - "token": "[%key:common::config_flow::data::access_token%]" + "token": "[%key:common::config_flow::data::access_token%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "username": "The email address used to sign in to the Switcher app.", - "token": "The local control token received from Switcher." - } + "token": "The local control token received from Switcher.", + "username": "The email address used to sign in to the Switcher app." + }, + "description": "Found a Switcher device that requires a token\nEnter your username and token\nFor more information see {prerequisites_url}" }, "reauth_confirm": { - "description": "[%key:component::switcher_kis::config::step::credentials::description%]", "data": { - "username": "[%key:common::config_flow::data::username%]", - "token": "[%key:common::config_flow::data::access_token%]" + "token": "[%key:common::config_flow::data::access_token%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "username": "[%key:component::switcher_kis::config::step::credentials::data_description::username%]", - "token": "[%key:component::switcher_kis::config::step::credentials::data_description::token%]" - } + "token": "[%key:component::switcher_kis::config::step::credentials::data_description::token%]", + "username": "[%key:component::switcher_kis::config::step::credentials::data_description::username%]" + }, + "description": "[%key:component::switcher_kis::config::step::credentials::description%]" } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { "button": { - "assume_on": { - "name": "Assume on" - }, "assume_off": { "name": "Assume off" }, - "vertical_swing_on": { - "name": "Vertical swing on" + "assume_on": { + "name": "Assume on" }, "vertical_swing_off": { "name": "Vertical swing off" + }, + "vertical_swing_on": { + "name": "Vertical swing on" } }, "cover": { @@ -62,11 +62,11 @@ } }, "sensor": { - "remaining_time": { - "name": "Remaining time" - }, "auto_shutdown": { "name": "Auto shutdown" + }, + "remaining_time": { + "name": "Remaining time" } }, "switch": { @@ -80,24 +80,24 @@ }, "services": { "set_auto_off": { - "name": "Set auto-off", "description": "Updates Switcher device auto-off setting.", "fields": { "auto_off": { - "name": "Auto-off", - "description": "Time period string containing hours and minutes." + "description": "Time period string containing hours and minutes.", + "name": "Auto-off" } - } + }, + "name": "Set auto-off" }, "turn_on_with_timer": { - "name": "Turn on with timer", "description": "Turns on the Switcher device with timer.", "fields": { "timer_minutes": { - "name": "Timer", - "description": "Duration to turn on the Switcher." + "description": "Duration to turn on the Switcher.", + "name": "Timer" } - } + }, + "name": "Turn on with timer" } } } diff --git a/homeassistant/components/syncthing/icons.json b/homeassistant/components/syncthing/icons.json index 0e86b6e4fa3..5f4a8cfd2ea 100644 --- a/homeassistant/components/syncthing/icons.json +++ b/homeassistant/components/syncthing/icons.json @@ -4,11 +4,11 @@ "syncthing": { "default": "mdi:folder-alert", "state": { - "unknown": "mdi:folder", "idle": "mdi:folder", + "paused": "mdi:folder-clock", "scanning": "mdi:folder-search", "syncing": "mdi:folder-sync", - "paused": "mdi:folder-clock" + "unknown": "mdi:folder" } } } diff --git a/homeassistant/components/syncthing/strings.json b/homeassistant/components/syncthing/strings.json index 8d7039c115c..ebb22e80393 100644 --- a/homeassistant/components/syncthing/strings.json +++ b/homeassistant/components/syncthing/strings.json @@ -1,21 +1,21 @@ { "config": { - "step": { - "user": { - "data": { - "title": "Set up Syncthing integration", - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "token": "Token" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "title": "Set up Syncthing integration", + "token": "Token", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + } + } } } } diff --git a/homeassistant/components/syncthru/strings.json b/homeassistant/components/syncthru/strings.json index d78d51db86d..75aaca6cb02 100644 --- a/homeassistant/components/syncthru/strings.json +++ b/homeassistant/components/syncthru/strings.json @@ -26,17 +26,9 @@ }, "entity": { "sensor": { - "toner_black": { - "name": "Black toner level" - }, - "toner_cyan": { - "name": "Cyan toner level" - }, - "toner_magenta": { - "name": "Magenta toner level" - }, - "toner_yellow": { - "name": "Yellow toner level" + "active_alerts": { + "name": "Active alerts", + "unit_of_measurement": "alerts" }, "drum_black": { "name": "Black drum level" @@ -50,21 +42,29 @@ "drum_yellow": { "name": "Yellow drum level" }, - "tray_mp": { - "name": "Multi-purpose tray" + "output_tray": { + "name": "Output tray {tray_number}" }, - "tray_manual": { - "name": "Manual feed tray" + "toner_black": { + "name": "Black toner level" + }, + "toner_cyan": { + "name": "Cyan toner level" + }, + "toner_magenta": { + "name": "Magenta toner level" + }, + "toner_yellow": { + "name": "Yellow toner level" }, "tray": { "name": "Input tray {tray_number}" }, - "output_tray": { - "name": "Output tray {tray_number}" + "tray_manual": { + "name": "Manual feed tray" }, - "active_alerts": { - "name": "Active alerts", - "unit_of_measurement": "alerts" + "tray_mp": { + "name": "Multi-purpose tray" } } } diff --git a/homeassistant/components/synology_dsm/icons.json b/homeassistant/components/synology_dsm/icons.json index cc3f42a33fd..27c0198af5b 100644 --- a/homeassistant/components/synology_dsm/icons.json +++ b/homeassistant/components/synology_dsm/icons.json @@ -1,16 +1,7 @@ { "entity": { "sensor": { - "cpu_other_load": { - "default": "mdi:chip" - }, - "cpu_user_load": { - "default": "mdi:chip" - }, - "cpu_system_load": { - "default": "mdi:chip" - }, - "cpu_total_load": { + "cpu_15min_load": { "default": "mdi:chip" }, "cpu_1min_load": { @@ -19,7 +10,16 @@ "cpu_5min_load": { "default": "mdi:chip" }, - "cpu_15min_load": { + "cpu_other_load": { + "default": "mdi:chip" + }, + "cpu_system_load": { + "default": "mdi:chip" + }, + "cpu_total_load": { + "default": "mdi:chip" + }, + "cpu_user_load": { "default": "mdi:chip" }, "device_size_total": { @@ -28,33 +28,39 @@ "device_status": { "default": "mdi:checkbox-marked-circle-outline" }, + "disk_smart_status": { + "default": "mdi:checkbox-marked-circle-outline" + }, + "disk_status": { + "default": "mdi:checkbox-marked-circle-outline" + }, + "memory_available_real": { + "default": "mdi:memory" + }, + "memory_available_swap": { + "default": "mdi:memory" + }, + "memory_cached": { + "default": "mdi:memory" + }, "memory_real_usage": { "default": "mdi:memory" }, "memory_size": { "default": "mdi:memory" }, - "memory_cached": { - "default": "mdi:memory" - }, - "memory_available_swap": { - "default": "mdi:memory" - }, - "memory_available_real": { + "memory_total_real": { "default": "mdi:memory" }, "memory_total_swap": { "default": "mdi:memory" }, - "memory_total_real": { - "default": "mdi:memory" + "network_down": { + "default": "mdi:download" }, "network_up": { "default": "mdi:upload" }, - "network_down": { - "default": "mdi:download" - }, "partition_percentage_used": { "default": "mdi:chart-pie" }, @@ -64,11 +70,8 @@ "partition_size_used": { "default": "mdi:chart-pie" }, - "volume_status": { - "default": "mdi:checkbox-marked-circle-outline", - "state": { - "degrade": "mdi:alert-circle-outline" - } + "volume_percentage_used": { + "default": "mdi:chart-pie" }, "volume_size_total": { "default": "mdi:chart-pie" @@ -76,14 +79,11 @@ "volume_size_used": { "default": "mdi:chart-pie" }, - "volume_percentage_used": { - "default": "mdi:chart-pie" - }, - "disk_smart_status": { - "default": "mdi:checkbox-marked-circle-outline" - }, - "disk_status": { - "default": "mdi:checkbox-marked-circle-outline" + "volume_status": { + "default": "mdi:checkbox-marked-circle-outline", + "state": { + "degrade": "mdi:alert-circle-outline" + } } }, "switch": { diff --git a/homeassistant/components/synology_dsm/manifest.json b/homeassistant/components/synology_dsm/manifest.json index a21b976ac9e..4d57beac4e4 100644 --- a/homeassistant/components/synology_dsm/manifest.json +++ b/homeassistant/components/synology_dsm/manifest.json @@ -11,16 +11,16 @@ "requirements": ["py-synologydsm-api==2.7.3"], "ssdp": [ { - "manufacturer": "Synology", - "deviceType": "urn:schemas-upnp-org:device:Basic:1" + "deviceType": "urn:schemas-upnp-org:device:Basic:1", + "manufacturer": "Synology" } ], "zeroconf": [ { - "type": "_http._tcp.local.", "properties": { "vendor": "synology*" - } + }, + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/synology_dsm/strings.json b/homeassistant/components/synology_dsm/strings.json index 2589f04959c..f80b8926648 100644 --- a/homeassistant/components/synology_dsm/strings.json +++ b/homeassistant/components/synology_dsm/strings.json @@ -1,54 +1,10 @@ { "config": { - "flow_title": "{name} ({host})", - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Synology NAS." - } - }, - "2sa": { - "title": "Synology DSM: two-step authentication", - "data": { - "otp_code": "Code" - } - }, - "backup_share": { - "title": "Synology DSM: Backup location", - "data": { - "backup_share": "Shared folder", - "backup_path": "Path" - }, - "data_description": { - "backup_share": "Select the shared folder where the automatic Home Assistant backup should be stored.", - "backup_path": "Define the path on the selected shared folder (will automatically be created, if not exist)." - } - }, - "link": { - "description": "Do you want to set up {name} ({host})?", - "data": { - "ssl": "[%key:common::config_flow::data::ssl%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "port": "[%key:common::config_flow::data::port%]" - } - }, - "reauth_confirm": { - "title": "Reauthenticate Synology DSM", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_mac_address": "The MAC address is missing from the Zeroconf record", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -57,24 +13,53 @@ "otp_failed": "Two-step authentication failed, retry with a new passcode", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "no_mac_address": "The MAC address is missing from the Zeroconf record", - "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%]" - } - }, - "options": { + "flow_title": "{name} ({host})", "step": { - "init": { + "2sa": { "data": { - "snap_profile_type": "Quality level of camera snapshots (0:high 1:medium 2:low)", - "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]", - "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]" + "otp_code": "Code" + }, + "title": "Synology DSM: two-step authentication" + }, + "backup_share": { + "data": { + "backup_path": "Path", + "backup_share": "Shared folder" }, "data_description": { - "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_share%]", - "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_path%]" + "backup_path": "Define the path on the selected shared folder (will automatically be created, if not exist).", + "backup_share": "Select the shared folder where the automatic Home Assistant backup should be stored." + }, + "title": "Synology DSM: Backup location" + }, + "link": { + "data": { + "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%]" + }, + "description": "Do you want to set up {name} ({host})?" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "Reauthenticate Synology DSM" + }, + "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 your Synology NAS." } } } @@ -202,55 +187,70 @@ }, "issues": { "missing_backup_setup": { - "title": "Backup location not configured for {title}", "fix_flow": { + "abort": { + "ignored": "The backup location has not been configured.\nYou can still set it up later via the integration options.", + "no_shares": "There are no shared folders available for the user.\nPlease check the documentation." + }, "step": { + "confirm": { + "data": { + "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]", + "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]" + }, + "data_description": { + "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_path%]", + "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_share%]" + }, + "title": "[%key:component::synology_dsm::config::step::backup_share::title%]" + }, "init": { "description": "The backup location for {title} is not configured. Do you want to set it up now? Details can be found in the integration documentation under [Backup Location]({docs_url})", "menu_options": { "confirm": "Set up the backup location now", "ignore": "Don't set it up now" } - }, - "confirm": { - "title": "[%key:component::synology_dsm::config::step::backup_share::title%]", - "data": { - "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]", - "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]" - }, - "data_description": { - "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_share%]", - "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_path%]" - } } + } + }, + "title": "Backup location not configured for {title}" + } + }, + "options": { + "step": { + "init": { + "data": { + "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]", + "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]", + "snap_profile_type": "Quality level of camera snapshots (0:high 1:medium 2:low)" }, - "abort": { - "no_shares": "There are no shared folders available for the user.\nPlease check the documentation.", - "ignored": "The backup location has not been configured.\nYou can still set it up later via the integration options." + "data_description": { + "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_path%]", + "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data_description::backup_share%]" } } } }, "services": { "reboot": { - "name": "Reboot", "description": "Reboots the NAS. This action is deprecated and will be removed in future release. Please use the corresponding button entity.", "fields": { "serial": { - "name": "Serial", - "description": "Serial of the NAS to reboot; required when multiple NAS are configured." + "description": "Serial of the NAS to reboot; required when multiple NAS are configured.", + "name": "Serial" } - } + }, + "name": "Reboot" }, "shutdown": { - "name": "Shutdown", "description": "Shutdowns the NAS. This action is deprecated and will be removed in future release. Please use the corresponding button entity.", "fields": { "serial": { - "name": "[%key:component::synology_dsm::services::reboot::fields::serial::name%]", - "description": "Serial of the NAS to shutdown; required when multiple NAS are configured." + "description": "Serial of the NAS to shutdown; required when multiple NAS are configured.", + "name": "[%key:component::synology_dsm::services::reboot::fields::serial::name%]" } - } + }, + "name": "Shutdown" } } } diff --git a/homeassistant/components/system_bridge/icons.json b/homeassistant/components/system_bridge/icons.json index 0be0a2d7c02..6a9488cadcf 100644 --- a/homeassistant/components/system_bridge/icons.json +++ b/homeassistant/components/system_bridge/icons.json @@ -68,14 +68,14 @@ "open_url": { "service": "mdi:web" }, + "power_command": { + "service": "mdi:power" + }, "send_keypress": { "service": "mdi:keyboard" }, "send_text": { "service": "mdi:keyboard" - }, - "power_command": { - "service": "mdi:power" } } } diff --git a/homeassistant/components/system_bridge/strings.json b/homeassistant/components/system_bridge/strings.json index 7dd46aa0ecb..933a89feb87 100644 --- a/homeassistant/components/system_bridge/strings.json +++ b/homeassistant/components/system_bridge/strings.json @@ -4,7 +4,12 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unique_id_mismatch": "The identifier does not match the previous identifier", - "unsupported_version": "Your version of System Bridge is not supported. Please upgrade to the latest version.", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unsupported_version": "Your version of System Bridge is not supported. Please upgrade to the latest version." + }, + "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%]" }, "flow_title": "{name}", @@ -23,11 +28,6 @@ }, "description": "Please enter your connection details." } - }, - "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%]" } }, "entity": { @@ -45,6 +45,12 @@ } }, "sensor": { + "amount_memory_used": { + "name": "Amount of memory used" + }, + "battery_time_remaining": { + "name": "Battery time remaining" + }, "boot_time": { "name": "Boot time" }, @@ -60,41 +66,35 @@ "cpu_voltage": { "name": "CPU voltage" }, + "displays_connected": { + "name": "Displays connected" + }, "kernel": { "name": "Kernel" }, + "load": { + "name": "Load" + }, "memory_free": { "name": "Memory free" }, "memory_used": { "name": "Memory used" }, - "amount_memory_used": { - "name": "Amount of memory used" - }, "os": { "name": "Operating system" }, - "processes": { - "name": "Processes" - }, "power_usage": { "name": "Power usage" }, - "load": { - "name": "Load" + "processes": { + "name": "Processes" }, "version": { "name": "Version" }, "version_latest": { "name": "Latest version" - }, - "battery_time_remaining": { - "name": "Battery time remaining" - }, - "displays_connected": { - "name": "Displays connected" } } }, @@ -123,108 +123,108 @@ }, "issues": { "unsupported_version": { - "title": "System Bridge upgrade required", - "description": "Your version of System Bridge for host {host} is not supported.\n\nPlease upgrade to the latest version." + "description": "Your version of System Bridge for host {host} is not supported.\n\nPlease upgrade to the latest version.", + "title": "System Bridge upgrade required" } }, "services": { - "open_path": { - "name": "Open path", - "description": "Opens a file on the server using the default application.", - "fields": { - "bridge": { - "name": "Bridge", - "description": "The server to talk to." - }, - "path": { - "name": "[%key:common::config_flow::data::path%]", - "description": "Path to open." - } - } - }, "get_process_by_id": { - "name": "Get process by ID", "description": "Gets a process by the ID.", "fields": { "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]" + "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" }, "id": { - "name": "ID", - "description": "ID of the process to get." + "description": "ID of the process to get.", + "name": "ID" } - } + }, + "name": "Get process by ID" }, "get_processes_by_name": { - "name": "Get processes by name", "description": "Gets a list of processes by the name.", "fields": { "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]" + "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" }, "name": { - "name": "Name", - "description": "Name of the process to get." + "description": "Name of the process to get.", + "name": "Name" } - } + }, + "name": "Get processes by name" + }, + "open_path": { + "description": "Opens a file on the server using the default application.", + "fields": { + "bridge": { + "description": "The server to talk to.", + "name": "Bridge" + }, + "path": { + "description": "Path to open.", + "name": "[%key:common::config_flow::data::path%]" + } + }, + "name": "Open path" }, "open_url": { - "name": "Open URL", "description": "Opens a URL on the server using the default application.", "fields": { "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]" + "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" }, "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "URL to open." + "description": "URL to open.", + "name": "[%key:common::config_flow::data::url%]" } - } - }, - "send_keypress": { - "name": "Send keyboard keypress", - "description": "Sends a keyboard keypress.", - "fields": { - "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "The server to send the command to." - }, - "key": { - "name": "Key", - "description": "Key to press. List available here: {syntax_keys_documentation_url}." - } - } - }, - "send_text": { - "name": "Send keyboard text", - "description": "Sends text for the server to type.", - "fields": { - "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "[%key:component::system_bridge::services::send_keypress::fields::bridge::description%]" - }, - "text": { - "name": "Text", - "description": "Text to type." - } - } + }, + "name": "Open URL" }, "power_command": { - "name": "Power command", "description": "Sends a power command to the system.", "fields": { "bridge": { - "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", - "description": "[%key:component::system_bridge::services::send_keypress::fields::bridge::description%]" + "description": "[%key:component::system_bridge::services::send_keypress::fields::bridge::description%]", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" }, "command": { - "name": "Command", - "description": "Command to call." + "description": "Command to call.", + "name": "Command" } - } + }, + "name": "Power command" + }, + "send_keypress": { + "description": "Sends a keyboard keypress.", + "fields": { + "bridge": { + "description": "The server to send the command to.", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" + }, + "key": { + "description": "Key to press. List available here: {syntax_keys_documentation_url}.", + "name": "Key" + } + }, + "name": "Send keyboard keypress" + }, + "send_text": { + "description": "Sends text for the server to type.", + "fields": { + "bridge": { + "description": "[%key:component::system_bridge::services::send_keypress::fields::bridge::description%]", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]" + }, + "text": { + "description": "Text to type.", + "name": "Text" + } + }, + "name": "Send keyboard text" } } } diff --git a/homeassistant/components/system_log/strings.json b/homeassistant/components/system_log/strings.json index db71cd6ace4..e8bccb21438 100644 --- a/homeassistant/components/system_log/strings.json +++ b/homeassistant/components/system_log/strings.json @@ -1,37 +1,37 @@ { - "services": { - "clear": { - "name": "Clear", - "description": "Deletes all log entries." - }, - "write": { - "name": "Write", - "description": "Write log entry.", - "fields": { - "message": { - "name": "Message", - "description": "Message to log." - }, - "level": { - "name": "Level", - "description": "Log level." - }, - "logger": { - "name": "Logger", - "description": "Logger name under which to log the message. Defaults to `system_log.external`." - } - } - } - }, "selector": { "level": { "options": { + "critical": "Critical", "debug": "Debug", - "info": "Info", - "warning": "Warning", "error": "Error", - "critical": "Critical" + "info": "Info", + "warning": "Warning" } } + }, + "services": { + "clear": { + "description": "Deletes all log entries.", + "name": "Clear" + }, + "write": { + "description": "Write log entry.", + "fields": { + "level": { + "description": "Log level.", + "name": "Level" + }, + "logger": { + "description": "Logger name under which to log the message. Defaults to `system_log.external`.", + "name": "Logger" + }, + "message": { + "description": "Message to log.", + "name": "Message" + } + }, + "name": "Write" + } } } diff --git a/homeassistant/components/systemmonitor/strings.json b/homeassistant/components/systemmonitor/strings.json index 442b9f60790..861f23fbba2 100644 --- a/homeassistant/components/systemmonitor/strings.json +++ b/homeassistant/components/systemmonitor/strings.json @@ -9,19 +9,6 @@ } } }, - "options": { - "step": { - "init": { - "description": "Configure a monitoring sensor for a running process", - "data": { - "process": "Processes to add as sensor(s)" - }, - "data_description": { - "process": "Select a running process from the list or add a custom value. Multiple selections/custom values are supported" - } - } - } - }, "entity": { "binary_sensor": { "process": { @@ -77,21 +64,18 @@ "packets_out": { "name": "Packets out {interface}" }, - "throughput_network_in": { - "name": "Network throughput in {interface}" - }, - "throughput_network_out": { - "name": "Network throughput out {interface}" - }, "process": { "name": "Process {process}" }, - "processor_use": { - "name": "Processor use" + "process_num_fds": { + "name": "Open file descriptors {process}" }, "processor_temperature": { "name": "Processor temperature" }, + "processor_use": { + "name": "Processor use" + }, "swap_free": { "name": "Swap free" }, @@ -101,8 +85,24 @@ "swap_use_percent": { "name": "Swap usage" }, - "process_num_fds": { - "name": "Open file descriptors {process}" + "throughput_network_in": { + "name": "Network throughput in {interface}" + }, + "throughput_network_out": { + "name": "Network throughput out {interface}" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "process": "Processes to add as sensor(s)" + }, + "data_description": { + "process": "Select a running process from the list or add a custom value. Multiple selections/custom values are supported" + }, + "description": "Configure a monitoring sensor for a running process" } } } diff --git a/homeassistant/components/tado/icons.json b/homeassistant/components/tado/icons.json index 65b86359950..488fe6b6c87 100644 --- a/homeassistant/components/tado/icons.json +++ b/homeassistant/components/tado/icons.json @@ -10,17 +10,17 @@ } }, "services": { + "add_meter_reading": { + "service": "mdi:counter" + }, + "set_climate_temperature_offset": { + "service": "mdi:thermometer" + }, "set_climate_timer": { "service": "mdi:timer" }, "set_water_heater_timer": { "service": "mdi:timer" - }, - "set_climate_temperature_offset": { - "service": "mdi:thermometer" - }, - "add_meter_reading": { - "service": "mdi:counter" } } } diff --git a/homeassistant/components/tado/strings.json b/homeassistant/components/tado/strings.json index 5d9c4237be8..4d917f91f52 100644 --- a/homeassistant/components/tado/strings.json +++ b/homeassistant/components/tado/strings.json @@ -1,51 +1,40 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "could_not_authenticate": "Could not authenticate with Tado.", + "no_homes": "There are no homes linked to this Tado account.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, "progress": { "wait_for_device": "To authenticate, open the following URL and login at Tado:\n{url}\nIf the code is not automatically copied, paste the following code to authorize the integration:\n\n```{code}```\n\n\nThe login attempt will time out after five minutes." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "could_not_authenticate": "Could not authenticate with Tado.", - "no_homes": "There are no homes linked to this Tado account.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - }, "step": { - "reauth_confirm": { - "title": "Authenticate with Tado", - "description": "You need to reauthenticate with Tado. Press `Submit` to start the authentication process." - }, "homekit": { - "title": "Authenticate with Tado", - "description": "Your device has been discovered and needs to authenticate with Tado. Press `Submit` to start the authentication process." + "description": "Your device has been discovered and needs to authenticate with Tado. Press `Submit` to start the authentication process.", + "title": "Authenticate with Tado" + }, + "reauth_confirm": { + "description": "You need to reauthenticate with Tado. Press `Submit` to start the authentication process.", + "title": "Authenticate with Tado" }, "timeout": { "description": "The authentication process timed out. Please try again." } } }, - "options": { - "step": { - "init": { - "description": "Fallback mode lets you choose when to fallback to Smart Schedule from your manual zone overlay. (NEXT_TIME_BLOCK:= Change at next Smart Schedule change; MANUAL:= Don't change until you cancel; TADO_DEFAULT:= Change based on your setting in the Tado app).", - "data": { - "fallback": "Choose fallback mode." - }, - "title": "Adjust Tado options." - } - } - }, "entity": { "binary_sensor": { "connection_state": { "name": "Connection state" }, - "overlay": { - "name": "Overlay" - }, "early_start": { "name": "Early start" + }, + "overlay": { + "name": "Overlay" } }, "climate": { @@ -59,100 +48,111 @@ } } }, - "switch": { - "child_lock": { - "name": "Child lock" - } - }, "sensor": { + "ac": { + "name": "AC" + }, + "automatic_geofencing": { + "name": "Automatic geofencing" + }, + "geofencing_mode": { + "name": "Geofencing mode" + }, + "heating": { + "name": "Heating" + }, "outdoor_temperature": { "name": "Outdoor temperature" }, "solar_percentage": { "name": "Solar percentage" }, - "weather_condition": { - "name": "Weather condition" - }, "tado_mode": { "name": "Tado mode" }, - "geofencing_mode": { - "name": "Geofencing mode" - }, - "automatic_geofencing": { - "name": "Automatic geofencing" - }, - "heating": { - "name": "Heating" - }, - "ac": { - "name": "AC" - } - } - }, - "services": { - "set_climate_timer": { - "name": "Set climate timer", - "description": "Turns on climate entities for a set time.", - "fields": { - "temperature": { - "name": "Temperature", - "description": "Temperature to set climate entity to." - }, - "time_period": { - "name": "Time period", - "description": "Choose this or 'Overlay'. Set the time period for the change if you want to be specific." - }, - "requested_overlay": { - "name": "Overlay", - "description": "Choose this or 'Time period'. Allows you to choose an overlay. MANUAL:=Overlay until user removes; NEXT_TIME_BLOCK:=Overlay until next timeblock; TADO_DEFAULT:=Overlay based on Tado app setting." - } + "weather_condition": { + "name": "Weather condition" } }, - "set_water_heater_timer": { - "name": "Set water heater timer", - "description": "Turns on water heater for a set time.", - "fields": { - "time_period": { - "name": "Time period", - "description": "Set the time period for the boost." - }, - "temperature": { - "name": "Temperature", - "description": "Temperature to set heater to." - } - } - }, - "set_climate_temperature_offset": { - "name": "Set climate temperature offset", - "description": "Sets the temperature offset of climate entities.", - "fields": { - "offset": { - "name": "Offset", - "description": "Offset you would like (depending on your device)." - } - } - }, - "add_meter_reading": { - "name": "Add meter reading", - "description": "Adds a meter reading to Tado Energy IQ.", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "Config entry to add meter reading to." - }, - "reading": { - "name": "Reading", - "description": "Reading in m³ or kWh without decimals." - } + "switch": { + "child_lock": { + "name": "Child lock" } } }, "issues": { "water_heater_fallback": { - "title": "Tado water heater entities now support fallback options", - "description": "Due to added support for water heaters entities, these entities may use a different overlay. Please configure the integration entity and Tado app water heater zone overlay options (under Settings -> Rooms & Devices -> Hot Water)." + "description": "Due to added support for water heaters entities, these entities may use a different overlay. Please configure the integration entity and Tado app water heater zone overlay options (under Settings -> Rooms & Devices -> Hot Water).", + "title": "Tado water heater entities now support fallback options" + } + }, + "options": { + "step": { + "init": { + "data": { + "fallback": "Choose fallback mode." + }, + "description": "Fallback mode lets you choose when to fallback to Smart Schedule from your manual zone overlay. (NEXT_TIME_BLOCK:= Change at next Smart Schedule change; MANUAL:= Don't change until you cancel; TADO_DEFAULT:= Change based on your setting in the Tado app).", + "title": "Adjust Tado options." + } + } + }, + "services": { + "add_meter_reading": { + "description": "Adds a meter reading to Tado Energy IQ.", + "fields": { + "config_entry": { + "description": "Config entry to add meter reading to.", + "name": "Config entry" + }, + "reading": { + "description": "Reading in m³ or kWh without decimals.", + "name": "Reading" + } + }, + "name": "Add meter reading" + }, + "set_climate_temperature_offset": { + "description": "Sets the temperature offset of climate entities.", + "fields": { + "offset": { + "description": "Offset you would like (depending on your device).", + "name": "Offset" + } + }, + "name": "Set climate temperature offset" + }, + "set_climate_timer": { + "description": "Turns on climate entities for a set time.", + "fields": { + "requested_overlay": { + "description": "Choose this or 'Time period'. Allows you to choose an overlay. MANUAL:=Overlay until user removes; NEXT_TIME_BLOCK:=Overlay until next timeblock; TADO_DEFAULT:=Overlay based on Tado app setting.", + "name": "Overlay" + }, + "temperature": { + "description": "Temperature to set climate entity to.", + "name": "Temperature" + }, + "time_period": { + "description": "Choose this or 'Overlay'. Set the time period for the change if you want to be specific.", + "name": "Time period" + } + }, + "name": "Set climate timer" + }, + "set_water_heater_timer": { + "description": "Turns on water heater for a set time.", + "fields": { + "temperature": { + "description": "Temperature to set heater to.", + "name": "Temperature" + }, + "time_period": { + "description": "Set the time period for the boost.", + "name": "Time period" + } + }, + "name": "Set water heater timer" } } } diff --git a/homeassistant/components/tag/strings.json b/homeassistant/components/tag/strings.json index 4adbf1d48fc..d19fe9b1ec1 100644 --- a/homeassistant/components/tag/strings.json +++ b/homeassistant/components/tag/strings.json @@ -1,15 +1,15 @@ { - "title": "Tag", "entity_component": { "_": { "state_attributes": { - "tag_id": { - "name": "Tag ID" - }, "last_scanned_by_device_id": { "name": "Last scanned by device ID" + }, + "tag_id": { + "name": "Tag ID" } } } - } + }, + "title": "Tag" } diff --git a/homeassistant/components/tailscale/strings.json b/homeassistant/components/tailscale/strings.json index 89a1d4554b2..dec388b974e 100644 --- a/homeassistant/components/tailscale/strings.json +++ b/homeassistant/components/tailscale/strings.json @@ -1,27 +1,27 @@ { "config": { - "step": { - "user": { - "description": "This integration monitors your Tailscale network, it **DOES NOT** make your Home Assistant accessible via Tailscale VPN. \n\nTo authenticate with Tailscale you'll need to create an API access token at {authkeys_url}.\n\nA Tailnet is the name of your Tailscale network. You can find it in the top left corner in the Tailscale Admin Panel (beside the Tailscale logo).", - "data": { - "tailnet": "Tailnet", - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "reauth_confirm": { - "description": "Tailscale API access tokens are valid for 90-days. You can create a fresh Tailscale API access token at {authkeys_url}.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "Tailscale API access tokens are valid for 90-days. You can create a fresh Tailscale API access token at {authkeys_url}." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "tailnet": "Tailnet" + }, + "description": "This integration monitors your Tailscale network, it **DOES NOT** make your Home Assistant accessible via Tailscale VPN. \n\nTo authenticate with Tailscale you'll need to create an API access token at {authkeys_url}.\n\nA Tailnet is the name of your Tailscale network. You can find it in the top left corner in the Tailscale Admin Panel (beside the Tailscale logo)." + } } }, "entity": { @@ -29,9 +29,6 @@ "client": { "name": "Client" }, - "key_expiry_disabled": { - "name": "Key expiry disabled" - }, "client_supports_hair_pinning": { "name": "Supports hairpinning" }, @@ -49,6 +46,9 @@ }, "client_supports_upnp": { "name": "Supports UPnP" + }, + "key_expiry_disabled": { + "name": "Key expiry disabled" } }, "sensor": { diff --git a/homeassistant/components/tailwind/manifest.json b/homeassistant/components/tailwind/manifest.json index 7ad43c929a7..136492d884f 100644 --- a/homeassistant/components/tailwind/manifest.json +++ b/homeassistant/components/tailwind/manifest.json @@ -14,10 +14,10 @@ "requirements": ["gotailwind==0.3.0"], "zeroconf": [ { - "type": "_http._tcp.local.", "properties": { "vendor": "tailwind" - } + }, + "type": "_http._tcp.local." } ] } diff --git a/homeassistant/components/tailwind/strings.json b/homeassistant/components/tailwind/strings.json index 7ff7fd439cc..8cb059a74d0 100644 --- a/homeassistant/components/tailwind/strings.json +++ b/homeassistant/components/tailwind/strings.json @@ -1,41 +1,5 @@ { "config": { - "step": { - "reauth_confirm": { - "description": "Reauthenticate with your Tailwind garage door opener.\n\nTo do so, you will need to get your new local control key of your Tailwind device. For more details, see the description below the field down below.", - "data": { - "token": "[%key:component::tailwind::config::step::user::data::token%]" - }, - "data_description": { - "token": "[%key:component::tailwind::config::step::user::data_description::token%]" - } - }, - "user": { - "description": "Set up your Tailwind garage door opener to integrate with Home Assistant.\n\nTo do so, you will need to get the local control key and IP address of your Tailwind device. For more details, see the description below the fields down below.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "token": "Local control key token" - }, - "data_description": { - "host": "The hostname or IP address of your Tailwind device. You can find the IP address by going into the Tailwind app and selecting your Tailwind device's cog icon. The IP address is shown in the **Device Info** section.", - "token": "To find local control key token, browse to the [Tailwind web portal]({url}), log in with your Tailwind account, and select the [**Local Control Key**]({url}) tab. The 6-digit number shown is your local control key token." - } - }, - "zeroconf_confirm": { - "description": "Set up your discovered Tailwind garage door opener to integrate with Home Assistant.\n\nTo do so, you will need to get the local control key of your Tailwind device. For more details, see the description below the field down below.", - "data": { - "token": "[%key:component::tailwind::config::step::user::data::token%]" - }, - "data_description": { - "token": "[%key:component::tailwind::config::step::user::data_description::token%]" - } - } - }, - "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%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -43,6 +7,42 @@ "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unknown": "[%key:common::config_flow::error::unknown%]", "unsupported_firmware": "The firmware of your Tailwind device is not supported. Please update your Tailwind device to the latest firmware version using the Tailwind app." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "token": "[%key:component::tailwind::config::step::user::data::token%]" + }, + "data_description": { + "token": "[%key:component::tailwind::config::step::user::data_description::token%]" + }, + "description": "Reauthenticate with your Tailwind garage door opener.\n\nTo do so, you will need to get your new local control key of your Tailwind device. For more details, see the description below the field down below." + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "token": "Local control key token" + }, + "data_description": { + "host": "The hostname or IP address of your Tailwind device. You can find the IP address by going into the Tailwind app and selecting your Tailwind device's cog icon. The IP address is shown in the **Device Info** section.", + "token": "To find local control key token, browse to the [Tailwind web portal]({url}), log in with your Tailwind account, and select the [**Local Control Key**]({url}) tab. The 6-digit number shown is your local control key token." + }, + "description": "Set up your Tailwind garage door opener to integrate with Home Assistant.\n\nTo do so, you will need to get the local control key and IP address of your Tailwind device. For more details, see the description below the fields down below." + }, + "zeroconf_confirm": { + "data": { + "token": "[%key:component::tailwind::config::step::user::data::token%]" + }, + "data_description": { + "token": "[%key:component::tailwind::config::step::user::data_description::token%]" + }, + "description": "Set up your discovered Tailwind garage door opener to integrate with Home Assistant.\n\nTo do so, you will need to get the local control key of your Tailwind device. For more details, see the description below the field down below." + } } }, "entity": { diff --git a/homeassistant/components/tami4/icons.json b/homeassistant/components/tami4/icons.json index 803ed9a5016..57901143fc6 100644 --- a/homeassistant/components/tami4/icons.json +++ b/homeassistant/components/tami4/icons.json @@ -9,26 +9,26 @@ } }, "sensor": { - "uv_last_replacement": { + "filter_last_replacement": { "default": "mdi:calendar" }, - "uv_upcoming_replacement": { + "filter_litters_passed": { + "default": "mdi:water" + }, + "filter_status": { + "default": "mdi:clipboard-check-multiple" + }, + "filter_upcoming_replacement": { + "default": "mdi:calendar" + }, + "uv_last_replacement": { "default": "mdi:calendar" }, "uv_status": { "default": "mdi:clipboard-check-multiple" }, - "filter_last_replacement": { + "uv_upcoming_replacement": { "default": "mdi:calendar" - }, - "filter_upcoming_replacement": { - "default": "mdi:calendar" - }, - "filter_status": { - "default": "mdi:clipboard-check-multiple" - }, - "filter_litters_passed": { - "default": "mdi:water" } } } diff --git a/homeassistant/components/tami4/strings.json b/homeassistant/components/tami4/strings.json index b89ccbe8bd9..683f9143a50 100644 --- a/homeassistant/components/tami4/strings.json +++ b/homeassistant/components/tami4/strings.json @@ -1,22 +1,32 @@ { - "entity": { - "sensor": { - "uv_upcoming_replacement": { - "name": "UV upcoming replacement" - }, - "uv_installed": { - "name": "UV installed" - }, - "filter_upcoming_replacement": { - "name": "Filter upcoming replacement" - }, - "filter_installed": { - "name": "Filter installed" - }, - "filter_litters_passed": { - "name": "Filter water passed" - } + "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%]", + "invalid_phone": "Invalid phone number, please use the following format: +972xxxxxxxx", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "otp": { + "data": { + "otp": "SMS code" + }, + "description": "Enter the code you received via SMS", + "title": "[%key:component::tami4::config::step::user::title%]" + }, + "user": { + "data": { + "phone": "Phone number" + }, + "description": "Enter your phone number (same as what you used to register to the tami4 app)", + "title": "SMS verification" + } + } + }, + "entity": { "button": { "boil_water": { "name": "Boil water" @@ -24,33 +34,23 @@ "prepare_drink": { "name": "Prepare {drink_name}" } - } - }, - "config": { - "step": { - "user": { - "title": "SMS verification", - "description": "Enter your phone number (same as what you used to register to the tami4 app)", - "data": { - "phone": "Phone number" - } + }, + "sensor": { + "filter_installed": { + "name": "Filter installed" }, - "otp": { - "title": "[%key:component::tami4::config::step::user::title%]", - "description": "Enter the code you received via SMS", - "data": { - "otp": "SMS code" - } + "filter_litters_passed": { + "name": "Filter water passed" + }, + "filter_upcoming_replacement": { + "name": "Filter upcoming replacement" + }, + "uv_installed": { + "name": "UV installed" + }, + "uv_upcoming_replacement": { + "name": "UV upcoming replacement" } - }, - "error": { - "invalid_phone": "Invalid phone number, please use the following format: +972xxxxxxxx", - "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%]" } } } diff --git a/homeassistant/components/tankerkoenig/icons.json b/homeassistant/components/tankerkoenig/icons.json index 594e016b112..05b9d3bcbca 100644 --- a/homeassistant/components/tankerkoenig/icons.json +++ b/homeassistant/components/tankerkoenig/icons.json @@ -1,13 +1,13 @@ { "entity": { "sensor": { - "e5": { + "diesel": { "default": "mdi:gas-station" }, "e10": { "default": "mdi:gas-station" }, - "diesel": { + "e5": { "default": "mdi:gas-station" } } diff --git a/homeassistant/components/tankerkoenig/strings.json b/homeassistant/components/tankerkoenig/strings.json index 43922a930af..ef120597bf3 100644 --- a/homeassistant/components/tankerkoenig/strings.json +++ b/homeassistant/components/tankerkoenig/strings.json @@ -7,21 +7,15 @@ "data_description_stations": "Select the stations you want to add to Home Assistant." }, "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "no_stations": "Could not find any station in range." + }, "step": { - "user": { - "data": { - "name": "Region name", - "api_key": "[%key:common::config_flow::data::api_key%]", - "location": "[%key:common::config_flow::data::location%]", - "radius": "Search radius" - }, - "data_description": { - "name": "[%key:component::tankerkoenig::common::data_description_name%]", - "api_key": "[%key:component::tankerkoenig::common::data_description_api_key%]", - "location": "[%key:component::tankerkoenig::common::data_description_location%]", - "radius": "[%key:component::tankerkoenig::common::data_description_radius%]" - } - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" @@ -31,41 +25,29 @@ } }, "select_station": { - "title": "Select stations to add", - "description": "Found {stations_count} stations in radius", "data": { "stations": "Stations" }, "data_description": { "stations": "[%key:component::tankerkoenig::common::data_description_stations%]" - } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "no_stations": "Could not find any station in range." - } - }, - "options": { - "step": { - "init": { - "title": "Tankerkoenig options", + }, + "description": "Found {stations_count} stations in radius", + "title": "Select stations to add" + }, + "user": { "data": { - "stations": "[%key:component::tankerkoenig::config::step::select_station::data::stations%]", - "show_on_map": "Show stations on map" + "api_key": "[%key:common::config_flow::data::api_key%]", + "location": "[%key:common::config_flow::data::location%]", + "name": "Region name", + "radius": "Search radius" }, "data_description": { - "stations": "[%key:component::tankerkoenig::common::data_description_stations%]", - "show_on_map": "Whether to show the station sensors on the map or not." + "api_key": "[%key:component::tankerkoenig::common::data_description_api_key%]", + "location": "[%key:component::tankerkoenig::common::data_description_location%]", + "name": "[%key:component::tankerkoenig::common::data_description_name%]", + "radius": "[%key:component::tankerkoenig::common::data_description_radius%]" } } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" } }, "entity": { @@ -83,35 +65,35 @@ } }, "sensor": { - "e5": { - "name": "Super", + "diesel": { + "name": "Diesel", "state_attributes": { "brand": { - "name": "Brand" - }, - "fuel_type": { - "name": "Fuel type" - }, - "station_name": { - "name": "Station name" - }, - "street": { - "name": "Street" - }, - "house_number": { - "name": "House number" - }, - "postcode": { - "name": "Postal code" + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::brand::name%]" }, "city": { - "name": "City" + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::city::name%]" + }, + "fuel_type": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::fuel_type::name%]" + }, + "house_number": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::house_number::name%]" }, "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, "longitude": { "name": "[%key:common::config_flow::data::longitude%]" + }, + "postcode": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::postcode::name%]" + }, + "station_name": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::station_name::name%]" + }, + "street": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::street::name%]" } } }, @@ -121,75 +103,93 @@ "brand": { "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::brand::name%]" }, + "city": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::city::name%]" + }, "fuel_type": { "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::fuel_type::name%]" }, - "station_name": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::station_name::name%]" - }, - "street": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::street::name%]" - }, "house_number": { "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::house_number::name%]" }, - "postcode": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::postcode::name%]" - }, - "city": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::city::name%]" - }, "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, "longitude": { "name": "[%key:common::config_flow::data::longitude%]" + }, + "postcode": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::postcode::name%]" + }, + "station_name": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::station_name::name%]" + }, + "street": { + "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::street::name%]" } } }, - "diesel": { - "name": "Diesel", + "e5": { + "name": "Super", "state_attributes": { "brand": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::brand::name%]" - }, - "fuel_type": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::fuel_type::name%]" - }, - "station_name": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::station_name::name%]" - }, - "street": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::street::name%]" - }, - "house_number": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::house_number::name%]" - }, - "postcode": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::postcode::name%]" + "name": "Brand" }, "city": { - "name": "[%key:component::tankerkoenig::entity::sensor::e5::state_attributes::city::name%]" + "name": "City" + }, + "fuel_type": { + "name": "Fuel type" + }, + "house_number": { + "name": "House number" }, "latitude": { "name": "[%key:common::config_flow::data::latitude%]" }, "longitude": { "name": "[%key:common::config_flow::data::longitude%]" + }, + "postcode": { + "name": "Postal code" + }, + "station_name": { + "name": "Station name" + }, + "street": { + "name": "Street" } } } } }, "exceptions": { - "rate_limit_reached": { - "message": "You have reached the rate limit for the Tankerkoenig API. Please try to increase the poll interval and reduce the requests." - }, "invalid_api_key": { "message": "The provided API key is invalid. Please check your API key." }, + "rate_limit_reached": { + "message": "You have reached the rate limit for the Tankerkoenig API. Please try to increase the poll interval and reduce the requests." + }, "station_update_failed": { "message": "Failed to update station data for station(s) {station_ids}. Please check your network connection." } + }, + "options": { + "error": { + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" + }, + "step": { + "init": { + "data": { + "show_on_map": "Show stations on map", + "stations": "[%key:component::tankerkoenig::config::step::select_station::data::stations%]" + }, + "data_description": { + "show_on_map": "Whether to show the station sensors on the map or not.", + "stations": "[%key:component::tankerkoenig::common::data_description_stations%]" + }, + "title": "Tankerkoenig options" + } + } } } diff --git a/homeassistant/components/tasmota/strings.json b/homeassistant/components/tasmota/strings.json index 13edee55110..c791aaa0e57 100644 --- a/homeassistant/components/tasmota/strings.json +++ b/homeassistant/components/tasmota/strings.json @@ -1,30 +1,30 @@ { "config": { - "step": { - "confirm": { - "description": "Do you want to set up Tasmota?" - }, - "config": { - "data": { - "discovery_prefix": "Discovery topic prefix" - } - } - }, "abort": { "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "invalid_discovery_topic": "Invalid discovery topic prefix." + }, + "step": { + "config": { + "data": { + "discovery_prefix": "Discovery topic prefix" + } + }, + "confirm": { + "description": "Do you want to set up Tasmota?" + } } }, "issues": { "topic_duplicated": { - "title": "Several Tasmota devices are sharing the same topic", - "description": "Several Tasmota devices are sharing the topic {topic}.\n\nTasmota devices with this problem: {offenders}." + "description": "Several Tasmota devices are sharing the topic {topic}.\n\nTasmota devices with this problem: {offenders}.", + "title": "Several Tasmota devices are sharing the same topic" }, "topic_no_prefix": { - "title": "Tasmota device {name} has an invalid MQTT topic", - "description": "Tasmota device {name} with IP {ip} does not include `%prefix%` in its FullTopic.\n\nEntities for this device are disabled until the configuration has been corrected." + "description": "Tasmota device {name} with IP {ip} does not include `%prefix%` in its FullTopic.\n\nEntities for this device are disabled until the configuration has been corrected.", + "title": "Tasmota device {name} has an invalid MQTT topic" } } } diff --git a/homeassistant/components/tautulli/icons.json b/homeassistant/components/tautulli/icons.json index 487f11e77f0..4fb2de5d847 100644 --- a/homeassistant/components/tautulli/icons.json +++ b/homeassistant/components/tautulli/icons.json @@ -1,7 +1,10 @@ { "entity": { "sensor": { - "watching_count": { + "progress": { + "default": "mdi:progress-clock" + }, + "state": { "default": "mdi:plex" }, "stream_count_direct_play": { @@ -22,13 +25,10 @@ "top_user": { "default": "mdi:walk" }, - "state": { + "transcode_decision": { "default": "mdi:plex" }, - "progress": { - "default": "mdi:progress-clock" - }, - "transcode_decision": { + "watching_count": { "default": "mdi:plex" } } diff --git a/homeassistant/components/tautulli/strings.json b/homeassistant/components/tautulli/strings.json index 005ca7e31c2..814dc650e47 100644 --- a/homeassistant/components/tautulli/strings.json +++ b/homeassistant/components/tautulli/strings.json @@ -1,36 +1,48 @@ { "config": { - "step": { - "user": { - "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.\n\nExample of the URL: ```{sample_url}``` with {sample_port} being the default port.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - }, - "reauth_confirm": { - "title": "Re-authenticate Tautulli", - "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.", + "title": "Re-authenticate Tautulli" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "description": "To find your API key, open the Tautulli webpage and navigate to Settings and then to Web interface. The API key will be at the bottom of that page.\n\nExample of the URL: ```{sample_url}``` with {sample_port} being the default port." + } } }, "entity": { "sensor": { - "watching_count": { - "name": "Watching" + "full_title": { + "name": "Full title" + }, + "lan_bandwidth": { + "name": "LAN bandwidth" + }, + "progress": { + "name": "Progress" + }, + "session_thumb": { + "name": "Session thumbnail" + }, + "state": { + "name": "State" }, "stream_count_direct_play": { "name": "Direct plays" @@ -41,14 +53,8 @@ "stream_count_transcode": { "name": "Transcodes" }, - "total_bandwidth": { - "name": "Total bandwidth" - }, - "lan_bandwidth": { - "name": "LAN bandwidth" - }, - "wan_bandwidth": { - "name": "WAN bandwidth" + "stream_resolution": { + "name": "Stream resolution" }, "top_movies": { "name": "Top movie" @@ -59,26 +65,20 @@ "top_user": { "name": "Top user" }, - "state": { - "name": "State" - }, - "full_title": { - "name": "Full title" - }, - "progress": { - "name": "Progress" - }, - "stream_resolution": { - "name": "Stream resolution" + "total_bandwidth": { + "name": "Total bandwidth" }, "transcode_decision": { "name": "Transcode decision" }, - "session_thumb": { - "name": "Session thumbnail" - }, "video_resolution": { "name": "Video resolution" + }, + "wan_bandwidth": { + "name": "WAN bandwidth" + }, + "watching_count": { + "name": "Watching" } } } diff --git a/homeassistant/components/technove/strings.json b/homeassistant/components/technove/strings.json index 29aba780f26..98bb4b9562b 100644 --- a/homeassistant/components/technove/strings.json +++ b/homeassistant/components/technove/strings.json @@ -1,27 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "user": { - "description": "Set up your TechnoVE station to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "Hostname or IP address of your TechnoVE station." - } + }, + "description": "Set up your TechnoVE station to integrate with Home Assistant." }, "zeroconf_confirm": { "description": "Do you want to add the TechnoVE Station named `{name}` to Home Assistant?", "title": "Discovered TechnoVE station" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "entity": { @@ -45,20 +45,14 @@ } }, "sensor": { - "voltage_in": { - "name": "Input voltage" - }, - "voltage_out": { - "name": "Output voltage" - }, - "max_station_current": { - "name": "Max station current" + "energy_session": { + "name": "Last session energy usage" }, "energy_total": { "name": "Total energy usage" }, - "energy_session": { - "name": "Last session energy usage" + "max_station_current": { + "name": "Max station current" }, "ssid": { "name": "Wi-Fi network name" @@ -66,12 +60,18 @@ "status": { "name": "Status", "state": { - "unplugged": "Unplugged", - "plugged_waiting": "Plugged, waiting", - "plugged_charging": "Plugged, charging", + "high_tariff_period": "High tariff period", "out_of_activation_period": "Out of activation period", - "high_tariff_period": "High tariff period" + "plugged_charging": "Plugged, charging", + "plugged_waiting": "Plugged, waiting", + "unplugged": "Unplugged" } + }, + "voltage_in": { + "name": "Input voltage" + }, + "voltage_out": { + "name": "Output voltage" } }, "switch": { diff --git a/homeassistant/components/tedee/icons.json b/homeassistant/components/tedee/icons.json index 4fae6e0fcd2..ef9ee1402d9 100644 --- a/homeassistant/components/tedee/icons.json +++ b/homeassistant/components/tedee/icons.json @@ -3,8 +3,8 @@ "binary_sensor": { "uncalibrated": { "state": { - "on": "mdi:sync-alert", - "off": "mdi:sync" + "off": "mdi:sync", + "on": "mdi:sync-alert" } } }, diff --git a/homeassistant/components/tedee/strings.json b/homeassistant/components/tedee/strings.json index c7204b6d2a9..57b03cdaf3e 100644 --- a/homeassistant/components/tedee/strings.json +++ b/homeassistant/components/tedee/strings.json @@ -1,40 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up your tedee locks", - "data": { - "local_access_token": "Local access token", - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "The IP address of the bridge you want to connect to.", - "local_access_token": "You can find it in the tedee app under \"Bridge Settings\" -> \"Local API\"." - } - }, - "reauth_confirm": { - "title": "Update of access key required", - "description": "Tedee needs an updated access key because the existing one is invalid or might have expired.", - "data": { - "local_access_token": "[%key:component::tedee::config::step::user::data::local_access_token%]" - }, - "data_description": { - "local_access_token": "[%key:component::tedee::config::step::user::data_description::local_access_token%]" - } - }, - "reconfigure": { - "title": "Reconfigure tedee", - "description": "Update the settings of this integration.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "local_access_token": "[%key:component::tedee::config::step::user::data::local_access_token%]" - }, - "data_description": { - "host": "[%key:component::tedee::config::step::user::data_description::host%]", - "local_access_token": "[%key:component::tedee::config::step::user::data_description::local_access_token%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", @@ -42,9 +7,44 @@ "unique_id_mismatch": "You selected a different bridge than the one this config entry was configured with, this is not allowed." }, "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, + "step": { + "reauth_confirm": { + "data": { + "local_access_token": "[%key:component::tedee::config::step::user::data::local_access_token%]" + }, + "data_description": { + "local_access_token": "[%key:component::tedee::config::step::user::data_description::local_access_token%]" + }, + "description": "Tedee needs an updated access key because the existing one is invalid or might have expired.", + "title": "Update of access key required" + }, + "reconfigure": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "local_access_token": "[%key:component::tedee::config::step::user::data::local_access_token%]" + }, + "data_description": { + "host": "[%key:component::tedee::config::step::user::data_description::host%]", + "local_access_token": "[%key:component::tedee::config::step::user::data_description::local_access_token%]" + }, + "description": "Update the settings of this integration.", + "title": "Reconfigure tedee" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "local_access_token": "Local access token" + }, + "data_description": { + "host": "The IP address of the bridge you want to connect to.", + "local_access_token": "You can find it in the tedee app under \"Bridge Settings\" -> \"Local API\"." + }, + "title": "Set up your tedee locks" + } } }, "entity": { @@ -75,14 +75,14 @@ "lock_failed": { "message": "Failed to lock the door. Lock {lock_id}" }, + "open_failed": { + "message": "Failed to unlatch the door. Lock {lock_id}" + }, "unlock_failed": { "message": "Failed to unlock the door. Lock {lock_id}" }, "update_failed": { "message": "Error while updating data" - }, - "open_failed": { - "message": "Failed to unlatch the door. Lock {lock_id}" } } } diff --git a/homeassistant/components/telegram/strings.json b/homeassistant/components/telegram/strings.json index 34a98f908dc..054fc10e2a5 100644 --- a/homeassistant/components/telegram/strings.json +++ b/homeassistant/components/telegram/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads telegram notify services." + "description": "Reloads telegram notify services.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/telegram_bot/icons.json b/homeassistant/components/telegram_bot/icons.json index 0df25f97944..b16ddb1004c 100644 --- a/homeassistant/components/telegram_bot/icons.json +++ b/homeassistant/components/telegram_bot/icons.json @@ -1,34 +1,13 @@ { "services": { - "send_message": { - "service": "mdi:send" + "answer_callback_query": { + "service": "mdi:check" }, - "send_chat_action": { - "service": "mdi:send" + "delete_message": { + "service": "mdi:delete" }, - "send_photo": { - "service": "mdi:camera" - }, - "send_sticker": { - "service": "mdi:sticker" - }, - "send_animation": { - "service": "mdi:animation" - }, - "send_video": { - "service": "mdi:video" - }, - "send_voice": { - "service": "mdi:microphone" - }, - "send_document": { - "service": "mdi:file-document" - }, - "send_location": { - "service": "mdi:map-marker" - }, - "send_poll": { - "service": "mdi:poll" + "edit_caption": { + "service": "mdi:pencil" }, "edit_message": { "service": "mdi:pencil" @@ -36,21 +15,42 @@ "edit_message_media": { "service": "mdi:pencil" }, - "edit_caption": { - "service": "mdi:pencil" - }, "edit_replymarkup": { "service": "mdi:pencil" }, - "answer_callback_query": { - "service": "mdi:check" - }, - "delete_message": { - "service": "mdi:delete" - }, "leave_chat": { "service": "mdi:exit-run" }, + "send_animation": { + "service": "mdi:animation" + }, + "send_chat_action": { + "service": "mdi:send" + }, + "send_document": { + "service": "mdi:file-document" + }, + "send_location": { + "service": "mdi:map-marker" + }, + "send_message": { + "service": "mdi:send" + }, + "send_photo": { + "service": "mdi:camera" + }, + "send_poll": { + "service": "mdi:poll" + }, + "send_sticker": { + "service": "mdi:sticker" + }, + "send_video": { + "service": "mdi:video" + }, + "send_voice": { + "service": "mdi:microphone" + }, "set_message_reaction": { "service": "mdi:emoticon-happy" } diff --git a/homeassistant/components/telegram_bot/strings.json b/homeassistant/components/telegram_bot/strings.json index 07fa777be3b..937a4014f76 100644 --- a/homeassistant/components/telegram_bot/strings.json +++ b/homeassistant/components/telegram_bot/strings.json @@ -1,157 +1,191 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "invalid_proxy_url": "{proxy_url_error}", + "invalid_trusted_networks": "Invalid trusted network: {error_message}", + "invalid_url": "URL must start with https", + "no_url_available": "URL is required since you have not configured an external URL in Home Assistant", + "telegram_error": "Error from Telegram: {error_message}" + }, "step": { - "user": { - "description": "To create a Telegram bot, follow these steps:\n\n1. Open Telegram and start a chat with [{botfather_username}]({botfather_url}).\n1. Send the command `/newbot`.\n1. Follow the instructions to create your bot and get your API token.", + "reauth_confirm": { "data": { - "platform": "Platform", - "api_key": "[%key:common::config_flow::data::api_token%]" + "api_key": "[%key:common::config_flow::data::api_key%]" }, "data_description": { - "platform": "Telegram bot implementation", - "api_key": "The API token of your bot." + "api_key": "[%key:component::telegram_bot::config::step::user::data_description::api_key%]" }, - "sections": { - "advanced_settings": { - "name": "Advanced settings", - "data": { - "proxy_url": "Proxy URL" - }, - "data_description": { - "proxy_url": "Proxy URL if working behind one, optionally including username and password.\n(socks5://username:password@proxy_ip:proxy_port)" - } - } - } - }, - "webhooks": { - "title": "Webhooks network configuration", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "trusted_networks": "Trusted networks" - }, - "data_description": { - "url": "Allow to overwrite the external URL from the Home Assistant configuration for different setups.", - "trusted_networks": "Telegram server access ACL as list.\nDefault: 149.154.160.0/20, 91.108.4.0/22" - } + "title": "Re-authenticate Telegram bot" }, "reconfigure": { - "title": "Telegram bot setup", - "description": "Reconfigure Telegram bot", "data": { "platform": "[%key:component::telegram_bot::config::step::user::data::platform%]" }, "data_description": { "platform": "[%key:component::telegram_bot::config::step::user::data_description::platform%]" }, + "description": "Reconfigure Telegram bot", "sections": { "advanced_settings": { - "name": "[%key:component::telegram_bot::config::step::user::sections::advanced_settings::name%]", "data": { "proxy_url": "[%key:component::telegram_bot::config::step::user::sections::advanced_settings::data::proxy_url%]" }, "data_description": { "proxy_url": "[%key:component::telegram_bot::config::step::user::sections::advanced_settings::data_description::proxy_url%]" - } + }, + "name": "[%key:component::telegram_bot::config::step::user::sections::advanced_settings::name%]" + } + }, + "title": "Telegram bot setup" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_token%]", + "platform": "Platform" + }, + "data_description": { + "api_key": "The API token of your bot.", + "platform": "Telegram bot implementation" + }, + "description": "To create a Telegram bot, follow these steps:\n\n1. Open Telegram and start a chat with [{botfather_username}]({botfather_url}).\n1. Send the command `/newbot`.\n1. Follow the instructions to create your bot and get your API token.", + "sections": { + "advanced_settings": { + "data": { + "proxy_url": "Proxy URL" + }, + "data_description": { + "proxy_url": "Proxy URL if working behind one, optionally including username and password.\n(socks5://username:password@proxy_ip:proxy_port)" + }, + "name": "Advanced settings" } } }, - "reauth_confirm": { - "title": "Re-authenticate Telegram bot", + "webhooks": { "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" + "trusted_networks": "Trusted networks", + "url": "[%key:common::config_flow::data::url%]" }, "data_description": { - "api_key": "[%key:component::telegram_bot::config::step::user::data_description::api_key%]" - } - } - }, - "error": { - "telegram_error": "Error from Telegram: {error_message}", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "invalid_proxy_url": "{proxy_url_error}", - "no_url_available": "URL is required since you have not configured an external URL in Home Assistant", - "invalid_url": "URL must start with https", - "invalid_trusted_networks": "Invalid trusted network: {error_message}" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { - "title": "Configure Telegram bot", - "data": { - "parse_mode": "Parse mode" + "trusted_networks": "Telegram server access ACL as list.\nDefault: 149.154.160.0/20, 91.108.4.0/22", + "url": "Allow to overwrite the external URL from the Home Assistant configuration for different setups." }, - "data_description": { - "parse_mode": "Default parse mode for messages if not explicit in message data." - } + "title": "Webhooks network configuration" } } }, "config_subentries": { "allowed_chat_ids": { + "abort": { + "already_configured": "Chat already configured" + }, + "error": { + "chat_not_found": "Chat not found" + }, "initiate_flow": { "user": "Add allowed chat ID" }, "step": { "user": { - "title": "Add chat", "data": { "chat_id": "Chat ID" }, "data_description": { "chat_id": "ID representing the user or group chat to which messages can be sent." - } + }, + "title": "Add chat" } - }, - "error": { - "chat_not_found": "Chat not found" - }, - "abort": { - "already_configured": "Chat already configured" + } + } + }, + "exceptions": { + "action_failed": { + "message": "Action failed. {error}" + }, + "allowlist_external_dirs_error": { + "message": "File path has not been configured in allowlist_external_dirs." + }, + "failed_chat_ids": { + "message": "Failed targets: {chat_ids}. Please verify that the chat IDs for {bot_name} have been configured." + }, + "failed_to_load_file": { + "message": "Failed to load file: {error}" + }, + "failed_to_load_url": { + "message": "Failed to load URL: {error}" + }, + "invalid_chat_ids": { + "message": "Invalid chat IDs: {chat_ids}. Please configure the chat IDs for {bot_name}." + }, + "invalid_inline_keyboard": { + "message": "Invalid value for inline keyboard. Only strings or lists are accepted." + }, + "missing_allowed_chat_ids": { + "message": "No allowed chat IDs found. Please add allowed chat IDs for {bot_name}." + }, + "missing_config_entry": { + "message": "No config entries found or setup failed. Please set up the Telegram Bot first." + }, + "missing_input": { + "message": "{field} is required." + }, + "multiple_config_entry": { + "message": "Multiple config entries found. Please specify the Telegram bot to use in the Config entry ID field." + } + }, + "issues": { + "deprecated_yaml": { + "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue.", + "title": "The {integration_title} YAML configuration is being removed" + }, + "deprecated_yaml_import_issue_error": { + "description": "Configuring {integration_title} using YAML is being removed but there was an error while importing your existing configuration ({telegram_bot}): {error_message}.\nSetup will not proceed.\n\nVerify that your {telegram_bot} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually.", + "title": "YAML import failed due to invalid {error_field}" + }, + "deprecated_yaml_import_issue_has_more_platforms": { + "description": "Configuring {integration_title} using YAML is being removed.\n\nThe last entry of your existing YAML configuration ({telegram_bot}) has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue. The other Telegram bots will need to be configured manually in the UI.", + "title": "The {integration_title} YAML configuration is being removed" + } + }, + "options": { + "step": { + "init": { + "data": { + "parse_mode": "Parse mode" + }, + "data_description": { + "parse_mode": "Default parse mode for messages if not explicit in message data." + }, + "title": "Configure Telegram bot" } } }, "selector": { - "platforms": { - "options": { - "broadcast": "Broadcast", - "polling": "Polling", - "webhooks": "Webhooks" - } - }, - "parse_mode": { - "options": { - "markdown": "Markdown (Legacy)", - "markdownv2": "MarkdownV2", - "html": "HTML", - "plain_text": "Plain text" - } - }, "authentication": { "options": { "basic": "Basic", - "digest": "Digest", - "bearer_token": "Bearer token" + "bearer_token": "Bearer token", + "digest": "Digest" } }, "chat_action": { "options": { - "typing": "Typing", - "upload_photo": "Uploading photo", - "record_video": "Recording video", - "upload_video": "Uploading video", - "record_voice": "Recording voice", - "upload_voice": "Uploading voice", - "upload_document": "Uploading document", "choose_sticker": "Choosing sticker", "find_location": "Finding location", + "record_video": "Recording video", "record_video_note": "Recording video note", - "upload_video_note": "Uploading video note" + "record_voice": "Recording voice", + "typing": "Typing", + "upload_document": "Uploading document", + "upload_photo": "Uploading photo", + "upload_video": "Uploading video", + "upload_video_note": "Uploading video note", + "upload_voice": "Uploading voice" } }, "media_type": { @@ -162,549 +196,405 @@ "photo": "Photo", "video": "Video" } + }, + "parse_mode": { + "options": { + "html": "HTML", + "markdown": "Markdown (Legacy)", + "markdownv2": "MarkdownV2", + "plain_text": "Plain text" + } + }, + "platforms": { + "options": { + "broadcast": "Broadcast", + "polling": "Polling", + "webhooks": "Webhooks" + } } }, "services": { - "send_message": { - "name": "Send message", - "description": "Sends a notification.", + "answer_callback_query": { + "description": "Responds to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.", "fields": { + "callback_query_id": { + "description": "Unique ID of the callback response.", + "name": "Callback query ID" + }, "config_entry_id": { - "name": "Config entry ID", - "description": "The config entry representing the Telegram bot to send the message." + "description": "The config entry representing the Telegram bot to answer the callback query.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "message": { - "name": "Message", - "description": "Message body of the notification." + "description": "Unformatted text message body of the notification.", + "name": "Message" }, - "title": { - "name": "Title", - "description": "Optional title for your notification. Will be composed as '%title\\n%message'." - }, - "target": { - "name": "Target", - "description": "An array of pre-authorized chat IDs to send the notification to. If not present, first allowed chat ID is the default." - }, - "parse_mode": { - "name": "Parse mode", - "description": "Parser for the message text." - }, - "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." - }, - "disable_web_page_preview": { - "name": "Disable web page preview", - "description": "Disables link previews for links in the message." + "show_alert": { + "description": "Show a permanent notification.", + "name": "Show alert" }, "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the message in seconds. Will help with timeout errors (poor Internet connection, etc)." + "description": "Timeout for sending the answer in seconds.", + "name": "Read timeout" + } + }, + "name": "Answer callback query" + }, + "delete_message": { + "description": "Deletes a previously sent message.", + "fields": { + "chat_id": { + "description": "ID of the chat where to delete the message.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" }, - "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard. Empty list clears a previously set keyboard." + "config_entry_id": { + "description": "The config entry representing the Telegram bot to delete the message.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "message_id": { + "description": "ID of the message to delete.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]" + } + }, + "name": "Delete message" + }, + "edit_caption": { + "description": "Edits the caption of a previously sent message.", + "fields": { + "caption": { + "description": "Message body of the notification.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" + }, + "chat_id": { + "description": "ID of the chat where to edit the caption.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to edit the caption.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "message_id": { + "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]" + } + }, + "name": "Edit caption" + }, + "edit_message": { + "description": "Edits a previously sent message.", + "fields": { + "chat_id": { + "description": "ID of the chat where to edit the message.", + "name": "Chat ID" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to edit the message.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "disable_web_page_preview": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "message": { + "description": "Message body of the notification.", + "name": "Message" + }, + "message_id": { + "description": "ID of the message to edit.", + "name": "Message ID" + }, + "parse_mode": { + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]" + }, + "title": { + "description": "[%key:component::telegram_bot::services::send_message::fields::title::description%]", + "name": "Title" + } + }, + "name": "Edit message" + }, + "edit_message_media": { + "description": "Edits the media content of a previously sent message.", + "fields": { + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" + }, + "caption": { + "description": "The title of the media.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" + }, + "chat_id": { + "description": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::description%]", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to edit the message media.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "file": { + "description": "Local path to the media.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "media_type": { + "description": "Type for the new media.", + "name": "Media type" + }, + "message_id": { + "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]" + }, + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "timeout": { + "description": "Timeout for sending the media in seconds.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::timeout::name%]" + }, + "url": { + "description": "Remote path to the media.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::name%]" + } + }, + "name": "Edit message media", + "sections": { + "url_options": { + "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" + } + } + }, + "edit_replymarkup": { + "description": "Edits the inline keyboard of a previously sent message.", + "fields": { + "chat_id": { + "description": "ID of the chat where to edit the reply markup.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to edit the reply markup.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "message_id": { + "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]" + } + }, + "name": "Edit reply markup" + }, + "leave_chat": { + "description": "Removes the bot from the chat.", + "fields": { + "chat_id": { + "description": "Chat ID of the group from which the bot should be removed.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to leave the chat.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + } + }, + "name": "Leave chat" + }, + "send_animation": { + "description": "Sends an animation.", + "fields": { + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" + }, + "caption": { + "description": "The title of the animation.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the animation.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "disable_notification": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" + }, + "file": { + "description": "Local path to a GIF or H.264/MPEG-4 AVC video without sound.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message." - }, - "reply_to_message_id": { - "name": "Reply to message ID", - "description": "Mark the message as a reply to a previous message." + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" }, "message_thread_id": { - "name": "Message thread ID", - "description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only." + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "parse_mode": { + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]", + "name": "Parse Mode" + }, + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]", + "name": "Target" + }, + "timeout": { + "description": "[%key:component::telegram_bot::services::send_sticker::fields::timeout::description%]", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to a GIF or H.264/MPEG-4 AVC video without sound.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "Verify SSL" + } + }, + "name": "Send animation", + "sections": { + "url_options": { + "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" } } }, "send_chat_action": { - "name": "Send chat action", "description": "Sends a chat action.", "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the chat action." - }, "chat_action": { - "name": "Chat action", - "description": "Chat action to be sent." + "description": "Chat action to be sent.", + "name": "Chat action" }, - "target": { - "name": "Target", - "description": "An array of pre-authorized chat IDs to send the chat action to. If not present, first allowed chat ID is the default." - }, - "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - } - }, - "send_photo": { - "name": "Send photo", - "description": "Sends a photo.", - "fields": { "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the photo." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to an image." - }, - "file": { - "name": "File", - "description": "Local path to an image." - }, - "caption": { - "name": "Caption", - "description": "The title of the image." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "Username for a URL that requires 'Basic' or 'Digest' authentication." - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "Password (or bearer token) for a URL that requires authentication." - }, - "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to 'Basic' for HTTP basic authentication, 'Digest' for HTTP digest authentication, or 'Bearer token' for OAuth 2.0 bearer token authentication." - }, - "target": { - "name": "Target", - "description": "An array of pre-authorized chat IDs to send the document to. If not present, first allowed chat ID is the default." - }, - "parse_mode": { - "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" - }, - "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "verify_ssl": { - "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Disable if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." - }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the photo in seconds." - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - }, - "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" + "description": "The config entry representing the Telegram bot to send the chat action.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "target": { + "description": "An array of pre-authorized chat IDs to send the chat action to. If not present, first allowed chat ID is the default.", + "name": "Target" } }, - "sections": { - "url_options": { - "name": "URL options" - } - } - }, - "send_sticker": { - "name": "Send sticker", - "description": "Sends a sticker.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the sticker." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to a static .webp or animated .tgs sticker." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to a static .webp or animated .tgs sticker." - }, - "sticker_id": { - "name": "Sticker ID", - "description": "ID of a sticker that exists on telegram servers." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" - }, - "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "verify_ssl": { - "name": "Verify SSL", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the sticker in seconds." - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - }, - "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" - }, - "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - }, - "sections": { - "url_options": { - "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" - } - } - }, - "send_animation": { - "name": "Send animation", - "description": "Sends an animation.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the animation." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to a GIF or H.264/MPEG-4 AVC video without sound." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to a GIF or H.264/MPEG-4 AVC video without sound." - }, - "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "The title of the animation." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" - }, - "parse_mode": { - "name": "Parse Mode", - "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" - }, - "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "verify_ssl": { - "name": "Verify SSL", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "[%key:component::telegram_bot::services::send_sticker::fields::timeout::description%]" - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - }, - "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" - }, - "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - }, - "sections": { - "url_options": { - "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" - } - } - }, - "send_video": { - "name": "Send video", - "description": "Sends a video.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the video." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to a video." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to a video." - }, - "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "The title of the video." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" - }, - "parse_mode": { - "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" - }, - "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "verify_ssl": { - "name": "Verify SSL", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the video in seconds." - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - }, - "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" - }, - "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - }, - "sections": { - "url_options": { - "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" - } - } - }, - "send_voice": { - "name": "Send voice", - "description": "Sends a voice message.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the voice message." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to a voice message." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to a voice message." - }, - "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "The title of the voice message." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" - }, - "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "verify_ssl": { - "name": "Verify SSL", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the voice in seconds." - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - }, - "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" - }, - "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - }, - "sections": { - "url_options": { - "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" - } - } + "name": "Send chat action" }, "send_document": { - "name": "Send document", "description": "Sends a document.", "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the document." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to a document." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to a document." + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" }, "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "The title of the document." + "description": "The title of the document.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" - }, - "parse_mode": { - "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the document.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" }, - "verify_ssl": { - "name": "Verify SSL", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the document in seconds." - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" + "file": { + "description": "Local path to a document.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" }, "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" }, "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" }, "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "parse_mode": { + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]" + }, + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]", + "name": "Target" + }, + "timeout": { + "description": "Timeout for sending the document in seconds.", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to a document.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "Verify SSL" } }, + "name": "Send document", "sections": { "url_options": { "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" @@ -712,386 +602,496 @@ } }, "send_location": { - "name": "Send location", "description": "Sends a location.", "fields": { "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the location." - }, - "latitude": { - "name": "[%key:common::config_flow::data::latitude%]", - "description": "The latitude to send." - }, - "longitude": { - "name": "[%key:common::config_flow::data::longitude%]", - "description": "The longitude to send." - }, - "target": { - "name": "Target", - "description": "An array of pre-authorized chat IDs to send the location to. If not present, first allowed chat ID is the default." + "description": "The config entry representing the Telegram bot to send the location.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" - }, - "timeout": { - "name": "Read timeout", - "description": "[%key:component::telegram_bot::services::send_photo::fields::timeout::description%]" - }, - "keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" }, "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" + }, + "latitude": { + "description": "The latitude to send.", + "name": "[%key:common::config_flow::data::latitude%]" + }, + "longitude": { + "description": "The longitude to send.", + "name": "[%key:common::config_flow::data::longitude%]" }, "message_tag": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" }, "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "An array of pre-authorized chat IDs to send the location to. If not present, first allowed chat ID is the default.", + "name": "Target" + }, + "timeout": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::timeout::description%]", + "name": "Read timeout" + } + }, + "name": "Send location" + }, + "send_message": { + "description": "Sends a notification.", + "fields": { + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the message.", + "name": "Config entry ID" + }, + "disable_notification": { + "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound.", + "name": "Disable notification" + }, + "disable_web_page_preview": { + "description": "Disables link previews for links in the message.", + "name": "Disable web page preview" + }, + "inline_keyboard": { + "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.", + "name": "Inline keyboard" + }, + "keyboard": { + "description": "List of rows of commands, comma-separated, to make a custom keyboard. Empty list clears a previously set keyboard.", + "name": "Keyboard" + }, + "message": { + "description": "Message body of the notification.", + "name": "Message" + }, + "message_tag": { + "description": "Tag for sent message.", + "name": "Message tag" + }, + "message_thread_id": { + "description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only.", + "name": "Message thread ID" + }, + "parse_mode": { + "description": "Parser for the message text.", + "name": "Parse mode" + }, + "reply_to_message_id": { + "description": "Mark the message as a reply to a previous message.", + "name": "Reply to message ID" + }, + "target": { + "description": "An array of pre-authorized chat IDs to send the notification to. If not present, first allowed chat ID is the default.", + "name": "Target" + }, + "timeout": { + "description": "Timeout for sending the message in seconds. Will help with timeout errors (poor Internet connection, etc).", + "name": "Read timeout" + }, + "title": { + "description": "Optional title for your notification. Will be composed as '%title\\n%message'.", + "name": "Title" + } + }, + "name": "Send message" + }, + "send_photo": { + "description": "Sends a photo.", + "fields": { + "authentication": { + "description": "Define which authentication method to use. Set to 'Basic' for HTTP basic authentication, 'Digest' for HTTP digest authentication, or 'Bearer token' for OAuth 2.0 bearer token authentication.", + "name": "Authentication method" + }, + "caption": { + "description": "The title of the image.", + "name": "Caption" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the photo.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "disable_notification": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" + }, + "file": { + "description": "Local path to an image.", + "name": "File" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "List of rows of commands, comma-separated, to make a custom keyboard.", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" + }, + "message_tag": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" + }, + "message_thread_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "parse_mode": { + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]" + }, + "password": { + "description": "Password (or bearer token) for a URL that requires authentication.", + "name": "[%key:common::config_flow::data::password%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "An array of pre-authorized chat IDs to send the document to. If not present, first allowed chat ID is the default.", + "name": "Target" + }, + "timeout": { + "description": "Timeout for sending the photo in seconds.", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to an image.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "Username for a URL that requires 'Basic' or 'Digest' authentication.", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "Enable or disable SSL certificate verification. Disable if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server.", + "name": "Verify SSL" + } + }, + "name": "Send photo", + "sections": { + "url_options": { + "name": "URL options" } } }, "send_poll": { - "name": "Send poll", "description": "Sends a poll.", "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to send the poll." - }, - "target": { - "name": "Target", - "description": "[%key:component::telegram_bot::services::send_location::fields::target::description%]" - }, - "question": { - "name": "Question", - "description": "Poll question, 1-300 characters." - }, - "options": { - "name": "Options", - "description": "List of answer options, 2-10 strings 1-100 characters each." - }, - "is_anonymous": { - "name": "Is anonymous", - "description": "If the poll needs to be anonymous. This is the default." - }, "allows_multiple_answers": { - "name": "Allow multiple answers", - "description": "If the poll allows multiple answers." + "description": "If the poll allows multiple answers.", + "name": "Allow multiple answers" }, - "open_period": { - "name": "Open period", - "description": "Amount of time in seconds the poll will be active after creation, 5-600." + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the poll.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "disable_notification": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" }, - "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the poll in seconds." - }, - "reply_to_message_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]" + "is_anonymous": { + "description": "If the poll needs to be anonymous. This is the default.", + "name": "Is anonymous" }, "message_thread_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]" - } - } - }, - "edit_message": { - "name": "Edit message", - "description": "Edits a previously sent message.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to edit the message." + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" }, - "message_id": { - "name": "Message ID", - "description": "ID of the message to edit." + "open_period": { + "description": "Amount of time in seconds the poll will be active after creation, 5-600.", + "name": "Open period" }, - "chat_id": { - "name": "Chat ID", - "description": "ID of the chat where to edit the message." + "options": { + "description": "List of answer options, 2-10 strings 1-100 characters each.", + "name": "Options" }, - "message": { - "name": "Message", - "description": "Message body of the notification." + "question": { + "description": "Poll question, 1-300 characters.", + "name": "Question" }, - "title": { - "name": "Title", - "description": "[%key:component::telegram_bot::services::send_message::fields::title::description%]" + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" }, - "parse_mode": { - "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" - }, - "disable_web_page_preview": { - "name": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::description%]" - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - } - } - }, - "edit_message_media": { - "name": "Edit message media", - "description": "Edits the media content of a previously sent message.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to edit the message media." - }, - "message_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", - "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]" - }, - "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::description%]" - }, - "media_type": { - "name": "Media type", - "description": "Type for the new media." - }, - "url": { - "name": "[%key:common::config_flow::data::url%]", - "description": "Remote path to the media." - }, - "file": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", - "description": "Local path to the media." - }, - "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "The title of the media." - }, - "username": { - "name": "[%key:common::config_flow::data::username%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" - }, - "password": { - "name": "[%key:common::config_flow::data::password%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" - }, - "authentication": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" - }, - "verify_ssl": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::name%]", - "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" + "target": { + "description": "[%key:component::telegram_bot::services::send_location::fields::target::description%]", + "name": "Target" }, "timeout": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::timeout::name%]", - "description": "Timeout for sending the media in seconds." - }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" + "description": "Timeout for sending the poll in seconds.", + "name": "Read timeout" } }, + "name": "Send poll" + }, + "send_sticker": { + "description": "Sends a sticker.", + "fields": { + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the sticker.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "disable_notification": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" + }, + "file": { + "description": "Local path to a static .webp or animated .tgs sticker.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" + }, + "message_tag": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" + }, + "message_thread_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "sticker_id": { + "description": "ID of a sticker that exists on telegram servers.", + "name": "Sticker ID" + }, + "target": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]", + "name": "Target" + }, + "timeout": { + "description": "Timeout for sending the sticker in seconds.", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to a static .webp or animated .tgs sticker.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "Verify SSL" + } + }, + "name": "Send sticker", "sections": { "url_options": { "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" } } }, - "edit_caption": { - "name": "Edit caption", - "description": "Edits the caption of a previously sent message.", + "send_video": { + "description": "Sends a video.", "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to edit the caption." - }, - "message_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", - "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]" - }, - "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "ID of the chat where to edit the caption." + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" }, "caption": { - "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", - "description": "Message body of the notification." + "description": "The title of the video.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" + }, + "config_entry_id": { + "description": "The config entry representing the Telegram bot to send the video.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" + }, + "disable_notification": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" + }, + "file": { + "description": "Local path to a video.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" }, "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - } - } - }, - "edit_replymarkup": { - "name": "Edit reply markup", - "description": "Edits the inline keyboard of a previously sent message.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to edit the reply markup." + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" }, - "message_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", - "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]" + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" }, - "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "ID of the chat where to edit the reply markup." + "message_tag": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" }, - "inline_keyboard": { - "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", - "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" - } - } - }, - "answer_callback_query": { - "name": "Answer callback query", - "description": "Responds to a callback query originated by clicking on an online keyboard button. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to answer the callback query." + "message_thread_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" }, - "message": { - "name": "Message", - "description": "Unformatted text message body of the notification." + "parse_mode": { + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]" }, - "callback_query_id": { - "name": "Callback query ID", - "description": "Unique ID of the callback response." + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" }, - "show_alert": { - "name": "Show alert", - "description": "Show a permanent notification." + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]", + "name": "Target" }, "timeout": { - "name": "Read timeout", - "description": "Timeout for sending the answer in seconds." + "description": "Timeout for sending the video in seconds.", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to a video.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "Verify SSL" + } + }, + "name": "Send video", + "sections": { + "url_options": { + "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" } } }, - "delete_message": { - "name": "Delete message", - "description": "Deletes a previously sent message.", + "send_voice": { + "description": "Sends a voice message.", "fields": { + "authentication": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]", + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]" + }, + "caption": { + "description": "The title of the voice message.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]" + }, "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to delete the message." + "description": "The config entry representing the Telegram bot to send the voice message.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, - "message_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", - "description": "ID of the message to delete." + "disable_notification": { + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]" }, - "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "ID of the chat where to delete the message." + "file": { + "description": "Local path to a voice message.", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]" + }, + "inline_keyboard": { + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]" + }, + "keyboard": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]" + }, + "message_tag": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]" + }, + "message_thread_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::message_thread_id::name%]" + }, + "password": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]", + "name": "[%key:common::config_flow::data::password%]" + }, + "reply_to_message_id": { + "description": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::description%]", + "name": "[%key:component::telegram_bot::services::send_message::fields::reply_to_message_id::name%]" + }, + "target": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]", + "name": "Target" + }, + "timeout": { + "description": "Timeout for sending the voice in seconds.", + "name": "Read timeout" + }, + "url": { + "description": "Remote path to a voice message.", + "name": "[%key:common::config_flow::data::url%]" + }, + "username": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]", + "name": "[%key:common::config_flow::data::username%]" + }, + "verify_ssl": { + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]", + "name": "Verify SSL" } - } - }, - "leave_chat": { - "name": "Leave chat", - "description": "Removes the bot from the chat.", - "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to leave the chat." - }, - "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "Chat ID of the group from which the bot should be removed." + }, + "name": "Send voice", + "sections": { + "url_options": { + "name": "[%key:component::telegram_bot::services::send_photo::sections::url_options::name%]" } } }, "set_message_reaction": { - "name": "Set message reaction", "description": "Sets the bot's reaction for a given message.", "fields": { - "config_entry_id": { - "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]", - "description": "The config entry representing the Telegram bot to set the message reaction." - }, - "message_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", - "description": "ID of the message to react to." - }, "chat_id": { - "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", - "description": "ID of the chat containing the message." + "description": "ID of the chat containing the message.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]" }, - "reaction": { - "name": "Reaction", - "description": "Emoji reaction to use." + "config_entry_id": { + "description": "The config entry representing the Telegram bot to set the message reaction.", + "name": "[%key:component::telegram_bot::services::send_message::fields::config_entry_id::name%]" }, "is_big": { - "name": "Large animation", - "description": "Whether the reaction animation should be large." + "description": "Whether the reaction animation should be large.", + "name": "Large animation" + }, + "message_id": { + "description": "ID of the message to react to.", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]" + }, + "reaction": { + "description": "Emoji reaction to use.", + "name": "Reaction" } - } - } - }, - "exceptions": { - "multiple_config_entry": { - "message": "Multiple config entries found. Please specify the Telegram bot to use in the Config entry ID field." - }, - "missing_config_entry": { - "message": "No config entries found or setup failed. Please set up the Telegram Bot first." - }, - "missing_allowed_chat_ids": { - "message": "No allowed chat IDs found. Please add allowed chat IDs for {bot_name}." - }, - "invalid_chat_ids": { - "message": "Invalid chat IDs: {chat_ids}. Please configure the chat IDs for {bot_name}." - }, - "invalid_inline_keyboard": { - "message": "Invalid value for inline keyboard. Only strings or lists are accepted." - }, - "failed_chat_ids": { - "message": "Failed targets: {chat_ids}. Please verify that the chat IDs for {bot_name} have been configured." - }, - "missing_input": { - "message": "{field} is required." - }, - "failed_to_load_url": { - "message": "Failed to load URL: {error}" - }, - "allowlist_external_dirs_error": { - "message": "File path has not been configured in allowlist_external_dirs." - }, - "failed_to_load_file": { - "message": "Failed to load file: {error}" - }, - "action_failed": { - "message": "Action failed. {error}" - } - }, - "issues": { - "deprecated_yaml": { - "title": "The {integration_title} YAML configuration is being removed", - "description": "Configuring {integration_title} using YAML is being removed.\n\nYour existing YAML configuration has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue." - }, - "deprecated_yaml_import_issue_has_more_platforms": { - "title": "The {integration_title} YAML configuration is being removed", - "description": "Configuring {integration_title} using YAML is being removed.\n\nThe last entry of your existing YAML configuration ({telegram_bot}) has been imported into the UI automatically.\n\nRemove the `{domain}` configuration from your configuration.yaml file and restart Home Assistant to fix this issue. The other Telegram bots will need to be configured manually in the UI." - }, - "deprecated_yaml_import_issue_error": { - "title": "YAML import failed due to invalid {error_field}", - "description": "Configuring {integration_title} using YAML is being removed but there was an error while importing your existing configuration ({telegram_bot}): {error_message}.\nSetup will not proceed.\n\nVerify that your {telegram_bot} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually." + }, + "name": "Set message reaction" } } } diff --git a/homeassistant/components/tellduslive/strings.json b/homeassistant/components/tellduslive/strings.json index 17aac10063c..3b5ce6dd179 100644 --- a/homeassistant/components/tellduslive/strings.json +++ b/homeassistant/components/tellduslive/strings.json @@ -2,9 +2,9 @@ "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "unknown": "[%key:common::config_flow::error::unknown%]", + "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" @@ -26,20 +26,20 @@ }, "entity": { "sensor": { - "wind_direction": { - "name": "Wind direction" - }, - "wind_average": { - "name": "Wind average" - }, - "wind_gust": { - "name": "Wind gust" + "dew_point": { + "name": "Dew point" }, "uv": { "name": "UV" }, - "dew_point": { - "name": "Dew point" + "wind_average": { + "name": "Wind average" + }, + "wind_direction": { + "name": "Wind direction" + }, + "wind_gust": { + "name": "Wind gust" } } } diff --git a/homeassistant/components/template/strings.json b/homeassistant/components/template/strings.json index a59320ec8c4..a94703ed54f 100644 --- a/homeassistant/components/template/strings.json +++ b/homeassistant/components/template/strings.json @@ -15,49 +15,49 @@ "step": { "alarm_control_panel": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "value_template": "[%key:component::template::common::state%]", - "name": "[%key:common::config_flow::data::name%]", - "disarm": "Actions on disarm", "arm_away": "Actions on arm away", "arm_custom_bypass": "Actions on arm custom bypass", "arm_home": "Actions on arm home", "arm_night": "Actions on arm night", "arm_vacation": "Actions on arm vacation", - "trigger": "Actions on trigger", "code_arm_required": "Code arm required", - "code_format": "[%key:component::template::common::code_format%]" + "code_format": "[%key:component::template::common::code_format%]", + "device_id": "[%key:common::config_flow::data::device%]", + "disarm": "Actions on disarm", + "name": "[%key:common::config_flow::data::name%]", + "trigger": "Actions on trigger", + "value_template": "[%key:component::template::common::state%]" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "value_template": "Defines a template to set the state of the alarm panel. Valid output values from the template are `armed_away`, `armed_home`, `armed_night`, `armed_vacation`, `arming`, `disarmed`, `pending`, and `triggered`.", - "disarm": "Defines actions to run when the alarm control panel is disarmed. Receives variable `code`.", "arm_away": "Defines actions to run when the alarm control panel is armed to `arm_away`. Receives variable `code`.", "arm_custom_bypass": "Defines actions to run when the alarm control panel is armed to `arm_custom_bypass`. Receives variable `code`.", "arm_home": "Defines actions to run when the alarm control panel is armed to `arm_home`. Receives variable `code`.", "arm_night": "Defines actions to run when the alarm control panel is armed to `arm_night`. Receives variable `code`.", "arm_vacation": "Defines actions to run when the alarm control panel is armed to `arm_vacation`. Receives variable `code`.", - "trigger": "Defines actions to run when the alarm control panel is triggered. Receives variable `code`.", "code_arm_required": "If true, the code is required to arm the alarm.", - "code_format": "One of `number`, `text` or `no_code`. Format for the code used to arm/disarm the alarm." + "code_format": "One of `number`, `text` or `no_code`. Format for the code used to arm/disarm the alarm.", + "device_id": "[%key:component::template::common::device_id_description%]", + "disarm": "Defines actions to run when the alarm control panel is disarmed. Receives variable `code`.", + "trigger": "Defines actions to run when the alarm control panel is triggered. Receives variable `code`.", + "value_template": "Defines a template to set the state of the alarm panel. Valid output values from the template are `armed_away`, `armed_home`, `armed_night`, `armed_vacation`, `arming`, `disarmed`, `pending`, and `triggered`." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template alarm control panel" }, "binary_sensor": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", "state": "[%key:component::template::common::state%]" }, @@ -67,21 +67,21 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template binary sensor" }, "button": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", "press": "Actions on press" }, @@ -91,58 +91,58 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template button" }, "cover": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "device_class": "[%key:component::template::common::device_class%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "open_cover": "Actions on open", "close_cover": "Actions on close", - "stop_cover": "Actions on stop", + "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", + "name": "[%key:common::config_flow::data::name%]", + "open_cover": "Actions on open", "position": "Position", - "set_cover_position": "Actions on set position" + "set_cover_position": "Actions on set position", + "state": "[%key:component::template::common::state%]", + "stop_cover": "Actions on stop" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "state": "Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. If both a state and a position are specified, only `opening` and `closing` are set from the state template.", - "open_cover": "Defines actions to run when the cover is opened.", "close_cover": "Defines actions to run when the cover is closed.", - "stop_cover": "Defines actions to run when the cover is stopped.", + "device_id": "[%key:component::template::common::device_id_description%]", + "open_cover": "Defines actions to run when the cover is opened.", "position": "Defines a template to get the position of the cover. Value values are numbers between `0` (`closed`) and `100` (`open`).", - "set_cover_position": "Defines actions to run when the cover is given a `set_cover_position` command. Receives variable `position`." + "set_cover_position": "Defines actions to run when the cover is given a `set_cover_position` command. Receives variable `position`.", + "state": "Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. If both a state and a position are specified, only `opening` and `closing` are set from the state template.", + "stop_cover": "Defines actions to run when the cover is stopped." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template cover" }, "event": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", "event_type": "Last fired event type", - "event_types": "[%key:component::event::entity_component::_::state_attributes::event_types::name%]" + "event_types": "[%key:component::event::entity_component::_::state_attributes::event_types::name%]", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", @@ -151,13 +151,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template event" @@ -166,31 +166,31 @@ "data": { "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]", "percentage": "Percentage", "set_percentage": "Actions on set percentage", - "speed_count": "Speed count" + "speed_count": "Speed count", + "state": "[%key:component::template::common::state%]", + "turn_off": "[%key:component::template::common::turn_off%]", + "turn_on": "[%key:component::template::common::turn_on%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "The fan is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`.", - "turn_off": "Defines actions to run when the fan is turned off.", - "turn_on": "Defines actions to run when the fan is turned on. Receives variables `percentage` and/or `preset_mode`.", "percentage": "Defines a template to get the speed percentage of the fan.", "set_percentage": "Defines actions to run when the fan is given a speed percentage command. Receives variable `percentage`.", - "speed_count": "The number of speeds the fan supports. Used to calculate the percentage step for the `fan.increase_speed` and `fan.decrease_speed` actions." + "speed_count": "The number of speeds the fan supports. Used to calculate the percentage step for the `fan.increase_speed` and `fan.decrease_speed` actions.", + "state": "The fan is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`.", + "turn_off": "Defines actions to run when the fan is turned off.", + "turn_on": "Defines actions to run when the fan is turned on. Receives variables `percentage` and/or `preset_mode`." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template fan" @@ -209,13 +209,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template image" @@ -223,69 +223,69 @@ "light": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]", - "level": "Brightness level", - "set_level": "Actions on set level", "hs": "HS color", + "level": "Brightness level", + "name": "[%key:common::config_flow::data::name%]", "set_hs": "Actions on set HS color", + "set_level": "Actions on set level", + "set_temperature": "Actions on set color temperature", + "state": "[%key:component::template::common::state%]", "temperature": "Color temperature", - "set_temperature": "Actions on set color temperature" + "turn_off": "[%key:component::template::common::turn_off%]", + "turn_on": "[%key:component::template::common::turn_on%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "The light is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`.", - "turn_off": "Defines actions to run when the light is turned off.", - "turn_on": "Defines actions to run when the light is turned on.", - "level": "Defines a template to get the brightness of the light. Valid values are 0 to 255.", - "set_level": "Defines actions to run when the light is given a brightness command. The script will only be called if the `turn_on` call only has `brightness`, and optionally `transition`. Receives variables `brightness` and, optionally, `transition`.", "hs": "Defines a template to get the HS color of the light. Must render a tuple (hue, saturation).", + "level": "Defines a template to get the brightness of the light. Valid values are 0 to 255.", "set_hs": "Defines actions to run when the light is given an HS color command. Available variables: `hs` as a tuple, `h` and `s`.", + "set_level": "Defines actions to run when the light is given a brightness command. The script will only be called if the `turn_on` call only has `brightness`, and optionally `transition`. Receives variables `brightness` and, optionally, `transition`.", + "set_temperature": "Defines actions to run when the light is given a color temperature command. Receives variable `color_temp_kelvin`. May also receive variables `brightness` and/or `transition`.", + "state": "The light is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`.", "temperature": "Defines a template to get the color temperature of the light.", - "set_temperature": "Defines actions to run when the light is given a color temperature command. Receives variable `color_temp_kelvin`. May also receive variables `brightness` and/or `transition`." + "turn_off": "Defines actions to run when the light is turned off.", + "turn_on": "Defines actions to run when the light is turned on." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template light" }, "lock": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "lock": "Actions on lock", - "unlock": "Actions on unlock", "code_format": "[%key:component::template::common::code_format%]", - "open": "Actions on open" + "device_id": "[%key:common::config_flow::data::device%]", + "lock": "Actions on lock", + "name": "[%key:common::config_flow::data::name%]", + "open": "Actions on open", + "state": "[%key:component::template::common::state%]", + "unlock": "Actions on unlock" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "state": "Defines a template to set the state of the lock. The lock is locked if the template evaluates to `True`, `true`, `on`, or `locked`. The lock is unlocked if the template evaluates to `False`, `false`, `off`, or `unlocked`. Other valid states are `jammed`, `opening`, `locking`, `open`, and `unlocking`.", - "lock": "Defines actions to run when the lock is locked.", - "unlock": "Defines actions to run when the lock is unlocked.", "code_format": "Defines a template to get the `code_format` attribute of the lock.", - "open": "Defines actions to run when the lock is opened." + "device_id": "[%key:component::template::common::device_id_description%]", + "lock": "Defines actions to run when the lock is locked.", + "open": "Defines actions to run when the lock is opened.", + "state": "Defines a template to set the state of the lock. The lock is locked if the template evaluates to `True`, `true`, `on`, or `locked`. The lock is unlocked if the template evaluates to `False`, `false`, `off`, or `unlocked`. Other valid states are `jammed`, `opening`, `locking`, `open`, and `unlocking`.", + "unlock": "Defines actions to run when the lock is unlocked." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template lock" @@ -293,32 +293,32 @@ "number": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "step": "Step value", - "set_value": "Actions on set value", "max": "Maximum value", "min": "Minimum value", + "name": "[%key:common::config_flow::data::name%]", + "set_value": "Actions on set value", + "state": "[%key:component::template::common::state%]", + "step": "Step value", "unit_of_measurement": "[%key:component::template::common::unit_of_measurement%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "Template for the number's current value.", - "step": "Defines the number's increment/decrement step.", - "set_value": "Defines actions to run when the number is set to a value. Receives variable `value`.", "max": "Defines the number's maximum value.", "min": "Defines the number's minimum value.", + "set_value": "Defines actions to run when the number is set to a value. Receives variable `value`.", + "state": "Template for the number's current value.", + "step": "Defines the number's increment/decrement step.", "unit_of_measurement": "Defines the unit of measurement of the number, if any." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template number" @@ -327,36 +327,36 @@ "data": { "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", + "options": "Available options", "select_option": "Actions on select", - "options": "Available options" + "state": "[%key:component::template::common::state%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "Template for the select’s current value.", + "options": "Template for the select’s available options.", "select_option": "Defines actions to run when an `option` from the `options` list is selected. Receives variable `option`.", - "options": "Template for the select’s available options." + "state": "Template for the select’s current value." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template select" }, "sensor": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", - "state_class": "[%key:component::sensor::entity_component::_::state_attributes::state_class::name%]", "state": "[%key:component::template::common::state%]", + "state_class": "[%key:component::sensor::entity_component::_::state_attributes::state_class::name%]", "unit_of_measurement": "[%key:component::template::common::unit_of_measurement%]" }, "data_description": { @@ -366,17 +366,86 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template sensor" }, + "switch": { + "data": { + "device_id": "[%key:common::config_flow::data::device%]", + "name": "[%key:common::config_flow::data::name%]", + "turn_off": "[%key:component::template::common::turn_off%]", + "turn_on": "[%key:component::template::common::turn_on%]", + "value_template": "[%key:component::template::common::state%]" + }, + "data_description": { + "device_id": "[%key:component::template::common::device_id_description%]", + "turn_off": "Defines actions to run when the switch is turned off.", + "turn_on": "Defines actions to run when the switch is turned on.", + "value_template": "Defines a template to set the state of the switch. If not defined, the switch will optimistically assume all commands are successful." + }, + "sections": { + "advanced_options": { + "data": { + "availability": "[%key:component::template::common::availability%]" + }, + "data_description": { + "availability": "[%key:component::template::common::availability_description%]" + }, + "name": "[%key:component::template::common::advanced_options%]" + } + }, + "title": "Template switch" + }, + "update": { + "data": { + "backup": "Backup", + "device_class": "[%key:component::template::common::device_class%]", + "device_id": "[%key:common::config_flow::data::device%]", + "in_progress": "[%key:component::update::entity_component::_::state_attributes::in_progress::name%]", + "install": "Actions on install", + "installed_version": "[%key:component::update::entity_component::_::state_attributes::installed_version::name%]", + "latest_version": "[%key:component::update::entity_component::_::state_attributes::latest_version::name%]", + "name": "[%key:common::config_flow::data::name%]", + "release_summary": "[%key:component::update::entity_component::_::state_attributes::release_summary::name%]", + "release_url": "[%key:component::update::entity_component::_::state_attributes::release_url::name%]", + "specific_version": "Specific version", + "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", + "update_percentage": "Update percentage" + }, + "data_description": { + "backup": "Enable or disable the `automatic backup before update` option in the update repair. When disabled, the `backup` variable will always provide `False` during the `install` action and it will not accept the `backup` option.", + "device_id": "[%key:component::template::common::device_id_description%]", + "in_progress": "Defines a template to get the in-progress state.", + "install": "Defines actions to run when the update is installed. Receives variables `specific_version` and `backup` when enabled.", + "installed_version": "Defines a template to get the installed version.", + "latest_version": "Defines a template to get the latest version.", + "release_summary": "Defines a template to get the release summary.", + "release_url": "Defines a template to get the release URL.", + "specific_version": "Enable or disable using the `version` variable with the `install` action. When disabled, the `specific_version` variable will always provide `None` in the `install` actions", + "title": "Defines a template to get the update title.", + "update_percentage": "Defines a template to get the update completion percentage." + }, + "sections": { + "advanced_options": { + "data": { + "availability": "[%key:component::template::common::availability%]" + }, + "data_description": { + "availability": "[%key:component::template::common::availability_description%]" + }, + "name": "[%key:component::template::common::advanced_options%]" + } + }, + "title": "Template update" + }, "user": { "description": "This helper allows you to create helper entities that define their state using a template. What kind of template would you like to create?", "menu_options": { @@ -398,170 +467,106 @@ }, "title": "Template helper" }, - "switch": { - "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]", - "value_template": "[%key:component::template::common::state%]" - }, - "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "value_template": "Defines a template to set the state of the switch. If not defined, the switch will optimistically assume all commands are successful.", - "turn_off": "Defines actions to run when the switch is turned off.", - "turn_on": "Defines actions to run when the switch is turned on." - }, - "sections": { - "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", - "data": { - "availability": "[%key:component::template::common::availability%]" - }, - "data_description": { - "availability": "[%key:component::template::common::availability_description%]" - } - } - }, - "title": "Template switch" - }, - "update": { - "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "device_class": "[%key:component::template::common::device_class%]", - "name": "[%key:common::config_flow::data::name%]", - "installed_version": "[%key:component::update::entity_component::_::state_attributes::installed_version::name%]", - "latest_version": "[%key:component::update::entity_component::_::state_attributes::latest_version::name%]", - "install": "Actions on install", - "in_progress": "[%key:component::update::entity_component::_::state_attributes::in_progress::name%]", - "release_summary": "[%key:component::update::entity_component::_::state_attributes::release_summary::name%]", - "release_url": "[%key:component::update::entity_component::_::state_attributes::release_url::name%]", - "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", - "backup": "Backup", - "specific_version": "Specific version", - "update_percentage": "Update percentage" - }, - "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "installed_version": "Defines a template to get the installed version.", - "latest_version": "Defines a template to get the latest version.", - "install": "Defines actions to run when the update is installed. Receives variables `specific_version` and `backup` when enabled.", - "in_progress": "Defines a template to get the in-progress state.", - "release_summary": "Defines a template to get the release summary.", - "release_url": "Defines a template to get the release URL.", - "title": "Defines a template to get the update title.", - "backup": "Enable or disable the `automatic backup before update` option in the update repair. When disabled, the `backup` variable will always provide `False` during the `install` action and it will not accept the `backup` option.", - "specific_version": "Enable or disable using the `version` variable with the `install` action. When disabled, the `specific_version` variable will always provide `None` in the `install` actions", - "update_percentage": "Defines a template to get the update completion percentage." - }, - "sections": { - "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", - "data": { - "availability": "[%key:component::template::common::availability%]" - }, - "data_description": { - "availability": "[%key:component::template::common::availability_description%]" - } - } - }, - "title": "Template update" - }, "vacuum": { "data": { + "clean_spot": "Actions on clean spot", "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "start": "Actions on start", "fan_speed": "Fan speed", "fan_speeds": "Fan speeds", - "set_fan_speed": "Actions on set fan speed", - "stop": "Actions on stop", + "locate": "Actions on locate", + "name": "[%key:common::config_flow::data::name%]", "pause": "Actions on pause", "return_to_base": "Actions on return to dock", - "clean_spot": "Actions on clean spot", - "locate": "Actions on locate" + "set_fan_speed": "Actions on set fan speed", + "start": "Actions on start", + "state": "[%key:component::template::common::state%]", + "stop": "Actions on stop" }, "data_description": { + "clean_spot": "Defines actions to run when the vacuum is given a 'Clean spot' command.", "device_id": "[%key:component::template::common::device_id_description%]", - "state": "Defines a template to get the state of the vacuum. Valid values are `cleaning`, `docked`, `idle`, `paused`, `returning`, and `error`.", - "start": "Defines actions to run when the vacuum is started.", "fan_speed": "Defines a template to get the fan speed of the vacuum.", "fan_speeds": "List of fan speeds supported by the vacuum.", - "set_fan_speed": "Defines actions to run when the vacuum is given a command to set the fan speed. Receives variable `fan_speed`.", - "stop": "Defines actions to run when the vacuum is stopped.", + "locate": "Defines actions to run when the vacuum is given a 'Locate' command.", "pause": "Defines actions to run when the vacuum is paused.", "return_to_base": "Defines actions to run when the vacuum is given a 'Return to dock' command.", - "clean_spot": "Defines actions to run when the vacuum is given a 'Clean spot' command.", - "locate": "Defines actions to run when the vacuum is given a 'Locate' command." + "set_fan_speed": "Defines actions to run when the vacuum is given a command to set the fan speed. Receives variable `fan_speed`.", + "start": "Defines actions to run when the vacuum is started.", + "state": "Defines a template to get the state of the vacuum. Valid values are `cleaning`, `docked`, `idle`, `paused`, `returning`, and `error`.", + "stop": "Defines actions to run when the vacuum is stopped." }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template vacuum" } } }, + "exceptions": { + "code_format_template_error": { + "message": "Error evaluating code format template \"{code_format_template}\" for {entity_id}: {cause}" + } + }, "issues": { - "deprecated_battery_level": { - "title": "Deprecated battery level option in {entity_name}", - "description": "The template vacuum options `battery_level` and `battery_level_template` are being removed in 2026.8.\n\nPlease remove the `battery_level` or `battery_level_template` option from the YAML configuration for {entity_id} ({entity_name})." + "config_format_actions": { + "description": "There is an actions option in the template configuration that does not pair with a trigger option. This will be an configuration validation error in 2026.5.\n\n Please add a trigger to the configuration or remove the actions option from the configuration.\n\n```\n{config}\n```", + "title": "Template actions option requires a trigger" }, "config_format_triggers": { - "title": "Incomplete template configuration", - "description": "A trigger template configuration needs a trigger and at least one domain when defining an entity. This will be an configuration validation error in Home Assistant Core 2026.5.\n\n Please remove the orphaned trigger from the configuration.\n\n```\n{config}\n```" + "description": "A trigger template configuration needs a trigger and at least one domain when defining an entity. This will be an configuration validation error in Home Assistant Core 2026.5.\n\n Please remove the orphaned trigger from the configuration.\n\n```\n{config}\n```", + "title": "Incomplete template configuration" }, - "config_format_actions": { - "title": "Template actions option requires a trigger", - "description": "There is an actions option in the template configuration that does not pair with a trigger option. This will be an configuration validation error in 2026.5.\n\n Please add a trigger to the configuration or remove the actions option from the configuration.\n\n```\n{config}\n```" + "deprecated_battery_level": { + "description": "The template vacuum options `battery_level` and `battery_level_template` are being removed in 2026.8.\n\nPlease remove the `battery_level` or `battery_level_template` option from the YAML configuration for {entity_id} ({entity_name}).", + "title": "Deprecated battery level option in {entity_name}" } }, "options": { "step": { "alarm_control_panel": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "value_template": "[%key:component::template::common::state%]", - "disarm": "[%key:component::template::config::step::alarm_control_panel::data::disarm%]", "arm_away": "[%key:component::template::config::step::alarm_control_panel::data::arm_away%]", "arm_custom_bypass": "[%key:component::template::config::step::alarm_control_panel::data::arm_custom_bypass%]", "arm_home": "[%key:component::template::config::step::alarm_control_panel::data::arm_home%]", "arm_night": "[%key:component::template::config::step::alarm_control_panel::data::arm_night%]", "arm_vacation": "[%key:component::template::config::step::alarm_control_panel::data::arm_vacation%]", - "trigger": "[%key:component::template::config::step::alarm_control_panel::data::trigger%]", "code_arm_required": "[%key:component::template::config::step::alarm_control_panel::data::code_arm_required%]", - "code_format": "[%key:component::template::common::code_format%]" + "code_format": "[%key:component::template::common::code_format%]", + "device_id": "[%key:common::config_flow::data::device%]", + "disarm": "[%key:component::template::config::step::alarm_control_panel::data::disarm%]", + "trigger": "[%key:component::template::config::step::alarm_control_panel::data::trigger%]", + "value_template": "[%key:component::template::common::state%]" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "value_template": "[%key:component::template::config::step::alarm_control_panel::data_description::value_template%]", - "disarm": "[%key:component::template::config::step::alarm_control_panel::data_description::disarm%]", "arm_away": "[%key:component::template::config::step::alarm_control_panel::data_description::arm_away%]", "arm_custom_bypass": "[%key:component::template::config::step::alarm_control_panel::data_description::arm_custom_bypass%]", "arm_home": "[%key:component::template::config::step::alarm_control_panel::data_description::arm_home%]", "arm_night": "[%key:component::template::config::step::alarm_control_panel::data_description::arm_night%]", "arm_vacation": "[%key:component::template::config::step::alarm_control_panel::data_description::arm_vacation%]", - "trigger": "[%key:component::template::config::step::alarm_control_panel::data_description::trigger%]", "code_arm_required": "[%key:component::template::config::step::alarm_control_panel::data_description::code_arm_required%]", - "code_format": "[%key:component::template::config::step::alarm_control_panel::data_description::code_format%]" + "code_format": "[%key:component::template::config::step::alarm_control_panel::data_description::code_format%]", + "device_id": "[%key:component::template::common::device_id_description%]", + "disarm": "[%key:component::template::config::step::alarm_control_panel::data_description::disarm%]", + "trigger": "[%key:component::template::config::step::alarm_control_panel::data_description::trigger%]", + "value_template": "[%key:component::template::config::step::alarm_control_panel::data_description::value_template%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::alarm_control_panel::title%]" @@ -577,13 +582,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::binary_sensor::title%]" @@ -599,13 +604,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::button::title%]" @@ -613,32 +618,32 @@ "cover": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "state": "[%key:component::template::common::state%]", - "open_cover": "[%key:component::template::config::step::cover::data::open_cover%]", "close_cover": "[%key:component::template::config::step::cover::data::close_cover%]", - "stop_cover": "[%key:component::template::config::step::cover::data::stop_cover%]", + "device_id": "[%key:common::config_flow::data::device%]", + "open_cover": "[%key:component::template::config::step::cover::data::open_cover%]", "position": "[%key:component::template::config::step::cover::data::position%]", - "set_cover_position": "[%key:component::template::config::step::cover::data::set_cover_position%]" + "set_cover_position": "[%key:component::template::config::step::cover::data::set_cover_position%]", + "state": "[%key:component::template::common::state%]", + "stop_cover": "[%key:component::template::config::step::cover::data::stop_cover%]" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::cover::data_description::state%]", - "open_cover": "[%key:component::template::config::step::cover::data_description::open_cover%]", "close_cover": "[%key:component::template::config::step::cover::data_description::close_cover%]", - "stop_cover": "[%key:component::template::config::step::cover::data_description::stop_cover%]", + "device_id": "[%key:component::template::common::device_id_description%]", + "open_cover": "[%key:component::template::config::step::cover::data_description::open_cover%]", "position": "[%key:component::template::config::step::cover::data_description::position%]", - "set_cover_position": "[%key:component::template::config::step::cover::data_description::set_cover_position%]" + "set_cover_position": "[%key:component::template::config::step::cover::data_description::set_cover_position%]", + "state": "[%key:component::template::config::step::cover::data_description::state%]", + "stop_cover": "[%key:component::template::config::step::cover::data_description::stop_cover%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::cover::title%]" @@ -646,9 +651,9 @@ "event": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", "event_type": "[%key:component::template::config::step::event::data::event_type%]", - "event_types": "[%key:component::event::entity_component::_::state_attributes::event_types::name%]" + "event_types": "[%key:component::event::entity_component::_::state_attributes::event_types::name%]", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", @@ -657,13 +662,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::event::title%]" @@ -671,31 +676,31 @@ "fan": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "state": "[%key:component::template::common::state%]", - "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]", "percentage": "[%key:component::template::config::step::fan::data::percentage%]", "set_percentage": "[%key:component::template::config::step::fan::data::set_percentage%]", - "speed_count": "[%key:component::template::config::step::fan::data::speed_count%]" + "speed_count": "[%key:component::template::config::step::fan::data::speed_count%]", + "state": "[%key:component::template::common::state%]", + "turn_off": "[%key:component::template::common::turn_off%]", + "turn_on": "[%key:component::template::common::turn_on%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::fan::data_description::state%]", - "turn_off": "[%key:component::template::config::step::fan::data_description::turn_off%]", - "turn_on": "[%key:component::template::config::step::fan::data_description::turn_on%]", "percentage": "[%key:component::template::config::step::fan::data_description::percentage%]", "set_percentage": "[%key:component::template::config::step::fan::data_description::set_percentage%]", - "speed_count": "[%key:component::template::config::step::fan::data_description::speed_count%]" + "speed_count": "[%key:component::template::config::step::fan::data_description::speed_count%]", + "state": "[%key:component::template::config::step::fan::data_description::state%]", + "turn_off": "[%key:component::template::config::step::fan::data_description::turn_off%]", + "turn_on": "[%key:component::template::config::step::fan::data_description::turn_on%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::fan::title%]" @@ -713,13 +718,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::image::title%]" @@ -727,68 +732,68 @@ "light": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]", - "level": "[%key:component::template::config::step::light::data::level%]", - "set_level": "[%key:component::template::config::step::light::data::set_level%]", "hs": "[%key:component::template::config::step::light::data::hs%]", + "level": "[%key:component::template::config::step::light::data::level%]", + "name": "[%key:common::config_flow::data::name%]", "set_hs": "[%key:component::template::config::step::light::data::set_hs%]", + "set_level": "[%key:component::template::config::step::light::data::set_level%]", + "set_temperature": "[%key:component::template::config::step::light::data::set_temperature%]", + "state": "[%key:component::template::common::state%]", "temperature": "[%key:component::template::config::step::light::data::temperature%]", - "set_temperature": "[%key:component::template::config::step::light::data::set_temperature%]" + "turn_off": "[%key:component::template::common::turn_off%]", + "turn_on": "[%key:component::template::common::turn_on%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::light::data_description::state%]", - "turn_off": "[%key:component::template::config::step::light::data_description::turn_off%]", - "turn_on": "[%key:component::template::config::step::light::data_description::turn_on%]", - "level": "[%key:component::template::config::step::light::data_description::level%]", - "set_level": "[%key:component::template::config::step::light::data_description::set_level%]", "hs": "[%key:component::template::config::step::light::data_description::hs%]", + "level": "[%key:component::template::config::step::light::data_description::level%]", "set_hs": "[%key:component::template::config::step::light::data_description::set_hs%]", + "set_level": "[%key:component::template::config::step::light::data_description::set_level%]", + "set_temperature": "[%key:component::template::config::step::light::data_description::set_temperature%]", + "state": "[%key:component::template::config::step::light::data_description::state%]", "temperature": "[%key:component::template::config::step::light::data_description::temperature%]", - "set_temperature": "[%key:component::template::config::step::light::data_description::set_temperature%]" + "turn_off": "[%key:component::template::config::step::light::data_description::turn_off%]", + "turn_on": "[%key:component::template::config::step::light::data_description::turn_on%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::light::title%]" }, "lock": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", - "state": "[%key:component::template::common::state%]", - "lock": "[%key:component::template::config::step::lock::data::lock%]", - "unlock": "[%key:component::template::config::step::lock::data::unlock%]", "code_format": "[%key:component::template::common::code_format%]", - "open": "[%key:component::template::config::step::lock::data::open%]" + "device_id": "[%key:common::config_flow::data::device%]", + "lock": "[%key:component::template::config::step::lock::data::lock%]", + "open": "[%key:component::template::config::step::lock::data::open%]", + "state": "[%key:component::template::common::state%]", + "unlock": "[%key:component::template::config::step::lock::data::unlock%]" }, "data_description": { - "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::lock::data_description::state%]", - "lock": "[%key:component::template::config::step::lock::data_description::lock%]", - "unlock": "[%key:component::template::config::step::lock::data_description::unlock%]", "code_format": "[%key:component::template::config::step::lock::data_description::code_format%]", - "open": "[%key:component::template::config::step::lock::data_description::open%]" + "device_id": "[%key:component::template::common::device_id_description%]", + "lock": "[%key:component::template::config::step::lock::data_description::lock%]", + "open": "[%key:component::template::config::step::lock::data_description::open%]", + "state": "[%key:component::template::config::step::lock::data_description::state%]", + "unlock": "[%key:component::template::config::step::lock::data_description::unlock%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::lock::title%]" @@ -796,30 +801,30 @@ "number": { "data": { "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "step": "[%key:component::template::config::step::number::data::step%]", - "set_value": "[%key:component::template::config::step::number::data::set_value%]", "max": "[%key:component::template::config::step::number::data::max%]", - "min": "[%key:component::template::config::step::number::data::min%]" + "min": "[%key:component::template::config::step::number::data::min%]", + "name": "[%key:common::config_flow::data::name%]", + "set_value": "[%key:component::template::config::step::number::data::set_value%]", + "state": "[%key:component::template::common::state%]", + "step": "[%key:component::template::config::step::number::data::step%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::number::data_description::state%]", - "step": "[%key:component::template::config::step::number::data_description::step%]", - "set_value": "[%key:component::template::config::step::number::data_description::set_value%]", "max": "[%key:component::template::config::step::number::data_description::max%]", - "min": "[%key:component::template::config::step::number::data_description::min%]" + "min": "[%key:component::template::config::step::number::data_description::min%]", + "set_value": "[%key:component::template::config::step::number::data_description::set_value%]", + "state": "[%key:component::template::config::step::number::data_description::state%]", + "step": "[%key:component::template::config::step::number::data_description::step%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::number::title%]" @@ -828,35 +833,35 @@ "data": { "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", + "options": "[%key:component::template::config::step::select::data::options%]", "select_option": "[%key:component::template::config::step::select::data::select_option%]", - "options": "[%key:component::template::config::step::select::data::options%]" + "state": "[%key:component::template::common::state%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::select::data_description::state%]", + "options": "[%key:component::template::config::step::select::data_description::options%]", "select_option": "[%key:component::template::config::step::select::data_description::select_option%]", - "options": "[%key:component::template::config::step::select::data_description::options%]" + "state": "[%key:component::template::config::step::select::data_description::state%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::select::title%]" }, "sensor": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", "device_class": "[%key:component::template::common::device_class%]", - "state_class": "[%key:component::sensor::entity_component::_::state_attributes::state_class::name%]", + "device_id": "[%key:common::config_flow::data::device%]", "state": "[%key:component::template::common::state%]", + "state_class": "[%key:component::sensor::entity_component::_::state_attributes::state_class::name%]", "unit_of_measurement": "[%key:component::template::common::unit_of_measurement%]" }, "data_description": { @@ -866,13 +871,13 @@ }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::sensor::title%]" @@ -881,108 +886,108 @@ "data": { "device_id": "[%key:common::config_flow::data::device%]", "name": "[%key:common::config_flow::data::name%]", - "value_template": "[%key:component::template::common::state%]", "turn_off": "[%key:component::template::common::turn_off%]", - "turn_on": "[%key:component::template::common::turn_on%]" + "turn_on": "[%key:component::template::common::turn_on%]", + "value_template": "[%key:component::template::common::state%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", - "value_template": "[%key:component::template::config::step::switch::data_description::value_template%]", "turn_off": "[%key:component::template::config::step::switch::data_description::turn_off%]", - "turn_on": "[%key:component::template::config::step::switch::data_description::turn_on%]" + "turn_on": "[%key:component::template::config::step::switch::data_description::turn_on%]", + "value_template": "[%key:component::template::config::step::switch::data_description::value_template%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::switch::title%]" }, "update": { "data": { - "device_id": "[%key:common::config_flow::data::device%]", + "backup": "[%key:component::template::config::step::update::data::backup%]", "device_class": "[%key:component::template::common::device_class%]", - "name": "[%key:common::config_flow::data::name%]", + "device_id": "[%key:common::config_flow::data::device%]", + "in_progress": "[%key:component::update::entity_component::_::state_attributes::in_progress::name%]", + "install": "[%key:component::template::config::step::update::data::install%]", "installed_version": "[%key:component::update::entity_component::_::state_attributes::installed_version::name%]", "latest_version": "[%key:component::update::entity_component::_::state_attributes::latest_version::name%]", - "install": "[%key:component::template::config::step::update::data::install%]", - "in_progress": "[%key:component::update::entity_component::_::state_attributes::in_progress::name%]", + "name": "[%key:common::config_flow::data::name%]", "release_summary": "[%key:component::update::entity_component::_::state_attributes::release_summary::name%]", "release_url": "[%key:component::update::entity_component::_::state_attributes::release_url::name%]", - "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", - "backup": "[%key:component::template::config::step::update::data::backup%]", "specific_version": "[%key:component::template::config::step::update::data::specific_version%]", + "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", "update_percentage": "[%key:component::template::config::step::update::data::update_percentage%]" }, "data_description": { + "backup": "[%key:component::template::config::step::update::data_description::backup%]", "device_id": "[%key:component::template::common::device_id_description%]", + "in_progress": "[%key:component::template::config::step::update::data_description::in_progress%]", + "install": "[%key:component::template::config::step::update::data_description::install%]", "installed_version": "[%key:component::template::config::step::update::data_description::installed_version%]", "latest_version": "[%key:component::template::config::step::update::data_description::latest_version%]", - "install": "[%key:component::template::config::step::update::data_description::install%]", - "in_progress": "[%key:component::template::config::step::update::data_description::in_progress%]", "release_summary": "[%key:component::template::config::step::update::data_description::release_summary%]", "release_url": "[%key:component::template::config::step::update::data_description::release_url%]", - "title": "[%key:component::template::config::step::update::data_description::title%]", - "backup": "[%key:component::template::config::step::update::data_description::backup%]", "specific_version": "[%key:component::template::config::step::update::data_description::specific_version%]", + "title": "[%key:component::template::config::step::update::data_description::title%]", "update_percentage": "[%key:component::template::config::step::update::data_description::update_percentage%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "Template update" }, "vacuum": { "data": { + "clean_spot": "[%key:component::template::config::step::vacuum::data::clean_spot%]", "device_id": "[%key:common::config_flow::data::device%]", - "name": "[%key:common::config_flow::data::name%]", - "state": "[%key:component::template::common::state%]", - "start": "[%key:component::template::config::step::vacuum::data::start%]", "fan_speed": "[%key:component::template::config::step::vacuum::data::fan_speed%]", "fan_speeds": "[%key:component::template::config::step::vacuum::data::fan_speeds%]", - "set_fan_speed": "[%key:component::template::config::step::vacuum::data::set_fan_speed%]", - "stop": "[%key:component::template::config::step::vacuum::data::stop%]", + "locate": "[%key:component::template::config::step::vacuum::data::locate%]", + "name": "[%key:common::config_flow::data::name%]", "pause": "[%key:component::template::config::step::vacuum::data::pause%]", "return_to_base": "[%key:component::template::config::step::vacuum::data::return_to_base%]", - "clean_spot": "[%key:component::template::config::step::vacuum::data::clean_spot%]", - "locate": "[%key:component::template::config::step::vacuum::data::locate%]" + "set_fan_speed": "[%key:component::template::config::step::vacuum::data::set_fan_speed%]", + "start": "[%key:component::template::config::step::vacuum::data::start%]", + "state": "[%key:component::template::common::state%]", + "stop": "[%key:component::template::config::step::vacuum::data::stop%]" }, "data_description": { + "clean_spot": "[%key:component::template::config::step::vacuum::data_description::clean_spot%]", "device_id": "[%key:component::template::common::device_id_description%]", - "state": "[%key:component::template::config::step::vacuum::data_description::state%]", - "start": "[%key:component::template::config::step::vacuum::data_description::start%]", "fan_speed": "[%key:component::template::config::step::vacuum::data_description::fan_speed%]", "fan_speeds": "[%key:component::template::config::step::vacuum::data_description::fan_speeds%]", - "set_fan_speed": "[%key:component::template::config::step::vacuum::data_description::set_fan_speed%]", - "stop": "[%key:component::template::config::step::vacuum::data_description::stop%]", + "locate": "[%key:component::template::config::step::vacuum::data_description::locate%]", "pause": "[%key:component::template::config::step::vacuum::data_description::pause%]", "return_to_base": "[%key:component::template::config::step::vacuum::data_description::return_to_base%]", - "clean_spot": "[%key:component::template::config::step::vacuum::data_description::clean_spot%]", - "locate": "[%key:component::template::config::step::vacuum::data_description::locate%]" + "set_fan_speed": "[%key:component::template::config::step::vacuum::data_description::set_fan_speed%]", + "start": "[%key:component::template::config::step::vacuum::data_description::start%]", + "state": "[%key:component::template::config::step::vacuum::data_description::state%]", + "stop": "[%key:component::template::config::step::vacuum::data_description::stop%]" }, "sections": { "advanced_options": { - "name": "[%key:component::template::common::advanced_options%]", "data": { "availability": "[%key:component::template::common::availability%]" }, "data_description": { "availability": "[%key:component::template::common::availability_description%]" - } + }, + "name": "[%key:component::template::common::advanced_options%]" } }, "title": "[%key:component::template::config::step::vacuum::title%]" @@ -1052,8 +1057,8 @@ }, "event_device_class": { "options": { - "doorbell": "[%key:component::event::entity_component::doorbell::name%]", "button": "[%key:component::event::entity_component::button::name%]", + "doorbell": "[%key:component::event::entity_component::doorbell::name%]", "motion": "[%key:component::event::entity_component::motion::name%]" } }, @@ -1091,9 +1096,9 @@ "ozone": "[%key:component::sensor::entity_component::ozone::name%]", "ph": "[%key:component::sensor::entity_component::ph::name%]", "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "pm4": "[%key:component::sensor::entity_component::pm4::name%]", "power": "[%key:component::sensor::entity_component::power::name%]", "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", @@ -1140,13 +1145,8 @@ }, "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads template entities from the YAML-configuration." - } - }, - "exceptions": { - "code_format_template_error": { - "message": "Error evaluating code format template \"{code_format_template}\" for {entity_id}: {cause}" + "description": "Reloads template entities from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/tesla_fleet/icons.json b/homeassistant/components/tesla_fleet/icons.json index f907107fd40..8561e1bd3dd 100644 --- a/homeassistant/components/tesla_fleet/icons.json +++ b/homeassistant/components/tesla_fleet/icons.json @@ -69,10 +69,10 @@ "state_attributes": { "preset_mode": { "state": { - "off": "mdi:power", - "keep": "mdi:fan", + "camp": "mdi:tent", "dog": "mdi:dog", - "camp": "mdi:tent" + "keep": "mdi:fan", + "off": "mdi:power" } } } @@ -163,6 +163,18 @@ } }, "sensor": { + "battery_energy_exported": { + "default": "mdi:battery-arrow-down" + }, + "battery_energy_imported_from_generator": { + "default": "mdi:generator-stationary" + }, + "battery_energy_imported_from_grid": { + "default": "mdi:transmission-tower-import" + }, + "battery_energy_imported_from_solar": { + "default": "mdi:solar-power" + }, "battery_power": { "default": "mdi:home-battery" }, @@ -175,6 +187,18 @@ "stopped": "mdi:stop-circle" } }, + "consumer_energy_imported_from_battery": { + "default": "mdi:home-battery" + }, + "consumer_energy_imported_from_generator": { + "default": "mdi:generator-stationary" + }, + "consumer_energy_imported_from_grid": { + "default": "mdi:transmission-tower-import" + }, + "consumer_energy_imported_from_solar": { + "default": "mdi:solar-power" + }, "drive_state_active_route_destination": { "default": "mdi:routes" }, @@ -193,24 +217,73 @@ "energy_left": { "default": "mdi:battery" }, + "generator_energy_exported": { + "default": "mdi:generator-stationary" + }, "generator_power": { "default": "mdi:generator-stationary" }, + "grid_energy_exported_from_battery": { + "default": "mdi:battery-arrow-down" + }, + "grid_energy_exported_from_generator": { + "default": "mdi:generator-stationary" + }, + "grid_energy_exported_from_solar": { + "default": "mdi:solar-power" + }, + "grid_energy_imported": { + "default": "mdi:transmission-tower-import" + }, "grid_power": { "default": "mdi:transmission-tower" }, + "grid_services_energy_exported": { + "default": "mdi:transmission-tower-export" + }, + "grid_services_energy_imported": { + "default": "mdi:transmission-tower-import" + }, "grid_services_power": { "default": "mdi:transmission-tower" }, + "island_status": { + "default": "mdi:help-circle", + "state": { + "island_status_unknown": "mdi:help-circle", + "off_grid": "mdi:transmission-tower-off", + "off_grid_intentional": "mdi:account-cancel", + "off_grid_unintentional": "mdi:transmission-tower-off", + "on_grid": "mdi:transmission-tower" + } + }, "load_power": { "default": "mdi:power-plug" }, + "solar_energy_exported": { + "default": "mdi:solar-power-variant" + }, "solar_power": { "default": "mdi:solar-power" }, + "total_battery_charge": { + "default": "mdi:battery-arrow-up" + }, + "total_battery_discharge": { + "default": "mdi:battery-arrow-down" + }, + "total_grid_energy_exported": { + "default": "mdi:transmission-tower-export" + }, + "total_home_usage": { + "default": "mdi:home-lightning-bolt" + }, "total_pack_energy": { "default": "mdi:battery-high" }, + "total_solar_production": { + "default": "mdi:solar-power-variant" + }, "vin": { "default": "mdi:car-electric" }, @@ -222,79 +295,6 @@ }, "wall_connector_state": { "default": "mdi:ev-station" - }, - "island_status": { - "default": "mdi:help-circle", - "state": { - "on_grid": "mdi:transmission-tower", - "off_grid": "mdi:transmission-tower-off", - "off_grid_unintentional": "mdi:transmission-tower-off", - "island_status_unknown": "mdi:help-circle", - "off_grid_intentional": "mdi:account-cancel" - } - }, - "total_home_usage": { - "default": "mdi:home-lightning-bolt" - }, - "total_battery_charge": { - "default": "mdi:battery-arrow-up" - }, - "total_battery_discharge": { - "default": "mdi:battery-arrow-down" - }, - "total_solar_production": { - "default": "mdi:solar-power-variant" - }, - "grid_energy_imported": { - "default": "mdi:transmission-tower-import" - }, - "total_grid_energy_exported": { - "default": "mdi:transmission-tower-export" - }, - "solar_energy_exported": { - "default": "mdi:solar-power-variant" - }, - "generator_energy_exported": { - "default": "mdi:generator-stationary" - }, - "grid_services_energy_imported": { - "default": "mdi:transmission-tower-import" - }, - "grid_services_energy_exported": { - "default": "mdi:transmission-tower-export" - }, - "grid_energy_exported_from_solar": { - "default": "mdi:solar-power" - }, - "grid_energy_exported_from_generator": { - "default": "mdi:generator-stationary" - }, - "grid_energy_exported_from_battery": { - "default": "mdi:battery-arrow-down" - }, - "battery_energy_exported": { - "default": "mdi:battery-arrow-down" - }, - "battery_energy_imported_from_grid": { - "default": "mdi:transmission-tower-import" - }, - "battery_energy_imported_from_solar": { - "default": "mdi:solar-power" - }, - "battery_energy_imported_from_generator": { - "default": "mdi:generator-stationary" - }, - "consumer_energy_imported_from_grid": { - "default": "mdi:transmission-tower-import" - }, - "consumer_energy_imported_from_solar": { - "default": "mdi:solar-power" - }, - "consumer_energy_imported_from_battery": { - "default": "mdi:home-battery" - }, - "consumer_energy_imported_from_generator": { - "default": "mdi:generator-stationary" } }, "switch": { diff --git a/homeassistant/components/tesla_fleet/strings.json b/homeassistant/components/tesla_fleet/strings.json index 05e4d2b85ff..01f911679fc 100644 --- a/homeassistant/components/tesla_fleet/strings.json +++ b/homeassistant/components/tesla_fleet/strings.json @@ -1,58 +1,58 @@ { "config": { "abort": { - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "already_configured": "Configuration updated for profile.", "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%]", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_account_mismatch": "The reauthentication account does not match the original account" + "reauth_account_mismatch": "The reauthentication account does not match the original account", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "Successfully authenticated with Tesla." }, "error": { "invalid_domain": "Invalid domain format. Please enter a valid domain name.", - "public_key_not_found": "Public key not found.", - "public_key_mismatch": "The public key hosted at your domain does not match the expected key. Please ensure the correct public key is hosted at the specified location.", - "precondition_failed": "The domain does not match the application's allowed origins.", "invalid_response": "The registration was rejected by Tesla", + "precondition_failed": "The domain does not match the application's allowed origins.", + "public_key_mismatch": "The public key hosted at your domain does not match the expected key. Please ensure the correct public key is hosted at the specified location.", + "public_key_not_found": "Public key not found.", "unknown_error": "An unknown error occurred: {error}" }, "step": { + "domain_input": { + "data": { + "domain": "Domain" + }, + "description": "Enter the domain that will host your public key. This is typically the domain of the origin you specified during registration at {dashboard}.", + "title": "Tesla Fleet domain registration" + }, + "domain_registration": { + "description": "You must host the public key at:\n\n{public_key_url}\n\n```\n{pem}\n```", + "title": "Registering public key" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "domain_input": { - "title": "Tesla Fleet domain registration", - "description": "Enter the domain that will host your public key. This is typically the domain of the origin you specified during registration at {dashboard}.", - "data": { - "domain": "Domain" - } - }, - "domain_registration": { - "title": "Registering public key", - "description": "You must host the public key at:\n\n{public_key_url}\n\n```\n{pem}\n```" - }, - "registration_complete": { - "title": "Command signing", - "description": "To enable command signing, you must open the Tesla app, select your vehicle, and then visit the following URL to set up a virtual key. You must repeat this process for each vehicle.\n\n{virtual_key_url}" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The {name} integration needs to re-authenticate your account" + "description": "The {name} integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "registration_complete": { + "description": "To enable command signing, you must open the Tesla app, select your vehicle, and then visit the following URL to set up a virtual key. You must repeat this process for each vehicle.\n\n{virtual_key_url}", + "title": "Command signing" } - }, - "create_entry": { - "default": "Successfully authenticated with Tesla." } }, "entity": { @@ -168,10 +168,10 @@ "state_attributes": { "preset_mode": { "state": { - "off": "[%key:common::state::normal%]", - "keep": "Keep mode", + "camp": "Camp mode", "dog": "Dog mode", - "camp": "Camp mode" + "keep": "Keep mode", + "off": "[%key:common::state::normal%]" } } } @@ -319,18 +319,27 @@ } }, "sensor": { + "battery_energy_exported": { + "name": "Battery exported" + }, + "battery_energy_imported_from_generator": { + "name": "Battery imported from generator" + }, + "battery_energy_imported_from_grid": { + "name": "Battery imported from grid" + }, + "battery_energy_imported_from_solar": { + "name": "Battery imported from solar" + }, "battery_power": { "name": "Battery power" }, + "charge_state_battery_level": { + "name": "Battery level" + }, "charge_state_battery_range": { "name": "Battery range" }, - "charge_state_est_battery_range": { - "name": "Estimate battery range" - }, - "charge_state_ideal_battery_range": { - "name": "Ideal battery range" - }, "charge_state_charge_energy_added": { "name": "Charge energy added" }, @@ -346,29 +355,32 @@ "charge_state_charger_voltage": { "name": "Charger voltage" }, + "charge_state_charging_state": { + "name": "Charging", + "state": { + "charging": "[%key:common::state::charging%]", + "complete": "Complete", + "disconnected": "[%key:common::state::disconnected%]", + "no_power": "No power", + "starting": "Starting", + "stopped": "[%key:common::state::stopped%]" + } + }, "charge_state_conn_charge_cable": { "name": "Charge cable" }, + "charge_state_est_battery_range": { + "name": "Estimate battery range" + }, "charge_state_fast_charger_type": { "name": "Fast charger type" }, - "charge_state_charging_state": { - "name": "Charging", - "state": { - "starting": "Starting", - "charging": "[%key:common::state::charging%]", - "disconnected": "[%key:common::state::disconnected%]", - "stopped": "[%key:common::state::stopped%]", - "complete": "Complete", - "no_power": "No power" - } + "charge_state_ideal_battery_range": { + "name": "Ideal battery range" }, "charge_state_minutes_to_full_charge": { "name": "Time to full charge" }, - "charge_state_battery_level": { - "name": "Battery level" - }, "charge_state_usable_battery_level": { "name": "Usable battery level" }, @@ -384,6 +396,18 @@ "climate_state_passenger_temp_setting": { "name": "Passenger temperature setting" }, + "consumer_energy_imported_from_battery": { + "name": "Consumer imported from battery" + }, + "consumer_energy_imported_from_generator": { + "name": "Consumer imported from generator" + }, + "consumer_energy_imported_from_grid": { + "name": "Consumer imported from grid" + }, + "consumer_energy_imported_from_solar": { + "name": "Consumer imported from solar" + }, "drive_state_active_route_destination": { "name": "Destination" }, @@ -417,43 +441,82 @@ "energy_left": { "name": "Energy left" }, + "generator_energy_exported": { + "name": "Generator exported" + }, "generator_power": { "name": "Generator power" }, + "grid_energy_exported_from_battery": { + "name": "Grid exported from battery" + }, + "grid_energy_exported_from_generator": { + "name": "Grid exported from generator" + }, + "grid_energy_exported_from_solar": { + "name": "Grid exported from solar" + }, + "grid_energy_imported": { + "name": "Grid imported" + }, "grid_power": { "name": "Grid power" }, + "grid_services_energy_exported": { + "name": "Grid services exported" + }, + "grid_services_energy_imported": { + "name": "Grid services imported" + }, "grid_services_power": { "name": "Grid services power" }, + "island_status": { + "name": "Grid status", + "state": { + "island_status_unknown": "Unknown", + "off_grid": "[%key:common::state::disconnected%]", + "off_grid_intentional": "Disconnected intentionally", + "off_grid_unintentional": "Disconnected unintentionally", + "on_grid": "[%key:common::state::connected%]" + } + }, "load_power": { "name": "Load power" }, "percentage_charged": { "name": "Percentage charged" }, + "solar_energy_exported": { + "name": "Solar exported" + }, "solar_power": { "name": "Solar power" }, + "storm_mode_active": { + "name": "Storm watch active" + }, + "total_battery_charge": { + "name": "Battery charged" + }, + "total_battery_discharge": { + "name": "Battery discharged" + }, + "total_grid_energy_exported": { + "name": "Grid exported" + }, + "total_home_usage": { + "name": "Home usage" + }, "total_pack_energy": { "name": "Total pack energy" }, + "total_solar_generation": { + "name": "Solar generated" + }, "vehicle_state_odometer": { "name": "Odometer" }, - "island_status": { - "name": "Grid status", - "state": { - "island_status_unknown": "Unknown", - "on_grid": "[%key:common::state::connected%]", - "off_grid": "[%key:common::state::disconnected%]", - "off_grid_unintentional": "Disconnected unintentionally", - "off_grid_intentional": "Disconnected intentionally" - } - }, - "storm_mode_active": { - "name": "Storm watch active" - }, "vehicle_state_tpms_pressure_fl": { "name": "Tire pressure front left" }, @@ -483,69 +546,6 @@ }, "wall_connector_state": { "name": "State code" - }, - "solar_energy_exported": { - "name": "Solar exported" - }, - "generator_energy_exported": { - "name": "Generator exported" - }, - "grid_energy_imported": { - "name": "Grid imported" - }, - "grid_services_energy_imported": { - "name": "Grid services imported" - }, - "grid_services_energy_exported": { - "name": "Grid services exported" - }, - "grid_energy_exported_from_solar": { - "name": "Grid exported from solar" - }, - "grid_energy_exported_from_generator": { - "name": "Grid exported from generator" - }, - "grid_energy_exported_from_battery": { - "name": "Grid exported from battery" - }, - "battery_energy_exported": { - "name": "Battery exported" - }, - "battery_energy_imported_from_grid": { - "name": "Battery imported from grid" - }, - "battery_energy_imported_from_solar": { - "name": "Battery imported from solar" - }, - "battery_energy_imported_from_generator": { - "name": "Battery imported from generator" - }, - "consumer_energy_imported_from_grid": { - "name": "Consumer imported from grid" - }, - "consumer_energy_imported_from_solar": { - "name": "Consumer imported from solar" - }, - "consumer_energy_imported_from_battery": { - "name": "Consumer imported from battery" - }, - "consumer_energy_imported_from_generator": { - "name": "Consumer imported from generator" - }, - "total_home_usage": { - "name": "Home usage" - }, - "total_battery_charge": { - "name": "Battery charged" - }, - "total_battery_discharge": { - "name": "Battery discharged" - }, - "total_solar_generation": { - "name": "Solar generated" - }, - "total_grid_energy_exported": { - "name": "Grid exported" } }, "switch": { @@ -579,38 +579,38 @@ } }, "exceptions": { + "command_error": { + "message": "Command returned an error: {error}" + }, + "command_failed": { + "message": "Command failed: {message}" + }, + "command_no_reason": { + "message": "Command was unsuccessful but did not return a reason why." + }, + "command_reason": { + "message": "Command was unsuccessful: {reason}" + }, + "invalid_cop_temp": { + "message": "Cabin overheat protection does not support that temperature." + }, + "missing_scope_energy_cmds": { + "message": "Missing energy commands scope." + }, + "missing_scope_vehicle_charging_cmds": { + "message": "Missing vehicle charging commands scope." + }, + "missing_scope_vehicle_cmds": { + "message": "Missing vehicle commands scope." + }, + "missing_temperature": { + "message": "Temperature is required for this action." + }, "no_cable": { "message": "Charge cable will lock automatically when connected" }, "update_failed": { "message": "{endpoint} data request failed: {message}" - }, - "command_failed": { - "message": "Command failed: {message}" - }, - "command_error": { - "message": "Command returned an error: {error}" - }, - "command_reason": { - "message": "Command was unsuccessful: {reason}" - }, - "command_no_reason": { - "message": "Command was unsuccessful but did not return a reason why." - }, - "invalid_cop_temp": { - "message": "Cabin overheat protection does not support that temperature." - }, - "missing_temperature": { - "message": "Temperature is required for this action." - }, - "missing_scope_vehicle_cmds": { - "message": "Missing vehicle commands scope." - }, - "missing_scope_vehicle_charging_cmds": { - "message": "Missing vehicle charging commands scope." - }, - "missing_scope_energy_cmds": { - "message": "Missing energy commands scope." } } } diff --git a/homeassistant/components/tesla_wall_connector/strings.json b/homeassistant/components/tesla_wall_connector/strings.json index f1247ea8f9f..4271119b79b 100644 --- a/homeassistant/components/tesla_wall_connector/strings.json +++ b/homeassistant/components/tesla_wall_connector/strings.json @@ -1,68 +1,35 @@ { "config": { - "flow_title": "{serial_number} ({host})", - "step": { - "user": { - "title": "Configure Tesla Wall Connector", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Tesla Wall Connector." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "flow_title": "{serial_number} ({host})", + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Tesla Wall Connector." + }, + "title": "Configure Tesla Wall Connector" + } } }, "entity": { "binary_sensor": { - "vehicle_connected": { - "name": "Vehicle connected" - }, "contactor_closed": { "name": "Contactor closed" + }, + "vehicle_connected": { + "name": "Vehicle connected" } }, "sensor": { - "status": { - "name": "Status", - "state": { - "booting": "Booting", - "not_connected": "Vehicle not connected", - "connected": "Vehicle connected", - "ready": "Ready to charge", - "negotiating": "Negotiating connection", - "error": "[%key:common::state::error%]", - "charging_finished": "Charging finished", - "waiting_car": "Waiting for car", - "charging_reduced": "Charging (reduced)", - "charging": "[%key:common::state::charging%]" - } - }, - "status_code": { - "name": "Status code" - }, - "handle_temp_c": { - "name": "Handle temperature" - }, - "pcba_temp_c": { - "name": "PCB temperature" - }, - "mcu_temp_c": { - "name": "MCU temperature" - }, - "grid_v": { - "name": "Grid voltage" - }, - "grid_hz": { - "name": "Grid frequency" - }, "current_a_a": { "name": "Phase A current" }, @@ -72,6 +39,42 @@ "current_c_a": { "name": "Phase C current" }, + "grid_hz": { + "name": "Grid frequency" + }, + "grid_v": { + "name": "Grid voltage" + }, + "handle_temp_c": { + "name": "Handle temperature" + }, + "mcu_temp_c": { + "name": "MCU temperature" + }, + "pcba_temp_c": { + "name": "PCB temperature" + }, + "session_energy_wh": { + "name": "Session energy" + }, + "status": { + "name": "Status", + "state": { + "booting": "Booting", + "charging": "[%key:common::state::charging%]", + "charging_finished": "Charging finished", + "charging_reduced": "Charging (reduced)", + "connected": "Vehicle connected", + "error": "[%key:common::state::error%]", + "negotiating": "Negotiating connection", + "not_connected": "Vehicle not connected", + "ready": "Ready to charge", + "waiting_car": "Waiting for car" + } + }, + "status_code": { + "name": "Status code" + }, "voltage_a_v": { "name": "Phase A voltage" }, @@ -80,9 +83,6 @@ }, "voltage_c_v": { "name": "Phase C voltage" - }, - "session_energy_wh": { - "name": "Session energy" } } } diff --git a/homeassistant/components/teslemetry/icons.json b/homeassistant/components/teslemetry/icons.json index 46b63fc2c73..d7478fd1e91 100644 --- a/homeassistant/components/teslemetry/icons.json +++ b/homeassistant/components/teslemetry/icons.json @@ -1,10 +1,10 @@ { "entity": { "binary_sensor": { - "state": { + "backup_capable": { "state": { - "off": "mdi:sleep", - "on": "mdi:car-connected" + "off": "mdi:battery-off", + "on": "mdi:home-battery" } }, "cellular": { @@ -13,10 +13,10 @@ "on": "mdi:signal-cellular-3" } }, - "wifi": { + "charge_enable_request": { "state": { - "off": "mdi:wifi-off", - "on": "mdi:wifi" + "off": "mdi:battery-off-outline", + "on": "mdi:battery-charging-outline" } }, "climate_state_is_preconditioning": { @@ -25,6 +25,72 @@ "on": "mdi:hvac" } }, + "components_grid_services_enabled": { + "state": { + "off": "mdi:transmission-tower-off", + "on": "mdi:sine-wave" + } + }, + "defrost_for_preconditioning": { + "state": { + "off": "mdi:snowflake-off", + "on": "mdi:snowflake-melt" + } + }, + "grid_services_active": { + "state": { + "off": "mdi:transmission-tower-off", + "on": "mdi:sine-wave" + } + }, + "grid_status": { + "state": { + "off": "mdi:transmission-tower-off", + "on": "mdi:transmission-tower" + } + }, + "hvac_auto_mode": { + "state": { + "off": "mdi:hvac-off", + "on": "mdi:hvac" + } + }, + "lights_hazards_active": { + "state": { + "off": "mdi:car-light-dimmed", + "on": "mdi:hazard-lights" + } + }, + "lights_high_beams": { + "state": { + "off": "mdi:car-light-dimmed", + "on": "mdi:car-light-high" + } + }, + "remote_start_enabled": { + "state": { + "off": "mdi:remote-off", + "on": "mdi:remote" + } + }, + "seat_vent_enabled": { + "state": { + "off": "mdi:car-seat", + "on": "mdi:fan" + } + }, + "speed_limit_mode": { + "state": { + "off": "mdi:speedometer", + "on": "mdi:car-speed-limiter" + } + }, + "state": { + "state": { + "off": "mdi:sleep", + "on": "mdi:car-connected" + } + }, "storm_mode_active": { "default": "mdi:weather-sunny", "state": { @@ -61,76 +127,10 @@ "on": "mdi:car-tire-alert" } }, - "charge_enable_request": { + "wifi": { "state": { - "off": "mdi:battery-off-outline", - "on": "mdi:battery-charging-outline" - } - }, - "defrost_for_preconditioning": { - "state": { - "off": "mdi:snowflake-off", - "on": "mdi:snowflake-melt" - } - }, - "lights_hazards_active": { - "state": { - "off": "mdi:car-light-dimmed", - "on": "mdi:hazard-lights" - } - }, - "lights_high_beams": { - "state": { - "off": "mdi:car-light-dimmed", - "on": "mdi:car-light-high" - } - }, - "seat_vent_enabled": { - "state": { - "off": "mdi:car-seat", - "on": "mdi:fan" - } - }, - "speed_limit_mode": { - "state": { - "off": "mdi:speedometer", - "on": "mdi:car-speed-limiter" - } - }, - "remote_start_enabled": { - "state": { - "off": "mdi:remote-off", - "on": "mdi:remote" - } - }, - "hvac_auto_mode": { - "state": { - "off": "mdi:hvac-off", - "on": "mdi:hvac" - } - }, - "backup_capable": { - "state": { - "off": "mdi:battery-off", - "on": "mdi:home-battery" - } - }, - "grid_status": { - "state": { - "off": "mdi:transmission-tower-off", - "on": "mdi:transmission-tower" - } - }, - "grid_services_active": { - "state": { - "on": "mdi:sine-wave", - "off": "mdi:transmission-tower-off" - } - }, - "components_grid_services_enabled": { - "state": { - "on": "mdi:sine-wave", - "off": "mdi:transmission-tower-off" + "off": "mdi:wifi-off", + "on": "mdi:wifi" } } }, @@ -159,15 +159,29 @@ "state_attributes": { "preset_mode": { "state": { - "off": "mdi:power", - "keep": "mdi:fan", + "camp": "mdi:tent", "dog": "mdi:dog", - "camp": "mdi:tent" + "keep": "mdi:fan", + "off": "mdi:power" } } } } }, + "cover": { + "charge_state_charge_port_door_open": { + "default": "mdi:ev-plug-ccs2" + } + }, + + "device_tracker": { + "location": { + "default": "mdi:map-marker" + }, + "route": { + "default": "mdi:routes" + } + }, "lock": { "charge_state_charge_port_latch": { "default": "mdi:ev-plug-tesla" @@ -242,168 +256,35 @@ } } }, - "device_tracker": { - "location": { - "default": "mdi:map-marker" - }, - "route": { - "default": "mdi:routes" - } - }, - "cover": { - "charge_state_charge_port_door_open": { - "default": "mdi:ev-plug-ccs2" - } - }, - "sensor": { - "battery_power": { - "default": "mdi:home-battery" - }, - "charge_state_charging_state": { - "default": "mdi:ev-station", - "state": { - "disconnected": "mdi:connection", - "no_power": "mdi:power-plug-off-outline", - "starting": "mdi:play-circle", - "stopped": "mdi:stop-circle" - } - }, - "drive_state_active_route_destination": { - "default": "mdi:routes" - }, - "drive_state_active_route_minutes_to_arrival": { - "default": "mdi:routes-clock" - }, - "drive_state_shift_state": { - "default": "mdi:car-shift-pattern", - "state": { - "d": "mdi:alpha-d", - "n": "mdi:alpha-n", - "p": "mdi:alpha-p", - "r": "mdi:alpha-r" - } - }, - "energy_left": { - "default": "mdi:battery" - }, - "generator_power": { - "default": "mdi:generator-stationary" - }, - "grid_power": { - "default": "mdi:transmission-tower" - }, - "grid_services_power": { - "default": "mdi:transmission-tower" - }, - "load_power": { - "default": "mdi:power-plug" - }, - "solar_power": { - "default": "mdi:solar-power" - }, - "total_pack_energy": { - "default": "mdi:battery-high" - }, - "vin": { - "default": "mdi:car-electric" - }, - "wall_connector_fault_state": { - "default": "mdi:ev-station" - }, - "wall_connector_power": { - "default": "mdi:ev-station" - }, - "wall_connector_state": { - "default": "mdi:ev-station" - }, - "total_home_usage": { - "default": "mdi:home-lightning-bolt" - }, - "total_battery_charge": { - "default": "mdi:battery-arrow-up" - }, - "total_battery_discharge": { - "default": "mdi:battery-arrow-down" - }, - "total_solar_production": { - "default": "mdi:solar-power-variant" - }, - "grid_energy_imported": { - "default": "mdi:transmission-tower-import" - }, - "total_grid_energy_exported": { - "default": "mdi:transmission-tower-export" - }, - "solar_energy_exported": { - "default": "mdi:solar-power-variant" - }, - "generator_energy_exported": { - "default": "mdi:generator-stationary" - }, - "grid_services_energy_imported": { - "default": "mdi:transmission-tower-import" - }, - "grid_services_energy_exported": { - "default": "mdi:transmission-tower-export" - }, - "grid_energy_exported_from_solar": { - "default": "mdi:solar-power" - }, - "grid_energy_exported_from_generator": { - "default": "mdi:generator-stationary" - }, - "grid_energy_exported_from_battery": { - "default": "mdi:battery-arrow-down" - }, "battery_energy_exported": { "default": "mdi:battery-arrow-down" }, + "battery_energy_imported_from_generator": { + "default": "mdi:generator-stationary" + }, "battery_energy_imported_from_grid": { "default": "mdi:transmission-tower-import" }, "battery_energy_imported_from_solar": { "default": "mdi:solar-power" }, - "battery_energy_imported_from_generator": { - "default": "mdi:generator-stationary" - }, - "consumer_energy_imported_from_grid": { - "default": "mdi:transmission-tower-import" - }, - "consumer_energy_imported_from_solar": { - "default": "mdi:solar-power" - }, - "consumer_energy_imported_from_battery": { + "battery_power": { "default": "mdi:home-battery" }, - "consumer_energy_imported_from_generator": { - "default": "mdi:generator-stationary" - }, - "sentry_mode": { - "default": "mdi:shield-car", - "state": { - "off": "mdi:shield-off-outline", - "idle": "mdi:shield-outline", - "armed": "mdi:shield-check", - "aware": "mdi:shield-alert", - "panic": "mdi:shield-alert-outline", - "quiet": "mdi:shield-half-full" - } - }, "bms_state": { "default": "mdi:battery-heart-variant", "state": { - "standby": "mdi:battery-clock", - "drive": "mdi:car-electric", - "support": "mdi:battery-check", "charge": "mdi:battery-charging", - "full_electric_in_motion": "mdi:battery-arrow-up", "clear_fault": "mdi:battery-alert-variant-outline", + "drive": "mdi:car-electric", "fault": "mdi:battery-alert", - "weld": "mdi:battery-lock", + "full_electric_in_motion": "mdi:battery-arrow-up", + "standby": "mdi:battery-clock", + "support": "mdi:battery-check", + "system_not_available": "mdi:battery-off", "test": "mdi:battery-sync", - "system_not_available": "mdi:battery-off" + "weld": "mdi:battery-lock" } }, "brake_pedal_position": { @@ -415,6 +296,30 @@ "brick_voltage_min": { "default": "mdi:battery-low" }, + "charge_rate_mile_per_hour": { + "default": "mdi:speedometer" + }, + "charge_state_charging_state": { + "default": "mdi:ev-station", + "state": { + "disconnected": "mdi:connection", + "no_power": "mdi:power-plug-off-outline", + "starting": "mdi:play-circle", + "stopped": "mdi:stop-circle" + } + }, + "consumer_energy_imported_from_battery": { + "default": "mdi:home-battery" + }, + "consumer_energy_imported_from_generator": { + "default": "mdi:generator-stationary" + }, + "consumer_energy_imported_from_grid": { + "default": "mdi:transmission-tower-import" + }, + "consumer_energy_imported_from_solar": { + "default": "mdi:solar-power" + }, "credit_balance": { "default": "mdi:credit-card" }, @@ -487,41 +392,41 @@ "di_state_f": { "default": "mdi:car-electric", "state": { - "unavailable": "mdi:car-off", - "standby": "mdi:power-sleep", - "fault": "mdi:alert-circle", "abort": "mdi:stop-circle", - "enabled": "mdi:check-circle" + "enabled": "mdi:check-circle", + "fault": "mdi:alert-circle", + "standby": "mdi:power-sleep", + "unavailable": "mdi:car-off" } }, "di_state_r": { "default": "mdi:car-electric", "state": { - "unavailable": "mdi:car-off", - "standby": "mdi:power-sleep", - "fault": "mdi:alert-circle", "abort": "mdi:stop-circle", - "enabled": "mdi:check-circle" + "enabled": "mdi:check-circle", + "fault": "mdi:alert-circle", + "standby": "mdi:power-sleep", + "unavailable": "mdi:car-off" } }, "di_state_rel": { "default": "mdi:car-electric", "state": { - "unavailable": "mdi:car-off", - "standby": "mdi:power-sleep", - "fault": "mdi:alert-circle", "abort": "mdi:stop-circle", - "enabled": "mdi:check-circle" + "enabled": "mdi:check-circle", + "fault": "mdi:alert-circle", + "standby": "mdi:power-sleep", + "unavailable": "mdi:car-off" } }, "di_state_rer": { "default": "mdi:car-electric", "state": { - "unavailable": "mdi:car-off", - "standby": "mdi:power-sleep", - "fault": "mdi:alert-circle", "abort": "mdi:stop-circle", - "enabled": "mdi:check-circle" + "enabled": "mdi:check-circle", + "fault": "mdi:alert-circle", + "standby": "mdi:power-sleep", + "unavailable": "mdi:car-off" } }, "di_stator_temp_f": { @@ -536,6 +441,24 @@ "di_stator_temp_rer": { "default": "mdi:thermometer" }, + "drive_state_active_route_destination": { + "default": "mdi:routes" + }, + "drive_state_active_route_minutes_to_arrival": { + "default": "mdi:routes-clock" + }, + "drive_state_shift_state": { + "default": "mdi:car-shift-pattern", + "state": { + "d": "mdi:alpha-d", + "n": "mdi:alpha-n", + "p": "mdi:alpha-p", + "r": "mdi:alpha-r" + } + }, + "energy_left": { + "default": "mdi:battery" + }, "energy_remaining": { "default": "mdi:battery-medium" }, @@ -545,36 +468,66 @@ "forward_collision_warning": { "default": "mdi:car-crash", "state": { - "off": "mdi:car-off", - "late": "mdi:alert", "average": "mdi:alert-circle", - "early": "mdi:alert-octagon" + "early": "mdi:alert-octagon", + "late": "mdi:alert", + "off": "mdi:car-off" } }, + "generator_energy_exported": { + "default": "mdi:generator-stationary" + }, + "generator_power": { + "default": "mdi:generator-stationary" + }, "gps_heading": { "default": "mdi:compass" }, + "grid_energy_exported_from_battery": { + "default": "mdi:battery-arrow-down" + }, + "grid_energy_exported_from_generator": { + "default": "mdi:generator-stationary" + }, + "grid_energy_exported_from_solar": { + "default": "mdi:solar-power" + }, + "grid_energy_imported": { + "default": "mdi:transmission-tower-import" + }, + "grid_power": { + "default": "mdi:transmission-tower" + }, + "grid_services_energy_exported": { + "default": "mdi:transmission-tower-export" + }, + "grid_services_energy_imported": { + "default": "mdi:transmission-tower-import" + }, + "grid_services_power": { + "default": "mdi:transmission-tower" + }, "guest_mode_mobile_access_state": { "default": "mdi:account-key", "state": { + "aborted_bad_data_received": "mdi:file-alert", + "aborted_drive_auth_time_exceeded": "mdi:timer-off", + "aborted_driving": "mdi:car-off", + "aborted_fetch_failed": "mdi:wifi-off", + "aborted_guest_mode_off": "mdi:power-off", + "aborted_no_data_received": "mdi:network-off", + "aborted_using_ble_keys": "mdi:bluetooth-off", + "aborted_using_remote_start": "mdi:remote-off", + "aborted_valet_mode": "mdi:car-key", + "authenticated": "mdi:account-check", + "dismissed_qr_code_expired": "mdi:clock-alert", "init": "mdi:cog-refresh", "not_authenticated": "mdi:account-off", - "authenticated": "mdi:account-check", - "aborted_driving": "mdi:car-off", - "aborted_using_remote_start": "mdi:remote-off", - "aborted_using_ble_keys": "mdi:bluetooth-off", - "aborted_valet_mode": "mdi:car-key", - "aborted_guest_mode_off": "mdi:power-off", - "aborted_drive_auth_time_exceeded": "mdi:timer-off", - "aborted_no_data_received": "mdi:network-off", - "requesting_from_mothership": "mdi:cloud-download", "requesting_from_auth_d": "mdi:shield-key", - "aborted_fetch_failed": "mdi:wifi-off", - "aborted_bad_data_received": "mdi:file-alert", + "requesting_from_mothership": "mdi:cloud-download", "showing_qr_code": "mdi:qrcode", - "swiped_away": "mdi:gesture-swipe", - "dismissed_qr_code_expired": "mdi:clock-alert", - "succeeded_paired_new_ble_key": "mdi:bluetooth-connect" + "succeeded_paired_new_ble_key": "mdi:bluetooth-connect", + "swiped_away": "mdi:gesture-swipe" } }, "homelink_device_count": { @@ -589,6 +542,15 @@ "hvac_left_temperature_request": { "default": "mdi:thermometer" }, + "hvac_power_state": { + "default": "mdi:hvac", + "state": { + "off": "mdi:hvac-off", + "on": "mdi:hvac", + "overheat_protection": "mdi:thermometer-alert", + "precondition": "mdi:sun-thermometer" + } + }, "hvac_right_temperature_request": { "default": "mdi:thermometer" }, @@ -598,8 +560,8 @@ "lane_departure_avoidance": { "default": "mdi:road-variant", "state": { - "warning": "mdi:alert", - "assist": "mdi:steering" + "assist": "mdi:steering", + "warning": "mdi:alert" } }, "lateral_acceleration": { @@ -611,6 +573,17 @@ "lifetime_energy_used_drive": { "default": "mdi:lightning-bolt" }, + "lights_turn_signal": { + "default": "mdi:car-light-dimmed", + "state": { + "both": "mdi:hazard-lights", + "left": "mdi:arrow-left-bold-box", + "right": "mdi:arrow-right-bold-box" + } + }, + "load_power": { + "default": "mdi:power-plug" + }, "longitudinal_acceleration": { "default": "mdi:axis-arrow" }, @@ -641,10 +614,10 @@ "powershare_status": { "default": "mdi:power-socket", "state": { - "inactive": "mdi:power-plug-off-outline", - "handshaking": "mdi:handshake", - "init": "mdi:cog-refresh", "enabled": "mdi:check-circle", + "handshaking": "mdi:handshake", + "inactive": "mdi:power-plug-off-outline", + "init": "mdi:cog-refresh", "reconnecting": "mdi:wifi-refresh", "stopped": "mdi:stop-circle" } @@ -652,19 +625,19 @@ "powershare_stop_reason": { "default": "mdi:stop-circle", "state": { - "soc_too_low": "mdi:battery-low", - "retry": "mdi:refresh", + "authentication": "mdi:shield-key", "fault": "mdi:alert-circle", - "user": "mdi:account", "reconnecting": "mdi:wifi-refresh", - "authentication": "mdi:shield-key" + "retry": "mdi:refresh", + "soc_too_low": "mdi:battery-low", + "user": "mdi:account" } }, "powershare_type": { "default": "mdi:power-socket", "state": { - "load": "mdi:power-plug", - "home": "mdi:home" + "home": "mdi:home", + "load": "mdi:power-plug" } }, "rated_range": { @@ -679,44 +652,71 @@ "off": "mdi:calendar" } }, + "sentry_mode": { + "default": "mdi:shield-car", + "state": { + "armed": "mdi:shield-check", + "aware": "mdi:shield-alert", + "idle": "mdi:shield-outline", + "off": "mdi:shield-off-outline", + "panic": "mdi:shield-alert-outline", + "quiet": "mdi:shield-half-full" + } + }, "software_update_expected_duration_minutes": { "default": "mdi:update" }, + "solar_energy_exported": { + "default": "mdi:solar-power-variant" + }, + "solar_power": { + "default": "mdi:solar-power" + }, "speed_limit_warning": { "default": "mdi:car-cruise-control" }, "tonneau_tent_mode": { "default": "mdi:tent", "state": { - "moving": "mdi:sync", - "failed": "mdi:alert" + "failed": "mdi:alert", + "moving": "mdi:sync" } }, + "total_battery_charge": { + "default": "mdi:battery-arrow-up" + }, + "total_battery_discharge": { + "default": "mdi:battery-arrow-down" + }, + "total_grid_energy_exported": { + "default": "mdi:transmission-tower-export" + }, + "total_home_usage": { + "default": "mdi:home-lightning-bolt" + }, + "total_pack_energy": { + "default": "mdi:battery-high" + }, + "total_solar_production": { + "default": "mdi:solar-power-variant" + }, "tpms_hard_warnings": { "default": "mdi:car-tire-alert" }, "tpms_soft_warnings": { "default": "mdi:car-tire-alert" }, - "lights_turn_signal": { - "default": "mdi:car-light-dimmed", - "state": { - "left": "mdi:arrow-left-bold-box", - "right": "mdi:arrow-right-bold-box", - "both": "mdi:hazard-lights" - } + "vin": { + "default": "mdi:car-electric" }, - "charge_rate_mile_per_hour": { - "default": "mdi:speedometer" + "wall_connector_fault_state": { + "default": "mdi:ev-station" }, - "hvac_power_state": { - "default": "mdi:hvac", - "state": { - "precondition": "mdi:sun-thermometer", - "overheat_protection": "mdi:thermometer-alert", - "off": "mdi:hvac-off", - "on": "mdi:hvac" - } + "wall_connector_power": { + "default": "mdi:ev-station" + }, + "wall_connector_state": { + "default": "mdi:ev-station" } }, "switch": { @@ -747,21 +747,33 @@ "true": "mdi:solar-power" } }, + "guest_mode_enabled": { + "default": "mdi:account-group" + }, "vehicle_state_sentry_mode": { "default": "mdi:shield-car" }, "vehicle_state_valet_mode": { "default": "mdi:speedometer-slow" - }, - "guest_mode_enabled": { - "default": "mdi:account-group" } } }, "services": { + "add_charge_schedule": { + "service": "mdi:calendar-plus" + }, + "add_precondition_schedule": { + "service": "mdi:hvac-outline" + }, "navigation_gps_request": { "service": "mdi:crosshairs-gps" }, + "remove_charge_schedule": { + "service": "mdi:calendar-minus" + }, + "remove_precondition_schedule": { + "service": "mdi:hvac-off-outline" + }, "set_scheduled_charging": { "service": "mdi:timeline-clock-outline" }, @@ -771,23 +783,11 @@ "speed_limit": { "service": "mdi:car-speed-limiter" }, - "valet_mode": { - "service": "mdi:speedometer-slow" - }, "time_of_use": { "service": "mdi:clock-time-eight-outline" }, - "add_charge_schedule": { - "service": "mdi:calendar-plus" - }, - "remove_charge_schedule": { - "service": "mdi:calendar-minus" - }, - "add_precondition_schedule": { - "service": "mdi:hvac-outline" - }, - "remove_precondition_schedule": { - "service": "mdi:hvac-off-outline" + "valet_mode": { + "service": "mdi:speedometer-slow" } } } diff --git a/homeassistant/components/teslemetry/strings.json b/homeassistant/components/teslemetry/strings.json index b78f2d00f60..9a99404fb70 100644 --- a/homeassistant/components/teslemetry/strings.json +++ b/homeassistant/components/teslemetry/strings.json @@ -1,63 +1,87 @@ { "common": { - "unavailable": "Unavailable", "abort": "Abort", - "vehicle": "Vehicle", - "wake_up_failed": "Failed to wake up vehicle: {message}", - "wake_up_timeout": "Timed out trying to wake up vehicle", - "schedule_id": "Schedule ID", - "schedule_id_description": "The ID of the schedule, use an existing ID to modify.", "days_of_week": "Days of week", "days_of_week_description": "Select which days this schedule should be enabled on. You can select multiple days.", - "one_time": "One-time", - "one_time_description": "If this is a one-time schedule.", - "location_description": "The approximate location the vehicle must be at to use this schedule. Defaults to Home Assistant's configured location.", - "start_time": "Start time", - "start_time_description": "The time this schedule begins, e.g. 01:05 for 1:05 AM.", + "descr_pin": "4-digit code to enable or disable the setting", "end_time": "End time", "end_time_description": "The time this schedule ends, e.g. 01:05 for 1:05 AM.", + "location_description": "The approximate location the vehicle must be at to use this schedule. Defaults to Home Assistant's configured location.", + "one_time": "One-time", + "one_time_description": "If this is a one-time schedule.", "precondition_time": "Precondition time", "precondition_time_description": "The time the vehicle should complete preconditioning, e.g. 01:05 for 1:05 AM.", - "schedule_name_description": "The name of the schedule.", - "vehicle_to_schedule": "Vehicle to schedule.", - "vehicle_to_remove_schedule": "Vehicle to remove schedule from.", "schedule_enable_description": "If this schedule should be considered for execution.", + "schedule_id": "Schedule ID", + "schedule_id_description": "The ID of the schedule, use an existing ID to modify.", "schedule_id_remove_description": "The ID of the schedule to remove.", - "descr_pin": "4-digit code to enable or disable the setting" + "schedule_name_description": "The name of the schedule.", + "start_time": "Start time", + "start_time_description": "The time this schedule begins, e.g. 01:05 for 1:05 AM.", + "unavailable": "Unavailable", + "vehicle": "Vehicle", + "vehicle_to_remove_schedule": "Vehicle to remove schedule from.", + "vehicle_to_schedule": "Vehicle to schedule.", + "wake_up_failed": "Failed to wake up vehicle: {message}", + "wake_up_timeout": "Timed out trying to wake up vehicle" }, "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_account_mismatch": "The reauthentication account does not match the original account" + "reauth_account_mismatch": "The reauthentication account does not match the original account", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", "subscription_required": "Subscription required, please visit {short_url}", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { + "reauth_confirm": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "The {name} integration needs to re-authenticate your account, please enter an access token from {url}", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { "data": { "access_token": "[%key:common::config_flow::data::access_token%]" }, "description": "Enter an access token from {url}." - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The {name} integration needs to re-authenticate your account, please enter an access token from {url}", - "data": { - "access_token": "[%key:common::config_flow::data::access_token%]" - } } } }, "entity": { "binary_sensor": { + "automatic_blind_spot_camera": { + "name": "Automatic blind spot camera" + }, + "automatic_emergency_braking_off": { + "name": "Automatic emergency braking off" + }, "backup_capable": { "name": "Backup capable" }, + "blind_spot_collision_warning_chime": { + "name": "Blind spot collision warning chime" + }, + "bms_full_charge_complete": { + "name": "BMS full charge" + }, + "brake_pedal": { + "name": "Brake pedal" + }, + "cellular": { + "name": "Cellular" + }, + "charge_enable_request": { + "name": "Charge enable request" + }, + "charge_port_cold_weather_mode": { + "name": "Charge port cold weather mode" + }, "charge_state_battery_heater_on": { "name": "Battery heater" }, @@ -85,41 +109,101 @@ "components_grid_services_enabled": { "name": "Grid services enabled" }, + "dc_dc_enable": { + "name": "DC to DC converter" + }, + "defrost_for_preconditioning": { + "name": "Defrost for preconditioning" + }, + "drive_rail": { + "name": "Drive rail" + }, + "driver_seat_belt": { + "name": "Driver seat belt" + }, + "driver_seat_occupied": { + "name": "Driver seat occupied" + }, + "emergency_lane_departure_avoidance": { + "name": "Emergency lane departure avoidance" + }, + "europe_vehicle": { + "name": "European vehicle" + }, + "fast_charger_present": { + "name": "Fast charger present" + }, + "gps_state": { + "name": "GPS state" + }, "grid_services_active": { "name": "Grid services active" }, + "grid_status": { + "name": "Grid status" + }, + "guest_mode_enabled": { + "name": "Guest mode enabled" + }, + "homelink_nearby": { + "name": "Homelink nearby" + }, + "hvac_auto_mode": { + "name": "HVAC auto mode" + }, + "hvil": { + "name": "High voltage interlock loop fault" + }, + "lights_hazards_active": { + "name": "Hazard lights" + }, + "lights_high_beams": { + "name": "High beams" + }, + "located_at_favorite": { + "name": "Located at favorite" + }, + "located_at_home": { + "name": "Located at home" + }, + "located_at_work": { + "name": "Located at work" + }, + "offroad_lightbar_present": { + "name": "Offroad lightbar" + }, + "passenger_seat_belt": { + "name": "Passenger seat belt" + }, + "pin_to_drive_enabled": { + "name": "PIN to Drive enabled" + }, + "rear_display_hvac_enabled": { + "name": "Rear display HVAC" + }, + "remote_start_enabled": { + "name": "Remote start" + }, + "right_hand_drive": { + "name": "Right-hand drive" + }, + "seat_vent_enabled": { + "name": "Seat vent enabled" + }, + "service_mode": { + "name": "Service mode" + }, + "speed_limit_mode": { + "name": "Speed limited" + }, "state": { "name": "Status" }, - "cellular": { - "name": "Cellular" - }, - "wifi": { - "name": "Wi-Fi" - }, "storm_mode_active": { "name": "Storm watch active" }, - "automatic_blind_spot_camera": { - "name": "Automatic blind spot camera" - }, - "automatic_emergency_braking_off": { - "name": "Automatic emergency braking off" - }, - "blind_spot_collision_warning_chime": { - "name": "Blind spot collision warning chime" - }, - "bms_full_charge_complete": { - "name": "BMS full charge" - }, - "brake_pedal": { - "name": "Brake pedal" - }, - "charge_port_cold_weather_mode": { - "name": "Charge port cold weather mode" - }, - "service_mode": { - "name": "Service mode" + "supercharger_session_trip_planner": { + "name": "Supercharger session trip planner" }, "vehicle_state_dashcam_state": { "name": "Dashcam" @@ -163,95 +247,11 @@ "vehicle_state_tpms_soft_warning_rr": { "name": "Tire pressure warning rear right" }, - "pin_to_drive_enabled": { - "name": "PIN to Drive enabled" - }, - "drive_rail": { - "name": "Drive rail" - }, - "driver_seat_belt": { - "name": "Driver seat belt" - }, - "driver_seat_occupied": { - "name": "Driver seat occupied" - }, - "passenger_seat_belt": { - "name": "Passenger seat belt" - }, - "fast_charger_present": { - "name": "Fast charger present" - }, - "gps_state": { - "name": "GPS state" - }, - "guest_mode_enabled": { - "name": "Guest mode enabled" - }, - "dc_dc_enable": { - "name": "DC to DC converter" - }, - "emergency_lane_departure_avoidance": { - "name": "Emergency lane departure avoidance" - }, - "supercharger_session_trip_planner": { - "name": "Supercharger session trip planner" + "wifi": { + "name": "Wi-Fi" }, "wiper_heat_enabled": { "name": "Wiper heat" - }, - "rear_display_hvac_enabled": { - "name": "Rear display HVAC" - }, - "offroad_lightbar_present": { - "name": "Offroad lightbar" - }, - "homelink_nearby": { - "name": "Homelink nearby" - }, - "europe_vehicle": { - "name": "European vehicle" - }, - "right_hand_drive": { - "name": "Right-hand drive" - }, - "located_at_home": { - "name": "Located at home" - }, - "located_at_work": { - "name": "Located at work" - }, - "located_at_favorite": { - "name": "Located at favorite" - }, - "charge_enable_request": { - "name": "Charge enable request" - }, - "defrost_for_preconditioning": { - "name": "Defrost for preconditioning" - }, - "lights_hazards_active": { - "name": "Hazard lights" - }, - "lights_high_beams": { - "name": "High beams" - }, - "seat_vent_enabled": { - "name": "Seat vent enabled" - }, - "speed_limit_mode": { - "name": "Speed limited" - }, - "remote_start_enabled": { - "name": "Remote start" - }, - "hvil": { - "name": "High voltage interlock loop fault" - }, - "hvac_auto_mode": { - "name": "HVAC auto mode" - }, - "grid_status": { - "name": "Grid status" } }, "button": { @@ -281,32 +281,49 @@ "driver_temp": { "name": "[%key:component::climate::title%]", "state_attributes": { - "preset_mode": { - "state": { - "off": "[%key:common::state::normal%]", - "keep": "Keep mode", - "dog": "Dog mode", - "camp": "Camp mode" - } - }, "fan_mode": { "state": { - "off": "[%key:common::state::off%]", - "bioweapon": "Bioweapon defense" + "bioweapon": "Bioweapon defense", + "off": "[%key:common::state::off%]" + } + }, + "preset_mode": { + "state": { + "camp": "Camp mode", + "dog": "Dog mode", + "keep": "Keep mode", + "off": "[%key:common::state::normal%]" } } } } }, + "cover": { + "charge_state_charge_port_door_open": { + "name": "Charge port door" + }, + "vehicle_state_ft": { + "name": "Frunk" + }, + "vehicle_state_rt": { + "name": "Trunk" + }, + "vehicle_state_sun_roof_state": { + "name": "Sunroof" + }, + "windows": { + "name": "Windows" + } + }, "device_tracker": { "location": { "name": "Location" }, - "route": { - "name": "Route" - }, "origin": { "name": "Origin" + }, + "route": { + "name": "Route" } }, "lock": { @@ -320,6 +337,25 @@ "name": "Speed limit" } }, + "media_player": { + "media": { + "name": "[%key:component::media_player::title%]" + } + }, + "number": { + "backup_reserve_percent": { + "name": "Backup reserve" + }, + "charge_state_charge_current_request": { + "name": "Charge current" + }, + "charge_state_charge_limit_soc": { + "name": "Charge limit" + }, + "off_grid_vehicle_charging_reserve_percent": { + "name": "Off-grid reserve" + } + }, "select": { "climate_state_seat_heater_left": { "name": "Seat heater front left", @@ -409,55 +445,55 @@ } } }, - "media_player": { - "media": { - "name": "[%key:component::media_player::title%]" - } - }, - "number": { - "backup_reserve_percent": { - "name": "Backup reserve" - }, - "charge_state_charge_current_request": { - "name": "Charge current" - }, - "charge_state_charge_limit_soc": { - "name": "Charge limit" - }, - "off_grid_vehicle_charging_reserve_percent": { - "name": "Off-grid reserve" - } - }, - "cover": { - "charge_state_charge_port_door_open": { - "name": "Charge port door" - }, - "vehicle_state_ft": { - "name": "Frunk" - }, - "vehicle_state_rt": { - "name": "Trunk" - }, - "vehicle_state_sun_roof_state": { - "name": "Sunroof" - }, - "windows": { - "name": "Windows" - } - }, "sensor": { + "battery_energy_exported": { + "name": "Battery exported" + }, + "battery_energy_imported_from_generator": { + "name": "Battery imported from generator" + }, + "battery_energy_imported_from_grid": { + "name": "Battery imported from grid" + }, + "battery_energy_imported_from_solar": { + "name": "Battery imported from solar" + }, "battery_power": { "name": "Battery power" }, + "bms_state": { + "name": "BMS state", + "state": { + "charge": "Charge", + "clear_fault": "Clear fault", + "drive": "Drive", + "fault": "[%key:common::state::fault%]", + "full_electric_in_motion": "Full electric in motion", + "standby": "[%key:common::state::standby%]", + "support": "Support", + "system_not_available": "System not available", + "test": "Test", + "weld": "Weld" + } + }, + "brake_pedal_position": { + "name": "Brake pedal position" + }, + "brick_voltage_max": { + "name": "Brick voltage max" + }, + "brick_voltage_min": { + "name": "Brick voltage min" + }, + "charge_rate_mile_per_hour": { + "name": "Charge rate" + }, + "charge_state_battery_level": { + "name": "Battery level" + }, "charge_state_battery_range": { "name": "Battery range" }, - "charge_state_est_battery_range": { - "name": "Estimate battery range" - }, - "charge_state_ideal_battery_range": { - "name": "Ideal battery range" - }, "charge_state_charge_energy_added": { "name": "Charge energy added" }, @@ -473,29 +509,32 @@ "charge_state_charger_voltage": { "name": "Charger voltage" }, + "charge_state_charging_state": { + "name": "Charging", + "state": { + "charging": "[%key:common::state::charging%]", + "complete": "Complete", + "disconnected": "[%key:common::state::disconnected%]", + "no_power": "No power", + "starting": "Starting", + "stopped": "[%key:common::state::stopped%]" + } + }, "charge_state_conn_charge_cable": { "name": "Charge cable" }, + "charge_state_est_battery_range": { + "name": "Estimate battery range" + }, "charge_state_fast_charger_type": { "name": "Fast charger type" }, - "charge_state_charging_state": { - "name": "Charging", - "state": { - "starting": "Starting", - "charging": "[%key:common::state::charging%]", - "disconnected": "[%key:common::state::disconnected%]", - "stopped": "[%key:common::state::stopped%]", - "complete": "Complete", - "no_power": "No power" - } + "charge_state_ideal_battery_range": { + "name": "Ideal battery range" }, "charge_state_minutes_to_full_charge": { "name": "Time to full charge" }, - "charge_state_battery_level": { - "name": "Battery level" - }, "charge_state_usable_battery_level": { "name": "Usable battery level" }, @@ -511,145 +550,11 @@ "climate_state_passenger_temp_setting": { "name": "Passenger temperature setting" }, - "credit_balance": { - "name": "Teslemetry credits", - "unit_of_measurement": "credits" + "consumer_energy_imported_from_battery": { + "name": "Consumer imported from battery" }, - "drive_state_active_route_destination": { - "name": "Destination" - }, - "drive_state_active_route_energy_at_arrival": { - "name": "State of charge at arrival" - }, - "drive_state_active_route_miles_to_arrival": { - "name": "Distance to arrival" - }, - "drive_state_active_route_minutes_to_arrival": { - "name": "Time to arrival" - }, - "drive_state_active_route_traffic_minutes_delay": { - "name": "Traffic delay" - }, - "drive_state_power": { - "name": "Power" - }, - "drive_state_shift_state": { - "name": "Shift state", - "state": { - "d": "Drive", - "n": "Neutral", - "p": "Park", - "r": "Reverse" - } - }, - "drive_state_speed": { - "name": "Speed" - }, - "energy_left": { - "name": "Energy left" - }, - "generator_power": { - "name": "Generator power" - }, - "grid_power": { - "name": "Grid power" - }, - "grid_services_power": { - "name": "Grid services power" - }, - "island_status": { - "name": "Island status", - "state": { - "island_status_unknown": "Unknown", - "on_grid": "On-grid", - "off_grid": "Off-grid", - "off_grid_intentional": "Off-grid intentional", - "off_grid_unintentional": "Off-grid unintentional" - } - }, - "load_power": { - "name": "Load power" - }, - "percentage_charged": { - "name": "Percentage charged" - }, - "solar_power": { - "name": "Solar power" - }, - "total_pack_energy": { - "name": "Total pack energy" - }, - "vehicle_state_odometer": { - "name": "Odometer" - }, - "vehicle_state_tpms_pressure_fl": { - "name": "Tire pressure front left" - }, - "vehicle_state_tpms_pressure_fr": { - "name": "Tire pressure front right" - }, - "vehicle_state_tpms_pressure_rl": { - "name": "Tire pressure rear left" - }, - "vehicle_state_tpms_pressure_rr": { - "name": "Tire pressure rear right" - }, - "version": { - "name": "Version" - }, - "vin": { - "name": "[%key:component::teslemetry::common::vehicle%]", - "state": { - "disconnected": "[%key:common::state::disconnected%]" - } - }, - "vpp_backup_reserve_percent": { - "name": "VPP backup reserve" - }, - "wall_connector_fault_state": { - "name": "Fault state code" - }, - "wall_connector_power": { - "name": "Power" - }, - "wall_connector_state": { - "name": "State code" - }, - "solar_energy_exported": { - "name": "Solar exported" - }, - "generator_energy_exported": { - "name": "Generator exported" - }, - "grid_energy_imported": { - "name": "Grid imported" - }, - "grid_services_energy_imported": { - "name": "Grid services imported" - }, - "grid_services_energy_exported": { - "name": "Grid services exported" - }, - "grid_energy_exported_from_solar": { - "name": "Grid exported from solar" - }, - "grid_energy_exported_from_generator": { - "name": "Grid exported from generator" - }, - "grid_energy_exported_from_battery": { - "name": "Grid exported from battery" - }, - "battery_energy_exported": { - "name": "Battery exported" - }, - "battery_energy_imported_from_grid": { - "name": "Battery imported from grid" - }, - "battery_energy_imported_from_solar": { - "name": "Battery imported from solar" - }, - "battery_energy_imported_from_generator": { - "name": "Battery imported from generator" + "consumer_energy_imported_from_generator": { + "name": "Consumer imported from generator" }, "consumer_energy_imported_from_grid": { "name": "Consumer imported from grid" @@ -657,62 +562,9 @@ "consumer_energy_imported_from_solar": { "name": "Consumer imported from solar" }, - "consumer_energy_imported_from_battery": { - "name": "Consumer imported from battery" - }, - "consumer_energy_imported_from_generator": { - "name": "Consumer imported from generator" - }, - "total_home_usage": { - "name": "Home usage" - }, - "total_battery_charge": { - "name": "Battery charged" - }, - "total_battery_discharge": { - "name": "Battery discharged" - }, - "total_solar_generation": { - "name": "Solar generated" - }, - "total_grid_energy_exported": { - "name": "Grid exported" - }, - - "sentry_mode": { - "name": "Sentry mode", - "state": { - "off": "[%key:common::state::off%]", - "idle": "[%key:common::state::idle%]", - "armed": "Armed", - "aware": "Aware", - "panic": "Panic", - "quiet": "Quiet" - } - }, - "bms_state": { - "name": "BMS state", - "state": { - "standby": "[%key:common::state::standby%]", - "drive": "Drive", - "support": "Support", - "charge": "Charge", - "full_electric_in_motion": "Full electric in motion", - "clear_fault": "Clear fault", - "fault": "[%key:common::state::fault%]", - "weld": "Weld", - "test": "Test", - "system_not_available": "System not available" - } - }, - "brake_pedal_position": { - "name": "Brake pedal position" - }, - "brick_voltage_max": { - "name": "Brick voltage max" - }, - "brick_voltage_min": { - "name": "Brick voltage min" + "credit_balance": { + "name": "Teslemetry credits", + "unit_of_measurement": "credits" }, "cruise_follow_distance": { "name": "Cruise follow distance" @@ -783,41 +635,41 @@ "di_state_f": { "name": "Front drive inverter", "state": { - "unavailable": "[%key:component::teslemetry::common::unavailable%]", - "standby": "[%key:common::state::standby%]", - "fault": "[%key:common::state::fault%]", "abort": "[%key:component::teslemetry::common::abort%]", - "enabled": "[%key:common::state::enabled%]" + "enabled": "[%key:common::state::enabled%]", + "fault": "[%key:common::state::fault%]", + "standby": "[%key:common::state::standby%]", + "unavailable": "[%key:component::teslemetry::common::unavailable%]" } }, "di_state_r": { "name": "Rear drive inverter", "state": { - "unavailable": "[%key:component::teslemetry::common::unavailable%]", - "standby": "[%key:common::state::standby%]", - "fault": "[%key:common::state::fault%]", "abort": "[%key:component::teslemetry::common::abort%]", - "enabled": "[%key:common::state::enabled%]" + "enabled": "[%key:common::state::enabled%]", + "fault": "[%key:common::state::fault%]", + "standby": "[%key:common::state::standby%]", + "unavailable": "[%key:component::teslemetry::common::unavailable%]" } }, "di_state_rel": { "name": "Rear left drive inverter", "state": { - "unavailable": "[%key:component::teslemetry::common::unavailable%]", - "standby": "[%key:common::state::standby%]", - "fault": "[%key:common::state::fault%]", "abort": "[%key:component::teslemetry::common::abort%]", - "enabled": "[%key:common::state::enabled%]" + "enabled": "[%key:common::state::enabled%]", + "fault": "[%key:common::state::fault%]", + "standby": "[%key:common::state::standby%]", + "unavailable": "[%key:component::teslemetry::common::unavailable%]" } }, "di_state_rer": { "name": "Rear right drive inverter", "state": { - "unavailable": "[%key:component::teslemetry::common::unavailable%]", - "standby": "[%key:common::state::standby%]", - "fault": "[%key:common::state::fault%]", "abort": "[%key:component::teslemetry::common::abort%]", - "enabled": "[%key:common::state::enabled%]" + "enabled": "[%key:common::state::enabled%]", + "fault": "[%key:common::state::fault%]", + "standby": "[%key:common::state::standby%]", + "unavailable": "[%key:component::teslemetry::common::unavailable%]" } }, "di_stator_temp_f": { @@ -859,6 +711,39 @@ "di_vbat_rer": { "name": "Rear right drive inverter battery voltage" }, + "drive_state_active_route_destination": { + "name": "Destination" + }, + "drive_state_active_route_energy_at_arrival": { + "name": "State of charge at arrival" + }, + "drive_state_active_route_miles_to_arrival": { + "name": "Distance to arrival" + }, + "drive_state_active_route_minutes_to_arrival": { + "name": "Time to arrival" + }, + "drive_state_active_route_traffic_minutes_delay": { + "name": "Traffic delay" + }, + "drive_state_power": { + "name": "Power" + }, + "drive_state_shift_state": { + "name": "Shift state", + "state": { + "d": "Drive", + "n": "Neutral", + "p": "Park", + "r": "Reverse" + } + }, + "drive_state_speed": { + "name": "Speed" + }, + "energy_left": { + "name": "Energy left" + }, "energy_remaining": { "name": "Energy remaining" }, @@ -868,36 +753,66 @@ "forward_collision_warning": { "name": "Forward collision warning", "state": { - "off": "[%key:common::state::off%]", - "late": "Late", "average": "Average", - "early": "Early" + "early": "Early", + "late": "Late", + "off": "[%key:common::state::off%]" } }, + "generator_energy_exported": { + "name": "Generator exported" + }, + "generator_power": { + "name": "Generator power" + }, "gps_heading": { "name": "GPS heading" }, + "grid_energy_exported_from_battery": { + "name": "Grid exported from battery" + }, + "grid_energy_exported_from_generator": { + "name": "Grid exported from generator" + }, + "grid_energy_exported_from_solar": { + "name": "Grid exported from solar" + }, + "grid_energy_imported": { + "name": "Grid imported" + }, + "grid_power": { + "name": "Grid power" + }, + "grid_services_energy_exported": { + "name": "Grid services exported" + }, + "grid_services_energy_imported": { + "name": "Grid services imported" + }, + "grid_services_power": { + "name": "Grid services power" + }, "guest_mode_mobile_access_state": { "name": "Guest mode mobile access", "state": { + "aborted_bad_data_received": "Aborted bad data received", + "aborted_drive_auth_time_exceeded": "Aborted drive auth time exceeded", + "aborted_driving": "Aborted driving", + "aborted_fetch_failed": "Aborted fetch failed", + "aborted_guest_mode_off": "Aborted guest mode off", + "aborted_no_data_received": "Aborted no data received", + "aborted_using_ble_keys": "Aborted using BLE keys", + "aborted_using_remote_start": "Aborted using remote start", + "aborted_valet_mode": "Aborted valet mode", + "authenticated": "Authenticated", + "dismissed_qr_code_expired": "Dismissed QR code expired", "init": "Init", "not_authenticated": "Not authenticated", - "authenticated": "Authenticated", - "aborted_driving": "Aborted driving", - "aborted_using_remote_start": "Aborted using remote start", - "aborted_using_ble_keys": "Aborted using BLE keys", - "aborted_valet_mode": "Aborted valet mode", - "aborted_guest_mode_off": "Aborted guest mode off", - "aborted_drive_auth_time_exceeded": "Aborted drive auth time exceeded", - "aborted_no_data_received": "Aborted no data received", - "requesting_from_mothership": "Requesting from mothership", "requesting_from_auth_d": "Requesting from Authd", - "aborted_fetch_failed": "Aborted fetch failed", - "aborted_bad_data_received": "Aborted bad data received", + "requesting_from_mothership": "Requesting from mothership", "showing_qr_code": "Showing QR code", - "swiped_away": "Swiped away", - "dismissed_qr_code_expired": "Dismissed QR code expired", - "succeeded_paired_new_ble_key": "Succeeded paired new BLE key" + "succeeded_paired_new_ble_key": "Succeeded paired new BLE key", + "swiped_away": "Swiped away" } }, "homelink_device_count": { @@ -910,15 +825,40 @@ "hvac_fan_status": { "name": "HVAC fan speed" }, + "hvac_left_temperature_request": { + "name": "Left temperature request" + }, + "hvac_power_state": { + "name": "HVAC power state", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]", + "overheat_protection": "Overheat protection", + "precondition": "Precondition" + } + }, + "hvac_right_temperature_request": { + "name": "Right temperature request" + }, + "island_status": { + "name": "Island status", + "state": { + "island_status_unknown": "Unknown", + "off_grid": "Off-grid", + "off_grid_intentional": "Off-grid intentional", + "off_grid_unintentional": "Off-grid unintentional", + "on_grid": "On-grid" + } + }, "isolation_resistance": { "name": "Isolation resistance" }, "lane_departure_avoidance": { "name": "Lane departure avoidance", "state": { + "assist": "Assist", "off": "[%key:common::state::off%]", - "warning": "Warning", - "assist": "Assist" + "warning": "Warning" } }, "lateral_acceleration": { @@ -930,6 +870,18 @@ "lifetime_energy_used_drive": { "name": "Lifetime energy used drive" }, + "lights_turn_signal": { + "name": "Turn signal", + "state": { + "both": "Both", + "left": "Left", + "off": "[%key:common::state::off%]", + "right": "Right" + } + }, + "load_power": { + "name": "Load power" + }, "longitudinal_acceleration": { "name": "Longitudinal acceleration" }, @@ -951,6 +903,9 @@ "pedal_position": { "name": "Pedal position" }, + "percentage_charged": { + "name": "Percentage charged" + }, "powershare_hours_left": { "name": "Powershare hours left" }, @@ -960,10 +915,10 @@ "powershare_status": { "name": "Powershare status", "state": { - "inactive": "Inactive", - "handshaking": "Handshaking", - "init": "Initializing", "enabled": "[%key:common::state::enabled%]", + "handshaking": "Handshaking", + "inactive": "Inactive", + "init": "Initializing", "reconnecting": "Reconnecting", "stopped": "[%key:common::state::stopped%]" } @@ -971,20 +926,20 @@ "powershare_stop_reason": { "name": "Powershare stop reason", "state": { - "soc_too_low": "SOC too low", - "retry": "Retry", + "authentication": "Authentication", "fault": "[%key:common::state::fault%]", - "user": "User", "reconnecting": "Reconnecting", - "authentication": "Authentication" + "retry": "Retry", + "soc_too_low": "SOC too low", + "user": "User" } }, "powershare_type": { "name": "Powershare type", "state": { - "none": "None", + "home": "Home", "load": "Load", - "home": "Home" + "none": "None" } }, "rated_range": { @@ -996,31 +951,67 @@ "scheduled_charging_mode": { "name": "Scheduled charging mode", "state": { - "off": "[%key:common::state::off%]", "departure": "Departure", + "off": "[%key:common::state::off%]", "start_at": "Start at" } }, + "sentry_mode": { + "name": "Sentry mode", + "state": { + "armed": "Armed", + "aware": "Aware", + "idle": "[%key:common::state::idle%]", + "off": "[%key:common::state::off%]", + "panic": "Panic", + "quiet": "Quiet" + } + }, "software_update_expected_duration_minutes": { "name": "Software update expected duration" }, + "solar_energy_exported": { + "name": "Solar exported" + }, + "solar_power": { + "name": "Solar power" + }, "speed_limit_warning": { "name": "Speed limit warning", "state": { - "none": "None", + "chime": "Chime", "display": "Display", - "chime": "Chime" + "none": "None" } }, "tonneau_tent_mode": { "name": "Tonneau tent mode", "state": { - "inactive": "Inactive", - "moving": "Moving", + "active": "Active", "failed": "Failed", - "active": "Active" + "inactive": "Inactive", + "moving": "Moving" } }, + "total_battery_charge": { + "name": "Battery charged" + }, + "total_battery_discharge": { + "name": "Battery discharged" + }, + "total_grid_energy_exported": { + "name": "Grid exported" + }, + + "total_home_usage": { + "name": "Home usage" + }, + "total_pack_energy": { + "name": "Total pack energy" + }, + "total_solar_generation": { + "name": "Solar generated" + }, "tpms_hard_warnings": { "name": "Tire pressure hard warnings", "unit_of_measurement": "warnings" @@ -1029,32 +1020,41 @@ "name": "Tire pressure soft warnings", "unit_of_measurement": "warnings" }, - "lights_turn_signal": { - "name": "Turn signal", + "vehicle_state_odometer": { + "name": "Odometer" + }, + "vehicle_state_tpms_pressure_fl": { + "name": "Tire pressure front left" + }, + "vehicle_state_tpms_pressure_fr": { + "name": "Tire pressure front right" + }, + "vehicle_state_tpms_pressure_rl": { + "name": "Tire pressure rear left" + }, + "vehicle_state_tpms_pressure_rr": { + "name": "Tire pressure rear right" + }, + "version": { + "name": "Version" + }, + "vin": { + "name": "[%key:component::teslemetry::common::vehicle%]", "state": { - "off": "[%key:common::state::off%]", - "left": "Left", - "right": "Right", - "both": "Both" + "disconnected": "[%key:common::state::disconnected%]" } }, - "charge_rate_mile_per_hour": { - "name": "Charge rate" + "vpp_backup_reserve_percent": { + "name": "VPP backup reserve" }, - "hvac_left_temperature_request": { - "name": "Left temperature request" + "wall_connector_fault_state": { + "name": "Fault state code" }, - "hvac_right_temperature_request": { - "name": "Right temperature request" + "wall_connector_power": { + "name": "Power" }, - "hvac_power_state": { - "name": "HVAC power state", - "state": { - "precondition": "Precondition", - "overheat_protection": "Overheat protection", - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } + "wall_connector_state": { + "name": "State code" } }, "switch": { @@ -1076,6 +1076,9 @@ "components_disallow_charge_from_grid_with_solar_installed": { "name": "Allow charging from grid" }, + "guest_mode_enabled": { + "name": "Guest mode" + }, "user_settings_storm_mode_enabled": { "name": "Storm watch" }, @@ -1084,9 +1087,6 @@ }, "vehicle_state_valet_mode": { "name": "Valet mode" - }, - "guest_mode_enabled": { - "name": "Guest mode" } }, "update": { @@ -1096,8 +1096,17 @@ } }, "exceptions": { - "no_cable": { - "message": "Charge cable will lock automatically when connected" + "command_error": { + "message": "Command returned error: {error}" + }, + "command_exception": { + "message": "Command returned exception: {message}" + }, + "command_no_result": { + "message": "Command had no result" + }, + "command_reason": { + "message": "Command was rejected: {reason}" }, "invalid_cop_temp": { "message": "Cabin overheat protection does not support that temperature" @@ -1105,38 +1114,122 @@ "invalid_device": { "message": "Invalid device ID: {device_id}" }, + "missing_scope": { + "message": "Missing required scope: {scope}" + }, + "no_cable": { + "message": "Charge cable will lock automatically when connected" + }, "no_config_entry_for_device": { "message": "No config entry for device ID: {device_id}" }, - "no_vehicle_data_for_device": { - "message": "No vehicle data for device ID: {device_id}" - }, "no_energy_site_data_for_device": { "message": "No energy site data for device ID: {device_id}" }, - "command_exception": { - "message": "Command returned exception: {message}" - }, - "command_error": { - "message": "Command returned error: {error}" - }, - "command_reason": { - "message": "Command was rejected: {reason}" - }, - "command_no_result": { - "message": "Command had no result" + "no_vehicle_data_for_device": { + "message": "No vehicle data for device ID: {device_id}" }, "wake_up_failed": { "message": "Failed to wake up vehicle: {message}" }, "wake_up_timeout": { "message": "Timed out trying to wake up vehicle" - }, - "missing_scope": { - "message": "Missing required scope: {scope}" + } + }, + "selector": { + "days_of_week": { + "options": { + "friday": "[%key:common::time::friday%]", + "monday": "[%key:common::time::monday%]", + "saturday": "[%key:common::time::saturday%]", + "sunday": "[%key:common::time::sunday%]", + "thursday": "[%key:common::time::thursday%]", + "tuesday": "[%key:common::time::tuesday%]", + "wednesday": "[%key:common::time::wednesday%]" + } } }, "services": { + "add_charge_schedule": { + "description": "Adds or modifies a charging schedule for a vehicle.", + "fields": { + "days_of_week": { + "description": "[%key:component::teslemetry::common::days_of_week_description%]", + "name": "[%key:component::teslemetry::common::days_of_week%]" + }, + "device_id": { + "description": "[%key:component::teslemetry::common::vehicle_to_schedule%]", + "name": "[%key:component::teslemetry::common::vehicle%]" + }, + "enable": { + "description": "[%key:component::teslemetry::common::schedule_enable_description%]", + "name": "[%key:common::action::enable%]" + }, + "end_time": { + "description": "[%key:component::teslemetry::common::end_time_description%]", + "name": "[%key:component::teslemetry::common::end_time%]" + }, + "id": { + "description": "[%key:component::teslemetry::common::schedule_id_description%]", + "name": "[%key:component::teslemetry::common::schedule_id%]" + }, + "location": { + "description": "[%key:component::teslemetry::common::location_description%]", + "name": "Location" + }, + "name": { + "description": "[%key:component::teslemetry::common::schedule_name_description%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "one_time": { + "description": "[%key:component::teslemetry::common::one_time_description%]", + "name": "[%key:component::teslemetry::common::one_time%]" + }, + "start_time": { + "description": "[%key:component::teslemetry::common::start_time_description%]", + "name": "[%key:component::teslemetry::common::start_time%]" + } + }, + "name": "Add charge schedule" + }, + "add_precondition_schedule": { + "description": "Adds or modifies a preconditioning schedule for a vehicle.", + "fields": { + "days_of_week": { + "description": "[%key:component::teslemetry::common::days_of_week_description%]", + "name": "[%key:component::teslemetry::common::days_of_week%]" + }, + "device_id": { + "description": "[%key:component::teslemetry::common::vehicle_to_schedule%]", + "name": "[%key:component::teslemetry::common::vehicle%]" + }, + "enable": { + "description": "[%key:component::teslemetry::common::schedule_enable_description%]", + "name": "[%key:common::action::enable%]" + }, + "id": { + "description": "[%key:component::teslemetry::common::schedule_id_description%]", + "name": "[%key:component::teslemetry::common::schedule_id%]" + }, + "location": { + "description": "[%key:component::teslemetry::common::location_description%]", + "name": "Location" + }, + "name": { + "description": "[%key:component::teslemetry::common::schedule_name_description%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "one_time": { + "description": "[%key:component::teslemetry::common::one_time_description%]", + "name": "[%key:component::teslemetry::common::one_time%]" + }, + "precondition_time": { + "description": "[%key:component::teslemetry::common::precondition_time_description%]", + "name": "[%key:component::teslemetry::common::precondition_time%]" + } + }, + "name": "Add precondition schedule" + }, "navigation_gps_request": { "description": "Sets vehicle navigation to the provided latitude/longitude coordinates.", "fields": { @@ -1155,6 +1248,34 @@ }, "name": "Navigate to coordinates" }, + "remove_charge_schedule": { + "description": "Removes a charging schedule for a vehicle.", + "fields": { + "device_id": { + "description": "[%key:component::teslemetry::common::vehicle_to_remove_schedule%]", + "name": "[%key:component::teslemetry::common::vehicle%]" + }, + "id": { + "description": "[%key:component::teslemetry::common::schedule_id_remove_description%]", + "name": "[%key:component::teslemetry::common::schedule_id%]" + } + }, + "name": "Remove charge schedule" + }, + "remove_precondition_schedule": { + "description": "Removes a preconditioning schedule for a vehicle.", + "fields": { + "device_id": { + "description": "[%key:component::teslemetry::common::vehicle_to_remove_schedule%]", + "name": "[%key:component::teslemetry::common::vehicle%]" + }, + "id": { + "description": "[%key:component::teslemetry::common::schedule_id_remove_description%]", + "name": "[%key:component::teslemetry::common::schedule_id%]" + } + }, + "name": "Remove precondition schedule" + }, "set_scheduled_charging": { "description": "Sets a time at which charging should be started.", "fields": { @@ -1260,127 +1381,6 @@ } }, "name": "Set valet mode" - }, - "add_charge_schedule": { - "description": "Adds or modifies a charging schedule for a vehicle.", - "fields": { - "device_id": { - "description": "[%key:component::teslemetry::common::vehicle_to_schedule%]", - "name": "[%key:component::teslemetry::common::vehicle%]" - }, - "days_of_week": { - "description": "[%key:component::teslemetry::common::days_of_week_description%]", - "name": "[%key:component::teslemetry::common::days_of_week%]" - }, - "enable": { - "description": "[%key:component::teslemetry::common::schedule_enable_description%]", - "name": "[%key:common::action::enable%]" - }, - "location": { - "description": "[%key:component::teslemetry::common::location_description%]", - "name": "Location" - }, - "start_time": { - "description": "[%key:component::teslemetry::common::start_time_description%]", - "name": "[%key:component::teslemetry::common::start_time%]" - }, - "end_time": { - "description": "[%key:component::teslemetry::common::end_time_description%]", - "name": "[%key:component::teslemetry::common::end_time%]" - }, - "one_time": { - "description": "[%key:component::teslemetry::common::one_time_description%]", - "name": "[%key:component::teslemetry::common::one_time%]" - }, - "id": { - "description": "[%key:component::teslemetry::common::schedule_id_description%]", - "name": "[%key:component::teslemetry::common::schedule_id%]" - }, - "name": { - "description": "[%key:component::teslemetry::common::schedule_name_description%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "name": "Add charge schedule" - }, - "remove_charge_schedule": { - "description": "Removes a charging schedule for a vehicle.", - "fields": { - "device_id": { - "description": "[%key:component::teslemetry::common::vehicle_to_remove_schedule%]", - "name": "[%key:component::teslemetry::common::vehicle%]" - }, - "id": { - "description": "[%key:component::teslemetry::common::schedule_id_remove_description%]", - "name": "[%key:component::teslemetry::common::schedule_id%]" - } - }, - "name": "Remove charge schedule" - }, - "add_precondition_schedule": { - "description": "Adds or modifies a preconditioning schedule for a vehicle.", - "fields": { - "device_id": { - "description": "[%key:component::teslemetry::common::vehicle_to_schedule%]", - "name": "[%key:component::teslemetry::common::vehicle%]" - }, - "days_of_week": { - "description": "[%key:component::teslemetry::common::days_of_week_description%]", - "name": "[%key:component::teslemetry::common::days_of_week%]" - }, - "enable": { - "description": "[%key:component::teslemetry::common::schedule_enable_description%]", - "name": "[%key:common::action::enable%]" - }, - "location": { - "description": "[%key:component::teslemetry::common::location_description%]", - "name": "Location" - }, - "precondition_time": { - "description": "[%key:component::teslemetry::common::precondition_time_description%]", - "name": "[%key:component::teslemetry::common::precondition_time%]" - }, - "id": { - "description": "[%key:component::teslemetry::common::schedule_id_description%]", - "name": "[%key:component::teslemetry::common::schedule_id%]" - }, - "one_time": { - "description": "[%key:component::teslemetry::common::one_time_description%]", - "name": "[%key:component::teslemetry::common::one_time%]" - }, - "name": { - "description": "[%key:component::teslemetry::common::schedule_name_description%]", - "name": "[%key:common::config_flow::data::name%]" - } - }, - "name": "Add precondition schedule" - }, - "remove_precondition_schedule": { - "description": "Removes a preconditioning schedule for a vehicle.", - "fields": { - "device_id": { - "description": "[%key:component::teslemetry::common::vehicle_to_remove_schedule%]", - "name": "[%key:component::teslemetry::common::vehicle%]" - }, - "id": { - "description": "[%key:component::teslemetry::common::schedule_id_remove_description%]", - "name": "[%key:component::teslemetry::common::schedule_id%]" - } - }, - "name": "Remove precondition schedule" - } - }, - "selector": { - "days_of_week": { - "options": { - "monday": "[%key:common::time::monday%]", - "tuesday": "[%key:common::time::tuesday%]", - "wednesday": "[%key:common::time::wednesday%]", - "thursday": "[%key:common::time::thursday%]", - "friday": "[%key:common::time::friday%]", - "saturday": "[%key:common::time::saturday%]", - "sunday": "[%key:common::time::sunday%]" - } } } } diff --git a/homeassistant/components/tessie/icons.json b/homeassistant/components/tessie/icons.json index 0ae087f98e2..8fae6859abe 100644 --- a/homeassistant/components/tessie/icons.json +++ b/homeassistant/components/tessie/icons.json @@ -22,15 +22,15 @@ "climate_state_auto_steering_wheel_heat": { "default": "mdi:steering" }, + "grid_services_power": { + "default": "mdi:transmission-tower" + }, "storm_mode_active": { "default": "mdi:weather-sunny", "state": { "on": "mdi:weather-lightning-rainy" } }, - "grid_services_power": { - "default": "mdi:transmission-tower" - }, "vehicle_state_dashcam_state": { "default": "mdi:camera-off", "state": { @@ -69,8 +69,11 @@ } }, "button": { - "wake": { - "default": "mdi:sleep-off" + "boombox": { + "default": "mdi:volume-high" + }, + "enable_keyless_driving": { + "default": "mdi:car-key" }, "flash_lights": { "default": "mdi:flashlight" @@ -81,11 +84,8 @@ "trigger_homelink": { "default": "mdi:garage" }, - "enable_keyless_driving": { - "default": "mdi:car-key" - }, - "boombox": { - "default": "mdi:volume-high" + "wake": { + "default": "mdi:sleep-off" } }, "climate": { @@ -93,10 +93,10 @@ "state_attributes": { "preset_mode": { "state": { - "off": "mdi:fan", - "on": "mdi:thermometer-auto", + "camp": "mdi:tent", "dog": "mdi:paw", - "camp": "mdi:tent" + "off": "mdi:fan", + "on": "mdi:thermometer-auto" } } } @@ -120,75 +120,72 @@ "climate_state_seat_heater_left": { "default": "mdi:car-seat", "state": { + "high": "mdi:car-seat-heater", "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" - } - }, - "climate_state_seat_heater_right": { - "default": "mdi:car-seat", - "state": { - "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" - } - }, - "climate_state_seat_heater_rear_left": { - "default": "mdi:car-seat", - "state": { - "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" + "medium": "mdi:car-seat-heater" } }, "climate_state_seat_heater_rear_center": { "default": "mdi:car-seat", "state": { + "high": "mdi:car-seat-heater", "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" + "medium": "mdi:car-seat-heater" + } + }, + "climate_state_seat_heater_rear_left": { + "default": "mdi:car-seat", + "state": { + "high": "mdi:car-seat-heater", + "low": "mdi:car-seat-heater", + "medium": "mdi:car-seat-heater" } }, "climate_state_seat_heater_rear_right": { "default": "mdi:car-seat", "state": { + "high": "mdi:car-seat-heater", "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" + "medium": "mdi:car-seat-heater" + } + }, + "climate_state_seat_heater_right": { + "default": "mdi:car-seat", + "state": { + "high": "mdi:car-seat-heater", + "low": "mdi:car-seat-heater", + "medium": "mdi:car-seat-heater" } }, "climate_state_seat_heater_third_row_left": { "default": "mdi:car-seat", "state": { + "high": "mdi:car-seat-heater", "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" + "medium": "mdi:car-seat-heater" } }, "climate_state_seat_heater_third_row_right": { "default": "mdi:car-seat", "state": { + "high": "mdi:car-seat-heater", "low": "mdi:car-seat-heater", - "medium": "mdi:car-seat-heater", - "high": "mdi:car-seat-heater" + "medium": "mdi:car-seat-heater" } } }, "sensor": { + "battery_power": { + "default": "mdi:home-battery" + }, "charge_state_charging_state": { "default": "mdi:ev-station" }, "charge_state_minutes_to_full_charge": { "default": "mdi:clock-end" }, - "drive_state_shift_state": { - "default": "mdi:car-shift-pattern" - }, - "vehicle_state_odometer": { - "default": "mdi:counter" - }, - "drive_state_active_route_traffic_minutes_delay": { - "default": "mdi:clock-alert-outline" + "drive_state_active_route_destination": { + "default": "mdi:map-marker" }, "drive_state_active_route_miles_to_arrival": { "default": "mdi:map-marker-distance" @@ -196,11 +193,11 @@ "drive_state_active_route_minutes_to_arrival": { "default": "mdi:timer-marker-outline" }, - "drive_state_active_route_destination": { - "default": "mdi:map-marker" + "drive_state_active_route_traffic_minutes_delay": { + "default": "mdi:clock-alert-outline" }, - "battery_power": { - "default": "mdi:home-battery" + "drive_state_shift_state": { + "default": "mdi:car-shift-pattern" }, "energy_left": { "default": "mdi:battery" @@ -223,6 +220,9 @@ "total_pack_energy": { "default": "mdi:battery-high" }, + "vehicle_state_odometer": { + "default": "mdi:counter" + }, "vin": { "default": "mdi:car-electric" }, @@ -237,26 +237,26 @@ } }, "switch": { + "charge_state_charge_enable_request": { + "default": "mdi:ev-plug-ccs2" + }, "climate_state_defrost_mode": { "default": "mdi:car-defrost-front" }, - "vehicle_state_sentry_mode": { - "default": "mdi:radiobox-marked" - }, "climate_state_steering_wheel_heater": { "default": "mdi:steering" }, - "vehicle_state_valet_mode": { - "default": "mdi:bow-tie" - }, - "charge_state_charge_enable_request": { - "default": "mdi:ev-plug-ccs2" - }, "components_disallow_charge_from_grid_with_solar_installed": { "state": { "false": "mdi:transmission-tower", "true": "mdi:solar-power" } + }, + "vehicle_state_sentry_mode": { + "default": "mdi:radiobox-marked" + }, + "vehicle_state_valet_mode": { + "default": "mdi:bow-tie" } } } diff --git a/homeassistant/components/tessie/strings.json b/homeassistant/components/tessie/strings.json index f3455845fd7..ebb311f0ec1 100644 --- a/homeassistant/components/tessie/strings.json +++ b/homeassistant/components/tessie/strings.json @@ -5,27 +5,177 @@ "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { - "user": { - "data": { - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "description": "Enter your access token from {url}." - }, "reauth_confirm": { "data": { "access_token": "[%key:common::config_flow::data::access_token%]" }, "description": "[%key:component::tessie::config::step::user::description%]", "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]" + }, + "description": "Enter your access token from {url}." } } }, "entity": { + "binary_sensor": { + "backup_capable": { + "name": "Backup capable" + }, + "charge_state_charge_enable_request": { + "name": "Charge enable request" + }, + "charge_state_charge_port_door_open": { + "name": "Charge port door" + }, + "charge_state_charging_state": { + "name": "Charging" + }, + "charge_state_conn_charge_cable": { + "name": "Charge cable" + }, + "charge_state_preconditioning_enabled": { + "name": "Preconditioning enabled" + }, + "charge_state_scheduled_charging_pending": { + "name": "Scheduled charging pending" + }, + "charge_state_trip_charging": { + "name": "Trip charging" + }, + "climate_state_auto_seat_climate_left": { + "name": "Auto seat climate left" + }, + "climate_state_auto_seat_climate_right": { + "name": "Auto seat climate right" + }, + "climate_state_auto_steering_wheel_heat": { + "name": "Auto steering wheel heater" + }, + "climate_state_battery_heater": { + "name": "Battery heater" + }, + "climate_state_cabin_overheat_protection": { + "name": "Cabin overheat protection" + }, + "climate_state_cabin_overheat_protection_actively_cooling": { + "name": "Cabin overheat protection actively cooling" + }, + "components_grid_services_enabled": { + "name": "Grid services enabled" + }, + "grid_services_active": { + "name": "Grid services active" + }, + "state": { + "name": "Status" + }, + "storm_mode_active": { + "name": "Storm watch active" + }, + "vehicle_state_dashcam_state": { + "name": "Dashcam" + }, + "vehicle_state_df": { + "name": "Front driver door" + }, + "vehicle_state_dr": { + "name": "Rear driver door" + }, + "vehicle_state_fd_window": { + "name": "Front driver window" + }, + "vehicle_state_fp_window": { + "name": "Front passenger window" + }, + "vehicle_state_is_user_present": { + "name": "User present" + }, + "vehicle_state_pf": { + "name": "Front passenger door" + }, + "vehicle_state_pr": { + "name": "Rear passenger door" + }, + "vehicle_state_rd_window": { + "name": "Rear driver window" + }, + "vehicle_state_rp_window": { + "name": "Rear passenger window" + }, + "vehicle_state_tpms_soft_warning_fl": { + "name": "Tire pressure warning front left" + }, + "vehicle_state_tpms_soft_warning_fr": { + "name": "Tire pressure warning front right" + }, + "vehicle_state_tpms_soft_warning_rl": { + "name": "Tire pressure warning rear left" + }, + "vehicle_state_tpms_soft_warning_rr": { + "name": "Tire pressure warning rear right" + } + }, + "button": { + "boombox": { + "name": "Play fart" + }, + "enable_keyless_driving": { + "name": "Keyless driving" + }, + "flash_lights": { + "name": "Flash lights" + }, + "honk": { + "name": "Honk horn" + }, + "trigger_homelink": { + "name": "Homelink" + }, + "wake": { + "name": "Wake" + } + }, + "climate": { + "primary": { + "name": "[%key:component::climate::title%]", + "state_attributes": { + "preset_mode": { + "state": { + "camp": "Camp mode", + "dog": "Dog mode", + "off": "[%key:common::state::normal%]", + "on": "Keep mode" + } + } + } + } + }, + "cover": { + "charge_state_charge_port_door_open": { + "name": "Charge port door" + }, + "vehicle_state_ft": { + "name": "Frunk" + }, + "vehicle_state_rt": { + "name": "Trunk" + }, + "vehicle_state_sun_roof_state": { + "name": "Sunroof" + }, + "windows": { + "name": "Vent windows" + } + }, "device_tracker": { "location": { "name": "Location", @@ -42,27 +192,12 @@ "name": "Route" } }, - "climate": { - "primary": { - "name": "[%key:component::climate::title%]", - "state_attributes": { - "preset_mode": { - "state": { - "off": "[%key:common::state::normal%]", - "on": "Keep mode", - "dog": "Dog mode", - "camp": "Camp mode" - } - } - } - } - }, "lock": { - "vehicle_state_locked": { - "name": "[%key:component::lock::title%]" - }, "charge_state_charge_port_latch": { "name": "Charge cable lock" + }, + "vehicle_state_locked": { + "name": "[%key:component::lock::title%]" } }, "media_player": { @@ -70,38 +205,154 @@ "name": "[%key:component::media_player::title%]" } }, - "sensor": { - "charge_state_charging_state": { - "name": "Charging", + "number": { + "backup_reserve_percent": { + "name": "Backup reserve" + }, + "charge_state_charge_current_request": { + "name": "Charge current" + }, + "charge_state_charge_limit_soc": { + "name": "Charge limit" + }, + "off_grid_vehicle_charging_reserve_percent": { + "name": "Off-grid reserve" + }, + "vehicle_state_speed_limit_mode_current_limit_mph": { + "name": "Speed limit" + } + }, + "select": { + "climate_state_seat_fan_front_left": { + "name": "Seat cooler left", "state": { - "starting": "Starting", - "charging": "[%key:common::state::charging%]", - "disconnected": "[%key:common::state::disconnected%]", - "stopped": "[%key:common::state::stopped%]", - "complete": "Complete", - "no_power": "No power" + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" } }, - "charge_state_usable_battery_level": { - "name": "Battery level" + "climate_state_seat_fan_front_right": { + "name": "Seat cooler right", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_left": { + "name": "Seat heater left", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_rear_center": { + "name": "Seat heater rear center", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_rear_left": { + "name": "Seat heater rear left", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_rear_right": { + "name": "Seat heater rear right", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_right": { + "name": "Seat heater right", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_third_row_left": { + "name": "Seat heater third row left", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "climate_state_seat_heater_third_row_right": { + "name": "Seat heater third row right", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "components_customer_preferred_export_rule": { + "name": "Allow export", + "state": { + "battery_ok": "Battery", + "never": "Never", + "pv_only": "Solar only" + } + }, + "default_real_mode": { + "name": "Operation mode", + "state": { + "autonomous": "Autonomous", + "backup": "Backup", + "self_consumption": "Self-consumption" + } + } + }, + "sensor": { + "battery_power": { + "name": "Battery power" + }, + "charge_state_battery_range": { + "name": "Battery range" }, "charge_state_charge_energy_added": { "name": "Charge energy added" }, + "charge_state_charge_rate": { + "name": "Charge rate" + }, + "charge_state_charger_actual_current": { + "name": "Charger current" + }, "charge_state_charger_power": { "name": "Charger power" }, "charge_state_charger_voltage": { "name": "Charger voltage" }, - "charge_state_charger_actual_current": { - "name": "Charger current" - }, - "charge_state_charge_rate": { - "name": "Charge rate" - }, - "charge_state_battery_range": { - "name": "Battery range" + "charge_state_charging_state": { + "name": "Charging", + "state": { + "charging": "[%key:common::state::charging%]", + "complete": "Complete", + "disconnected": "[%key:common::state::disconnected%]", + "no_power": "No power", + "starting": "Starting", + "stopped": "[%key:common::state::stopped%]" + } }, "charge_state_est_battery_range": { "name": "Battery range estimate" @@ -112,35 +363,11 @@ "charge_state_minutes_to_full_charge": { "name": "Time to full charge" }, - "drive_state_speed": { - "name": "Speed" + "charge_state_usable_battery_level": { + "name": "Battery level" }, - "drive_state_power": { - "name": "Power" - }, - "drive_state_shift_state": { - "name": "Shift state", - "state": { - "p": "Park", - "d": "Drive", - "r": "Reverse", - "n": "Neutral" - } - }, - "vehicle_state_odometer": { - "name": "Odometer" - }, - "vehicle_state_tpms_pressure_fl": { - "name": "Tire pressure front left" - }, - "vehicle_state_tpms_pressure_fr": { - "name": "Tire pressure front right" - }, - "vehicle_state_tpms_pressure_rl": { - "name": "Tire pressure rear left" - }, - "vehicle_state_tpms_pressure_rr": { - "name": "Tire pressure rear right" + "climate_state_driver_temp_setting": { + "name": "Driver temperature setting" }, "climate_state_inside_temp": { "name": "Inside temperature" @@ -148,14 +375,11 @@ "climate_state_outside_temp": { "name": "Outside temperature" }, - "climate_state_driver_temp_setting": { - "name": "Driver temperature setting" - }, "climate_state_passenger_temp_setting": { "name": "Passenger temperature setting" }, - "drive_state_active_route_traffic_minutes_delay": { - "name": "Traffic delay" + "drive_state_active_route_destination": { + "name": "Destination" }, "drive_state_active_route_energy_at_arrival": { "name": "State of charge at arrival" @@ -166,11 +390,23 @@ "drive_state_active_route_minutes_to_arrival": { "name": "Time to arrival" }, - "drive_state_active_route_destination": { - "name": "Destination" + "drive_state_active_route_traffic_minutes_delay": { + "name": "Traffic delay" }, - "battery_power": { - "name": "Battery power" + "drive_state_power": { + "name": "Power" + }, + "drive_state_shift_state": { + "name": "Shift state", + "state": { + "d": "Drive", + "n": "Neutral", + "p": "Park", + "r": "Reverse" + } + }, + "drive_state_speed": { + "name": "Speed" }, "energy_left": { "name": "Energy left" @@ -196,6 +432,21 @@ "total_pack_energy": { "name": "Total pack energy" }, + "vehicle_state_odometer": { + "name": "Odometer" + }, + "vehicle_state_tpms_pressure_fl": { + "name": "Tire pressure front left" + }, + "vehicle_state_tpms_pressure_fr": { + "name": "Tire pressure front right" + }, + "vehicle_state_tpms_pressure_rl": { + "name": "Tire pressure rear left" + }, + "vehicle_state_tpms_pressure_rr": { + "name": "Tire pressure rear right" + }, "vin": { "name": "Vehicle" }, @@ -213,251 +464,17 @@ "state": { "booting": "Booting", "charging": "[%key:common::state::charging%]", - "disconnected": "[%key:common::state::disconnected%]", - "connected": "[%key:common::state::connected%]", - "scheduled": "Scheduled", - "negotiating": "Negotiating", - "error": "[%key:common::state::error%]", "charging_finished": "Charging finished", - "waiting_car": "Waiting car", - "charging_reduced": "Charging reduced" + "charging_reduced": "Charging reduced", + "connected": "[%key:common::state::connected%]", + "disconnected": "[%key:common::state::disconnected%]", + "error": "[%key:common::state::error%]", + "negotiating": "Negotiating", + "scheduled": "Scheduled", + "waiting_car": "Waiting car" } } }, - "cover": { - "windows": { - "name": "Vent windows" - }, - "charge_state_charge_port_door_open": { - "name": "Charge port door" - }, - "vehicle_state_ft": { - "name": "Frunk" - }, - "vehicle_state_rt": { - "name": "Trunk" - }, - "vehicle_state_sun_roof_state": { - "name": "Sunroof" - } - }, - "select": { - "climate_state_seat_heater_left": { - "name": "Seat heater left", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_right": { - "name": "Seat heater right", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_rear_left": { - "name": "Seat heater rear left", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_rear_center": { - "name": "Seat heater rear center", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_rear_right": { - "name": "Seat heater rear right", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_third_row_left": { - "name": "Seat heater third row left", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_heater_third_row_right": { - "name": "Seat heater third row right", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_fan_front_left": { - "name": "Seat cooler left", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "climate_state_seat_fan_front_right": { - "name": "Seat cooler right", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - }, - "components_customer_preferred_export_rule": { - "name": "Allow export", - "state": { - "battery_ok": "Battery", - "never": "Never", - "pv_only": "Solar only" - } - }, - "default_real_mode": { - "name": "Operation mode", - "state": { - "autonomous": "Autonomous", - "backup": "Backup", - "self_consumption": "Self-consumption" - } - } - }, - "binary_sensor": { - "backup_capable": { - "name": "Backup capable" - }, - "state": { - "name": "Status" - }, - "climate_state_battery_heater": { - "name": "Battery heater" - }, - "charge_state_charge_enable_request": { - "name": "Charge enable request" - }, - "charge_state_charge_port_door_open": { - "name": "Charge port door" - }, - "charge_state_charging_state": { - "name": "Charging" - }, - "charge_state_preconditioning_enabled": { - "name": "Preconditioning enabled" - }, - "charge_state_scheduled_charging_pending": { - "name": "Scheduled charging pending" - }, - "charge_state_trip_charging": { - "name": "Trip charging" - }, - "charge_state_conn_charge_cable": { - "name": "Charge cable" - }, - "climate_state_auto_seat_climate_left": { - "name": "Auto seat climate left" - }, - "climate_state_auto_seat_climate_right": { - "name": "Auto seat climate right" - }, - "climate_state_auto_steering_wheel_heat": { - "name": "Auto steering wheel heater" - }, - "climate_state_cabin_overheat_protection": { - "name": "Cabin overheat protection" - }, - "climate_state_cabin_overheat_protection_actively_cooling": { - "name": "Cabin overheat protection actively cooling" - }, - "components_grid_services_enabled": { - "name": "Grid services enabled" - }, - "storm_mode_active": { - "name": "Storm watch active" - }, - "grid_services_active": { - "name": "Grid services active" - }, - "vehicle_state_dashcam_state": { - "name": "Dashcam" - }, - "vehicle_state_is_user_present": { - "name": "User present" - }, - "vehicle_state_tpms_soft_warning_fl": { - "name": "Tire pressure warning front left" - }, - "vehicle_state_tpms_soft_warning_fr": { - "name": "Tire pressure warning front right" - }, - "vehicle_state_tpms_soft_warning_rl": { - "name": "Tire pressure warning rear left" - }, - "vehicle_state_tpms_soft_warning_rr": { - "name": "Tire pressure warning rear right" - }, - "vehicle_state_fd_window": { - "name": "Front driver window" - }, - "vehicle_state_fp_window": { - "name": "Front passenger window" - }, - "vehicle_state_rd_window": { - "name": "Rear driver window" - }, - "vehicle_state_rp_window": { - "name": "Rear passenger window" - }, - "vehicle_state_df": { - "name": "Front driver door" - }, - "vehicle_state_pf": { - "name": "Front passenger door" - }, - "vehicle_state_dr": { - "name": "Rear driver door" - }, - "vehicle_state_pr": { - "name": "Rear passenger door" - } - }, - "button": { - "wake": { - "name": "Wake" - }, - "flash_lights": { - "name": "Flash lights" - }, - "honk": { - "name": "Honk horn" - }, - "trigger_homelink": { - "name": "Homelink" - }, - "enable_keyless_driving": { - "name": "Keyless driving" - }, - "boombox": { - "name": "Play fart" - } - }, "switch": { "charge_state_charging_state": { "name": "Charge" @@ -465,12 +482,6 @@ "climate_state_defrost_mode": { "name": "Defrost mode" }, - "vehicle_state_sentry_mode": { - "name": "Sentry mode" - }, - "vehicle_state_valet_mode": { - "name": "Valet mode" - }, "climate_state_steering_wheel_heater": { "name": "Steering wheel heater" }, @@ -479,23 +490,12 @@ }, "user_settings_storm_mode_enabled": { "name": "Storm watch" - } - }, - "number": { - "backup_reserve_percent": { - "name": "Backup reserve" }, - "charge_state_charge_current_request": { - "name": "Charge current" + "vehicle_state_sentry_mode": { + "name": "Sentry mode" }, - "charge_state_charge_limit_soc": { - "name": "Charge limit" - }, - "vehicle_state_speed_limit_mode_current_limit_mph": { - "name": "Speed limit" - }, - "off_grid_vehicle_charging_reserve_percent": { - "name": "Off-grid reserve" + "vehicle_state_valet_mode": { + "name": "Valet mode" } }, "update": { @@ -505,29 +505,29 @@ } }, "exceptions": { - "unknown": { - "message": "An unknown issue occurred changing {name}." - }, - "not_supported": { - "message": "{name} is not supported." - }, - "cable_connected": { - "message": "Charge cable is connected." - }, "already_active": { "message": "{name} is already active." }, "already_inactive": { "message": "{name} is already inactive." }, + "cable_connected": { + "message": "Charge cable is connected." + }, + "command_failed": { + "message": "Command failed, {message}" + }, "incorrect_pin": { "message": "Incorrect PIN for {name}." }, "no_cable": { "message": "Insert cable to lock" }, - "command_failed": { - "message": "Command failed, {message}" + "not_supported": { + "message": "{name} is not supported." + }, + "unknown": { + "message": "An unknown issue occurred changing {name}." } } } diff --git a/homeassistant/components/text/strings.json b/homeassistant/components/text/strings.json index 1389d5aa500..3f8efc45bb8 100644 --- a/homeassistant/components/text/strings.json +++ b/homeassistant/components/text/strings.json @@ -1,5 +1,4 @@ { - "title": "Text", "device_automation": { "action_type": { "set_value": "Set value for {entity_name}" @@ -21,8 +20,8 @@ "mode": { "name": "[%key:common::config_flow::data::mode%]", "state": { - "text": "Text", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "text": "Text" } }, "pattern": { @@ -33,14 +32,15 @@ }, "services": { "set_value": { - "name": "Set value", "description": "Sets the value.", "fields": { "value": { - "name": "Value", - "description": "Enter your text." + "description": "Enter your text.", + "name": "Value" } - } + }, + "name": "Set value" } - } + }, + "title": "Text" } diff --git a/homeassistant/components/thermobeacon/manifest.json b/homeassistant/components/thermobeacon/manifest.json index d672de5adde..7223a34d683 100644 --- a/homeassistant/components/thermobeacon/manifest.json +++ b/homeassistant/components/thermobeacon/manifest.json @@ -3,50 +3,50 @@ "name": "ThermoBeacon", "bluetooth": [ { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 16, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 17, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 20, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 21, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 24, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 27, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb", + "connectable": false, + "manufacturer_data_start": [0], "manufacturer_id": 48, - "manufacturer_data_start": [0], - "connectable": false + "service_uuid": "0000fff0-0000-1000-8000-00805f9b34fb" }, { - "local_name": "ThermoBeacon", - "connectable": false + "connectable": false, + "local_name": "ThermoBeacon" } ], "codeowners": ["@bdraco"], diff --git a/homeassistant/components/thermobeacon/strings.json b/homeassistant/components/thermobeacon/strings.json index 16a80220a20..f85ef2e6920 100644 --- a/homeassistant/components/thermobeacon/strings.json +++ b/homeassistant/components/thermobeacon/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "not_supported": "Device not supported" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "abort": { - "not_supported": "Device not supported", - "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%]" } } } diff --git a/homeassistant/components/thermopro/manifest.json b/homeassistant/components/thermopro/manifest.json index 6749a53b7b6..1ecc21aeae1 100644 --- a/homeassistant/components/thermopro/manifest.json +++ b/homeassistant/components/thermopro/manifest.json @@ -3,20 +3,20 @@ "name": "ThermoPro", "bluetooth": [ { - "local_name": "TP35*", - "connectable": false + "connectable": false, + "local_name": "TP35*" }, { - "local_name": "TP39*", - "connectable": false + "connectable": false, + "local_name": "TP39*" }, { - "local_name": "TP96*", - "connectable": false + "connectable": false, + "local_name": "TP96*" }, { - "local_name": "TP97*", - "connectable": false + "connectable": false, + "local_name": "TP97*" } ], "codeowners": ["@bdraco", "@h3ss"], diff --git a/homeassistant/components/thermopro/strings.json b/homeassistant/components/thermopro/strings.json index 77722b6e986..84397872d55 100644 --- a/homeassistant/components/thermopro/strings.json +++ b/homeassistant/components/thermopro/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } }, "entity": { diff --git a/homeassistant/components/thethingsnetwork/strings.json b/homeassistant/components/thethingsnetwork/strings.json index 4caf4188165..9314a3043df 100644 --- a/homeassistant/components/thethingsnetwork/strings.json +++ b/homeassistant/components/thethingsnetwork/strings.json @@ -1,19 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Connect to The Things Network v3", - "description": "Enter the API hostname, application ID and API key to use with Home Assistant.\n\n[Read the instructions]({instructions_url}) on how to register your application and create an API key.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "app_id": "Application ID", - "api_key": "[%key:common::config_flow::data::api_key%]" - } - }, - "reauth_confirm": { - "description": "The Things Network application could not be connected.\n\nPlease check your credentials." - } - }, "abort": { "already_configured": "Application ID is already configured", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" @@ -21,6 +7,20 @@ "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "description": "The Things Network application could not be connected.\n\nPlease check your credentials." + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "app_id": "Application ID", + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Enter the API hostname, application ID and API key to use with Home Assistant.\n\n[Read the instructions]({instructions_url}) on how to register your application and create an API key.", + "title": "Connect to The Things Network v3" + } } } } diff --git a/homeassistant/components/threshold/strings.json b/homeassistant/components/threshold/strings.json index 94a1932cbbc..f2bbbfa87b5 100644 --- a/homeassistant/components/threshold/strings.json +++ b/homeassistant/components/threshold/strings.json @@ -1,38 +1,38 @@ { - "title": "Threshold Sensor", "config": { + "error": { + "need_lower_upper": "Lower and upper limits can't both be empty" + }, "step": { "user": { - "title": "Create Threshold Sensor", - "description": "Create a binary sensor that turns on and off depending on the value of a sensor\n\nOnly lower limit configured - Turn on when the input sensor's value is less than the lower limit.\nOnly upper limit configured - Turn on when the input sensor's value is greater than the upper limit.\nBoth lower and upper limit configured - Turn on when the input sensor's value is in the range [lower limit .. upper limit].", "data": { "entity_id": "Input sensor", "hysteresis": "Hysteresis", "lower": "Lower limit", "name": "[%key:common::config_flow::data::name%]", "upper": "Upper limit" - } + }, + "description": "Create a binary sensor that turns on and off depending on the value of a sensor\n\nOnly lower limit configured - Turn on when the input sensor's value is less than the lower limit.\nOnly upper limit configured - Turn on when the input sensor's value is greater than the upper limit.\nBoth lower and upper limit configured - Turn on when the input sensor's value is in the range [lower limit .. upper limit].", + "title": "Create Threshold Sensor" } - }, - "error": { - "need_lower_upper": "Lower and upper limits can't both be empty" } }, "options": { + "error": { + "need_lower_upper": "[%key:component::threshold::config::error::need_lower_upper%]" + }, "step": { "init": { - "description": "Only lower limit configured - Turn on when the input sensor's value is less than the lower limit.\nOnly upper limit configured - Turn on when the input sensor's value is greater than the upper limit.\nBoth lower and upper limit configured - Turn on when the input sensor's value is in the range [lower limit .. upper limit].", "data": { "entity_id": "[%key:component::threshold::config::step::user::data::entity_id%]", "hysteresis": "[%key:component::threshold::config::step::user::data::hysteresis%]", "lower": "[%key:component::threshold::config::step::user::data::lower%]", "name": "[%key:common::config_flow::data::name%]", "upper": "[%key:component::threshold::config::step::user::data::upper%]" - } + }, + "description": "Only lower limit configured - Turn on when the input sensor's value is less than the lower limit.\nOnly upper limit configured - Turn on when the input sensor's value is greater than the upper limit.\nBoth lower and upper limit configured - Turn on when the input sensor's value is in the range [lower limit .. upper limit]." } - }, - "error": { - "need_lower_upper": "[%key:component::threshold::config::error::need_lower_upper%]" } - } + }, + "title": "Threshold Sensor" } diff --git a/homeassistant/components/tibber/strings.json b/homeassistant/components/tibber/strings.json index ec2c005d4e3..8bb6cb9f08f 100644 --- a/homeassistant/components/tibber/strings.json +++ b/homeassistant/components/tibber/strings.json @@ -1,113 +1,12 @@ { - "entity": { - "sensor": { - "electricity_price": { - "name": "Electricity price" - }, - "month_cost": { - "name": "Monthly cost" - }, - "peak_hour": { - "name": "Monthly peak hour consumption" - }, - "peak_hour_time": { - "name": "Time of max hour consumption" - }, - "month_cons": { - "name": "Monthly net consumption" - }, - "average_power": { - "name": "Average power" - }, - "power": { - "name": "Power" - }, - "power_production": { - "name": "Power production" - }, - "min_power": { - "name": "Min power" - }, - "max_power": { - "name": "Max power" - }, - "accumulated_consumption": { - "name": "Accumulated consumption" - }, - "accumulated_consumption_last_hour": { - "name": "Accumulated consumption current hour" - }, - "estimated_hour_consumption": { - "name": "Estimated consumption current hour" - }, - "accumulated_production": { - "name": "Accumulated production" - }, - "accumulated_production_last_hour": { - "name": "Accumulated production current hour" - }, - "last_meter_consumption": { - "name": "Last meter consumption" - }, - "last_meter_production": { - "name": "Last meter production" - }, - "voltage_phase1": { - "name": "Voltage phase1" - }, - "voltage_phase2": { - "name": "Voltage phase2" - }, - "voltage_phase3": { - "name": "Voltage phase3" - }, - "current_l1": { - "name": "Current L1" - }, - "current_l2": { - "name": "Current L2" - }, - "current_l3": { - "name": "Current L3" - }, - "signal_strength": { - "name": "Signal strength" - }, - "accumulated_reward": { - "name": "Accumulated reward" - }, - "accumulated_cost": { - "name": "Accumulated cost" - }, - "power_factor": { - "name": "Power factor" - } - } - }, - "services": { - "get_prices": { - "name": "Get energy prices", - "description": "Fetches hourly energy prices including price level.", - "fields": { - "start": { - "name": "Start", - "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted." - }, - "end": { - "name": "End", - "description": "Specifies the date and time until which to retrieve prices. Defaults to the last hour of today if omitted." - } - } - } - }, "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { - "timeout": "[%key:common::config_flow::error::timeout_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]" + "invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]", + "timeout": "[%key:common::config_flow::error::timeout_connect%]" }, "step": { "user": { @@ -118,6 +17,91 @@ } } }, + "entity": { + "sensor": { + "accumulated_consumption": { + "name": "Accumulated consumption" + }, + "accumulated_consumption_last_hour": { + "name": "Accumulated consumption current hour" + }, + "accumulated_cost": { + "name": "Accumulated cost" + }, + "accumulated_production": { + "name": "Accumulated production" + }, + "accumulated_production_last_hour": { + "name": "Accumulated production current hour" + }, + "accumulated_reward": { + "name": "Accumulated reward" + }, + "average_power": { + "name": "Average power" + }, + "current_l1": { + "name": "Current L1" + }, + "current_l2": { + "name": "Current L2" + }, + "current_l3": { + "name": "Current L3" + }, + "electricity_price": { + "name": "Electricity price" + }, + "estimated_hour_consumption": { + "name": "Estimated consumption current hour" + }, + "last_meter_consumption": { + "name": "Last meter consumption" + }, + "last_meter_production": { + "name": "Last meter production" + }, + "max_power": { + "name": "Max power" + }, + "min_power": { + "name": "Min power" + }, + "month_cons": { + "name": "Monthly net consumption" + }, + "month_cost": { + "name": "Monthly cost" + }, + "peak_hour": { + "name": "Monthly peak hour consumption" + }, + "peak_hour_time": { + "name": "Time of max hour consumption" + }, + "power": { + "name": "Power" + }, + "power_factor": { + "name": "Power factor" + }, + "power_production": { + "name": "Power production" + }, + "signal_strength": { + "name": "Signal strength" + }, + "voltage_phase1": { + "name": "Voltage phase1" + }, + "voltage_phase2": { + "name": "Voltage phase2" + }, + "voltage_phase3": { + "name": "Voltage phase3" + } + } + }, "exceptions": { "invalid_date": { "message": "Invalid datetime provided {date}" @@ -125,5 +109,21 @@ "send_message_timeout": { "message": "Timeout sending message with Tibber" } + }, + "services": { + "get_prices": { + "description": "Fetches hourly energy prices including price level.", + "fields": { + "end": { + "description": "Specifies the date and time until which to retrieve prices. Defaults to the last hour of today if omitted.", + "name": "End" + }, + "start": { + "description": "Specifies the date and time from which to retrieve prices. Defaults to today if omitted.", + "name": "Start" + } + }, + "name": "Get energy prices" + } } } diff --git a/homeassistant/components/tile/strings.json b/homeassistant/components/tile/strings.json index 5146a5e9aff..80749cd85a9 100644 --- a/homeassistant/components/tile/strings.json +++ b/homeassistant/components/tile/strings.json @@ -1,36 +1,26 @@ { "config": { - "step": { - "reauth_confirm": { - "title": "Re-authenticate Tile", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "title": "Configure Tile", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "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%]" - } - }, - "options": { "step": { - "init": { - "title": "[%key:component::tile::config::step::user::title%]", + "reauth_confirm": { "data": { - "show_inactive": "Show inactive Tiles" - } + "password": "[%key:common::config_flow::data::password%]" + }, + "title": "Re-authenticate Tile" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "title": "Configure Tile" } } }, @@ -40,5 +30,15 @@ "name": "Lost" } } + }, + "options": { + "step": { + "init": { + "data": { + "show_inactive": "Show inactive Tiles" + }, + "title": "[%key:component::tile::config::step::user::title%]" + } + } } } diff --git a/homeassistant/components/tilt_ble/manifest.json b/homeassistant/components/tilt_ble/manifest.json index 7d75d186bc9..f43e480a8f8 100644 --- a/homeassistant/components/tilt_ble/manifest.json +++ b/homeassistant/components/tilt_ble/manifest.json @@ -3,8 +3,8 @@ "name": "Tilt Hydrometer BLE", "bluetooth": [ { - "manufacturer_id": 76, - "manufacturer_data_start": [2, 21, 164, 149, 187] + "manufacturer_data_start": [2, 21, 164, 149, 187], + "manufacturer_id": 76 } ], "codeowners": ["@apt-itude"], diff --git a/homeassistant/components/tilt_ble/strings.json b/homeassistant/components/tilt_ble/strings.json index 4e12a84b653..5e39fe3eab7 100644 --- a/homeassistant/components/tilt_ble/strings.json +++ b/homeassistant/components/tilt_ble/strings.json @@ -1,21 +1,21 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "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%]" + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]" } } } diff --git a/homeassistant/components/tilt_pi/strings.json b/homeassistant/components/tilt_pi/strings.json index 9af85c86641..3744852248d 100644 --- a/homeassistant/components/tilt_pi/strings.json +++ b/homeassistant/components/tilt_pi/strings.json @@ -1,5 +1,12 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" @@ -12,13 +19,6 @@ "url": "The URL of the Tilt Pi instance." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]" } }, "entity": { diff --git a/homeassistant/components/time/strings.json b/homeassistant/components/time/strings.json index 1b7c53b1a8a..e22b3b325b8 100644 --- a/homeassistant/components/time/strings.json +++ b/homeassistant/components/time/strings.json @@ -1,5 +1,4 @@ { - "title": "Time", "entity_component": { "_": { "name": "[%key:component::time::title%]" @@ -7,14 +6,15 @@ }, "services": { "set_value": { - "name": "Set Time", "description": "Sets the time.", "fields": { "time": { - "name": "Time", - "description": "The time to set." + "description": "The time to set.", + "name": "Time" } - } + }, + "name": "Set Time" } - } + }, + "title": "Time" } diff --git a/homeassistant/components/time_date/strings.json b/homeassistant/components/time_date/strings.json index adf37253f90..1d64b08027d 100644 --- a/homeassistant/components/time_date/strings.json +++ b/homeassistant/components/time_date/strings.json @@ -1,19 +1,46 @@ { - "title": "Time & Date", "config": { "abort": { "already_configured": "The chosen Time & Date sensor has already been configured" }, - "step": { - "user": { - "description": "Select from the sensor options below", - "data": { - "display_options": "Sensor type" - } - } - }, "error": { "timezone_not_exist": "Timezone is not set in Home Assistant configuration" + }, + "step": { + "user": { + "data": { + "display_options": "Sensor type" + }, + "description": "Select from the sensor options below" + } + } + }, + "entity": { + "sensor": { + "beat": { + "name": "[%key:component::time_date::selector::display_options::options::beat%]" + }, + "date": { + "name": "[%key:component::time_date::selector::display_options::options::date%]" + }, + "date_time": { + "name": "[%key:component::time_date::selector::display_options::options::date_time%]" + }, + "date_time_iso": { + "name": "[%key:component::time_date::selector::display_options::options::date_time_iso%]" + }, + "date_time_utc": { + "name": "[%key:component::time_date::selector::display_options::options::date_time_utc%]" + }, + "time": { + "name": "[%key:component::time_date::selector::display_options::options::time%]" + }, + "time_date": { + "name": "[%key:component::time_date::selector::display_options::options::time_date%]" + }, + "time_utc": { + "name": "[%key:component::time_date::selector::display_options::options::time_utc%]" + } } }, "options": { @@ -28,43 +55,16 @@ "selector": { "display_options": { "options": { - "time": "Time", + "beat": "Internet time", "date": "Date", "date_time": "Date & Time", - "date_time_utc": "Date & Time (UTC)", "date_time_iso": "Date & Time (ISO)", + "date_time_utc": "Date & Time (UTC)", + "time": "Time", "time_date": "Time & Date", - "beat": "Internet time", "time_utc": "Time (UTC)" } } }, - "entity": { - "sensor": { - "time": { - "name": "[%key:component::time_date::selector::display_options::options::time%]" - }, - "date": { - "name": "[%key:component::time_date::selector::display_options::options::date%]" - }, - "date_time": { - "name": "[%key:component::time_date::selector::display_options::options::date_time%]" - }, - "date_time_utc": { - "name": "[%key:component::time_date::selector::display_options::options::date_time_utc%]" - }, - "date_time_iso": { - "name": "[%key:component::time_date::selector::display_options::options::date_time_iso%]" - }, - "time_date": { - "name": "[%key:component::time_date::selector::display_options::options::time_date%]" - }, - "beat": { - "name": "[%key:component::time_date::selector::display_options::options::beat%]" - }, - "time_utc": { - "name": "[%key:component::time_date::selector::display_options::options::time_utc%]" - } - } - } + "title": "Time & Date" } diff --git a/homeassistant/components/timer/icons.json b/homeassistant/components/timer/icons.json index a5319688646..d2a7160750b 100644 --- a/homeassistant/components/timer/icons.json +++ b/homeassistant/components/timer/icons.json @@ -1,22 +1,22 @@ { "services": { - "start": { - "service": "mdi:play" - }, - "pause": { - "service": "mdi:pause" - }, "cancel": { "service": "mdi:cancel" }, - "finish": { - "service": "mdi:check" - }, "change": { "service": "mdi:pencil" }, + "finish": { + "service": "mdi:check" + }, + "pause": { + "service": "mdi:pause" + }, "reload": { "service": "mdi:reload" + }, + "start": { + "service": "mdi:play" } } } diff --git a/homeassistant/components/timer/strings.json b/homeassistant/components/timer/strings.json index 4fd80f565a2..de8518212d5 100644 --- a/homeassistant/components/timer/strings.json +++ b/homeassistant/components/timer/strings.json @@ -1,5 +1,4 @@ { - "title": "Timer", "entity_component": { "_": { "name": "Timer", @@ -15,8 +14,8 @@ "editable": { "name": "[%key:common::generic::ui_managed%]", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, "finishes_at": { @@ -32,41 +31,42 @@ } }, "services": { - "start": { - "name": "[%key:common::action::start%]", - "description": "Starts a timer or restarts it with a provided duration.", - "fields": { - "duration": { - "name": "Duration", - "description": "Custom duration to restart the timer with." - } - } - }, - "pause": { - "name": "[%key:common::action::pause%]", - "description": "Pauses a running timer, retaining the remaining duration for later continuation." - }, "cancel": { - "name": "Cancel", - "description": "Resets a timer's duration to the last known initial value without firing the timer finished event." - }, - "finish": { - "name": "Finish", - "description": "Finishes a running timer earlier than scheduled." + "description": "Resets a timer's duration to the last known initial value without firing the timer finished event.", + "name": "Cancel" }, "change": { - "name": "Change", "description": "Changes a timer by adding or subtracting a given duration.", "fields": { "duration": { - "name": "Duration", - "description": "Duration to add to or subtract from the running timer." + "description": "Duration to add to or subtract from the running timer.", + "name": "Duration" } - } + }, + "name": "Change" + }, + "finish": { + "description": "Finishes a running timer earlier than scheduled.", + "name": "Finish" + }, + "pause": { + "description": "Pauses a running timer, retaining the remaining duration for later continuation.", + "name": "[%key:common::action::pause%]" }, "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads timers from the YAML-configuration." + "description": "Reloads timers from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + }, + "start": { + "description": "Starts a timer or restarts it with a provided duration.", + "fields": { + "duration": { + "description": "Custom duration to restart the timer with.", + "name": "Duration" + } + }, + "name": "[%key:common::action::start%]" } - } + }, + "title": "Timer" } diff --git a/homeassistant/components/tod/strings.json b/homeassistant/components/tod/strings.json index c32b996c29a..b2a16497655 100644 --- a/homeassistant/components/tod/strings.json +++ b/homeassistant/components/tod/strings.json @@ -1,15 +1,14 @@ { - "title": "Times of the Day Sensor", "config": { "step": { "user": { - "title": "Create Times of the Day Sensor", - "description": "Create a binary sensor that turns on or off depending on the time.", "data": { "after_time": "On time", "before_time": "Off time", "name": "[%key:common::config_flow::data::name%]" - } + }, + "description": "Create a binary sensor that turns on or off depending on the time.", + "title": "Create Times of the Day Sensor" } } }, @@ -22,5 +21,6 @@ } } } - } + }, + "title": "Times of the Day Sensor" } diff --git a/homeassistant/components/todo/strings.json b/homeassistant/components/todo/strings.json index 1354ab6777b..2e008358fe3 100644 --- a/homeassistant/components/todo/strings.json +++ b/homeassistant/components/todo/strings.json @@ -1,96 +1,9 @@ { - "title": "To-do list", "entity_component": { "_": { "name": "[%key:component::todo::title%]" } }, - "services": { - "get_items": { - "name": "Get items", - "description": "Gets items on a to-do list.", - "fields": { - "status": { - "name": "Status", - "description": "Only return to-do items with the specified statuses. Returns not completed actions by default." - } - } - }, - "add_item": { - "name": "Add item", - "description": "Adds a new to-do list item.", - "fields": { - "item": { - "name": "Item name", - "description": "The name that represents the to-do item." - }, - "due_date": { - "name": "Due date", - "description": "The date the to-do item is expected to be completed." - }, - "due_datetime": { - "name": "Due date and time", - "description": "The date and time the to-do item is expected to be completed." - }, - "description": { - "name": "Description", - "description": "A more complete description of the to-do item than provided by the item name." - } - } - }, - "update_item": { - "name": "Update item", - "description": "Updates an existing to-do list item based on its name or UID.", - "fields": { - "item": { - "name": "Item name or UID", - "description": "The name/summary of the to-do item. If you have items with duplicate names, you can reference specific ones using their UID instead." - }, - "rename": { - "name": "Rename item", - "description": "The new name for the to-do item" - }, - "status": { - "name": "Set status", - "description": "A status or confirmation of the to-do item." - }, - "due_date": { - "name": "[%key:component::todo::services::add_item::fields::due_date::name%]", - "description": "[%key:component::todo::services::add_item::fields::due_date::description%]" - }, - "due_datetime": { - "name": "[%key:component::todo::services::add_item::fields::due_datetime::name%]", - "description": "[%key:component::todo::services::add_item::fields::due_datetime::description%]" - }, - "description": { - "name": "[%key:component::todo::services::add_item::fields::description::name%]", - "description": "[%key:component::todo::services::add_item::fields::description::description%]" - } - } - }, - "remove_completed_items": { - "name": "Remove completed items", - "description": "Removes all to-do list items that have been completed." - }, - "remove_item": { - "name": "Remove item", - "description": "Removes an existing to-do list item by its name or UID.", - "fields": { - "item": { - "name": "[%key:component::todo::services::update_item::fields::item::name%]", - "description": "[%key:component::todo::services::update_item::fields::item::description%]" - } - } - } - }, - "selector": { - "status": { - "options": { - "needs_action": "Not completed", - "completed": "Completed" - } - } - }, "exceptions": { "item_not_found": { "message": "Unable to find to-do list item: {item}" @@ -98,5 +11,92 @@ "update_field_not_supported": { "message": "Entity does not support setting field: {service_field}" } - } + }, + "selector": { + "status": { + "options": { + "completed": "Completed", + "needs_action": "Not completed" + } + } + }, + "services": { + "add_item": { + "description": "Adds a new to-do list item.", + "fields": { + "description": { + "description": "A more complete description of the to-do item than provided by the item name.", + "name": "Description" + }, + "due_date": { + "description": "The date the to-do item is expected to be completed.", + "name": "Due date" + }, + "due_datetime": { + "description": "The date and time the to-do item is expected to be completed.", + "name": "Due date and time" + }, + "item": { + "description": "The name that represents the to-do item.", + "name": "Item name" + } + }, + "name": "Add item" + }, + "get_items": { + "description": "Gets items on a to-do list.", + "fields": { + "status": { + "description": "Only return to-do items with the specified statuses. Returns not completed actions by default.", + "name": "Status" + } + }, + "name": "Get items" + }, + "remove_completed_items": { + "description": "Removes all to-do list items that have been completed.", + "name": "Remove completed items" + }, + "remove_item": { + "description": "Removes an existing to-do list item by its name or UID.", + "fields": { + "item": { + "description": "[%key:component::todo::services::update_item::fields::item::description%]", + "name": "[%key:component::todo::services::update_item::fields::item::name%]" + } + }, + "name": "Remove item" + }, + "update_item": { + "description": "Updates an existing to-do list item based on its name or UID.", + "fields": { + "description": { + "description": "[%key:component::todo::services::add_item::fields::description::description%]", + "name": "[%key:component::todo::services::add_item::fields::description::name%]" + }, + "due_date": { + "description": "[%key:component::todo::services::add_item::fields::due_date::description%]", + "name": "[%key:component::todo::services::add_item::fields::due_date::name%]" + }, + "due_datetime": { + "description": "[%key:component::todo::services::add_item::fields::due_datetime::description%]", + "name": "[%key:component::todo::services::add_item::fields::due_datetime::name%]" + }, + "item": { + "description": "The name/summary of the to-do item. If you have items with duplicate names, you can reference specific ones using their UID instead.", + "name": "Item name or UID" + }, + "rename": { + "description": "The new name for the to-do item", + "name": "Rename item" + }, + "status": { + "description": "A status or confirmation of the to-do item.", + "name": "Set status" + } + }, + "name": "Update item" + } + }, + "title": "To-do list" } diff --git a/homeassistant/components/todoist/strings.json b/homeassistant/components/todoist/strings.json index 68f22b51c47..fb46f24efe7 100644 --- a/homeassistant/components/todoist/strings.json +++ b/homeassistant/components/todoist/strings.json @@ -1,5 +1,16 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -7,17 +18,6 @@ }, "description": "Please enter your API token from your [Todoist Settings page]({settings_url})" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "exceptions": { @@ -30,62 +30,62 @@ }, "services": { "new_task": { - "name": "New task", "description": "Creates a new task and add it to a project.", "fields": { + "assignee": { + "description": "The username of a shared project's member to assign this task to.", + "name": "Assignee" + }, "content": { - "name": "Content", - "description": "The name of the task." + "description": "The name of the task.", + "name": "Content" }, "description": { - "name": "Description", - "description": "A description for the task." - }, - "project": { - "name": "Project", - "description": "The name of the project this task should belong to." - }, - "section": { - "name": "Section", - "description": "The name of a section within the project to add the task to." - }, - "labels": { - "name": "Labels", - "description": "Any labels that you want to apply to this task, separated by a comma." - }, - "assignee": { - "name": "Assignee", - "description": "The username of a shared project's member to assign this task to." - }, - "priority": { - "name": "Priority", - "description": "The priority of this task, from 1 (normal) to 4 (urgent)." - }, - "due_date_string": { - "name": "Due date string", - "description": "The time this task is due, in natural language." - }, - "due_date_lang": { - "name": "Due date language", - "description": "The language of 'Due date string'." + "description": "A description for the task.", + "name": "Description" }, "due_date": { - "name": "Due date", - "description": "The time this task is due, in format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS, in UTC timezone." + "description": "The time this task is due, in format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS, in UTC timezone.", + "name": "Due date" }, - "reminder_date_string": { - "name": "Reminder date string", - "description": "When the user should be reminded of this task, in natural language." + "due_date_lang": { + "description": "The language of 'Due date string'.", + "name": "Due date language" }, - "reminder_date_lang": { - "name": "Reminder date language", - "description": "The language of 'Reminder date string'." + "due_date_string": { + "description": "The time this task is due, in natural language.", + "name": "Due date string" + }, + "labels": { + "description": "Any labels that you want to apply to this task, separated by a comma.", + "name": "Labels" + }, + "priority": { + "description": "The priority of this task, from 1 (normal) to 4 (urgent).", + "name": "Priority" + }, + "project": { + "description": "The name of the project this task should belong to.", + "name": "Project" }, "reminder_date": { - "name": "Reminder date", - "description": "When the user should be reminded of this task, in format YYYY-MM-DDTHH:MM:SS, in UTC timezone." + "description": "When the user should be reminded of this task, in format YYYY-MM-DDTHH:MM:SS, in UTC timezone.", + "name": "Reminder date" + }, + "reminder_date_lang": { + "description": "The language of 'Reminder date string'.", + "name": "Reminder date language" + }, + "reminder_date_string": { + "description": "When the user should be reminded of this task, in natural language.", + "name": "Reminder date string" + }, + "section": { + "description": "The name of a section within the project to add the task to.", + "name": "Section" } - } + }, + "name": "New task" } } } diff --git a/homeassistant/components/togrill/icons.json b/homeassistant/components/togrill/icons.json index a379bf8d978..55b6c504b7e 100644 --- a/homeassistant/components/togrill/icons.json +++ b/homeassistant/components/togrill/icons.json @@ -4,13 +4,13 @@ "grill_type": { "default": "mdi:grill", "state": { - "turkey": "mdi:food-turkey", - "sausage": "mdi:sausage", + "bbq_smoke": "mdi:smoke", + "cold_smoke": "mdi:smoke", "fish": "mdi:fish", "hamburger": "mdi:hamburger", - "bbq_smoke": "mdi:smoke", "hot_smoke": "mdi:smoke", - "cold_smoke": "mdi:smoke" + "sausage": "mdi:sausage", + "turkey": "mdi:food-turkey" } }, "taste": { diff --git a/homeassistant/components/togrill/manifest.json b/homeassistant/components/togrill/manifest.json index fb56b8e3a82..4182fd3d325 100644 --- a/homeassistant/components/togrill/manifest.json +++ b/homeassistant/components/togrill/manifest.json @@ -3,9 +3,9 @@ "name": "ToGrill", "bluetooth": [ { + "connectable": true, "manufacturer_id": 34714, - "service_uuid": "0000cee0-0000-1000-8000-00805f9b34fb", - "connectable": true + "service_uuid": "0000cee0-0000-1000-8000-00805f9b34fb" } ], "codeowners": ["@elupus"], diff --git a/homeassistant/components/togrill/strings.json b/homeassistant/components/togrill/strings.json index 5461ab52e93..029366dd378 100644 --- a/homeassistant/components/togrill/strings.json +++ b/homeassistant/components/togrill/strings.json @@ -1,25 +1,25 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "failed_to_read_config": "Failed to read config from device", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "step": { + "bluetooth_confirm": { + "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, "user": { - "description": "[%key:component::bluetooth::config::step::user::description%]", "data": { "address": "[%key:common::config_flow::data::device%]" }, "data_description": { "address": "Select the device to add." - } - }, - "bluetooth_confirm": { - "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" + }, + "description": "[%key:component::bluetooth::config::step::user::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%]", - "failed_to_read_config": "Failed to read config from device" } }, "device": { @@ -27,88 +27,88 @@ "name": "Probe {probe_number}" } }, - "exceptions": { - "disconnected": { - "message": "The device is disconnected" - }, - "communication_failed": { - "message": "Communication failed with the device" - }, - "rejected": { - "message": "Data was rejected by device" - } - }, "entity": { - "number": { - "temperature_target": { - "name": "Target temperature" - }, - "temperature_minimum": { - "name": "Minimum temperature" - }, - "temperature_maximum": { - "name": "Maximum temperature" - }, - "alarm_interval": { - "name": "Alarm interval" - } - }, "event": { "event": { "name": "Event", "state_attributes": { "event_type": { "state": { - "probe_acknowledge": "Alarm acknowledged", - "probe_alarm": "Alarm triggered", - "probe_disconnected": "Probe disconnected", - "device_low_power": "Device has low battery", - "device_high_temp": "Device has too high temperature", - "probe_below_minimum": "Temperature too low", - "probe_above_maximum": "Temperature too high", - "ignition_failure": "Ignition failure", + "ambient_cool_down": "Ambient temperature cooldown", "ambient_low_temp": "Ambient temperature too low", "ambient_over_heat": "Ambient temperature too high", - "ambient_cool_down": "Ambient temperature cooldown", + "device_high_temp": "Device has too high temperature", + "device_low_power": "Device has low battery", + "ignition_failure": "Ignition failure", + "probe_above_maximum": "Temperature too high", + "probe_acknowledge": "Alarm acknowledged", + "probe_alarm": "Alarm triggered", + "probe_below_minimum": "Temperature too low", + "probe_disconnected": "Probe disconnected", "probe_timer_alarm": "Timer alarm" } } } } }, - "select": { - "taste": { - "name": "Taste", - "state": { - "none": "Not set", - "rare": "Rare", - "medium_rare": "Medium rare", - "medium": "Medium", - "medium_well": "Medium well", - "well_done": "Well done" - } + "number": { + "alarm_interval": { + "name": "Alarm interval" }, + "temperature_maximum": { + "name": "Maximum temperature" + }, + "temperature_minimum": { + "name": "Minimum temperature" + }, + "temperature_target": { + "name": "Target temperature" + } + }, + "select": { "grill_type": { "name": "Grill type", "state": { - "none": "[%key:component::togrill::entity::select::taste::state::none%]", + "bbq_smoke": "BBQ smoke", "beef": "Beef", - "veal": "Veal", - "lamb": "Lamb", - "pork": "Pork", - "turkey": "Turkey", "chicken": "Chicken", - "sausage": "Sausage", + "cold_smoke": "Cold smoke", "fish": "Fish", "hamburger": "Hamburger", - "bbq_smoke": "BBQ smoke", "hot_smoke": "Hot smoke", - "cold_smoke": "Cold smoke", + "lamb": "Lamb", "mark_a": "Mark A", "mark_b": "Mark B", - "mark_c": "Mark C" + "mark_c": "Mark C", + "none": "[%key:component::togrill::entity::select::taste::state::none%]", + "pork": "Pork", + "sausage": "Sausage", + "turkey": "Turkey", + "veal": "Veal" + } + }, + "taste": { + "name": "Taste", + "state": { + "medium": "Medium", + "medium_rare": "Medium rare", + "medium_well": "Medium well", + "none": "Not set", + "rare": "Rare", + "well_done": "Well done" } } } + }, + "exceptions": { + "communication_failed": { + "message": "Communication failed with the device" + }, + "disconnected": { + "message": "The device is disconnected" + }, + "rejected": { + "message": "Data was rejected by device" + } } } diff --git a/homeassistant/components/tolo/icons.json b/homeassistant/components/tolo/icons.json index 7aeec065b41..7b13a04a59d 100644 --- a/homeassistant/components/tolo/icons.json +++ b/homeassistant/components/tolo/icons.json @@ -14,14 +14,14 @@ } }, "number": { + "fan_timer": { + "default": "mdi:fan-auto" + }, "power_timer": { "default": "mdi:power-settings" }, "salt_bath_timer": { "default": "mdi:shaker-outline" - }, - "fan_timer": { - "default": "mdi:fan-auto" } }, "select": { @@ -30,8 +30,8 @@ } }, "sensor": { - "water_level": { - "default": "mdi:waves-arrow-up" + "fan_timer_remaining": { + "default": "mdi:fan-auto" }, "power_timer_remaining": { "default": "mdi:power-settings" @@ -39,8 +39,8 @@ "salt_bath_timer_remaining": { "default": "mdi:shaker-outline" }, - "fan_timer_remaining": { - "default": "mdi:fan-auto" + "water_level": { + "default": "mdi:waves-arrow-up" } }, "switch": { diff --git a/homeassistant/components/tolo/strings.json b/homeassistant/components/tolo/strings.json index 55c8274c19b..f6c028c03ff 100644 --- a/homeassistant/components/tolo/strings.json +++ b/homeassistant/components/tolo/strings.json @@ -1,23 +1,23 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Enter the hostname or IP address of your TOLO Sauna device.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - } - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "flow_title": "{name}", + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "description": "Enter the hostname or IP address of your TOLO Sauna device." + } } }, "entity": { @@ -45,38 +45,35 @@ } }, "number": { + "fan_timer": { + "name": "Fan timer" + }, "power_timer": { "name": "Power timer" }, "salt_bath_timer": { "name": "Salt bath timer" - }, - "fan_timer": { - "name": "Fan timer" } }, "select": { - "lamp_mode": { - "name": "Lamp mode", - "state": { - "automatic": "Automatic", - "manual": "[%key:common::state::manual%]" - } - }, "aroma_therapy_slot": { "name": "Aroma therapy slot", "state": { "a": "Slot A", "b": "Slot B" } + }, + "lamp_mode": { + "name": "Lamp mode", + "state": { + "automatic": "Automatic", + "manual": "[%key:common::state::manual%]" + } } }, "sensor": { - "water_level": { - "name": "Water level" - }, - "tank_temperature": { - "name": "Tank temperature" + "fan_timer_remaining": { + "name": "Fan timer" }, "power_timer_remaining": { "name": "Power timer" @@ -84,8 +81,11 @@ "salt_bath_timer_remaining": { "name": "Salt bath timer" }, - "fan_timer_remaining": { - "name": "Fan timer" + "tank_temperature": { + "name": "Tank temperature" + }, + "water_level": { + "name": "Water level" } }, "switch": { diff --git a/homeassistant/components/tomorrowio/icons.json b/homeassistant/components/tomorrowio/icons.json index aa1d3782546..cf0b2034287 100644 --- a/homeassistant/components/tomorrowio/icons.json +++ b/homeassistant/components/tomorrowio/icons.json @@ -1,8 +1,8 @@ { "entity": { "sensor": { - "dew_point": { - "default": "mdi:thermometer-water" + "china_mep_health_concern": { + "default": "mdi:hospital" }, "cloud_base": { "default": "mdi:cloud-arrow-down" @@ -13,35 +13,35 @@ "cloud_cover": { "default": "mdi:cloud-percent" }, - "wind_gust": { - "default": "mdi:weather-windy" + "dew_point": { + "default": "mdi:thermometer-water" }, - "precipitation_type": { - "default": "mdi:weather-snowy-rainy" + "fire_index": { + "default": "mdi:fire" + }, + "grass_pollen_index": { + "default": "mdi:grass" }, "health_concern": { "default": "mdi:hospital" }, - "china_mep_health_concern": { - "default": "mdi:hospital" - }, "pollen_index": { "default": "mdi:tree" }, - "weed_pollen_index": { - "default": "mdi:flower-pollen" - }, - "grass_pollen_index": { - "default": "mdi:grass" - }, - "fire_index": { - "default": "mdi:fire" + "precipitation_type": { + "default": "mdi:weather-snowy-rainy" }, "uv_index": { "default": "mdi:sun-wireless" }, "uv_radiation_health_concern": { "default": "mdi:weather-sunny-alert" + }, + "weed_pollen_index": { + "default": "mdi:flower-pollen" + }, + "wind_gust": { + "default": "mdi:weather-windy" } } } diff --git a/homeassistant/components/tomorrowio/strings.json b/homeassistant/components/tomorrowio/strings.json index 457123a9feb..0db8d030063 100644 --- a/homeassistant/components/tomorrowio/strings.json +++ b/homeassistant/components/tomorrowio/strings.json @@ -1,43 +1,51 @@ { "config": { - "step": { - "user": { - "description": "To get an API key, sign up at {signup_link}.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "api_key": "[%key:common::config_flow::data::api_key%]", - "location": "[%key:common::config_flow::data::location%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "rate_limited": "Currently rate limited, please try again later." - } - }, - "options": { + "rate_limited": "Currently rate limited, please try again later.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "init": { - "title": "Update Tomorrow.io options", - "description": "If you choose to enable the `nowcast` forecast entity, you can configure the number of minutes between each forecast. The number of forecasts provided depends on the number of minutes chosen between forecasts.", + "user": { "data": { - "timestep": "Minutes between NowCast forecasts" - } + "api_key": "[%key:common::config_flow::data::api_key%]", + "location": "[%key:common::config_flow::data::location%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "To get an API key, sign up at {signup_link}." } } }, "entity": { "sensor": { - "feels_like": { - "name": "Feels like" + "china_mep_air_quality_index": { + "name": "China MEP air quality index" }, - "dew_point": { - "name": "Dew point" + "china_mep_health_concern": { + "name": "China MEP health concern", + "state": { + "good": "[%key:component::tomorrowio::entity::sensor::health_concern::state::good%]", + "hazardous": "[%key:component::tomorrowio::entity::sensor::health_concern::state::hazardous%]", + "moderate": "[%key:component::tomorrowio::entity::sensor::health_concern::state::moderate%]", + "unhealthy": "[%key:component::tomorrowio::entity::sensor::health_concern::state::unhealthy%]", + "unhealthy_for_sensitive_groups": "[%key:component::tomorrowio::entity::sensor::health_concern::state::unhealthy_for_sensitive_groups%]", + "very_unhealthy": "[%key:component::tomorrowio::entity::sensor::health_concern::state::very_unhealthy%]" + } + }, + "china_mep_primary_pollutant": { + "name": "China MEP primary pollutant", + "state": { + "co": "[%key:component::sensor::entity_component::carbon_monoxide::name%]", + "no2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", + "o3": "[%key:component::sensor::entity_component::ozone::name%]", + "pm10": "[%key:component::sensor::entity_component::pm10::name%]", + "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" + } }, "cloud_base": { "name": "Cloud base" @@ -48,104 +56,71 @@ "cloud_cover": { "name": "Cloud cover" }, - "wind_gust": { - "name": "Wind gust" + "dew_point": { + "name": "Dew point" }, - "precipitation_type": { - "name": "Precipitation type", + "feels_like": { + "name": "Feels like" + }, + "fire_index": { + "name": "Fire index" + }, + "grass_pollen_index": { + "name": "Grass pollen index", "state": { - "none": "None", - "rain": "Rain", - "snow": "Snow", - "freezing_rain": "Freezing rain", - "ice_pellets": "Ice pellets" - } - }, - "us_epa_air_quality_index": { - "name": "US EPA air quality index" - }, - "primary_pollutant": { - "name": "US EPA primary pollutant", - "state": { - "pm25": "[%key:component::sensor::entity_component::pm25::name%]", - "pm10": "[%key:component::sensor::entity_component::pm10::name%]", - "o3": "[%key:component::sensor::entity_component::ozone::name%]", - "no2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", - "co": "[%key:component::sensor::entity_component::carbon_monoxide::name%]", - "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "none": "[%key:component::tomorrowio::entity::sensor::pollen_index::state::none%]", + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" } }, "health_concern": { "name": "US EPA health concern", "state": { "good": "Good", + "hazardous": "Hazardous", "moderate": "Moderate", - "unhealthy_for_sensitive_groups": "Unhealthy for sensitive groups", "unhealthy": "Unhealthy", - "very_unhealthy": "Very unhealthy", - "hazardous": "Hazardous" - } - }, - "china_mep_air_quality_index": { - "name": "China MEP air quality index" - }, - "china_mep_primary_pollutant": { - "name": "China MEP primary pollutant", - "state": { - "pm25": "[%key:component::sensor::entity_component::pm25::name%]", - "pm10": "[%key:component::sensor::entity_component::pm10::name%]", - "o3": "[%key:component::sensor::entity_component::ozone::name%]", - "no2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", - "co": "[%key:component::sensor::entity_component::carbon_monoxide::name%]", - "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" - } - }, - "china_mep_health_concern": { - "name": "China MEP health concern", - "state": { - "good": "[%key:component::tomorrowio::entity::sensor::health_concern::state::good%]", - "moderate": "[%key:component::tomorrowio::entity::sensor::health_concern::state::moderate%]", - "unhealthy_for_sensitive_groups": "[%key:component::tomorrowio::entity::sensor::health_concern::state::unhealthy_for_sensitive_groups%]", - "unhealthy": "[%key:component::tomorrowio::entity::sensor::health_concern::state::unhealthy%]", - "very_unhealthy": "[%key:component::tomorrowio::entity::sensor::health_concern::state::very_unhealthy%]", - "hazardous": "[%key:component::tomorrowio::entity::sensor::health_concern::state::hazardous%]" + "unhealthy_for_sensitive_groups": "Unhealthy for sensitive groups", + "very_unhealthy": "Very unhealthy" } }, "pollen_index": { "name": "Tree pollen index", "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", "none": "None", - "very_low": "[%key:common::state::very_low%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" } }, - "weed_pollen_index": { - "name": "Weed pollen index", + "precipitation_type": { + "name": "Precipitation type", "state": { - "none": "[%key:component::tomorrowio::entity::sensor::pollen_index::state::none%]", - "very_low": "[%key:common::state::very_low%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "freezing_rain": "Freezing rain", + "ice_pellets": "Ice pellets", + "none": "None", + "rain": "Rain", + "snow": "Snow" } }, - "grass_pollen_index": { - "name": "Grass pollen index", + "primary_pollutant": { + "name": "US EPA primary pollutant", "state": { - "none": "[%key:component::tomorrowio::entity::sensor::pollen_index::state::none%]", - "very_low": "[%key:common::state::very_low%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]" + "co": "[%key:component::sensor::entity_component::carbon_monoxide::name%]", + "no2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", + "o3": "[%key:component::sensor::entity_component::ozone::name%]", + "pm10": "[%key:component::sensor::entity_component::pm10::name%]", + "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" } }, - "fire_index": { - "name": "Fire index" + "us_epa_air_quality_index": { + "name": "US EPA air quality index" }, "uv_index": { "name": "UV index" @@ -153,12 +128,37 @@ "uv_radiation_health_concern": { "name": "UV radiation health concern", "state": { + "extreme": "Extreme", + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", "moderate": "Moderate", - "high": "[%key:common::state::high%]", - "very_high": "[%key:common::state::very_high%]", - "extreme": "Extreme" + "very_high": "[%key:common::state::very_high%]" } + }, + "weed_pollen_index": { + "name": "Weed pollen index", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]", + "none": "[%key:component::tomorrowio::entity::sensor::pollen_index::state::none%]", + "very_high": "[%key:common::state::very_high%]", + "very_low": "[%key:common::state::very_low%]" + } + }, + "wind_gust": { + "name": "Wind gust" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "timestep": "Minutes between NowCast forecasts" + }, + "description": "If you choose to enable the `nowcast` forecast entity, you can configure the number of minutes between each forecast. The number of forecasts provided depends on the number of minutes chosen between forecasts.", + "title": "Update Tomorrow.io options" } } } diff --git a/homeassistant/components/toon/strings.json b/homeassistant/components/toon/strings.json index 07843de1a05..32bf044206c 100644 --- a/homeassistant/components/toon/strings.json +++ b/homeassistant/components/toon/strings.json @@ -1,47 +1,47 @@ { "config": { - "step": { - "pick_implementation": { - "title": "Choose your tenant to authenticate with", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "agreement": { - "title": "Select your agreement", - "description": "Select the agreement address you want to add.", - "data": { - "agreement": "Agreement" - } - } - }, "abort": { "already_configured": "The selected agreement is already configured.", - "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", "connection_error": "[%key:common::config_flow::error::cannot_connect%]", "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", "no_agreements": "This account has no Toon displays.", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]" + "unknown_authorize_url_generation": "[%key:common::config_flow::abort::unknown_authorize_url_generation%]" + }, + "step": { + "agreement": { + "data": { + "agreement": "Agreement" + }, + "description": "Select the agreement address you want to add.", + "title": "Select your agreement" + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "Choose your tenant to authenticate with" + } } }, "services": { "update": { - "name": "Update", "description": "Updates all entities with fresh data from Toon.", "fields": { "display": { - "name": "Display", - "description": "Toon display to update." + "description": "Toon display to update.", + "name": "Display" } - } + }, + "name": "Update" } } } diff --git a/homeassistant/components/totalconnect/strings.json b/homeassistant/components/totalconnect/strings.json index f3174b72a8e..38df7a0ad98 100644 --- a/homeassistant/components/totalconnect/strings.json +++ b/homeassistant/components/totalconnect/strings.json @@ -1,74 +1,49 @@ { "config": { - "step": { - "user": { - "title": "Total Connect 2.0 account credentials", - "description": "It is highly recommended to use a 'standard' Total Connect user account with Home Assistant. The account should not have full administrative privileges.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "The Total Connect username", - "password": "The Total Connect password" - } - }, - "locations": { - "title": "Location usercodes", - "description": "Enter the usercode for this user at location {location_id}", - "data": { - "usercodes": "Usercode" - }, - "data_description": { - "usercodes": "The usercode is usually a 4-digit number" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Total Connect needs to re-authenticate your account", - "data": { - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "password": "[%key:component::totalconnect::config::step::user::data_description::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "no_locations": "No locations are available for this user, check Total Connect settings", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "usercode": "Usercode not valid for this user at this location" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "no_locations": "No locations are available for this user, check Total Connect settings" - } - }, - "options": { "step": { - "init": { - "title": "Total Connect options", + "locations": { "data": { - "auto_bypass_low_battery": "Auto bypass low battery", - "code_required": "Require user to enter code for alarm actions" + "usercodes": "Usercode" }, "data_description": { - "auto_bypass_low_battery": "If enabled, Total Connect zones will immediately be bypassed when they report low battery. This option helps because zones tend to report low battery in the middle of the night. The downside of this option is that when the alarm system is armed, the bypassed zone will not be monitored.", - "code_required": "If enabled, you must enter the user code to arm or disarm the alarm" - } + "usercodes": "The usercode is usually a 4-digit number" + }, + "description": "Enter the usercode for this user at location {location_id}", + "title": "Location usercodes" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "password": "[%key:component::totalconnect::config::step::user::data_description::password%]" + }, + "description": "Total Connect needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "The Total Connect password", + "username": "The Total Connect username" + }, + "description": "It is highly recommended to use a 'standard' Total Connect user account with Home Assistant. The account should not have full administrative privileges.", + "title": "Total Connect 2.0 account credentials" } } }, - "services": { - "arm_away_instant": { - "name": "Arm away instant", - "description": "Arms away with zero entry delay." - }, - "arm_home_instant": { - "name": "Arm home instant", - "description": "Arms home with zero entry delay." - } - }, "entity": { "alarm_control_panel": { "partition": { @@ -85,44 +60,32 @@ } }, "button": { - "clear_bypass": { - "name": "Clear bypass" + "bypass": { + "name": "Bypass" }, "bypass_all": { "name": "Bypass all" }, - "bypass": { - "name": "Bypass" + "clear_bypass": { + "name": "Clear bypass" } } }, "exceptions": { - "invalid_pin": { - "message": "Incorrect code entered" - }, - "disarm_failed": { - "message": "Failed to disarm {device}" - }, - "disarm_invalid_code": { - "message": "Usercode is invalid, did not disarm" - }, - "arm_home_failed": { - "message": "Failed to arm home {device}" - }, - "arm_home_invalid_code": { - "message": "Usercode is invalid, did not arm home" - }, "arm_away_failed": { "message": "Failed to arm away {device}" }, + "arm_away_instant_failed": { + "message": "Failed to arm away instant {device}" + }, + "arm_away_instant_invalid_code": { + "message": "Usercode is invalid, did not arm away instant" + }, "arm_away_invalid_code": { "message": "Usercode is invalid, did not arm away" }, - "arm_night_failed": { - "message": "Failed to arm night {device}" - }, - "arm_night_invalid_code": { - "message": "Usercode is invalid, did not arm night" + "arm_home_failed": { + "message": "Failed to arm home {device}" }, "arm_home_instant_failed": { "message": "Failed to arm home instant {device}" @@ -130,11 +93,48 @@ "arm_home_instant_invalid_code": { "message": "Usercode is invalid, did not arm home instant" }, - "arm_away_instant_failed": { - "message": "Failed to arm away instant {device}" + "arm_home_invalid_code": { + "message": "Usercode is invalid, did not arm home" }, - "arm_away_instant_invalid_code": { - "message": "Usercode is invalid, did not arm away instant" + "arm_night_failed": { + "message": "Failed to arm night {device}" + }, + "arm_night_invalid_code": { + "message": "Usercode is invalid, did not arm night" + }, + "disarm_failed": { + "message": "Failed to disarm {device}" + }, + "disarm_invalid_code": { + "message": "Usercode is invalid, did not disarm" + }, + "invalid_pin": { + "message": "Incorrect code entered" + } + }, + "options": { + "step": { + "init": { + "data": { + "auto_bypass_low_battery": "Auto bypass low battery", + "code_required": "Require user to enter code for alarm actions" + }, + "data_description": { + "auto_bypass_low_battery": "If enabled, Total Connect zones will immediately be bypassed when they report low battery. This option helps because zones tend to report low battery in the middle of the night. The downside of this option is that when the alarm system is armed, the bypassed zone will not be monitored.", + "code_required": "If enabled, you must enter the user code to arm or disarm the alarm" + }, + "title": "Total Connect options" + } + } + }, + "services": { + "arm_away_instant": { + "description": "Arms away with zero entry delay.", + "name": "Arm away instant" + }, + "arm_home_instant": { + "description": "Arms home with zero entry delay.", + "name": "Arm home instant" } } } diff --git a/homeassistant/components/touchline_sl/strings.json b/homeassistant/components/touchline_sl/strings.json index 469fb8a50a6..5202d7f0544 100644 --- a/homeassistant/components/touchline_sl/strings.json +++ b/homeassistant/components/touchline_sl/strings.json @@ -1,23 +1,23 @@ { "config": { - "flow_title": "Touchline SL setup flow", + "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%]" }, + "flow_title": "Touchline SL setup flow", "step": { "user": { - "title": "Log in to Touchline SL", - "description": "Your credentials for the Roth Touchline SL mobile app/web service", "data": { - "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%]" + }, + "description": "Your credentials for the Roth Touchline SL mobile app/web service", + "title": "Log in to Touchline SL" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/tplink/icons.json b/homeassistant/components/tplink/icons.json index 73bb40a8386..a9288544b17 100644 --- a/homeassistant/components/tplink/icons.json +++ b/homeassistant/components/tplink/icons.json @@ -15,11 +15,12 @@ } }, "button": { - "test_alarm": { - "default": "mdi:bell-alert" + "charging_contacts_reset": {}, + "filter_reset": { + "default": "mdi:air-filter" }, - "stop_alarm": { - "default": "mdi:bell-cancel" + "main_brush_reset": { + "default": "mdi:brush" }, "pan_left": { "default": "mdi:chevron-left" @@ -27,47 +28,115 @@ "pan_right": { "default": "mdi:chevron-right" }, - "tilt_up": { - "default": "mdi:chevron-up" - }, - "tilt_down": { - "default": "mdi:chevron-down" - }, - "main_brush_reset": { - "default": "mdi:brush" + "sensor_reset": { + "default": "mdi:eye-outline" }, "side_brush_reset": { "default": "mdi:brush" }, - "sensor_reset": { - "default": "mdi:eye-outline" + "stop_alarm": { + "default": "mdi:bell-cancel" }, - "filter_reset": { - "default": "mdi:air-filter" + "test_alarm": { + "default": "mdi:bell-alert" }, - "charging_contacts_reset": {} + "tilt_down": { + "default": "mdi:chevron-down" + }, + "tilt_up": { + "default": "mdi:chevron-up" + } + }, + "number": { + "auto_off_minutes": { + "default": "mdi:sleep" + }, + "clean_count": { + "default": "mdi:counter" + }, + "pan_step": { + "default": "mdi:unfold-more-vertical" + }, + "smooth_transition_off": { + "default": "mdi:weather-sunset-down" + }, + "smooth_transition_on": { + "default": "mdi:weather-sunset-up" + }, + "temperature_offset": { + "default": "mdi:contrast" + }, + "tilt_step": { + "default": "mdi:unfold-more-horizontal" + } }, "select": { - "light_preset": { - "default": "mdi:sign-direction" - }, "alarm_sound": { "default": "mdi:music-note" }, "alarm_volume": { "default": "mdi:volume-medium", "state": { + "high": "mdi:volume-high", "low": "mdi:volume-low", - "medium": "mdi:volume-medium", - "high": "mdi:volume-high" + "medium": "mdi:volume-medium" } + }, + "light_preset": { + "default": "mdi:sign-direction" + } + }, + "sensor": { + "alarm_source": { + "default": "mdi:bell" + }, + "charging_contacts_remaining": {}, + "charging_contacts_used": {}, + "filter_remaining": { + "default": "mdi:air-filter" + }, + "filter_used": { + "default": "mdi:air-filter" + }, + "main_brush_remaining": { + "default": "mdi:brush" + }, + "main_brush_used": { + "default": "mdi:brush" + }, + "on_since": { + "default": "mdi:clock" + }, + "sensor_remaining": { + "default": "mdi:eye-outline" + }, + "sensor_used": { + "default": "mdi:eye-outline" + }, + "side_brush_remaining": { + "default": "mdi:brush" + }, + "side_brush_used": { + "default": "mdi:brush" + }, + "signal_level": { + "default": "mdi:signal" + }, + "ssid": { + "default": "mdi:wifi" + }, + "vacuum_error": { + "default": "mdi:alert-circle" + }, + "water_alert_timestamp": { + "default": "mdi:clock-alert-outline" } }, "switch": { - "led": { - "default": "mdi:led-off", + "auto_off_enabled": { + "default": "mdi:sleep-off", "state": { - "on": "mdi:led-on" + "on": "mdi:sleep" } }, "auto_update_enabled": { @@ -76,17 +145,17 @@ "on": "mdi:autorenew" } }, - "auto_off_enabled": { - "default": "mdi:sleep-off", + "baby_cry_detection": { + "default": "mdi:baby-face-outline", "state": { - "on": "mdi:sleep" + "on": "mdi:baby-face" } }, - "smooth_transitions": { - "default": "mdi:transition-masked", - "state": { - "on": "mdi:transition" - } + "carpet_boost": { + "default": "mdi:rug" + }, + "child_lock": { + "default": "mdi:account-lock" }, "fan_sleep_mode": { "default": "mdi:sleep-off", @@ -94,13 +163,10 @@ "on": "mdi:sleep" } }, - "child_lock": { - "default": "mdi:account-lock" - }, - "pir_enabled": { - "default": "mdi:motion-sensor-off", + "led": { + "default": "mdi:led-off", "state": { - "on": "mdi:motion-sensor" + "on": "mdi:led-on" } }, "motion_detection": { @@ -115,98 +181,32 @@ "on": "mdi:account" } }, + "pir_enabled": { + "default": "mdi:motion-sensor-off", + "state": { + "on": "mdi:motion-sensor" + } + }, + "smooth_transitions": { + "default": "mdi:transition-masked", + "state": { + "on": "mdi:transition" + } + }, "tamper_detection": { "default": "mdi:shield-off", "state": { "on": "mdi:shield" } - }, - "baby_cry_detection": { - "default": "mdi:baby-face-outline", - "state": { - "on": "mdi:baby-face" - } - }, - "carpet_boost": { - "default": "mdi:rug" - } - }, - "sensor": { - "on_since": { - "default": "mdi:clock" - }, - "ssid": { - "default": "mdi:wifi" - }, - "signal_level": { - "default": "mdi:signal" - }, - "alarm_source": { - "default": "mdi:bell" - }, - "water_alert_timestamp": { - "default": "mdi:clock-alert-outline" - }, - "main_brush_remaining": { - "default": "mdi:brush" - }, - "main_brush_used": { - "default": "mdi:brush" - }, - "side_brush_remaining": { - "default": "mdi:brush" - }, - "side_brush_used": { - "default": "mdi:brush" - }, - "filter_remaining": { - "default": "mdi:air-filter" - }, - "filter_used": { - "default": "mdi:air-filter" - }, - "sensor_remaining": { - "default": "mdi:eye-outline" - }, - "sensor_used": { - "default": "mdi:eye-outline" - }, - "charging_contacts_remaining": {}, - "charging_contacts_used": {}, - "vacuum_error": { - "default": "mdi:alert-circle" - } - }, - "number": { - "smooth_transition_off": { - "default": "mdi:weather-sunset-down" - }, - "smooth_transition_on": { - "default": "mdi:weather-sunset-up" - }, - "auto_off_minutes": { - "default": "mdi:sleep" - }, - "temperature_offset": { - "default": "mdi:contrast" - }, - "pan_step": { - "default": "mdi:unfold-more-vertical" - }, - "tilt_step": { - "default": "mdi:unfold-more-horizontal" - }, - "clean_count": { - "default": "mdi:counter" } } }, "services": { - "sequence_effect": { - "service": "mdi:playlist-play" - }, "random_effect": { "service": "mdi:shuffle-variant" + }, + "sequence_effect": { + "service": "mdi:playlist-play" } } } diff --git a/homeassistant/components/tplink/strings.json b/homeassistant/components/tplink/strings.json index 70eff4a34c4..97801449d41 100644 --- a/homeassistant/components/tplink/strings.json +++ b/homeassistant/components/tplink/strings.json @@ -1,15 +1,49 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + }, + "error": { + "camera_creds": "You have to set both username and password", + "cannot_connect": "Connection error: {error}", + "cannot_connect_camera": "Unable to access the camera stream, verify that you have set up the camera account: {error}", + "invalid_auth": "Unable to authenticate: {error}", + "invalid_camera_auth": "Camera stream authentication failed" + }, "flow_title": "{name} {model} ({host})", "step": { - "user": { - "description": "If you leave the host empty, discovery will be used to find devices.", + "camera_auth_confirm": { "data": { - "host": "[%key:common::config_flow::data::host%]" + "live_view": "Enable camera live view", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "host": "Hostname or IP address of your TP-Link device." - } + "live_view": "Enabling live view will create the live view camera entity and requires your camera account credentials.", + "password": "Your camera account password configured for the device in the Tapo app.", + "username": "Your camera account username configured for the device in the Tapo app." + }, + "description": "Input device camera account credentials.", + "title": "Set camera account credentials" + }, + "discovery_auth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "[%key:component::tplink::config::step::user_auth_confirm::data_description::password%]", + "username": "[%key:component::tplink::config::step::user_auth_confirm::data_description::username%]" + }, + "description": "[%key:component::tplink::config::step::user_auth_confirm::description%]", + "title": "Authenticate" + }, + "discovery_confirm": { + "description": "Do you want to set up {name} {model} ({host})?" }, "pick_device": { "data": { @@ -19,101 +53,72 @@ "device": "Pick the TP-Link device to add." } }, - "discovery_confirm": { - "description": "Do you want to set up {name} {model} ({host})?" - }, - "user_auth_confirm": { - "title": "Authenticate", - "description": "The device requires authentication, please input your TP-Link credentials below. Note, that both e-mail and password are case-sensitive.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "Your TP-Link cloud username which is the full email and is case-sensitive.", - "password": "Your TP-Link cloud password which is case-sensitive." - } - }, - "discovery_auth_confirm": { - "title": "Authenticate", - "description": "[%key:component::tplink::config::step::user_auth_confirm::description%]", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "username": "[%key:component::tplink::config::step::user_auth_confirm::data_description::username%]", - "password": "[%key:component::tplink::config::step::user_auth_confirm::data_description::password%]" - } - }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "[%key:component::tplink::config::step::user_auth_confirm::description%]", "data": { - "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": { - "username": "[%key:component::tplink::config::step::user_auth_confirm::data_description::username%]", - "password": "[%key:component::tplink::config::step::user_auth_confirm::data_description::password%]" - } + "password": "[%key:component::tplink::config::step::user_auth_confirm::data_description::password%]", + "username": "[%key:component::tplink::config::step::user_auth_confirm::data_description::username%]" + }, + "description": "[%key:component::tplink::config::step::user_auth_confirm::description%]", + "title": "[%key:common::config_flow::title::reauth%]" }, "reconfigure": { - "title": "Reconfigure TPLink entry", - "description": "Update your configuration for device {mac}", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "[%key:component::tplink::config::step::user::data_description::host%]" - } + }, + "description": "Update your configuration for device {mac}", + "title": "Reconfigure TPLink entry" }, - "camera_auth_confirm": { - "title": "Set camera account credentials", - "description": "Input device camera account credentials.", + "user": { "data": { - "live_view": "Enable camera live view", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "host": "[%key:common::config_flow::data::host%]" }, "data_description": { - "live_view": "Enabling live view will create the live view camera entity and requires your camera account credentials.", - "username": "Your camera account username configured for the device in the Tapo app.", - "password": "Your camera account password configured for the device in the Tapo app." - } + "host": "Hostname or IP address of your TP-Link device." + }, + "description": "If you leave the host empty, discovery will be used to find devices." + }, + "user_auth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Your TP-Link cloud password which is case-sensitive.", + "username": "Your TP-Link cloud username which is the full email and is case-sensitive." + }, + "description": "The device requires authentication, please input your TP-Link credentials below. Note, that both e-mail and password are case-sensitive.", + "title": "Authenticate" } - }, - "error": { - "cannot_connect": "Connection error: {error}", - "invalid_auth": "Unable to authenticate: {error}", - "invalid_camera_auth": "Camera stream authentication failed", - "cannot_connect_camera": "Unable to access the camera stream, verify that you have set up the camera account: {error}", - "camera_creds": "You have to set both username and password" - }, - "abort": { - "already_configured": "[%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%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + } + }, + "device": { + "unnamed_device": { + "name": "Unnamed {model}" } }, "entity": { "binary_sensor": { + "cloud_connection": { + "name": "Cloud connection" + }, "humidity_warning": { "name": "Humidity warning" }, - "temperature_warning": { - "name": "Temperature warning" - }, "overheated": { "name": "Overheated" }, "overloaded": { "name": "Overloaded" }, - "cloud_connection": { - "name": "Cloud connection" + "temperature_warning": { + "name": "Temperature warning" }, "water_alert": { "name": "[%key:component::binary_sensor::entity_component::moisture::name%]", @@ -124,11 +129,17 @@ } }, "button": { - "test_alarm": { - "name": "Test alarm" + "charging_contacts_reset": { + "name": "Reset charging contacts consumable" }, - "stop_alarm": { - "name": "Stop alarm" + "filter_reset": { + "name": "Reset filter consumable" + }, + "main_brush_reset": { + "name": "Reset main brush consumable" + }, + "pair": { + "name": "Pair new device" }, "pan_left": { "name": "Pan left" @@ -136,32 +147,26 @@ "pan_right": { "name": "Pan right" }, - "tilt_up": { - "name": "Tilt up" - }, - "tilt_down": { - "name": "Tilt down" - }, - "pair": { - "name": "Pair new device" - }, - "unpair": { - "name": "Unpair device" - }, - "main_brush_reset": { - "name": "Reset main brush consumable" + "sensor_reset": { + "name": "Reset sensor consumable" }, "side_brush_reset": { "name": "Reset side brush consumable" }, - "sensor_reset": { - "name": "Reset sensor consumable" + "stop_alarm": { + "name": "Stop alarm" }, - "filter_reset": { - "name": "Reset filter consumable" + "test_alarm": { + "name": "Test alarm" }, - "charging_contacts_reset": { - "name": "Reset charging contacts consumable" + "tilt_down": { + "name": "Tilt down" + }, + "tilt_up": { + "name": "Tilt up" + }, + "unpair": { + "name": "Unpair device" } }, "camera": { @@ -169,71 +174,85 @@ "name": "Live view" } }, - "select": { - "light_preset": { - "name": "Light preset" + "number": { + "auto_off_minutes": { + "name": "Turn off in" }, + "clean_count": { + "name": "Clean count" + }, + "pan_step": { + "name": "Pan degrees" + }, + "power_protection_threshold": { + "name": "Power protection" + }, + "smooth_transition_off": { + "name": "Smooth off" + }, + "smooth_transition_on": { + "name": "Smooth on" + }, + "temperature_offset": { + "name": "Temperature offset" + }, + "tilt_step": { + "name": "Tilt degrees" + } + }, + "select": { "alarm_sound": { "name": "Alarm sound" }, "alarm_volume": { "name": "Alarm volume" + }, + "light_preset": { + "name": "Light preset" } }, "sensor": { - "current_consumption": { - "name": "Current consumption" - }, - "consumption_total": { - "name": "Total consumption" - }, - "consumption_today": { - "name": "Today's consumption" - }, - "consumption_this_month": { - "name": "This month's consumption" - }, - "on_since": { - "name": "On since" - }, - "ssid": { - "name": "SSID" - }, - "signal_level": { - "name": "Signal level" - }, - "device_time": { - "name": "Device time" - }, - "water_alert_timestamp": { - "name": "Last water leak alert" + "alarm_source": { + "name": "Alarm source" }, "auto_off_at": { "name": "Auto-off at" }, - "report_interval": { - "name": "Report interval" + "charging_contacts_remaining": { + "name": "Charging contacts remaining" }, - "alarm_source": { - "name": "Alarm source" + "charging_contacts_used": { + "name": "Charging contacts used" }, "clean_area": { "name": "Cleaning area" }, - "clean_time": { - "name": "Cleaning time" - }, "clean_progress": { "name": "Cleaning progress" }, - "total_clean_area": { - "name": "Total cleaning area" + "clean_time": { + "name": "Cleaning time" }, - "total_clean_time": { - "name": "Total cleaning time" + "consumption_this_month": { + "name": "This month's consumption" }, - "total_clean_count": { - "name": "Total cleaning count" + "consumption_today": { + "name": "Today's consumption" + }, + "consumption_total": { + "name": "Total consumption" + }, + "current_consumption": { + "name": "Current consumption" + }, + "device_time": { + "name": "Device time" + }, + "filter_remaining": { + "name": "Filter remaining" + }, + "filter_used": { + "name": "Filter used" }, "last_clean_area": { "name": "Last cleaned area" @@ -250,17 +269,11 @@ "main_brush_used": { "name": "Main brush used" }, - "side_brush_remaining": { - "name": "Side brush remaining" + "on_since": { + "name": "On since" }, - "side_brush_used": { - "name": "Side brush used" - }, - "filter_remaining": { - "name": "Filter remaining" - }, - "filter_used": { - "name": "Filter used" + "report_interval": { + "name": "Report interval" }, "sensor_remaining": { "name": "Sensor remaining" @@ -268,51 +281,69 @@ "sensor_used": { "name": "Sensor used" }, - "charging_contacts_remaining": { - "name": "Charging contacts remaining" + "side_brush_remaining": { + "name": "Side brush remaining" }, - "charging_contacts_used": { - "name": "Charging contacts used" + "side_brush_used": { + "name": "Side brush used" + }, + "signal_level": { + "name": "Signal level" + }, + "ssid": { + "name": "SSID" + }, + "total_clean_area": { + "name": "Total cleaning area" + }, + "total_clean_count": { + "name": "Total cleaning count" + }, + "total_clean_time": { + "name": "Total cleaning time" }, "vacuum_error": { "name": "Error", "state": { + "batterylow": "Low on battery", + "dustbinremoved": "Missing dust bin", + "lidarblocked": "Lidar blocked", + "mainbrushstuck": "Main brush stuck", "ok": "No error", "sidebrushstuck": "Side brush stuck", - "mainbrushstuck": "Main brush stuck", - "wheelblocked": "Wheel blocked", "trapped": "Unable to move", "trappedcliff": "Unable to move (cliff sensor)", - "dustbinremoved": "Missing dust bin", - "unabletomove": "Unable to move", - "lidarblocked": "Lidar blocked", "unabletofinddock": "Unable to find dock", - "batterylow": "Low on battery", - "unknowninternal": "Unknown error, report to upstream" + "unabletomove": "Unable to move", + "unknowninternal": "Unknown error, report to upstream", + "wheelblocked": "Wheel blocked" } + }, + "water_alert_timestamp": { + "name": "Last water leak alert" } }, "switch": { - "led": { - "name": "LED" + "auto_off_enabled": { + "name": "Auto-off enabled" }, "auto_update_enabled": { "name": "Auto-update enabled" }, - "auto_off_enabled": { - "name": "Auto-off enabled" + "baby_cry_detection": { + "name": "Baby cry detection" }, - "smooth_transitions": { - "name": "Smooth transitions" - }, - "fan_sleep_mode": { - "name": "Fan sleep mode" + "carpet_boost": { + "name": "Carpet boost" }, "child_lock": { "name": "Child lock" }, - "pir_enabled": { - "name": "Motion sensor" + "fan_sleep_mode": { + "name": "Fan sleep mode" + }, + "led": { + "name": "LED" }, "motion_detection": { "name": "Motion detection" @@ -320,40 +351,14 @@ "person_detection": { "name": "Person detection" }, + "pir_enabled": { + "name": "Motion sensor" + }, + "smooth_transitions": { + "name": "Smooth transitions" + }, "tamper_detection": { "name": "Tamper detection" - }, - "baby_cry_detection": { - "name": "Baby cry detection" - }, - "carpet_boost": { - "name": "Carpet boost" - } - }, - "number": { - "smooth_transition_on": { - "name": "Smooth on" - }, - "smooth_transition_off": { - "name": "Smooth off" - }, - "auto_off_minutes": { - "name": "Turn off in" - }, - "temperature_offset": { - "name": "Temperature offset" - }, - "power_protection_threshold": { - "name": "Power protection" - }, - "pan_step": { - "name": "Pan degrees" - }, - "tilt_step": { - "name": "Tilt degrees" - }, - "clean_count": { - "name": "Clean count" } }, "vacuum": { @@ -361,10 +366,10 @@ "state_attributes": { "fan_speed": { "state": { + "max": "Max", "quiet": "Quiet", "standard": "Standard", "turbo": "Turbo", - "max": "Max", "ultra": "Ultra" } } @@ -372,129 +377,124 @@ } } }, - "device": { - "unnamed_device": { - "name": "Unnamed {model}" - } - }, - "services": { - "sequence_effect": { - "name": "Sequence effect", - "description": "Sets a sequence effect.", - "fields": { - "sequence": { - "name": "Sequence", - "description": "List of HSV sequences (Max 16)." - }, - "segments": { - "name": "Segments", - "description": "List of segments (0 for all)." - }, - "brightness": { - "name": "Brightness", - "description": "Initial brightness." - }, - "duration": { - "name": "Duration", - "description": "Duration." - }, - "repeat_times": { - "name": "Repetitions", - "description": "Repetitions (0 for continuous)." - }, - "transition": { - "name": "Transition", - "description": "Transition." - }, - "spread": { - "name": "Spread", - "description": "Speed of spread." - }, - "direction": { - "name": "Direction", - "description": "Direction." - } - } - }, - "random_effect": { - "name": "Random effect", - "description": "Sets a random effect.", - "fields": { - "init_states": { - "name": "Initial states", - "description": "Initial HSV sequence." - }, - "backgrounds": { - "name": "Backgrounds", - "description": "[%key:component::tplink::services::sequence_effect::fields::sequence::description%]" - }, - "segments": { - "name": "Segments", - "description": "List of segments (0 for all)." - }, - "brightness": { - "name": "Brightness", - "description": "[%key:component::tplink::services::sequence_effect::fields::brightness::description%]" - }, - "duration": { - "name": "Duration", - "description": "[%key:component::tplink::services::sequence_effect::fields::duration::description%]" - }, - "transition": { - "name": "Transition", - "description": "[%key:component::tplink::services::sequence_effect::fields::transition::description%]" - }, - "fadeoff": { - "name": "Fade off", - "description": "Fade off." - }, - "hue_range": { - "name": "Hue range", - "description": "Range of hue." - }, - "saturation_range": { - "name": "Saturation range", - "description": "Range of saturation." - }, - "brightness_range": { - "name": "Brightness range", - "description": "Range of brightness." - }, - "transition_range": { - "name": "Transition range", - "description": "Range of transition." - }, - "random_seed": { - "name": "Random seed", - "description": "Random seed." - } - } - } - }, "exceptions": { - "device_timeout": { - "message": "Timeout communicating with the device {func}: {exc}" + "device_authentication": { + "message": "Device authentication error {func}: {exc}" }, "device_error": { "message": "Unable to communicate with the device {func}: {exc}" }, - "device_authentication": { - "message": "Device authentication error {func}: {exc}" + "device_timeout": { + "message": "Timeout communicating with the device {func}: {exc}" + }, + "invalid_alarm_duration": { + "message": "Invalid duration {duration} available: 1-{duration_max}s" }, "set_custom_effect": { "message": "Error trying to set custom effect {effect}: {exc}" }, "unexpected_device": { "message": "Unexpected device found at {host}; expected {expected}, found {found}" - }, - "invalid_alarm_duration": { - "message": "Invalid duration {duration} available: 1-{duration_max}s" } }, "issues": { "deprecated_entity": { - "title": "Detected deprecated {platform} entity usage", - "description": "We detected that entity `{entity}` is being used in `{info}`\n\nWe have created a new `{new_platform}` entity and you should migrate `{info}` to use this new entity.\n\nWhen you are done migrating `{info}` and are ready to have the deprecated `{entity}` entity removed, disable the entity and restart Home Assistant." + "description": "We detected that entity `{entity}` is being used in `{info}`\n\nWe have created a new `{new_platform}` entity and you should migrate `{info}` to use this new entity.\n\nWhen you are done migrating `{info}` and are ready to have the deprecated `{entity}` entity removed, disable the entity and restart Home Assistant.", + "title": "Detected deprecated {platform} entity usage" + } + }, + "services": { + "random_effect": { + "description": "Sets a random effect.", + "fields": { + "backgrounds": { + "description": "[%key:component::tplink::services::sequence_effect::fields::sequence::description%]", + "name": "Backgrounds" + }, + "brightness": { + "description": "[%key:component::tplink::services::sequence_effect::fields::brightness::description%]", + "name": "Brightness" + }, + "brightness_range": { + "description": "Range of brightness.", + "name": "Brightness range" + }, + "duration": { + "description": "[%key:component::tplink::services::sequence_effect::fields::duration::description%]", + "name": "Duration" + }, + "fadeoff": { + "description": "Fade off.", + "name": "Fade off" + }, + "hue_range": { + "description": "Range of hue.", + "name": "Hue range" + }, + "init_states": { + "description": "Initial HSV sequence.", + "name": "Initial states" + }, + "random_seed": { + "description": "Random seed.", + "name": "Random seed" + }, + "saturation_range": { + "description": "Range of saturation.", + "name": "Saturation range" + }, + "segments": { + "description": "List of segments (0 for all).", + "name": "Segments" + }, + "transition": { + "description": "[%key:component::tplink::services::sequence_effect::fields::transition::description%]", + "name": "Transition" + }, + "transition_range": { + "description": "Range of transition.", + "name": "Transition range" + } + }, + "name": "Random effect" + }, + "sequence_effect": { + "description": "Sets a sequence effect.", + "fields": { + "brightness": { + "description": "Initial brightness.", + "name": "Brightness" + }, + "direction": { + "description": "Direction.", + "name": "Direction" + }, + "duration": { + "description": "Duration.", + "name": "Duration" + }, + "repeat_times": { + "description": "Repetitions (0 for continuous).", + "name": "Repetitions" + }, + "segments": { + "description": "List of segments (0 for all).", + "name": "Segments" + }, + "sequence": { + "description": "List of HSV sequences (Max 16).", + "name": "Sequence" + }, + "spread": { + "description": "Speed of spread.", + "name": "Spread" + }, + "transition": { + "description": "Transition.", + "name": "Transition" + } + }, + "name": "Sequence effect" } } } diff --git a/homeassistant/components/tplink_omada/icons.json b/homeassistant/components/tplink_omada/icons.json index 94f0a6b9764..db730a69f8d 100644 --- a/homeassistant/components/tplink_omada/icons.json +++ b/homeassistant/components/tplink_omada/icons.json @@ -1,16 +1,5 @@ { "entity": { - "switch": { - "poe_control": { - "default": "mdi:ethernet" - }, - "wan_connect_ipv4": { - "default": "mdi:wan" - }, - "wan_connect_ipv6": { - "default": "mdi:wan" - } - }, "binary_sensor": { "online_detection": { "default": "mdi:cloud-check", @@ -26,6 +15,17 @@ "mem_usage": { "default": "mdi:memory" } + }, + "switch": { + "poe_control": { + "default": "mdi:ethernet" + }, + "wan_connect_ipv4": { + "default": "mdi:wan" + }, + "wan_connect_ipv6": { + "default": "mdi:wan" + } } }, "services": { diff --git a/homeassistant/components/tplink_omada/strings.json b/homeassistant/components/tplink_omada/strings.json index 99c509a73a7..c430193db66 100644 --- a/homeassistant/components/tplink_omada/strings.json +++ b/homeassistant/components/tplink_omada/strings.json @@ -1,17 +1,24 @@ { "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%]", + "no_sites_found": "No sites found which the user can manage.", + "unknown": "[%key:common::config_flow::error::unknown%]", + "unsupported_controller": "Omada controller version not supported." + }, "step": { - "user": { + "reauth_confirm": { "data": { - "host": "[%key:common::config_flow::data::host%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "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": { - "host": "URL of the management interface of your TP-Link Omada controller." - }, - "description": "Enter the connection details for the Omada controller. Cloud controllers aren't supported." + "description": "The provided credentials have stopped working. Please update them.", + "title": "Update TP-Link Omada credentials" }, "site": { "data": { @@ -19,28 +26,56 @@ }, "title": "Choose which site(s) to manage" }, - "reauth_confirm": { + "user": { "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, - "title": "Update TP-Link Omada credentials", - "description": "The provided credentials have stopped working. Please update them." + "data_description": { + "host": "URL of the management interface of your TP-Link Omada controller." + }, + "description": "Enter the connection details for the Omada controller. Cloud controllers aren't supported." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unsupported_controller": "Omada controller version not supported.", - "unknown": "[%key:common::config_flow::error::unknown%]", - "no_sites_found": "No sites found which the user can manage." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { + "binary_sensor": { + "lan_status": { + "name": "Port {port_name} LAN status" + }, + "online_detection": { + "name": "Port {port_name} online detection" + }, + "poe_delivery": { + "name": "Port {port_name} PoE delivery" + }, + "wan_link": { + "name": "Port {port_name} Internet link" + } + }, + "sensor": { + "cpu_usage": { + "name": "CPU usage" + }, + "device_status": { + "name": "Device status", + "state": { + "adopt_failed": "Adopt failed", + "connected": "[%key:common::state::connected%]", + "disconnected": "[%key:common::state::disconnected%]", + "error": "[%key:common::state::error%]", + "heartbeat_missed": "Heartbeat missed", + "isolated": "Isolated", + "managed_externally": "Managed externally", + "pending": "Pending" + } + }, + "mem_usage": { + "name": "Memory usage" + } + }, "switch": { "poe_control": { "name": "Port {port_name} PoE" @@ -51,53 +86,18 @@ "wan_connect_ipv6": { "name": "Port {port_name} Internet connected (IPv6)" } - }, - "binary_sensor": { - "wan_link": { - "name": "Port {port_name} Internet link" - }, - "online_detection": { - "name": "Port {port_name} online detection" - }, - "lan_status": { - "name": "Port {port_name} LAN status" - }, - "poe_delivery": { - "name": "Port {port_name} PoE delivery" - } - }, - "sensor": { - "device_status": { - "name": "Device status", - "state": { - "error": "[%key:common::state::error%]", - "disconnected": "[%key:common::state::disconnected%]", - "connected": "[%key:common::state::connected%]", - "pending": "Pending", - "heartbeat_missed": "Heartbeat missed", - "isolated": "Isolated", - "adopt_failed": "Adopt failed", - "managed_externally": "Managed externally" - } - }, - "cpu_usage": { - "name": "CPU usage" - }, - "mem_usage": { - "name": "Memory usage" - } } }, "services": { "reconnect_client": { - "name": "Reconnect wireless client", "description": "Tries to get wireless client to reconnect to Omada network.", "fields": { "mac": { - "name": "MAC address", - "description": "MAC address of the device." + "description": "MAC address of the device.", + "name": "MAC address" } - } + }, + "name": "Reconnect wireless client" } } } diff --git a/homeassistant/components/traccar/strings.json b/homeassistant/components/traccar/strings.json index 804a26e3b0a..7bf76eff33a 100644 --- a/homeassistant/components/traccar/strings.json +++ b/homeassistant/components/traccar/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up Traccar Client", - "description": "Are you sure you want to set up Traccar Client?" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up the webhook feature in Traccar Client.\n\nUse the following URL: `{webhook_url}`\n\nSee [the documentation]({docs_url}) for further details." + }, + "step": { + "user": { + "description": "Are you sure you want to set up Traccar Client?", + "title": "Set up Traccar Client" + } } } } diff --git a/homeassistant/components/traccar_server/icons.json b/homeassistant/components/traccar_server/icons.json index a10b154fbff..82c1a9b4eb0 100644 --- a/homeassistant/components/traccar_server/icons.json +++ b/homeassistant/components/traccar_server/icons.json @@ -10,12 +10,12 @@ } }, "sensor": { - "altitude": { - "default": "mdi:altimeter" - }, "address": { "default": "mdi:map-marker" }, + "altitude": { + "default": "mdi:altimeter" + }, "geofence": { "default": "mdi:map-marker" } diff --git a/homeassistant/components/traccar_server/strings.json b/homeassistant/components/traccar_server/strings.json index 89b7b180346..3c12a4525e1 100644 --- a/homeassistant/components/traccar_server/strings.json +++ b/homeassistant/components/traccar_server/strings.json @@ -1,6 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "The authentication credentials for {host}:{port} need to be updated." + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -14,40 +30,6 @@ "host": "The hostname or IP address of your Traccar Server", "username": "The username (email) you use to log in to your Traccar Server" } - }, - "reauth_confirm": { - "description": "The authentication credentials for {host}:{port} need to be updated.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "max_accuracy": "Max accuracy", - "skip_accuracy_filter_for": "Position skip filter for attributes", - "custom_attributes": "Custom attributes", - "events": "Events" - }, - "data_description": { - "max_accuracy": "Any position reports with accuracy higher than this value will be ignored", - "skip_accuracy_filter_for": "Attributes defined here will bypass the accuracy filter if they are present in the update", - "custom_attributes": "Add any custom or calculated attributes here. These will be added to the device attributes", - "events": "Selected events will be fired in Home Assistant" - } } } }, @@ -79,5 +61,23 @@ "name": "Geofence" } } + }, + "options": { + "step": { + "init": { + "data": { + "custom_attributes": "Custom attributes", + "events": "Events", + "max_accuracy": "Max accuracy", + "skip_accuracy_filter_for": "Position skip filter for attributes" + }, + "data_description": { + "custom_attributes": "Add any custom or calculated attributes here. These will be added to the device attributes", + "events": "Selected events will be fired in Home Assistant", + "max_accuracy": "Any position reports with accuracy higher than this value will be ignored", + "skip_accuracy_filter_for": "Attributes defined here will bypass the accuracy filter if they are present in the update" + } + } + } } } diff --git a/homeassistant/components/tractive/icons.json b/homeassistant/components/tractive/icons.json index 4fc4238d381..42475752b7c 100644 --- a/homeassistant/components/tractive/icons.json +++ b/homeassistant/components/tractive/icons.json @@ -35,6 +35,12 @@ } }, "switch": { + "live_tracking": { + "default": "mdi:map-marker-path", + "state": { + "off": "mdi:map-marker-off" + } + }, "tracker_buzzer": { "default": "mdi:volume-high", "state": { @@ -46,12 +52,6 @@ "state": { "off": "mdi:led-off" } - }, - "live_tracking": { - "default": "mdi:map-marker-path", - "state": { - "off": "mdi:map-marker-off" - } } } } diff --git a/homeassistant/components/tractive/strings.json b/homeassistant/components/tractive/strings.json index a56a2982057..a070996e8db 100644 --- a/homeassistant/components/tractive/strings.json +++ b/homeassistant/components/tractive/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "reauth_failed_existing": "Could not update the config entry, please remove the integration and set it up again.", + "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": { "user": { "data": { @@ -7,15 +16,6 @@ "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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_failed_existing": "Could not update the config entry, please remove the integration and set it up again." } }, "entity": { @@ -82,14 +82,14 @@ } }, "switch": { + "live_tracking": { + "name": "Live tracking" + }, "tracker_buzzer": { "name": "Tracker buzzer" }, "tracker_led": { "name": "Tracker LED" - }, - "live_tracking": { - "name": "Live tracking" } } } diff --git a/homeassistant/components/tradfri/strings.json b/homeassistant/components/tradfri/strings.json index 8b86a6df9ab..740ae3f924b 100644 --- a/homeassistant/components/tradfri/strings.json +++ b/homeassistant/components/tradfri/strings.json @@ -1,27 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" + }, + "error": { + "cannot_authenticate": "Cannot authenticate, is your gateway paired with another server like e.g. HomeKit?", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_security_code": "Failed to register with provided code. If this keeps happening, try restarting the gateway.", + "timeout": "Timeout validating the code." + }, "step": { "auth": { - "title": "Enter security code", - "description": "You can find the security code on the back of your gateway.", "data": { "host": "[%key:common::config_flow::data::host%]", "security_code": "Security code" }, "data_description": { "host": "Hostname or IP address of your Trådfri gateway." - } + }, + "description": "You can find the security code on the back of your gateway.", + "title": "Enter security code" } - }, - "error": { - "invalid_security_code": "Failed to register with provided code. If this keeps happening, try restarting the gateway.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout": "Timeout validating the code.", - "cannot_authenticate": "Cannot authenticate, is your gateway paired with another server like e.g. HomeKit?" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]" } }, "entity": { diff --git a/homeassistant/components/trafikverket_camera/icons.json b/homeassistant/components/trafikverket_camera/icons.json index 46b006ff48b..e4ba60fa68a 100644 --- a/homeassistant/components/trafikverket_camera/icons.json +++ b/homeassistant/components/trafikverket_camera/icons.json @@ -6,6 +6,9 @@ } }, "sensor": { + "camera_type": { + "default": "mdi:camera-iris" + }, "direction": { "default": "mdi:sign-direction" }, @@ -20,9 +23,6 @@ }, "status": { "default": "mdi:camera-outline" - }, - "camera_type": { - "default": "mdi:camera-iris" } } } diff --git a/homeassistant/components/trafikverket_camera/strings.json b/homeassistant/components/trafikverket_camera/strings.json index 8fdc6357156..029c1641bdd 100644 --- a/homeassistant/components/trafikverket_camera/strings.json +++ b/homeassistant/components/trafikverket_camera/strings.json @@ -12,20 +12,11 @@ "more_locations": "Found multiple camera locations with the specified name" }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "location": "[%key:common::config_flow::data::location%]" - }, - "data_description": { - "location": "Equal or part of name, description or camera ID. Be as specific as possible to avoid getting multiple cameras as result" - } - }, "multiple_cameras": { - "description": "Result came back with multiple cameras", "data": { "id": "Choose camera" - } + }, + "description": "Result came back with multiple cameras" }, "reauth_confirm": { "data": { @@ -40,10 +31,24 @@ "data_description": { "location": "[%key:component::trafikverket_camera::config::step::user::data_description::location%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "location": "[%key:common::config_flow::data::location%]" + }, + "data_description": { + "location": "Equal or part of name, description or camera ID. Be as specific as possible to avoid getting multiple cameras as result" + } } } }, "entity": { + "binary_sensor": { + "active": { + "name": "Active" + } + }, "camera": { "tv_camera": { "state_attributes": { @@ -71,12 +76,10 @@ } } }, - "binary_sensor": { - "active": { - "name": "Active" - } - }, "sensor": { + "camera_type": { + "name": "Camera type" + }, "direction": { "name": "Direction" }, @@ -91,9 +94,6 @@ }, "status": { "name": "Status" - }, - "camera_type": { - "name": "Camera type" } } } diff --git a/homeassistant/components/trafikverket_ferry/icons.json b/homeassistant/components/trafikverket_ferry/icons.json index ca2536efcc5..5b63a2f2b82 100644 --- a/homeassistant/components/trafikverket_ferry/icons.json +++ b/homeassistant/components/trafikverket_ferry/icons.json @@ -1,23 +1,23 @@ { "entity": { "sensor": { - "departure_time": { - "default": "mdi:clock" - }, "departure_from": { "default": "mdi:ferry" }, - "departure_to": { - "default": "mdi:ferry" - }, "departure_modified": { "default": "mdi:clock" }, + "departure_time": { + "default": "mdi:clock" + }, "departure_time_next": { "default": "mdi:clock" }, "departure_time_next_next": { "default": "mdi:clock" + }, + "departure_to": { + "default": "mdi:ferry" } } } diff --git a/homeassistant/components/trafikverket_ferry/strings.json b/homeassistant/components/trafikverket_ferry/strings.json index d98d60f4643..1e8528f3589 100644 --- a/homeassistant/components/trafikverket_ferry/strings.json +++ b/homeassistant/components/trafikverket_ferry/strings.json @@ -6,59 +6,59 @@ }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "incorrect_api_key": "Invalid API key for selected account", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_route": "Could not find route with provided information", - "incorrect_api_key": "Invalid API key for selected account" + "invalid_route": "Could not find route with provided information" }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "to": "To Harbour", - "from": "From Harbour", - "time": "Time", - "weekday": "Weekdays" - } - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" } - } - } - }, - "selector": { - "weekday": { - "options": { - "mon": "[%key:common::time::monday%]", - "tue": "[%key:common::time::tuesday%]", - "wed": "[%key:common::time::wednesday%]", - "thu": "[%key:common::time::thursday%]", - "fri": "[%key:common::time::friday%]", - "sat": "[%key:common::time::saturday%]", - "sun": "[%key:common::time::sunday%]" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "from": "From Harbour", + "time": "Time", + "to": "To Harbour", + "weekday": "Weekdays" + } } } }, "entity": { "sensor": { - "departure_time": { - "name": "Departure time" - }, "departure_from": { "name": "Departure from" }, - "departure_to": { - "name": "Departure to" - }, "departure_modified": { "name": "Departure modified" }, + "departure_time": { + "name": "Departure time" + }, "departure_time_next": { "name": "Departure time next" }, "departure_time_next_next": { "name": "Departure time next after" + }, + "departure_to": { + "name": "Departure to" + } + } + }, + "selector": { + "weekday": { + "options": { + "fri": "[%key:common::time::friday%]", + "mon": "[%key:common::time::monday%]", + "sat": "[%key:common::time::saturday%]", + "sun": "[%key:common::time::sunday%]", + "thu": "[%key:common::time::thursday%]", + "tue": "[%key:common::time::tuesday%]", + "wed": "[%key:common::time::wednesday%]" } } } diff --git a/homeassistant/components/trafikverket_train/icons.json b/homeassistant/components/trafikverket_train/icons.json index 982e3f70b9c..0aff5549df7 100644 --- a/homeassistant/components/trafikverket_train/icons.json +++ b/homeassistant/components/trafikverket_train/icons.json @@ -1,10 +1,7 @@ { "entity": { "sensor": { - "departure_time": { - "default": "mdi:clock" - }, - "departure_state": { + "actual_time": { "default": "mdi:clock" }, "cancelled": { @@ -13,26 +10,29 @@ "delayed_time": { "default": "mdi:clock" }, - "planned_time": { + "departure_state": { "default": "mdi:clock" }, - "estimated_time": { + "departure_time": { "default": "mdi:clock" }, - "actual_time": { - "default": "mdi:clock" - }, - "other_info": { - "default": "mdi:information-variant" - }, - "deviation": { - "default": "mdi:alert" - }, "departure_time_next": { "default": "mdi:clock" }, "departure_time_next_next": { "default": "mdi:clock" + }, + "deviation": { + "default": "mdi:alert" + }, + "estimated_time": { + "default": "mdi:clock" + }, + "other_info": { + "default": "mdi:information-variant" + }, + "planned_time": { + "default": "mdi:clock" } } } diff --git a/homeassistant/components/trafikverket_train/strings.json b/homeassistant/components/trafikverket_train/strings.json index 02155e46c2f..793f6e37f8a 100644 --- a/homeassistant/components/trafikverket_train/strings.json +++ b/homeassistant/components/trafikverket_train/strings.json @@ -7,68 +7,80 @@ }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "incorrect_api_key": "Invalid API key for selected account", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_station": "Could not find a station with the specified name", "more_stations": "Found multiple stations with the specified name", - "no_trains": "No train found", - "incorrect_api_key": "Invalid API key for selected account" + "no_trains": "No train found" }, "step": { "initial": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]", - "to": "To station", + "filter_product": "Filter by product description", "from": "From station", "time": "Time (optional)", - "weekday": "Days", - "filter_product": "Filter by product description" + "to": "To station", + "weekday": "Days" }, "data_description": { - "time": "Set time to search specifically at this time of day, must be exact time as scheduled train departure", - "filter_product": "To filter by product description add the phrase here to match" - } - }, - "select_stations": { - "description": "More than one station was found with the provided name, select the correct ones from the provided lists", - "data": { - "to": "To station", - "from": "From station" + "filter_product": "To filter by product description add the phrase here to match", + "time": "Set time to search specifically at this time of day, must be exact time as scheduled train departure" } }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" } - } - } - }, - "options": { - "step": { - "init": { + }, + "select_stations": { "data": { - "filter_product": "[%key:component::trafikverket_train::config::step::initial::data::filter_product%]" + "from": "From station", + "to": "To station" }, - "data_description": { - "filter_product": "[%key:component::trafikverket_train::config::step::initial::data_description::filter_product%]" - } - } - } - }, - "selector": { - "weekday": { - "options": { - "mon": "[%key:common::time::monday%]", - "tue": "[%key:common::time::tuesday%]", - "wed": "[%key:common::time::wednesday%]", - "thu": "[%key:common::time::thursday%]", - "fri": "[%key:common::time::friday%]", - "sat": "[%key:common::time::saturday%]", - "sun": "[%key:common::time::sunday%]" + "description": "More than one station was found with the provided name, select the correct ones from the provided lists" } } }, "entity": { "sensor": { + "actual_time": { + "name": "Actual time", + "state_attributes": { + "product_filter": { + "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" + } + } + }, + "cancelled": { + "name": "Cancelled", + "state_attributes": { + "product_filter": { + "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" + } + } + }, + "delayed_time": { + "name": "Delayed time", + "state_attributes": { + "product_filter": { + "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" + } + } + }, + "departure_state": { + "name": "Departure state", + "state": { + "canceled": "Cancelled", + "delayed": "Delayed", + "on_time": "On time" + }, + "state_attributes": { + "product_filter": { + "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" + } + } + }, "departure_time": { "name": "Departure time", "state_attributes": { @@ -93,37 +105,8 @@ } } }, - "departure_state": { - "name": "Departure state", - "state": { - "on_time": "On time", - "delayed": "Delayed", - "canceled": "Cancelled" - }, - "state_attributes": { - "product_filter": { - "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" - } - } - }, - "cancelled": { - "name": "Cancelled", - "state_attributes": { - "product_filter": { - "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" - } - } - }, - "delayed_time": { - "name": "Delayed time", - "state_attributes": { - "product_filter": { - "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" - } - } - }, - "planned_time": { - "name": "Planned time", + "deviation": { + "name": "Deviation", "state_attributes": { "product_filter": { "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" @@ -138,14 +121,6 @@ } } }, - "actual_time": { - "name": "Actual time", - "state_attributes": { - "product_filter": { - "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" - } - } - }, "other_info": { "name": "Other information", "state_attributes": { @@ -154,8 +129,8 @@ } } }, - "deviation": { - "name": "Deviation", + "planned_time": { + "name": "Planned time", "state_attributes": { "product_filter": { "name": "[%key:component::trafikverket_train::entity::sensor::departure_time::state_attributes::product_filter::name%]" @@ -163,5 +138,30 @@ } } } + }, + "options": { + "step": { + "init": { + "data": { + "filter_product": "[%key:component::trafikverket_train::config::step::initial::data::filter_product%]" + }, + "data_description": { + "filter_product": "[%key:component::trafikverket_train::config::step::initial::data_description::filter_product%]" + } + } + } + }, + "selector": { + "weekday": { + "options": { + "fri": "[%key:common::time::friday%]", + "mon": "[%key:common::time::monday%]", + "sat": "[%key:common::time::saturday%]", + "sun": "[%key:common::time::sunday%]", + "thu": "[%key:common::time::thursday%]", + "tue": "[%key:common::time::tuesday%]", + "wed": "[%key:common::time::wednesday%]" + } + } } } diff --git a/homeassistant/components/trafikverket_weatherstation/icons.json b/homeassistant/components/trafikverket_weatherstation/icons.json index 555d79ee084..ffd0ba37e93 100644 --- a/homeassistant/components/trafikverket_weatherstation/icons.json +++ b/homeassistant/components/trafikverket_weatherstation/icons.json @@ -1,6 +1,12 @@ { "entity": { "sensor": { + "measure_time": { + "default": "mdi:clock" + }, + "modified_time": { + "default": "mdi:clock" + }, "precipitation": { "default": "mdi:weather-snowy-rainy" }, @@ -9,12 +15,6 @@ }, "wind_speed_max": { "default": "mdi:weather-windy-variant" - }, - "measure_time": { - "default": "mdi:clock" - }, - "modified_time": { - "default": "mdi:clock" } } } diff --git a/homeassistant/components/trafikverket_weatherstation/strings.json b/homeassistant/components/trafikverket_weatherstation/strings.json index 90a9f9ba7c1..a8d23516cc9 100644 --- a/homeassistant/components/trafikverket_weatherstation/strings.json +++ b/homeassistant/components/trafikverket_weatherstation/strings.json @@ -12,12 +12,6 @@ "more_stations": "Found multiple weather stations with the specified name" }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]", - "station": "Station" - } - }, "reauth_confirm": { "data": { "api_key": "[%key:common::config_flow::data::api_key%]" @@ -28,6 +22,12 @@ "api_key": "[%key:common::config_flow::data::api_key%]", "station": "[%key:component::trafikverket_weatherstation::config::step::user::data::station%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "station": "Station" + } } } }, @@ -36,34 +36,25 @@ "air_temperature": { "name": "Air temperature" }, - "road_temperature": { - "name": "Road temperature" - }, - "precipitation": { - "name": "Precipitation type", - "state": { - "no": "None", - "rain": "Rain", - "freezing_rain": "Freezing rain", - "snow": "Snow", - "sleet": "Sleet", - "yes": "Yes (unknown)" - } - }, - "wind_direction": { - "name": "Wind direction" - }, - "wind_speed_max": { - "name": "Wind speed max" + "dew_point": { + "name": "Dew point" }, "measure_time": { "name": "Measure time" }, - "dew_point": { - "name": "Dew point" + "modified_time": { + "name": "Data modified time" }, - "visible_distance": { - "name": "Visible distance" + "precipitation": { + "name": "Precipitation type", + "state": { + "freezing_rain": "Freezing rain", + "no": "None", + "rain": "Rain", + "sleet": "Sleet", + "snow": "Snow", + "yes": "Yes (unknown)" + } }, "road_ice_depth": { "name": "Ice depth on road" @@ -71,17 +62,26 @@ "road_snow_depth": { "name": "Snow depth on road" }, + "road_temperature": { + "name": "Road temperature" + }, "road_water_depth": { "name": "Water depth on road" }, "road_water_equivalent_depth": { "name": "Water equivalent depth on road" }, + "visible_distance": { + "name": "Visible distance" + }, + "wind_direction": { + "name": "Wind direction" + }, "wind_height": { "name": "Wind measurement height" }, - "modified_time": { - "name": "Data modified time" + "wind_speed_max": { + "name": "Wind speed max" } } } diff --git a/homeassistant/components/transmission/strings.json b/homeassistant/components/transmission/strings.json index 0fe1953d31e..9f467b5a9a8 100644 --- a/homeassistant/components/transmission/strings.json +++ b/homeassistant/components/transmission/strings.json @@ -1,8 +1,22 @@ { "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%]" + }, "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "The password for {username} is invalid.", + "title": "[%key:common::config_flow::title::reauth%]" + }, "user": { - "title": "Set up Transmission client", "data": { "host": "[%key:common::config_flow::data::host%]", "password": "[%key:common::config_flow::data::password%]", @@ -13,23 +27,56 @@ }, "data_description": { "path": "The RPC request target path. E.g. `/transmission/rpc`" + }, + "title": "Set up Transmission client" + } + } + }, + "entity": { + "sensor": { + "active_torrents": { + "name": "Active torrents", + "unit_of_measurement": "torrents" + }, + "completed_torrents": { + "name": "Completed torrents", + "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" + }, + "download_speed": { + "name": "Download speed" + }, + "paused_torrents": { + "name": "Paused torrents", + "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" + }, + "started_torrents": { + "name": "Started torrents", + "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" + }, + "total_torrents": { + "name": "Total torrents", + "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" + }, + "transmission_status": { + "name": "Status", + "state": { + "downloading": "Downloading", + "idle": "[%key:common::state::idle%]", + "seeding": "Seeding", + "up_down": "Up/Down" } }, - "reauth_confirm": { - "description": "The password for {username} is invalid.", - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } + "upload_speed": { + "name": "Upload speed" } }, - "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_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "switch": { + "on_off": { + "name": "Switch" + }, + "turtle_mode": { + "name": "Turtle mode" + } } }, "options": { @@ -42,117 +89,70 @@ } } }, - "entity": { - "sensor": { - "download_speed": { - "name": "Download speed" - }, - "upload_speed": { - "name": "Upload speed" - }, - "transmission_status": { - "name": "Status", - "state": { - "idle": "[%key:common::state::idle%]", - "up_down": "Up/Down", - "seeding": "Seeding", - "downloading": "Downloading" - } - }, - "active_torrents": { - "name": "Active torrents", - "unit_of_measurement": "torrents" - }, - "paused_torrents": { - "name": "Paused torrents", - "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" - }, - "total_torrents": { - "name": "Total torrents", - "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" - }, - "completed_torrents": { - "name": "Completed torrents", - "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" - }, - "started_torrents": { - "name": "Started torrents", - "unit_of_measurement": "[%key:component::transmission::entity::sensor::active_torrents::unit_of_measurement%]" - } - }, - "switch": { - "on_off": { - "name": "Switch" - }, - "turtle_mode": { - "name": "Turtle mode" - } - } - }, "services": { "add_torrent": { - "name": "Add torrent", "description": "Adds a new torrent to download (URL, magnet link or Base64 encoded).", "fields": { + "download_path": { + "description": "Optional path to specify where the torrent should be downloaded. If not specified, the default download directory is used.", + "name": "Download path" + }, "entry_id": { - "name": "Transmission entry", - "description": "ID of the config entry to use." + "description": "ID of the config entry to use.", + "name": "Transmission entry" }, "torrent": { - "name": "Torrent", - "description": "URL, magnet link or Base64 encoded file." - }, - "download_path": { - "name": "Download path", - "description": "Optional path to specify where the torrent should be downloaded. If not specified, the default download directory is used." + "description": "URL, magnet link or Base64 encoded file.", + "name": "Torrent" } - } + }, + "name": "Add torrent" }, "remove_torrent": { - "name": "Remove torrent", "description": "Removes a torrent.", "fields": { + "delete_data": { + "description": "Delete torrent data.", + "name": "Delete data" + }, "entry_id": { - "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", - "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]", + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]" }, "id": { - "name": "ID", - "description": "ID of a torrent." - }, - "delete_data": { - "name": "Delete data", - "description": "Delete torrent data." + "description": "ID of a torrent.", + "name": "ID" } - } + }, + "name": "Remove torrent" }, "start_torrent": { - "name": "Start torrent", "description": "Starts a torrent.", "fields": { "entry_id": { - "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", - "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]", + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]" }, "id": { - "name": "ID", - "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]" + "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]", + "name": "ID" } - } + }, + "name": "Start torrent" }, "stop_torrent": { - "name": "Stop torrent", "description": "Stops a torrent.", "fields": { "entry_id": { - "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", - "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]", + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]" }, "id": { - "name": "ID", - "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]" + "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]", + "name": "ID" } - } + }, + "name": "Stop torrent" } } } diff --git a/homeassistant/components/trend/strings.json b/homeassistant/components/trend/strings.json index 9f11673e4cd..d86c1731ba8 100644 --- a/homeassistant/components/trend/strings.json +++ b/homeassistant/components/trend/strings.json @@ -1,27 +1,20 @@ { - "title": "Trend", - "services": { - "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads trend sensors from the YAML-configuration." - } - }, "config": { "step": { - "user": { - "title": "Trend helper", - "description": "The trend helper allows you to create a sensor which show the trend of a numeric state or a state attribute from another entity.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "entity_id": "Entity that this sensor tracks" - } - }, "settings": { "data": { - "entity_id": "[%key:component::trend::config::step::user::data::entity_id%]", "attribute": "Attribute of entity that this sensor tracks", + "entity_id": "[%key:component::trend::config::step::user::data::entity_id%]", "invert": "Invert the result" } + }, + "user": { + "data": { + "entity_id": "Entity that this sensor tracks", + "name": "[%key:common::config_flow::data::name%]" + }, + "description": "The trend helper allows you to create a sensor which show the trend of a numeric state or a state attribute from another entity.", + "title": "Trend helper" } } }, @@ -29,21 +22,28 @@ "step": { "init": { "data": { - "entity_id": "[%key:component::trend::config::step::user::data::entity_id%]", "attribute": "[%key:component::trend::config::step::settings::data::attribute%]", + "entity_id": "[%key:component::trend::config::step::user::data::entity_id%]", "invert": "[%key:component::trend::config::step::settings::data::invert%]", "max_samples": "Maximum number of stored samples", - "min_samples": "Minimum number of stored samples", "min_gradient": "Minimum rate at which the value must be changing", + "min_samples": "Minimum number of stored samples", "sample_duration": "Duration in seconds to store samples for" }, "data_description": { "max_samples": "The maximum number of samples to store. If the number of samples exceeds this value, the oldest samples will be discarded.", - "min_samples": "The minimum number of samples that must be collected before the gradient can be calculated.", "min_gradient": "The minimum rate at which the observed value must be changing for this sensor to switch on. The gradient is measured in sensor units per second.", + "min_samples": "The minimum number of samples that must be collected before the gradient can be calculated.", "sample_duration": "The duration in seconds to store samples for. Samples older than this value will be discarded." } } } - } + }, + "services": { + "reload": { + "description": "Reloads trend sensors from the YAML-configuration.", + "name": "[%key:common::action::reload%]" + } + }, + "title": "Trend" } diff --git a/homeassistant/components/triggercmd/strings.json b/homeassistant/components/triggercmd/strings.json index 6725b92f59f..3bf8996504c 100644 --- a/homeassistant/components/triggercmd/strings.json +++ b/homeassistant/components/triggercmd/strings.json @@ -1,5 +1,14 @@ { "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%]", + "invalid_token": "Invalid token", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,15 +18,6 @@ "token": "The token from the TRIGGERcmd instructions page" } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_token": "Invalid token", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } } } diff --git a/homeassistant/components/tts/strings.json b/homeassistant/components/tts/strings.json index 2d1ac379c26..2ba6c43126a 100644 --- a/homeassistant/components/tts/strings.json +++ b/homeassistant/components/tts/strings.json @@ -1,60 +1,60 @@ { "services": { + "clear_cache": { + "description": "Removes all cached text-to-speech files and purges the memory.", + "name": "Clear TTS cache" + }, "say": { - "name": "Say a TTS message", "description": "Says something using text-to-speech on a media player.", "fields": { - "entity_id": { - "name": "Entity", - "description": "Media players to play the message." - }, - "message": { - "name": "Message", - "description": "The text you want to convert into speech so that you can listen to it on your device." - }, "cache": { - "name": "Cache", - "description": "Stores this message locally so that when the text is requested again, the output can be produced more quickly." + "description": "Stores this message locally so that when the text is requested again, the output can be produced more quickly.", + "name": "Cache" + }, + "entity_id": { + "description": "Media players to play the message.", + "name": "Entity" }, "language": { - "name": "[%key:common::config_flow::data::language%]", - "description": "Language to use for speech generation." + "description": "Language to use for speech generation.", + "name": "[%key:common::config_flow::data::language%]" + }, + "message": { + "description": "The text you want to convert into speech so that you can listen to it on your device.", + "name": "Message" }, "options": { - "name": "Options", - "description": "A dictionary containing integration-specific options." + "description": "A dictionary containing integration-specific options.", + "name": "Options" } - } + }, + "name": "Say a TTS message" }, "speak": { - "name": "Speak", "description": "Speaks something using text-to-speech on a media player.", "fields": { - "media_player_entity_id": { - "name": "Media player entity", - "description": "Media players to play the message." - }, - "message": { - "name": "[%key:component::tts::services::say::fields::message::name%]", - "description": "[%key:component::tts::services::say::fields::message::description%]" - }, "cache": { - "name": "[%key:component::tts::services::say::fields::cache::name%]", - "description": "[%key:component::tts::services::say::fields::cache::description%]" + "description": "[%key:component::tts::services::say::fields::cache::description%]", + "name": "[%key:component::tts::services::say::fields::cache::name%]" }, "language": { - "name": "[%key:common::config_flow::data::language%]", - "description": "[%key:component::tts::services::say::fields::language::description%]" + "description": "[%key:component::tts::services::say::fields::language::description%]", + "name": "[%key:common::config_flow::data::language%]" + }, + "media_player_entity_id": { + "description": "Media players to play the message.", + "name": "Media player entity" + }, + "message": { + "description": "[%key:component::tts::services::say::fields::message::description%]", + "name": "[%key:component::tts::services::say::fields::message::name%]" }, "options": { - "name": "[%key:component::tts::services::say::fields::options::name%]", - "description": "[%key:component::tts::services::say::fields::options::description%]" + "description": "[%key:component::tts::services::say::fields::options::description%]", + "name": "[%key:component::tts::services::say::fields::options::name%]" } - } - }, - "clear_cache": { - "name": "Clear TTS cache", - "description": "Removes all cached text-to-speech files and purges the memory." + }, + "name": "Speak" } } } diff --git a/homeassistant/components/tuya/icons.json b/homeassistant/components/tuya/icons.json index 04a701b4764..ef93acf327c 100644 --- a/homeassistant/components/tuya/icons.json +++ b/homeassistant/components/tuya/icons.json @@ -1,18 +1,18 @@ { "entity": { "binary_sensor": { - "carbon_monoxide": { - "default": "mdi:molecule-co" - }, "carbon_dioxide": { "default": "mdi:molecule-co2" }, - "feeding": { - "default": "mdi:information" + "carbon_monoxide": { + "default": "mdi:molecule-co" }, "drop": { "default": "mdi:package-down" }, + "feeding": { + "default": "mdi:information" + }, "tilt": { "default": "mdi:spirit-level" }, @@ -41,92 +41,110 @@ } }, "number": { - "heat_preservation_time": { + "cook_time": { "default": "mdi:timer" }, - "feed": { - "default": "mdi:bowl" - }, - "voice_times": { - "default": "mdi:microphone" - }, - "near_detection": { - "default": "mdi:signal-distance-variant" + "down_delay": { + "default": "mdi:timer" }, "far_detection": { "default": "mdi:signal-distance-variant" }, - "water_level": { - "default": "mdi:cup-water" + "feed": { + "default": "mdi:bowl" }, - "cook_time": { + "heat_preservation_time": { "default": "mdi:timer" }, - "volume": { - "default": "mdi:volume-high" - }, - "minimum_brightness": { - "default": "mdi:lightbulb-outline" - }, "maximum_brightness": { "default": "mdi:lightbulb-on-outline" }, - "minimum_brightness_2": { - "default": "mdi:lightbulb-outline" - }, "maximum_brightness_2": { "default": "mdi:lightbulb-on-outline" }, - "minimum_brightness_3": { - "default": "mdi:lightbulb-outline" - }, "maximum_brightness_3": { "default": "mdi:lightbulb-on-outline" }, + "minimum_brightness": { + "default": "mdi:lightbulb-outline" + }, + "minimum_brightness_2": { + "default": "mdi:lightbulb-outline" + }, + "minimum_brightness_3": { + "default": "mdi:lightbulb-outline" + }, "move_down": { "default": "mdi:arrow-down-bold" }, "move_up": { "default": "mdi:arrow-up-bold" }, - "down_delay": { - "default": "mdi:timer" + "near_detection": { + "default": "mdi:signal-distance-variant" }, "temperature": { "default": "mdi:thermometer" + }, + "voice_times": { + "default": "mdi:microphone" + }, + "volume": { + "default": "mdi:volume-high" + }, + "water_level": { + "default": "mdi:cup-water" } }, "select": { - "cups": { - "default": "mdi:numeric" - }, - "concentration": { - "default": "mdi:altimeter" - }, - "mode": { - "default": "mdi:coffee" - }, - "temperature_level": { - "default": "mdi:thermometer-lines" - }, - "weather_delay": { - "default": "mdi:weather-cloudy-clock" - }, - "decibel_sensitivity": { - "default": "mdi:volume-vibrate" - }, - "record_mode": { - "default": "mdi:record-rec" + "basic_anti_flicker": { + "default": "mdi:image-outline" }, "basic_nightvision": { "default": "mdi:theme-light-dark" }, - "basic_anti_flicker": { - "default": "mdi:image-outline" + "concentration": { + "default": "mdi:altimeter" + }, + "countdown": { + "default": "mdi:timer-cog-outline" + }, + "cups": { + "default": "mdi:numeric" + }, + "curtain_motor_mode": { + "default": "mdi:swap-horizontal" + }, + "decibel_sensitivity": { + "default": "mdi:volume-vibrate" + }, + "horizontal_fan_angle": { + "default": "mdi:format-horizontal-align-center" + }, + "humidifier_level": { + "default": "mdi:spray" + }, + "humidifier_moodlighting": { + "default": "mdi:lightbulb-multiple" + }, + "humidifier_spray_mode": { + "default": "mdi:spray" + }, + "mode": { + "default": "mdi:coffee" }, "motion_sensitivity": { "default": "mdi:motion-sensor" }, + "record_mode": { + "default": "mdi:record-rec" + }, + "target_humidity": { + "default": "mdi:water-percent" + }, + "temperature_level": { + "default": "mdi:thermometer-lines" + }, "vacuum_cistern": { "default": "mdi:water-opacity" }, @@ -139,58 +157,25 @@ "vertical_fan_angle": { "default": "mdi:format-vertical-align-center" }, - "horizontal_fan_angle": { - "default": "mdi:format-horizontal-align-center" - }, - "countdown": { - "default": "mdi:timer-cog-outline" - }, - "curtain_motor_mode": { - "default": "mdi:swap-horizontal" - }, - "humidifier_spray_mode": { - "default": "mdi:spray" - }, - "humidifier_level": { - "default": "mdi:spray" - }, - "humidifier_moodlighting": { - "default": "mdi:lightbulb-multiple" - }, - "target_humidity": { - "default": "mdi:water-percent" + "weather_delay": { + "default": "mdi:weather-cloudy-clock" } }, "sensor": { + "air_quality": { + "default": "mdi:air-filter" + }, + "air_quality_index": { + "default": "mdi:air-filter" + }, "battery_state": { "default": "mdi:battery" }, - "gas": { - "default": "mdi:gas-cylinder" - }, - "carbon_monoxide": { - "default": "mdi:molecule-co" - }, "carbon_dioxide": { "default": "mdi:molecule-co2" }, - "luminosity": { - "default": "mdi:brightness-6" - }, - "illuminance": { - "default": "mdi:brightness-6" - }, - "smoke_amount": { - "default": "mdi:smoke-detector" - }, - "last_amount": { - "default": "mdi:counter" - }, - "remaining_time": { - "default": "mdi:timer" - }, - "total_watering_time": { - "default": "mdi:history" + "carbon_monoxide": { + "default": "mdi:molecule-co" }, "cleaning_area": { "default": "mdi:texture-box" @@ -198,6 +183,48 @@ "cleaning_time": { "default": "mdi:progress-clock" }, + "duster_cloth_life": { + "default": "mdi:ticket-percent-outline" + }, + "filter_life": { + "default": "mdi:ticket-percent-outline" + }, + "filter_utilization": { + "default": "mdi:ticket-percent-outline" + }, + "gas": { + "default": "mdi:gas-cylinder" + }, + "illuminance": { + "default": "mdi:brightness-6" + }, + "last_amount": { + "default": "mdi:counter" + }, + "last_operation_duration": { + "default": "mdi:progress-clock" + }, + "luminosity": { + "default": "mdi:brightness-6" + }, + "pm25": { + "default": "mdi:molecule" + }, + "remaining_time": { + "default": "mdi:timer" + }, + "rolling_brush_life": { + "default": "mdi:ticket-percent-outline" + }, + "side_brush_life": { + "default": "mdi:ticket-percent-outline" + }, + "smoke_amount": { + "default": "mdi:smoke-detector" + }, + "total_absorption_particles": { + "default": "mdi:texture-box" + }, "total_cleaning_area": { "default": "mdi:texture-box" }, @@ -207,74 +234,17 @@ "total_cleaning_times": { "default": "mdi:counter" }, - "duster_cloth_life": { - "default": "mdi:ticket-percent-outline" - }, - "side_brush_life": { - "default": "mdi:ticket-percent-outline" - }, - "filter_life": { - "default": "mdi:ticket-percent-outline" - }, - "rolling_brush_life": { - "default": "mdi:ticket-percent-outline" - }, - "last_operation_duration": { - "default": "mdi:progress-clock" - }, - "water_level": { - "default": "mdi:waves-arrow-up" - }, - "filter_utilization": { - "default": "mdi:ticket-percent-outline" - }, - "pm25": { - "default": "mdi:molecule" - }, "total_operating_time": { "default": "mdi:history" }, - "total_absorption_particles": { - "default": "mdi:texture-box" + "total_watering_time": { + "default": "mdi:history" }, - "air_quality": { - "default": "mdi:air-filter" - }, - "air_quality_index": { - "default": "mdi:air-filter" + "water_level": { + "default": "mdi:waves-arrow-up" } }, "switch": { - "start": { - "default": "mdi:kettle-steam" - }, - "disinfection": { - "default": "mdi:bacteria" - }, - "water": { - "default": "mdi:water" - }, - "slow_feed": { - "default": "mdi:speedometer-slow" - }, - "filter_reset": { - "default": "mdi:filter" - }, - "water_pump_reset": { - "default": "mdi:pump" - }, - "reset_of_water_usage_days": { - "default": "mdi:water-sync" - }, - "uv_sterilization": { - "default": "mdi:lightbulb" - }, - "child_lock": { - "default": "mdi:account-lock" - }, - "radio": { - "default": "mdi:radio" - }, "alarm_1": { "default": "mdi:alarm" }, @@ -287,98 +257,128 @@ "alarm_4": { "default": "mdi:alarm" }, - "sleep_aid": { - "default": "mdi:power-sleep" - }, - "ionizer": { - "default": "mdi:minus-circle-outline" - }, - "filter_cartridge_reset": { - "default": "mdi:filter" - }, - "humidification": { - "default": "mdi:water-percent" - }, - "switch": { - "default": "mdi:power" - }, - "do_not_disturb": { - "default": "mdi:minus-circle" - }, - "mute_voice": { - "default": "mdi:account-voice" - }, - "battery_lock": { - "default": "mdi:battery-lock" - }, - "cry_detection": { - "default": "mdi:emoticon-cry" - }, - "sound_detection": { - "default": "mdi:microphone-outline" - }, - "video_recording": { - "default": "mdi:record-rec" - }, - "motion_recording": { - "default": "mdi:record-rec" - }, - "privacy_mode": { - "default": "mdi:eye-off" - }, - "flip": { - "default": "mdi:flip-horizontal" - }, - "time_watermark": { - "default": "mdi:watermark" - }, - "wide_dynamic_range": { - "default": "mdi:watermark" - }, - "motion_tracking": { - "default": "mdi:motion-sensor" - }, - "motion_alarm": { - "default": "mdi:motion-sensor" - }, - "energy_saving": { - "default": "mdi:leaf" - }, - "open_window_detection": { - "default": "mdi:window-open" - }, - "spray": { - "default": "mdi:spray" - }, - "voice": { - "default": "mdi:account-voice" - }, "anion": { "default": "mdi:atom" }, - "oxygen_bar": { - "default": "mdi:molecule" - }, - "natural_wind": { - "default": "mdi:weather-windy" - }, - "sound": { - "default": "mdi:minus-circle" - }, - "reverse": { - "default": "mdi:swap-horizontal" - }, - "sleep": { - "default": "mdi:power-sleep" - }, - "sterilization": { - "default": "mdi:minus-circle-outline" - }, "arm_beep": { "default": "mdi:volume-high" }, + "battery_lock": { + "default": "mdi:battery-lock" + }, + "child_lock": { + "default": "mdi:account-lock" + }, + "cry_detection": { + "default": "mdi:emoticon-cry" + }, + "disinfection": { + "default": "mdi:bacteria" + }, + "do_not_disturb": { + "default": "mdi:minus-circle" + }, + "energy_saving": { + "default": "mdi:leaf" + }, + "filter_cartridge_reset": { + "default": "mdi:filter" + }, + "filter_reset": { + "default": "mdi:filter" + }, + "flip": { + "default": "mdi:flip-horizontal" + }, + "humidification": { + "default": "mdi:water-percent" + }, + "ionizer": { + "default": "mdi:minus-circle-outline" + }, + "motion_alarm": { + "default": "mdi:motion-sensor" + }, + "motion_recording": { + "default": "mdi:record-rec" + }, + "motion_tracking": { + "default": "mdi:motion-sensor" + }, + "mute_voice": { + "default": "mdi:account-voice" + }, + "natural_wind": { + "default": "mdi:weather-windy" + }, + "open_window_detection": { + "default": "mdi:window-open" + }, + "oxygen_bar": { + "default": "mdi:molecule" + }, + "privacy_mode": { + "default": "mdi:eye-off" + }, + "radio": { + "default": "mdi:radio" + }, + "reset_of_water_usage_days": { + "default": "mdi:water-sync" + }, + "reverse": { + "default": "mdi:swap-horizontal" + }, "siren": { "default": "mdi:alarm-light" + }, + "sleep": { + "default": "mdi:power-sleep" + }, + "sleep_aid": { + "default": "mdi:power-sleep" + }, + "slow_feed": { + "default": "mdi:speedometer-slow" + }, + "sound": { + "default": "mdi:minus-circle" + }, + "sound_detection": { + "default": "mdi:microphone-outline" + }, + "spray": { + "default": "mdi:spray" + }, + "start": { + "default": "mdi:kettle-steam" + }, + "sterilization": { + "default": "mdi:minus-circle-outline" + }, + "switch": { + "default": "mdi:power" + }, + "time_watermark": { + "default": "mdi:watermark" + }, + "uv_sterilization": { + "default": "mdi:lightbulb" + }, + "video_recording": { + "default": "mdi:record-rec" + }, + "voice": { + "default": "mdi:account-voice" + }, + "water": { + "default": "mdi:water" + }, + "water_pump_reset": { + "default": "mdi:pump" + }, + "wide_dynamic_range": { + "default": "mdi:watermark" } } } diff --git a/homeassistant/components/tuya/strings.json b/homeassistant/components/tuya/strings.json index f7eb9f43be4..1c04c81dffb 100644 --- a/homeassistant/components/tuya/strings.json +++ b/homeassistant/components/tuya/strings.json @@ -1,71 +1,71 @@ { "config": { - "step": { - "reauth_user_code": { - "description": "The Tuya integration now uses an improved login method. To reauthenticate with your Smart Life or Tuya Smart account, you need to enter your user code.\n\nYou can find this code in the Smart Life app or Tuya Smart app in **Settings** > **Account and Security** screen, and enter the code shown on the **User Code** field. The user code is case-sensitive, please be sure to enter it exactly as shown in the app.", - "data": { - "user_code": "User code" - } - }, - "user": { - "description": "Enter your Smart Life or Tuya Smart user code.\n\nYou can find this code in the Smart Life app or Tuya Smart app in **Settings** > **Account and Security** screen, and enter the code shown on the **User Code** field. The user code is case-sensitive, please be sure to enter it exactly as shown in the app.", - "data": { - "user_code": "User code" - } - }, - "scan": { - "description": "Use the Smart Life app or Tuya Smart app to scan the following QR code to complete the login.\n\nContinue to the next step once you have completed this step in the app." - } + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "login_error": "Login error ({code}): {msg}" }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_user_code": { + "data": { + "user_code": "User code" + }, + "description": "The Tuya integration now uses an improved login method. To reauthenticate with your Smart Life or Tuya Smart account, you need to enter your user code.\n\nYou can find this code in the Smart Life app or Tuya Smart app in **Settings** > **Account and Security** screen, and enter the code shown on the **User Code** field. The user code is case-sensitive, please be sure to enter it exactly as shown in the app." + }, + "scan": { + "description": "Use the Smart Life app or Tuya Smart app to scan the following QR code to complete the login.\n\nContinue to the next step once you have completed this step in the app." + }, + "user": { + "data": { + "user_code": "User code" + }, + "description": "Enter your Smart Life or Tuya Smart user code.\n\nYou can find this code in the Smart Life app or Tuya Smart app in **Settings** > **Account and Security** screen, and enter the code shown on the **User Code** field. The user code is case-sensitive, please be sure to enter it exactly as shown in the app." + } } }, "entity": { "binary_sensor": { - "methane": { - "name": "Methane" - }, - "voc": { - "name": "VOCs" - }, - "pm25": { - "name": "PM2.5" + "carbon_dioxide": { + "name": "Carbon dioxide" }, "carbon_monoxide": { "name": "Carbon monoxide" }, - "carbon_dioxide": { - "name": "Carbon dioxide" - }, - "formaldehyde": { - "name": "Formaldehyde" - }, - "pressure": { - "name": "Pressure" - }, - "feeding": { - "name": "Feeding" + "defrost": { + "name": "Defrost" }, "drop": { "name": "Drop" }, - "tilt": { - "name": "Tilt" + "feeding": { + "name": "Feeding" + }, + "formaldehyde": { + "name": "Formaldehyde" + }, + "methane": { + "name": "Methane" + }, + "pm25": { + "name": "PM2.5" + }, + "pressure": { + "name": "Pressure" }, "tankfull": { "name": "Tank full" }, - "defrost": { - "name": "Defrost" + "tilt": { + "name": "Tilt" }, "valve": { "name": "Valve" }, + "voc": { + "name": "VOCs" + }, "wet": { "name": "Wet" } @@ -122,109 +122,22 @@ "backlight": { "name": "Backlight" }, - "light": { - "name": "[%key:component::light::title%]" - }, "indexed_light": { "name": "Light {index}" }, + "light": { + "name": "[%key:component::light::title%]" + }, "night_light": { "name": "Night light" } }, "number": { - "alarm_duration": { - "name": "Alarm duration" - }, - "temperature": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" - }, - "indexed_temperature": { - "name": "Temperature {index}" - }, - "time": { - "name": "Time" - }, - "temperature_after_boiling": { - "name": "Temperature after boiling" - }, - "heat_preservation_time": { - "name": "Heat preservation time" - }, - "indexed_irrigation_duration": { - "name": "Irrigation duration {index}" - }, - "feed": { - "name": "Feed" - }, - "voice_times": { - "name": "Voice times" - }, - "sensitivity": { - "name": "Sensitivity" - }, - "near_detection": { - "name": "Near detection" - }, - "far_detection": { - "name": "Far detection" - }, - "target_dis_closest": { - "name": "Closest target distance" - }, - "water_level": { - "name": "Water level" - }, - "powder": { - "name": "Powder" - }, - "cook_temperature": { - "name": "Cooking temperature" - }, - "indexed_cook_temperature": { - "name": "Cooking temperature {index}" - }, - "cook_time": { - "name": "Cooking time" - }, - "cloud_recipe": { - "name": "Cloud recipe" - }, - "volume": { - "name": "Volume" - }, - "minimum_brightness": { - "name": "Minimum brightness" - }, - "maximum_brightness": { - "name": "Maximum brightness" - }, - "indexed_minimum_brightness": { - "name": "Minimum brightness {index}" - }, - "indexed_maximum_brightness": { - "name": "Maximum brightness {index}" - }, - "move_down": { - "name": "Move down" - }, - "move_up": { - "name": "Move up" - }, - "down_delay": { - "name": "Down delay" - }, - "temp_correction": { - "name": "Temperature correction" - }, - "arm_delay": { - "name": "Arm delay" - }, "alarm_delay": { "name": "Alarm delay" }, - "siren_duration": { - "name": "Siren duration" + "alarm_duration": { + "name": "Alarm duration" }, "alarm_maximum": { "name": "Alarm maximum" @@ -232,44 +145,107 @@ "alarm_minimum": { "name": "Alarm minimum" }, + "arm_delay": { + "name": "Arm delay" + }, "battery_backup_reserve": { "name": "Battery backup reserve" }, + "cloud_recipe": { + "name": "Cloud recipe" + }, + "cook_temperature": { + "name": "Cooking temperature" + }, + "cook_time": { + "name": "Cooking time" + }, + "down_delay": { + "name": "Down delay" + }, + "far_detection": { + "name": "Far detection" + }, + "feed": { + "name": "Feed" + }, + "heat_preservation_time": { + "name": "Heat preservation time" + }, + "indexed_cook_temperature": { + "name": "Cooking temperature {index}" + }, + "indexed_irrigation_duration": { + "name": "Irrigation duration {index}" + }, + "indexed_maximum_brightness": { + "name": "Maximum brightness {index}" + }, + "indexed_minimum_brightness": { + "name": "Minimum brightness {index}" + }, + "indexed_temperature": { + "name": "Temperature {index}" + }, "installation_height": { "name": "Installation height" }, + "inverter_output_power_limit": { + "name": "Inverter output power limit" + }, + "maximum_brightness": { + "name": "Maximum brightness" + }, "maximum_liquid_depth": { "name": "Maximum liquid depth" }, - "inverter_output_power_limit": { - "name": "Inverter output power limit" + "minimum_brightness": { + "name": "Minimum brightness" + }, + "move_down": { + "name": "Move down" + }, + "move_up": { + "name": "Move up" + }, + "near_detection": { + "name": "Near detection" + }, + "powder": { + "name": "Powder" + }, + "sensitivity": { + "name": "Sensitivity" + }, + "siren_duration": { + "name": "Siren duration" + }, + "target_dis_closest": { + "name": "Closest target distance" + }, + "temp_correction": { + "name": "Temperature correction" + }, + "temperature": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "temperature_after_boiling": { + "name": "Temperature after boiling" + }, + "time": { + "name": "Time" + }, + "voice_times": { + "name": "Voice times" + }, + "volume": { + "name": "Volume" + }, + "water_level": { + "name": "Water level" } }, "select": { - "volume": { - "name": "[%key:component::tuya::entity::number::volume::name%]" - }, - "cups": { - "name": "Cups" - }, - "concentration": { - "name": "Concentration" - }, - "material": { - "name": "Material" - }, - "mode": { - "name": "Mode" - }, - "temperature_level": { - "name": "Temperature level" - }, - "brightness": { - "name": "Brightness" - }, - "target_humidity": { - "name": "Target humidity" - }, "basic_anti_flicker": { "name": "Anti-flicker", "state": { @@ -286,6 +262,56 @@ "2": "[%key:common::state::on%]" } }, + "blanket_level": { + "name": "Level", + "state": { + "level_1": "[%key:common::state::low%]", + "level_10": "[%key:common::state::high%]", + "level_2": "Level 2", + "level_3": "Level 3", + "level_4": "Level 4", + "level_5": "Level 5", + "level_6": "Level 6", + "level_7": "Level 7", + "level_8": "Level 8", + "level_9": "Level 9" + } + }, + "brightness": { + "name": "Brightness" + }, + "concentration": { + "name": "Concentration" + }, + "countdown": { + "name": "Countdown", + "state": { + "1h": "1 hour", + "2h": "2 hours", + "3h": "3 hours", + "4h": "4 hours", + "5h": "5 hours", + "6h": "6 hours", + "cancel": "Cancel" + } + }, + "cups": { + "name": "Cups" + }, + "curtain_mode": { + "name": "Mode", + "state": { + "morning": "Morning", + "night": "Night" + } + }, + "curtain_motor_mode": { + "name": "Motor mode", + "state": { + "back": "Back", + "forward": "Forward" + } + }, "decibel_sensitivity": { "name": "Sound detection sensitivity", "state": { @@ -293,6 +319,104 @@ "1": "High sensitivity" } }, + "desk_level": { + "name": "Level", + "state": { + "level_1": "Level 1", + "level_2": "Level 2", + "level_3": "Level 3", + "level_4": "Level 4" + } + }, + "desk_up_down": { + "name": "Up/Down", + "state": { + "down": "Down", + "stop": "Stop", + "up": "Up" + } + }, + "fingerbot_mode": { + "name": "Mode", + "state": { + "click": "Push", + "switch": "Switch" + } + }, + "horizontal_fan_angle": { + "name": "Horizontal swing flap angle", + "state": { + "30": "30°", + "60": "60°", + "90": "90°" + } + }, + "humidifier_level": { + "name": "Spraying level", + "state": { + "level_1": "Level 1", + "level_10": "Level 10", + "level_2": "Level 2", + "level_3": "Level 3", + "level_4": "Level 4", + "level_5": "Level 5", + "level_6": "Level 6", + "level_7": "Level 7", + "level_8": "Level 8", + "level_9": "Level 9" + } + }, + "humidifier_moodlighting": { + "name": "Moodlighting", + "state": { + "1": "Mood 1", + "2": "Mood 2", + "3": "Mood 3", + "4": "Mood 4", + "5": "Mood 5" + } + }, + "humidifier_spray_mode": { + "name": "Spray mode", + "state": { + "auto": "[%key:common::state::auto%]", + "health": "Health", + "humidity": "Humidity", + "sleep": "Sleep", + "work": "Work" + } + }, + "indexed_blanket_level": { + "name": "Level {index}", + "state": { + "level_1": "[%key:common::state::low%]", + "level_10": "[%key:common::state::high%]", + "level_2": "[%key:component::tuya::entity::select::blanket_level::state::level_2%]", + "level_3": "[%key:component::tuya::entity::select::blanket_level::state::level_3%]", + "level_4": "[%key:component::tuya::entity::select::blanket_level::state::level_4%]", + "level_5": "[%key:component::tuya::entity::select::blanket_level::state::level_5%]", + "level_6": "[%key:component::tuya::entity::select::blanket_level::state::level_6%]", + "level_7": "[%key:component::tuya::entity::select::blanket_level::state::level_7%]", + "level_8": "[%key:component::tuya::entity::select::blanket_level::state::level_8%]", + "level_9": "[%key:component::tuya::entity::select::blanket_level::state::level_9%]" + } + }, + "indexed_led_type": { + "name": "Light {index} source type", + "state": { + "halogen": "[%key:component::tuya::entity::select::led_type::state::halogen%]", + "incandescent": "[%key:component::tuya::entity::select::led_type::state::incandescent%]", + "led": "[%key:component::tuya::entity::select::led_type::state::led%]" + } + }, + "inverter_work_mode": { + "name": "Inverter work mode", + "state": { + "manual": "Manual mode", + "self_powered": "Self-powered", + "time_of_use": "Time of use" + } + }, "ipc_work_mode": { "name": "IPC mode", "state": { @@ -308,14 +432,6 @@ "led": "LED" } }, - "indexed_led_type": { - "name": "Light {index} source type", - "state": { - "halogen": "[%key:component::tuya::entity::select::led_type::state::halogen%]", - "incandescent": "[%key:component::tuya::entity::select::led_type::state::incandescent%]", - "led": "[%key:component::tuya::entity::select::led_type::state::led%]" - } - }, "light_mode": { "name": "Indicator light mode", "state": { @@ -324,6 +440,12 @@ "relay": "Indicate switch on/off state" } }, + "material": { + "name": "Material" + }, + "mode": { + "name": "Mode" + }, "motion_sensitivity": { "name": "Motion detection sensitivity", "state": { @@ -332,6 +454,13 @@ "2": "[%key:common::state::high%]" } }, + "odor_elimination_mode": { + "name": "Odor elimination mode", + "state": { + "interim": "Interim", + "smart": "Smart" + } + }, "record_mode": { "name": "Record mode", "state": { @@ -350,52 +479,51 @@ "power_on": "[%key:common::state::on%]" } }, - "fingerbot_mode": { - "name": "Mode", - "state": { - "click": "Push", - "switch": "Switch" - } + "target_humidity": { + "name": "Target humidity" + }, + "temperature_level": { + "name": "Temperature level" }, "vacuum_cistern": { "name": "Water tank adjustment", "state": { - "low": "[%key:common::state::low%]", - "middle": "Middle", + "closed": "[%key:common::state::closed%]", "high": "[%key:common::state::high%]", - "closed": "[%key:common::state::closed%]" + "low": "[%key:common::state::low%]", + "middle": "Middle" } }, "vacuum_collection": { "name": "Dust collection mode", "state": { - "small": "Small", + "large": "Large", "middle": "Middle", - "large": "Large" + "small": "Small" } }, "vacuum_mode": { "name": "Mode", "state": { - "standby": "[%key:common::state::standby%]", - "random": "Random", - "smart": "Smart", - "wall_follow": "Follow wall", - "mop": "Mop", - "spiral": "Spiral", - "left_spiral": "Spiral left", - "right_spiral": "Spiral right", "bow": "Bow", - "left_bow": "Bow left", - "right_bow": "Bow right", - "partial_bow": "Bow partially", "chargego": "Return to dock", - "single": "Single", - "zone": "Zone", - "pose": "Pose", - "point": "Point", + "left_bow": "Bow left", + "left_spiral": "Spiral left", + "mop": "Mop", "part": "Part", - "pick_zone": "Pick zone" + "partial_bow": "Bow partially", + "pick_zone": "Pick zone", + "point": "Point", + "pose": "Pose", + "random": "Random", + "right_bow": "Bow right", + "right_spiral": "Spiral right", + "single": "Single", + "smart": "Smart", + "spiral": "Spiral", + "standby": "[%key:common::state::standby%]", + "wall_follow": "Follow wall", + "zone": "Zone" } }, "vertical_fan_angle": { @@ -406,175 +534,112 @@ "90": "90°" } }, - "horizontal_fan_angle": { - "name": "Horizontal swing flap angle", - "state": { - "30": "30°", - "60": "60°", - "90": "90°" - } - }, - "curtain_mode": { - "name": "Mode", - "state": { - "morning": "Morning", - "night": "Night" - } - }, - "curtain_motor_mode": { - "name": "Motor mode", - "state": { - "forward": "Forward", - "back": "Back" - } - }, - "countdown": { - "name": "Countdown", - "state": { - "cancel": "Cancel", - "1h": "1 hour", - "2h": "2 hours", - "3h": "3 hours", - "4h": "4 hours", - "5h": "5 hours", - "6h": "6 hours" - } - }, - "humidifier_spray_mode": { - "name": "Spray mode", - "state": { - "auto": "[%key:common::state::auto%]", - "health": "Health", - "sleep": "Sleep", - "humidity": "Humidity", - "work": "Work" - } - }, - "humidifier_level": { - "name": "Spraying level", - "state": { - "level_1": "Level 1", - "level_2": "Level 2", - "level_3": "Level 3", - "level_4": "Level 4", - "level_5": "Level 5", - "level_6": "Level 6", - "level_7": "Level 7", - "level_8": "Level 8", - "level_9": "Level 9", - "level_10": "Level 10" - } - }, - "humidifier_moodlighting": { - "name": "Moodlighting", - "state": { - "1": "Mood 1", - "2": "Mood 2", - "3": "Mood 3", - "4": "Mood 4", - "5": "Mood 5" - } + "volume": { + "name": "[%key:component::tuya::entity::number::volume::name%]" }, "weather_delay": { "name": "Weather delay", "state": { - "cancel": "Cancel", "24h": "24h", "48h": "48h", "72h": "72h", "96h": "96h", "120h": "120h", "144h": "144h", - "168h": "168h" - } - }, - "blanket_level": { - "name": "Level", - "state": { - "level_1": "[%key:common::state::low%]", - "level_2": "Level 2", - "level_3": "Level 3", - "level_4": "Level 4", - "level_5": "Level 5", - "level_6": "Level 6", - "level_7": "Level 7", - "level_8": "Level 8", - "level_9": "Level 9", - "level_10": "[%key:common::state::high%]" - } - }, - "indexed_blanket_level": { - "name": "Level {index}", - "state": { - "level_1": "[%key:common::state::low%]", - "level_2": "[%key:component::tuya::entity::select::blanket_level::state::level_2%]", - "level_3": "[%key:component::tuya::entity::select::blanket_level::state::level_3%]", - "level_4": "[%key:component::tuya::entity::select::blanket_level::state::level_4%]", - "level_5": "[%key:component::tuya::entity::select::blanket_level::state::level_5%]", - "level_6": "[%key:component::tuya::entity::select::blanket_level::state::level_6%]", - "level_7": "[%key:component::tuya::entity::select::blanket_level::state::level_7%]", - "level_8": "[%key:component::tuya::entity::select::blanket_level::state::level_8%]", - "level_9": "[%key:component::tuya::entity::select::blanket_level::state::level_9%]", - "level_10": "[%key:common::state::high%]" - } - }, - "odor_elimination_mode": { - "name": "Odor elimination mode", - "state": { - "smart": "Smart", - "interim": "Interim" - } - }, - "desk_level": { - "name": "Level", - "state": { - "level_1": "Level 1", - "level_2": "Level 2", - "level_3": "Level 3", - "level_4": "Level 4" - } - }, - "desk_up_down": { - "name": "Up/Down", - "state": { - "up": "Up", - "down": "Down", - "stop": "Stop" - } - }, - "inverter_work_mode": { - "name": "Inverter work mode", - "state": { - "self_powered": "Self-powered", - "time_of_use": "Time of use", - "manual": "Manual mode" + "168h": "168h", + "cancel": "Cancel" } } }, "sensor": { + "air_pressure": { + "name": "Air pressure" + }, + "air_quality": { + "name": "Air quality", + "state": { + "good": "Good", + "great": "Great", + "mild": "Mild", + "severe": "Severe" + } + }, + "air_quality_index": { + "name": "Air quality index", + "state": { + "level_1": "Level 1", + "level_2": "Level 2", + "level_3": "Level 3", + "level_4": "Level 4", + "level_5": "Level 5", + "level_6": "Level 6" + } + }, "battery": { "name": "[%key:component::sensor::entity_component::battery::name%]" }, - "voc": { - "name": "[%key:component::sensor::entity_component::volatile_organic_compounds::name%]" + "battery_power": { + "name": "Battery power" }, - "carbon_monoxide": { - "name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]" + "battery_soc": { + "name": "Battery SOC" + }, + "battery_state": { + "name": "Battery state" }, "carbon_dioxide": { "name": "[%key:component::sensor::entity_component::carbon_dioxide::name%]" }, - "illuminance": { - "name": "[%key:component::sensor::entity_component::illuminance::name%]" + "carbon_monoxide": { + "name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]" }, - "temperature": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" + "cat_weight": { + "name": "Cat weight" }, - "temperature_external": { - "name": "Probe temperature" + "cleaning_area": { + "name": "Cleaning area" }, - "indexed_temperature_external": { - "name": "Probe temperature channel {index}" + "cleaning_time": { + "name": "Cleaning time" + }, + "concentration_carbon_dioxide": { + "name": "Concentration of carbon dioxide" + }, + "current": { + "name": "[%key:component::sensor::entity_component::current::name%]" + }, + "current_temperature": { + "name": "Current temperature" + }, + "depth": { + "name": "Depth" + }, + "dew_point_temperature": { + "name": "Dew point" + }, + "duster_cloth_life": { + "name": "Duster cloth lifetime" + }, + "feels_like_temperature": { + "name": "Feels like" + }, + "filter_duration": { + "name": "Filter duration" + }, + "filter_life": { + "name": "Filter lifetime" + }, + "filter_utilization": { + "name": "Filter utilization" + }, + "formaldehyde": { + "name": "[%key:component::tuya::entity::binary_sensor::formaldehyde::name%]" + }, + "gas": { + "name": "Gas" + }, + "heat_index_temperature": { + "name": "Heat index" }, "humidity": { "name": "[%key:component::sensor::entity_component::humidity::name%]" @@ -582,113 +647,67 @@ "humidity_outdoor": { "name": "Outdoor humidity" }, + "illuminance": { + "name": "[%key:component::sensor::entity_component::illuminance::name%]" + }, "indexed_humidity_outdoor": { "name": "Outdoor humidity channel {index}" }, - "air_pressure": { - "name": "Air pressure" - }, - "precipitation_today": { - "name": "Total precipitation today" - }, - "precipitation_intensity": { - "name": "[%key:component::sensor::entity_component::precipitation_intensity::name%]" - }, - "uv_index": { - "name": "UV index" - }, - "wind_direction": { - "name": "[%key:component::sensor::entity_component::wind_direction::name%]" - }, - "pm25": { - "name": "[%key:component::sensor::entity_component::pm25::name%]" - }, - "pm1": { - "name": "[%key:component::sensor::entity_component::pm1::name%]" - }, - "pm10": { - "name": "[%key:component::sensor::entity_component::pm10::name%]" - }, - "current": { - "name": "[%key:component::sensor::entity_component::current::name%]" - }, - "power": { - "name": "[%key:component::sensor::entity_component::power::name%]" - }, - "voltage": { - "name": "[%key:component::sensor::entity_component::voltage::name%]" - }, - "battery_state": { - "name": "Battery state" - }, - "battery_soc": { - "name": "Battery SOC" - }, - "battery_power": { - "name": "Battery power" - }, - "total_pv_power": { - "name": "Total PV power" - }, - "pv_channel_power": { - "name": "PV channel {index} power" + "indexed_temperature_external": { + "name": "Probe temperature channel {index}" }, "inverter_output_power": { "name": "Inverter output power" }, - "lifetime_pv_energy": { - "name": "Lifetime PV energy" + "last_amount": { + "name": "Last amount" }, - "lifetime_inverter_output_energy": { - "name": "Lifetime inverter output energy" - }, - "lifetime_battery_discharge_energy": { - "name": "Lifetime battery discharge energy" + "last_operation_duration": { + "name": "Last operation duration" }, "lifetime_battery_charge_energy": { "name": "Lifetime battery charge energy" }, + "lifetime_battery_discharge_energy": { + "name": "Lifetime battery discharge energy" + }, + "lifetime_inverter_output_energy": { + "name": "Lifetime inverter output energy" + }, "lifetime_offgrid_port_energy": { "name": "Lifetime off-grid port energy" }, - "gas": { - "name": "Gas" + "lifetime_pv_energy": { + "name": "Lifetime PV energy" }, - "formaldehyde": { - "name": "[%key:component::tuya::entity::binary_sensor::formaldehyde::name%]" + "liquid_depth": { + "name": "Liquid depth" + }, + "liquid_level": { + "name": "Liquid level" + }, + "liquid_state": { + "name": "Liquid state", + "state": { + "lower_alarm": "[%key:common::state::low%]", + "normal": "[%key:common::state::normal%]", + "upper_alarm": "[%key:common::state::high%]" + } }, "luminosity": { "name": "Luminosity" }, - "smoke_amount": { - "name": "Smoke amount" - }, - "current_temperature": { - "name": "Current temperature" - }, - "status": { - "name": "Status" - }, - "depth": { - "name": "Depth" - }, - "last_amount": { - "name": "Last amount" - }, - "remaining_time": { - "name": "Remaining time" - }, "methane": { "name": "[%key:component::tuya::entity::binary_sensor::methane::name%]" }, - "total_energy": { - "name": "Total energy" - }, - "total_power": { - "name": "Total power" - }, - "total_production": { - "name": "Total production" + "odor_elimination_status": { + "name": "Status", + "state": { + "charge_done": "Charge done", + "charging": "[%key:common::state::charging%]", + "standby": "[%key:common::state::standby%]", + "work": "Working" + } }, "phase_a_current": { "name": "Phase A current" @@ -717,11 +736,70 @@ "phase_c_voltage": { "name": "Phase C voltage" }, - "cleaning_area": { - "name": "Cleaning area" + "pm1": { + "name": "[%key:component::sensor::entity_component::pm1::name%]" }, - "cleaning_time": { - "name": "Cleaning time" + "pm10": { + "name": "[%key:component::sensor::entity_component::pm10::name%]" + }, + "pm25": { + "name": "[%key:component::sensor::entity_component::pm25::name%]" + }, + "power": { + "name": "[%key:component::sensor::entity_component::power::name%]" + }, + "precipitation_intensity": { + "name": "[%key:component::sensor::entity_component::precipitation_intensity::name%]" + }, + "precipitation_today": { + "name": "Total precipitation today" + }, + "pump_time": { + "name": "Water pump duration" + }, + "pv_channel_power": { + "name": "PV channel {index} power" + }, + "remaining_time": { + "name": "Remaining time" + }, + "rolling_brush_life": { + "name": "Rolling brush lifetime" + }, + "side_brush_life": { + "name": "Side brush lifetime" + }, + "smoke_amount": { + "name": "Smoke amount" + }, + "sous_vide_status": { + "name": "Status", + "state": { + "boiling_temp": "Boiling temperature", + "cooling": "Cooling", + "heating": "Heating", + "heating_temp": "Heating temperature", + "reserve_1": "Reserve 1", + "reserve_2": "Reserve 2", + "reserve_3": "Reserve 3", + "standby": "[%key:common::state::standby%]", + "warm": "Heat preservation" + } + }, + "status": { + "name": "Status" + }, + "supply_frequency": { + "name": "Supply frequency" + }, + "temperature": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "temperature_external": { + "name": "Probe temperature" + }, + "total_absorption_particles": { + "name": "Total absorption of particles" }, "total_cleaning_area": { "name": "Total cleaning area" @@ -732,20 +810,41 @@ "total_cleaning_times": { "name": "Total cleaning times" }, - "duster_cloth_life": { - "name": "Duster cloth lifetime" + "total_dissolved_solids": { + "name": "Total dissolved solids" }, - "side_brush_life": { - "name": "Side brush lifetime" + "total_energy": { + "name": "Total energy" }, - "filter_life": { - "name": "Filter lifetime" + "total_operating_time": { + "name": "Total operating time" }, - "rolling_brush_life": { - "name": "Rolling brush lifetime" + "total_power": { + "name": "Total power" }, - "last_operation_duration": { - "name": "Last operation duration" + "total_production": { + "name": "Total production" + }, + "total_pv_power": { + "name": "Total PV power" + }, + "total_volatile_organic_compound": { + "name": "Total volatile organic compound" + }, + "total_watering_time": { + "name": "Total watering time" + }, + "uv_index": { + "name": "UV index" + }, + "uv_runtime": { + "name": "UV runtime" + }, + "voc": { + "name": "[%key:component::sensor::entity_component::volatile_organic_compounds::name%]" + }, + "voltage": { + "name": "[%key:component::sensor::entity_component::voltage::name%]" }, "water_level": { "name": "Water level" @@ -758,175 +857,67 @@ "level_3": "[%key:common::state::full%]" } }, - "total_watering_time": { - "name": "Total watering time" - }, - "filter_utilization": { - "name": "Filter utilization" - }, - "total_volatile_organic_compound": { - "name": "Total volatile organic compound" - }, - "concentration_carbon_dioxide": { - "name": "Concentration of carbon dioxide" - }, - "total_operating_time": { - "name": "Total operating time" - }, - "total_absorption_particles": { - "name": "Total absorption of particles" - }, - "sous_vide_status": { - "name": "Status", - "state": { - "boiling_temp": "Boiling temperature", - "cooling": "Cooling", - "heating_temp": "Heating temperature", - "heating": "Heating", - "reserve_1": "Reserve 1", - "reserve_2": "Reserve 2", - "reserve_3": "Reserve 3", - "standby": "[%key:common::state::standby%]", - "warm": "Heat preservation" - } - }, - "air_quality": { - "name": "Air quality", - "state": { - "great": "Great", - "mild": "Mild", - "good": "Good", - "severe": "Severe" - } - }, - "air_quality_index": { - "name": "Air quality index", - "state": { - "level_1": "Level 1", - "level_2": "Level 2", - "level_3": "Level 3", - "level_4": "Level 4", - "level_5": "Level 5", - "level_6": "Level 6" - } - }, - "uv_runtime": { - "name": "UV runtime" - }, - "pump_time": { - "name": "Water pump duration" - }, - "filter_duration": { - "name": "Filter duration" - }, "water_time": { "name": "Water usage duration" }, - "cat_weight": { - "name": "Cat weight" - }, - "odor_elimination_status": { - "name": "Status", - "state": { - "work": "Working", - "standby": "[%key:common::state::standby%]", - "charging": "[%key:common::state::charging%]", - "charge_done": "Charge done" - } - }, - "liquid_state": { - "name": "Liquid state", - "state": { - "normal": "[%key:common::state::normal%]", - "lower_alarm": "[%key:common::state::low%]", - "upper_alarm": "[%key:common::state::high%]" - } - }, - "liquid_depth": { - "name": "Liquid depth" - }, - "liquid_level": { - "name": "Liquid level" - }, - "supply_frequency": { - "name": "Supply frequency" - }, - "total_dissolved_solids": { - "name": "Total dissolved solids" - }, - "dew_point_temperature": { - "name": "Dew point" - }, - "feels_like_temperature": { - "name": "Feels like" - }, - "heat_index_temperature": { - "name": "Heat index" - }, "wind_chill_index_temperature": { "name": "Wind chill index" + }, + "wind_direction": { + "name": "[%key:component::sensor::entity_component::wind_direction::name%]" } }, "switch": { - "start": { - "name": "Start" + "anion": { + "name": "Anion" }, - "heat_preservation": { - "name": "Heat preservation" + "arm_beep": { + "name": "Arm beep" }, - "disinfection": { - "name": "Disinfection" - }, - "water": { - "name": "Water" - }, - "slow_feed": { - "name": "Slow feed" - }, - "filter_reset": { - "name": "Filter reset" - }, - "pump": { - "name": "Pump" - }, - "water_pump_reset": { - "name": "Water pump reset" - }, - "power": { - "name": "Power" - }, - "reset_of_water_usage_days": { - "name": "Reset of water usage days" - }, - "uv_sterilization": { - "name": "UV sterilization" - }, - "plug": { - "name": "Plug" + "battery_lock": { + "name": "Battery lock" }, "child_lock": { "name": "Child lock" }, - "switch": { - "name": "Switch" + "cry_detection": { + "name": "Cry detection" }, - "indexed_switch": { - "name": "Switch {index}" + "disinfection": { + "name": "Disinfection" }, - "socket": { - "name": "Socket" + "do_not_disturb": { + "name": "Do not disturb" }, - "indexed_socket": { - "name": "Socket {index}" + "energy_saving": { + "name": "Energy saving" }, - "radio": { - "name": "Radio" + "filter_cartridge_reset": { + "name": "Filter cartridge reset" + }, + "filter_reset": { + "name": "Filter reset" + }, + "flip": { + "name": "Flip" + }, + "frost_protection": { + "name": "Frost protection" + }, + "heat_preservation": { + "name": "Heat preservation" + }, + "humidification": { + "name": "Humidification" }, "indexed_alarm": { "name": "Alarm {index}" }, - "sleep_aid": { - "name": "Sleep aid" + "indexed_socket": { + "name": "Socket {index}" + }, + "indexed_switch": { + "name": "Switch {index}" }, "indexed_usb": { "name": "USB {index}" @@ -934,112 +925,121 @@ "ionizer": { "name": "Ionizer" }, - "filter_cartridge_reset": { - "name": "Filter cartridge reset" - }, - "humidification": { - "name": "Humidification" - }, - "do_not_disturb": { - "name": "Do not disturb" - }, - "mute_voice": { - "name": "Mute voice" - }, - "mute": { - "name": "Mute" - }, - "battery_lock": { - "name": "Battery lock" - }, - "cry_detection": { - "name": "Cry detection" - }, - "sound_detection": { - "name": "Sound detection" - }, - "video_recording": { - "name": "Video recording" + "motion_alarm": { + "name": "Motion alarm" }, "motion_recording": { "name": "Motion recording" }, - "privacy_mode": { - "name": "Privacy mode" - }, - "flip": { - "name": "Flip" - }, - "time_watermark": { - "name": "Time watermark" - }, - "wide_dynamic_range": { - "name": "Wide dynamic range" - }, "motion_tracking": { "name": "Motion tracking" }, - "motion_alarm": { - "name": "Motion alarm" - }, - "energy_saving": { - "name": "Energy saving" - }, - "open_window_detection": { - "name": "Open window detection" - }, - "spray": { - "name": "Spray" - }, - "voice": { - "name": "Voice" - }, - "anion": { - "name": "Anion" - }, - "oxygen_bar": { - "name": "Oxygen bar" - }, - "natural_wind": { - "name": "Natural wind" - }, - "sound": { - "name": "Sound" - }, - "reverse": { - "name": "Reverse" - }, - "sleep": { - "name": "Sleep" - }, - "sterilization": { - "name": "Sterilization" - }, - "arm_beep": { - "name": "Arm beep" - }, - "siren": { - "name": "Siren" - }, - "frost_protection": { - "name": "Frost protection" - }, - "output_power_limit": { - "name": "Output power limit" - }, "music": { "name": "Music" }, + "mute": { + "name": "Mute" + }, + "mute_voice": { + "name": "Mute voice" + }, + "natural_wind": { + "name": "Natural wind" + }, + "open_window_detection": { + "name": "Open window detection" + }, + "output_power_limit": { + "name": "Output power limit" + }, + "oxygen_bar": { + "name": "Oxygen bar" + }, + "plug": { + "name": "Plug" + }, + "power": { + "name": "Power" + }, + "privacy_mode": { + "name": "Privacy mode" + }, + "pump": { + "name": "Pump" + }, + "radio": { + "name": "Radio" + }, + "reset_of_water_usage_days": { + "name": "Reset of water usage days" + }, + "reverse": { + "name": "Reverse" + }, + "siren": { + "name": "Siren" + }, + "sleep": { + "name": "Sleep" + }, + "sleep_aid": { + "name": "Sleep aid" + }, + "slow_feed": { + "name": "Slow feed" + }, "snooze": { "name": "Snooze" + }, + "socket": { + "name": "Socket" + }, + "sound": { + "name": "Sound" + }, + "sound_detection": { + "name": "Sound detection" + }, + "spray": { + "name": "Spray" + }, + "start": { + "name": "Start" + }, + "sterilization": { + "name": "Sterilization" + }, + "switch": { + "name": "Switch" + }, + "time_watermark": { + "name": "Time watermark" + }, + "uv_sterilization": { + "name": "UV sterilization" + }, + "video_recording": { + "name": "Video recording" + }, + "voice": { + "name": "Voice" + }, + "water": { + "name": "Water" + }, + "water_pump_reset": { + "name": "Water pump reset" + }, + "wide_dynamic_range": { + "name": "Wide dynamic range" } }, "valve": { - "valve": { - "name": "Valve" - }, "indexed_valve": { "name": "Valve {index}" + }, + "valve": { + "name": "Valve" } } }, @@ -1050,8 +1050,8 @@ }, "issues": { "deprecated_entity_new_valve": { - "title": "{name} is deprecated", - "description": "The Tuya entity `{entity}` is deprecated, replaced by a new valve entity.\nPlease update your dashboards, automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue." + "description": "The Tuya entity `{entity}` is deprecated, replaced by a new valve entity.\nPlease update your dashboards, automations and scripts, disable `{entity}` and reload the integration/restart Home Assistant to fix this issue.", + "title": "{name} is deprecated" } } } diff --git a/homeassistant/components/twentemilieu/icons.json b/homeassistant/components/twentemilieu/icons.json index b033178fbb8..87b2fef27dd 100644 --- a/homeassistant/components/twentemilieu/icons.json +++ b/homeassistant/components/twentemilieu/icons.json @@ -15,10 +15,10 @@ "organic_waste_pickup": { "default": "mdi:delete-empty" }, - "paper_waste_pickup": { + "packages_waste_pickup": { "default": "mdi:delete-empty" }, - "packages_waste_pickup": { + "paper_waste_pickup": { "default": "mdi:delete-empty" } } diff --git a/homeassistant/components/twentemilieu/strings.json b/homeassistant/components/twentemilieu/strings.json index 5c40df1b0c2..06d4be585de 100644 --- a/homeassistant/components/twentemilieu/strings.json +++ b/homeassistant/components/twentemilieu/strings.json @@ -1,30 +1,33 @@ { "config": { - "step": { - "user": { - "description": "Set up Twente Milieu providing waste collection information on your address.", - "data": { - "post_code": "Postal code", - "house_number": "House number", - "house_letter": "House letter/additional" - }, - "data_description": { - "post_code": "The postal code of the address, for example 7500AA", - "house_number": "The house number of the address", - "house_letter": "The house letter or additional information of the address" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_address": "Address not found in Twente Milieu service area." }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]" + "step": { + "user": { + "data": { + "house_letter": "House letter/additional", + "house_number": "House number", + "post_code": "Postal code" + }, + "data_description": { + "house_letter": "The house letter or additional information of the address", + "house_number": "The house number of the address", + "post_code": "The postal code of the address, for example 7500AA" + }, + "description": "Set up Twente Milieu providing waste collection information on your address." + } } }, "entity": { "sensor": { + "christmas_tree_pickup": { + "name": "Christmas tree pickup" + }, "non_recyclable_waste_pickup": { "name": "Non-recyclable waste pickup" }, @@ -36,9 +39,6 @@ }, "paper_waste_pickup": { "name": "Paper waste pickup" - }, - "christmas_tree_pickup": { - "name": "Christmas tree pickup" } } } diff --git a/homeassistant/components/twilio/strings.json b/homeassistant/components/twilio/strings.json index bfac7fa80b6..00fc168fc05 100644 --- a/homeassistant/components/twilio/strings.json +++ b/homeassistant/components/twilio/strings.json @@ -1,11 +1,5 @@ { "config": { - "step": { - "user": { - "title": "Set up the Twilio webhook", - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "cloud_not_connected": "[%key:common::config_flow::abort::cloud_not_connected%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", @@ -13,6 +7,12 @@ }, "create_entry": { "default": "To send events to Home Assistant, you will need to set up a [webhook with Twilio]({twilio_url}).\n\nFill in the following info:\n\n- URL: `{webhook_url}`\n- Method: POST\n- Content Type: application/x-www-form-urlencoded\n\nSee [the documentation]({docs_url}) on how to configure automations to handle incoming data." + }, + "step": { + "user": { + "description": "[%key:common::config_flow::description::confirm_setup%]", + "title": "Set up the Twilio webhook" + } } } } diff --git a/homeassistant/components/twinkly/strings.json b/homeassistant/components/twinkly/strings.json index c2e0efef92c..13b908fc127 100644 --- a/homeassistant/components/twinkly/strings.json +++ b/homeassistant/components/twinkly/strings.json @@ -1,7 +1,16 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { + "discovery_confirm": { + "description": "Do you want to set up {name} - {model} ({host})?" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -9,16 +18,7 @@ "data_description": { "host": "Hostname or IP address of your Twinkly device." } - }, - "discovery_confirm": { - "description": "Do you want to set up {name} - {model} ({host})?" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/twitch/strings.json b/homeassistant/components/twitch/strings.json index 7271b81e924..73a93b75b35 100644 --- a/homeassistant/components/twitch/strings.json +++ b/homeassistant/components/twitch/strings.json @@ -1,45 +1,45 @@ { "config": { - "step": { - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Twitch integration needs to re-authenticate your account" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "wrong_account": "Wrong account: Please authenticate with {username}.", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]" + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", + "wrong_account": "Wrong account: Please authenticate with {username}." + }, + "step": { + "reauth_confirm": { + "description": "The Twitch integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } } }, "entity": { "sensor": { "channel": { "state": { - "streaming": "Streaming", - "offline": "Offline" + "offline": "Offline", + "streaming": "Streaming" }, "state_attributes": { "followers": { "name": "Followers" }, + "following": { + "name": "Following" + }, + "following_since": { + "name": "Following since" + }, "game": { "name": "Game" }, - "title": { - "name": "Title" - }, "started_at": { "name": "Started at" }, - "viewers": { - "name": "Viewers" - }, "subscribed": { "name": "Subscribed" }, @@ -49,11 +49,11 @@ "subscription_tier": { "name": "Subscription tier" }, - "following": { - "name": "Following" + "title": { + "name": "Title" }, - "following_since": { - "name": "Following since" + "viewers": { + "name": "Viewers" } } } diff --git a/homeassistant/components/ukraine_alarm/icons.json b/homeassistant/components/ukraine_alarm/icons.json index a5c198ec9d3..8b4b6f666fd 100644 --- a/homeassistant/components/ukraine_alarm/icons.json +++ b/homeassistant/components/ukraine_alarm/icons.json @@ -4,9 +4,6 @@ "air": { "default": "mdi:cloud" }, - "urban_fights": { - "default": "mdi:pistol" - }, "artillery": { "default": "mdi:tank" }, @@ -15,6 +12,9 @@ }, "nuclear": { "default": "mdi:nuke" + }, + "urban_fights": { + "default": "mdi:pistol" } } } diff --git a/homeassistant/components/ukraine_alarm/strings.json b/homeassistant/components/ukraine_alarm/strings.json index 73a2657065e..a8c54ba934b 100644 --- a/homeassistant/components/ukraine_alarm/strings.json +++ b/homeassistant/components/ukraine_alarm/strings.json @@ -1,19 +1,19 @@ { "config": { "abort": { - "max_regions": "Max 5 regions can be configured", "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "rate_limit": "Too much requests", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "timeout": "[%key:common::config_flow::error::timeout_connect%]" + "max_regions": "Max 5 regions can be configured", + "rate_limit": "Too much requests", + "timeout": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { - "user": { + "community": { "data": { - "region": "Region" + "region": "[%key:component::ukraine_alarm::config::step::user::data::region%]" }, - "description": "Choose state to monitor" + "description": "If you want to monitor not only state and district, choose its specific community" }, "district": { "data": { @@ -21,25 +21,19 @@ }, "description": "If you want to monitor not only state, choose its specific district" }, - "community": { + "user": { "data": { - "region": "[%key:component::ukraine_alarm::config::step::user::data::region%]" + "region": "Region" }, - "description": "If you want to monitor not only state and district, choose its specific community" + "description": "Choose state to monitor" } } }, "entity": { "binary_sensor": { - "unknown": { - "name": "Unknown" - }, "air": { "name": "Air" }, - "urban_fights": { - "name": "Urban fights" - }, "artillery": { "name": "Artillery" }, @@ -48,6 +42,12 @@ }, "nuclear": { "name": "Nuclear" + }, + "unknown": { + "name": "Unknown" + }, + "urban_fights": { + "name": "Urban fights" } } } diff --git a/homeassistant/components/unifi/icons.json b/homeassistant/components/unifi/icons.json index 616d7cb185f..97ff2f734a3 100644 --- a/homeassistant/components/unifi/icons.json +++ b/homeassistant/components/unifi/icons.json @@ -17,6 +17,21 @@ "client_bandwidth_tx": { "default": "mdi:upload" }, + "device_clients": { + "default": "mdi:account-multiple" + }, + "device_cpu_utilization": { + "default": "mdi:chip" + }, + "device_memory_utilization": { + "default": "mdi:memory" + }, + "device_state": { + "default": "mdi:lan-connect" + }, + "device_uplink_mac": { + "default": "mdi:ethernet" + }, "port_bandwidth_rx": { "default": "mdi:download" }, @@ -25,21 +40,6 @@ }, "wlan_clients": { "default": "mdi:account-multiple" - }, - "device_clients": { - "default": "mdi:account-multiple" - }, - "device_uplink_mac": { - "default": "mdi:ethernet" - }, - "device_state": { - "default": "mdi:lan-connect" - }, - "device_cpu_utilization": { - "default": "mdi:chip" - }, - "device_memory_utilization": { - "default": "mdi:memory" } }, "switch": { @@ -58,21 +58,21 @@ "firewall_policy_control": { "default": "mdi:security-network" }, - "port_forward_control": { - "default": "mdi:upload-network" - }, - "traffic_rule_control": { - "default": "mdi:security-network" - }, - "traffic_route_control": { - "default": "mdi:routes" - }, "poe_port_control": { "default": "mdi:ethernet", "state": { "off": "mdi:ethernet-off" } }, + "port_forward_control": { + "default": "mdi:upload-network" + }, + "traffic_route_control": { + "default": "mdi:routes" + }, + "traffic_rule_control": { + "default": "mdi:security-network" + }, "wlan_control": { "default": "mdi:wifi-check", "state": { diff --git a/homeassistant/components/unifi/strings.json b/homeassistant/components/unifi/strings.json index 3e357ab645f..2b80e57db3e 100644 --- a/homeassistant/components/unifi/strings.json +++ b/homeassistant/components/unifi/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "already_configured": "UniFi Network site is already configured", + "configuration_updated": "Configuration updated", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "faulty_credentials": "[%key:common::config_flow::error::invalid_auth%]", + "service_unavailable": "[%key:common::config_flow::error::cannot_connect%]", + "unknown_client_mac": "No client available on that MAC address" + }, "flow_title": "{site} ({host})", "step": { "site": { @@ -8,29 +18,19 @@ } }, "user": { - "title": "Set up UniFi Network", "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%]", "site": "Site ID", + "username": "[%key:common::config_flow::data::username%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" }, "data_description": { "host": "Hostname or IP address of your UniFi Network." - } + }, + "title": "Set up UniFi Network" } - }, - "error": { - "faulty_credentials": "[%key:common::config_flow::error::invalid_auth%]", - "service_unavailable": "[%key:common::config_flow::error::cannot_connect%]", - "unknown_client_mac": "No client available on that MAC address" - }, - "abort": { - "already_configured": "UniFi Network site is already configured", - "configuration_updated": "Configuration updated", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, "entity": { @@ -42,18 +42,18 @@ "sensor": { "device_state": { "state": { - "disconnected": "[%key:common::state::disconnected%]", - "connected": "[%key:common::state::connected%]", - "pending": "Pending", - "firmware_mismatch": "Firmware mismatch", - "upgrading": "Upgrading", - "provisioning": "Provisioning", - "heartbeat_missed": "Heartbeat missed", "adopting": "Adopting", - "deleting": "Deleting", - "inform_error": "Inform error", "adoption_failed": "Adoption failed", - "isolated": "Isolated" + "connected": "[%key:common::state::connected%]", + "deleting": "Deleting", + "disconnected": "[%key:common::state::disconnected%]", + "firmware_mismatch": "Firmware mismatch", + "heartbeat_missed": "Heartbeat missed", + "inform_error": "Inform error", + "isolated": "Isolated", + "pending": "Pending", + "provisioning": "Provisioning", + "upgrading": "Upgrading" } } } @@ -63,6 +63,15 @@ "integration_not_setup": "UniFi integration is not set up" }, "step": { + "client_control": { + "data": { + "block_client": "Network access controlled clients", + "dpi_restrictions": "Allow control of DPI restriction groups", + "poe_clients": "Allow POE control of clients" + }, + "description": "Configure client controls\n\nCreate switches for serial numbers you want to control network access for.", + "title": "UniFi Network options 2/3" + }, "configure_entity_sources": { "data": { "client_source": "Create entities from network clients" @@ -82,20 +91,11 @@ "description": "Configure device tracking", "title": "UniFi Network options 1/3" }, - "client_control": { - "data": { - "block_client": "Network access controlled clients", - "poe_clients": "Allow POE control of clients", - "dpi_restrictions": "Allow control of DPI restriction groups" - }, - "description": "Configure client controls\n\nCreate switches for serial numbers you want to control network access for.", - "title": "UniFi Network options 2/3" - }, "simple_options": { "data": { + "block_client": "[%key:component::unifi::options::step::client_control::data::block_client%]", "track_clients": "[%key:component::unifi::options::step::device_tracker::data::track_clients%]", - "track_devices": "[%key:component::unifi::options::step::device_tracker::data::track_devices%]", - "block_client": "[%key:component::unifi::options::step::client_control::data::block_client%]" + "track_devices": "[%key:component::unifi::options::step::device_tracker::data::track_devices%]" }, "description": "Configure UniFi Network integration" }, @@ -111,18 +111,18 @@ }, "services": { "reconnect_client": { - "name": "Reconnect wireless client", "description": "Tries to get wireless client to reconnect to UniFi Network.", "fields": { "device_id": { - "name": "[%key:common::config_flow::data::device%]", - "description": "The device that should be forced to reconnect to the wireless network." + "description": "The device that should be forced to reconnect to the wireless network.", + "name": "[%key:common::config_flow::data::device%]" } - } + }, + "name": "Reconnect wireless client" }, "remove_clients": { - "name": "Remove clients from the UniFi Network", - "description": "Cleans up clients that have only been associated with the controller for a short period of time." + "description": "Cleans up clients that have only been associated with the controller for a short period of time.", + "name": "Remove clients from the UniFi Network" } } } diff --git a/homeassistant/components/unifiprotect/icons.json b/homeassistant/components/unifiprotect/icons.json index b5e8277d82a..a3c489aa88b 100644 --- a/homeassistant/components/unifiprotect/icons.json +++ b/homeassistant/components/unifiprotect/icons.json @@ -3,17 +3,17 @@ "add_doorbell_text": { "service": "mdi:message-plus" }, + "get_user_keyring_info": { + "service": "mdi:key-chain" + }, "remove_doorbell_text": { "service": "mdi:message-minus" }, - "set_chime_paired_doorbells": { - "service": "mdi:bell-cog" - }, "remove_privacy_zone": { "service": "mdi:eye-minus" }, - "get_user_keyring_info": { - "service": "mdi:key-chain" + "set_chime_paired_doorbells": { + "service": "mdi:bell-cog" } } } diff --git a/homeassistant/components/unifiprotect/strings.json b/homeassistant/components/unifiprotect/strings.json index 9289d0f66d4..66193d096ba 100644 --- a/homeassistant/components/unifiprotect/strings.json +++ b/homeassistant/components/unifiprotect/strings.json @@ -1,258 +1,77 @@ { "config": { - "flow_title": "{name} ({ip_address})", - "step": { - "user": { - "title": "UniFi Protect setup", - "description": "You will need a local user created in your UniFi OS Console to log in with. Ubiquiti Cloud users will not work. For more information: {local_user_documentation_url}", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "host": "Hostname or IP address of your UniFi Protect device.", - "api_key": "API key for your local user account." - } - }, - "reauth_confirm": { - "title": "UniFi Protect reauth", - "description": "Your credentials or API key seem to be missing or invalid. For instructions on how to create a local user or generate a new API key, please refer to the documentation: {local_user_documentation_url}", - "data": { - "host": "IP/Host of UniFi Protect server", - "port": "[%key:common::config_flow::data::port%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "API key for your local user account.", - "username": "Username for your local (not cloud) user account." - } - }, - "discovery_confirm": { - "title": "UniFi Protect discovered", - "description": "Do you want to set up {name} ({ip_address})? You will need a local user created in your UniFi OS Console to log in with. Ubiquiti Cloud users will not work. For more information: {local_user_documentation_url}", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "API key for your local user account." - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "protect_version": "Minimum required version is v6.0.0. Please upgrade UniFi Protect and then retry.", - "cloud_user": "Ubiquiti Cloud users are not supported. Please use a local user instead." - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "discovery_started": "Discovery started", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "cloud_user": "Ubiquiti Cloud users are not supported. Please use a local user instead.", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "protect_version": "Minimum required version is v6.0.0. Please upgrade UniFi Protect and then retry." + }, + "flow_title": "{name} ({ip_address})", "step": { - "init": { - "title": "UniFi Protect options", - "description": "Realtime metrics option should only be enabled if you have enabled the diagnostics sensors and want them updated in realtime. If not enabled, they will only update once every 15 minutes.", + "discovery_confirm": { "data": { - "disable_rtsp": "Disable the RTSP stream", - "all_updates": "Realtime metrics (WARNING: Greatly increases CPU usage)", - "override_connection_host": "Override connection host", - "max_media": "Max number of event to load for Media Browser (increases RAM usage)" - } + "api_key": "[%key:common::config_flow::data::api_key%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "api_key": "API key for your local user account." + }, + "description": "Do you want to set up {name} ({ip_address})? You will need a local user created in your UniFi OS Console to log in with. Ubiquiti Cloud users will not work. For more information: {local_user_documentation_url}", + "title": "UniFi Protect discovered" + }, + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "host": "IP/Host of UniFi Protect server", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "api_key": "API key for your local user account.", + "username": "Username for your local (not cloud) user account." + }, + "description": "Your credentials or API key seem to be missing or invalid. For instructions on how to create a local user or generate a new API key, please refer to the documentation: {local_user_documentation_url}", + "title": "UniFi Protect reauth" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "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%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "API key for your local user account.", + "host": "Hostname or IP address of your UniFi Protect device." + }, + "description": "You will need a local user created in your UniFi OS Console to log in with. Ubiquiti Cloud users will not work. For more information: {local_user_documentation_url}", + "title": "UniFi Protect setup" } } }, - "issues": { - "cloud_user": { - "title": "Ubiquiti Cloud Users are not Supported", - "fix_flow": { - "step": { - "confirm": { - "title": "Ubiquiti Cloud Users are not Supported", - "description": "Starting on July 22nd, 2024, Ubiquiti will require all cloud users to enroll in multi-factor authentication (MFA), which is incompatible with Home Assistant.\n\nIt would be best to migrate to using a [local user]({learn_more}) as soon as possible to keep the integration working.\n\nConfirming this repair will trigger a re-authentication flow to enter the needed authentication credentials." - } - } - } - }, - "rtsp_disabled_readonly": { - "title": "RTSPS is disabled on camera {camera}", - "fix_flow": { - "step": { - "start": { - "title": "RTSPS is disabled on camera {camera}", - "description": "RTSPS is disabled on the camera {camera}. RTSPS is required to be able to live stream your camera within Home Assistant. If you do not enable RTSPS, it may create an additional load on your UniFi Protect NVR, as any live video players will default to rapidly pulling snapshots from the camera.\n\nPlease [enable RTSPS]({learn_more}) on the camera and then come back and confirm this repair." - }, - "confirm": { - "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]", - "description": "Are you sure you want to leave RTSPS disabled for {camera}?" - } - } - } - }, - "rtsp_disabled_writable": { - "title": "RTSPS is disabled on camera {camera}", - "fix_flow": { - "step": { - "start": { - "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]", - "description": "RTSPS is disabled on the camera {camera}. RTSPS is required to live stream your camera within Home Assistant. If you do not enable RTSPS, it may create an additional load on your UniFi Protect NVR as any live video players will default to rapidly pulling snapshots from the camera.\n\nYou may manually [enable RTSPS]({learn_more}) on your selected camera quality channel or Home Assistant can automatically enable the highest quality channel for you. Confirm this repair once you have enabled the RTSPS channel or if you want Home Assistant to enable the highest quality automatically." - }, - "confirm": { - "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]", - "description": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::confirm::description%]" - } - } - } - }, - "deprecate_hdr_switch": { - "title": "HDR Mode switch deprecated", - "description": "UniFi Protect v3 added a new state for HDR (auto). As a result, the HDR Mode switch has been replaced with an HDR Mode select, and it is deprecated.\n\nBelow are the detected automations or scripts that use one or more of the deprecated entities:\n{items}\nThe above list may be incomplete and it does not include any template usages inside of dashboards. Please update any templates, automations or scripts accordingly." - } - }, "entity": { "binary_sensor": { - "is_dark": { - "name": "Is dark" - }, - "ssh_enabled": { - "name": "SSH enabled" - }, - "status_light": { - "name": "Status light" - }, - "hdr_mode": { - "name": "HDR mode" - }, - "high_fps": { - "name": "High FPS" - }, - "system_sounds": { - "name": "System sounds" - }, - "overlay_show_name": { - "name": "Overlay: show name" - }, - "overlay_show_date": { - "name": "Overlay: show date" - }, - "overlay_show_logo": { - "name": "Overlay: show logo" - }, - "overlay_show_nerd_mode": { - "name": "Overlay: show nerd mode" - }, - "detections_motion": { - "name": "Detections: motion" - }, - "detections_person": { - "name": "Detections: person" - }, - "detections_vehicle": { - "name": "Detections: vehicle" - }, - "detections_animal": { - "name": "Detections: animal" - }, - "detections_package": { - "name": "Detections: package" - }, - "detections_license_plate": { - "name": "Detections: license plate" - }, - "detections_smoke": { - "name": "Detections: smoke" - }, - "detections_co_alarm": { - "name": "Detections: CO alarm" - }, - "detections_siren": { - "name": "Detections: siren" - }, - "detections_baby_cry": { - "name": "Detections: baby cry" - }, - "detections_speaking": { - "name": "Detections: speaking" - }, - "detections_barking": { - "name": "Detections: barking" - }, - "detections_car_alarm": { - "name": "Detections: car alarm" - }, - "detections_car_horn": { - "name": "Detections: car horn" - }, - "detections_glass_break": { - "name": "Detections: glass break" - }, - "tracking_person": { - "name": "Tracking: person" - }, - "flood_light": { - "name": "Flood light" - }, - "contact": { - "name": "Contact" - }, - "temperature_sensor": { - "name": "Temperature sensor" - }, - "humidity_sensor": { - "name": "Humidity sensor" - }, - "light_sensor": { - "name": "Light sensor" - }, "alarm_sound_detection": { "name": "Alarm sound detection" }, - "doorbell": { - "name": "[%key:component::event::entity_component::doorbell::name%]" - }, - "object_detected": { - "name": "Object detected" - }, - "person_detected": { - "name": "Person detected" - }, - "vehicle_detected": { - "name": "Vehicle detected" - }, "animal_detected": { "name": "Animal detected" }, - "package_detected": { - "name": "Package detected" - }, "audio_object_detected": { "name": "Audio object detected" }, - "smoke_alarm_detected": { - "name": "Smoke alarm detected" - }, - "co_alarm_detected": { - "name": "CO alarm detected" - }, - "siren_detected": { - "name": "Siren detected" - }, "baby_cry_detected": { "name": "Baby cry detected" }, - "speaking_detected": { - "name": "Speaking detected" - }, "barking_detected": { "name": "Barking detected" }, @@ -262,322 +81,145 @@ "car_horn_detected": { "name": "Car horn detected" }, + "co_alarm_detected": { + "name": "CO alarm detected" + }, + "contact": { + "name": "Contact" + }, + "detections_animal": { + "name": "Detections: animal" + }, + "detections_baby_cry": { + "name": "Detections: baby cry" + }, + "detections_barking": { + "name": "Detections: barking" + }, + "detections_car_alarm": { + "name": "Detections: car alarm" + }, + "detections_car_horn": { + "name": "Detections: car horn" + }, + "detections_co_alarm": { + "name": "Detections: CO alarm" + }, + "detections_glass_break": { + "name": "Detections: glass break" + }, + "detections_license_plate": { + "name": "Detections: license plate" + }, + "detections_motion": { + "name": "Detections: motion" + }, + "detections_package": { + "name": "Detections: package" + }, + "detections_person": { + "name": "Detections: person" + }, + "detections_siren": { + "name": "Detections: siren" + }, + "detections_smoke": { + "name": "Detections: smoke" + }, + "detections_speaking": { + "name": "Detections: speaking" + }, + "detections_vehicle": { + "name": "Detections: vehicle" + }, + "doorbell": { + "name": "[%key:component::event::entity_component::doorbell::name%]" + }, + "flood_light": { + "name": "Flood light" + }, "glass_break_detected": { "name": "Glass break detected" + }, + "hdr_mode": { + "name": "HDR mode" + }, + "high_fps": { + "name": "High FPS" + }, + "humidity_sensor": { + "name": "Humidity sensor" + }, + "is_dark": { + "name": "Is dark" + }, + "light_sensor": { + "name": "Light sensor" + }, + "object_detected": { + "name": "Object detected" + }, + "overlay_show_date": { + "name": "Overlay: show date" + }, + "overlay_show_logo": { + "name": "Overlay: show logo" + }, + "overlay_show_name": { + "name": "Overlay: show name" + }, + "overlay_show_nerd_mode": { + "name": "Overlay: show nerd mode" + }, + "package_detected": { + "name": "Package detected" + }, + "person_detected": { + "name": "Person detected" + }, + "siren_detected": { + "name": "Siren detected" + }, + "smoke_alarm_detected": { + "name": "Smoke alarm detected" + }, + "speaking_detected": { + "name": "Speaking detected" + }, + "ssh_enabled": { + "name": "SSH enabled" + }, + "status_light": { + "name": "Status light" + }, + "system_sounds": { + "name": "System sounds" + }, + "temperature_sensor": { + "name": "Temperature sensor" + }, + "tracking_person": { + "name": "Tracking: person" + }, + "vehicle_detected": { + "name": "Vehicle detected" } }, "button": { - "unadopt_device": { - "name": "Unadopt device" - }, "adopt_device": { "name": "Adopt device" }, "clear_tamper": { "name": "Clear tamper" }, + "play_buzzer": { + "name": "Play buzzer" + }, "play_chime": { "name": "Play chime" }, - "play_buzzer": { - "name": "Play buzzer" - } - }, - "media_player": { - "speaker": { - "name": "[%key:component::media_player::entity_component::speaker::name%]" - } - }, - "number": { - "wide_dynamic_range": { - "name": "Wide dynamic range" - }, - "microphone_level": { - "name": "Microphone level" - }, - "zoom_level": { - "name": "Zoom level" - }, - "chime_duration": { - "name": "Chime duration" - }, - "infrared_custom_lux_trigger": { - "name": "Infrared custom lux trigger" - }, - "motion_sensitivity": { - "name": "Motion sensitivity" - }, - "auto_shutoff_duration": { - "name": "Auto-shutoff duration" - }, - "auto_lock_timeout": { - "name": "Auto-lock timeout" - }, - "volume": { - "name": "[%key:component::sensor::entity_component::volume::name%]" - } - }, - "select": { - "recording_mode": { - "name": "Recording mode" - }, - "infrared_mode": { - "name": "Infrared mode" - }, - "doorbell_text": { - "name": "Doorbell text" - }, - "chime_type": { - "name": "Chime type" - }, - "hdr_mode": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::hdr_mode::name%]" - }, - "light_mode": { - "name": "Light mode" - }, - "paired_camera": { - "name": "Paired camera" - }, - "mount_type": { - "name": "Mount type" - }, - "liveview": { - "name": "Liveview" - } - }, - "sensor": { - "uptime": { - "name": "Uptime" - }, - "bluetooth_signal_strength": { - "name": "Bluetooth signal strength" - }, - "link_speed": { - "name": "Link speed" - }, - "wifi_signal_strength": { - "name": "Wi-Fi signal strength" - }, - "oldest_recording": { - "name": "Oldest recording" - }, - "storage_used": { - "name": "Storage used" - }, - "disk_write_rate": { - "name": "Disk write rate" - }, - "last_doorbell_ring": { - "name": "Last doorbell ring" - }, - "lens_type": { - "name": "Lens type" - }, - "microphone_level": { - "name": "[%key:component::unifiprotect::entity::number::microphone_level::name%]" - }, - "recording_mode": { - "name": "[%key:component::unifiprotect::entity::select::recording_mode::name%]" - }, - "infrared_mode": { - "name": "[%key:component::unifiprotect::entity::select::infrared_mode::name%]" - }, - "doorbell_text": { - "name": "[%key:component::unifiprotect::entity::select::doorbell_text::name%]" - }, - "chime_type": { - "name": "[%key:component::unifiprotect::entity::select::chime_type::name%]" - }, - "received_data": { - "name": "Received data" - }, - "transferred_data": { - "name": "Transferred data" - }, - "temperature": { - "name": "[%key:component::sensor::entity_component::temperature::name%]" - }, - "alarm_sound_detected": { - "name": "Alarm sound detected" - }, - "last_open": { - "name": "Last open" - }, - "last_motion_detected": { - "name": "Last motion detected" - }, - "last_tampering_detected": { - "name": "Last tampering detected" - }, - "motion_sensitivity": { - "name": "[%key:component::unifiprotect::entity::number::motion_sensitivity::name%]" - }, - "mount_type": { - "name": "[%key:component::unifiprotect::entity::select::mount_type::name%]" - }, - "paired_camera": { - "name": "[%key:component::unifiprotect::entity::select::paired_camera::name%]" - }, - "storage_utilization": { - "name": "Storage utilization" - }, - "type_timelapse_video": { - "name": "Type: timelapse video" - }, - "type_continuous_video": { - "name": "Type: continuous video" - }, - "type_detections_video": { - "name": "Type: detections video" - }, - "resolution_hd_video": { - "name": "Resolution: HD video" - }, - "resolution_4k_video": { - "name": "Resolution: 4K video" - }, - "resolution_free_space": { - "name": "Resolution: free space" - }, - "recording_capacity": { - "name": "Recording capacity" - }, - "cpu_utilization": { - "name": "CPU utilization" - }, - "cpu_temperature": { - "name": "CPU temperature" - }, - "memory_utilization": { - "name": "Memory utilization" - }, - "license_plate_detected": { - "name": "License plate detected", - "state": { - "none": "[%key:component::binary_sensor::entity_component::gas::state::off%]" - } - }, - "light_mode": { - "name": "[%key:component::unifiprotect::entity::select::light_mode::name%]" - }, - "last_ring": { - "name": "Last ring" - }, - "volume": { - "name": "[%key:component::sensor::entity_component::volume::name%]" - }, - "liveview": { - "name": "[%key:component::unifiprotect::entity::select::liveview::name%]" - } - }, - "switch": { - "ssh_enabled": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::ssh_enabled::name%]" - }, - "status_light": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::status_light::name%]" - }, - "hdr_mode": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::hdr_mode::name%]" - }, - "high_fps": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::high_fps::name%]" - }, - "system_sounds": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::system_sounds::name%]" - }, - "overlay_show_name": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_name::name%]" - }, - "overlay_show_date": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_date::name%]" - }, - "overlay_show_logo": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_logo::name%]" - }, - "overlay_show_nerd_mode": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_nerd_mode::name%]" - }, - "color_night_vision": { - "name": "Color night vision" - }, - "motion": { - "name": "[%key:component::binary_sensor::entity_component::motion::name%]" - }, - "detections_motion": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_motion::name%]" - }, - "detections_person": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_person::name%]" - }, - "detections_vehicle": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_vehicle::name%]" - }, - "detections_animal": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_animal::name%]" - }, - "detections_package": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_package::name%]" - }, - "detections_license_plate": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_license_plate::name%]" - }, - "detections_smoke": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_smoke::name%]" - }, - "detections_co_alarm": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_co_alarm::name%]" - }, - "detections_siren": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_siren::name%]" - }, - "detections_baby_cry": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_baby_cry::name%]" - }, - "detections_speak": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_speaking::name%]" - }, - "detections_barking": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_barking::name%]" - }, - "detections_car_alarm": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_car_alarm::name%]" - }, - "detections_car_horn": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_car_horn::name%]" - }, - "detections_glass_break": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_glass_break::name%]" - }, - "tracking_person": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::tracking_person::name%]" - }, - "privacy_mode": { - "name": "Privacy mode" - }, - "temperature_sensor": { - "name": "Temperature sensor" - }, - "humidity_sensor": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::humidity_sensor::name%]" - }, - "light_sensor": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::light_sensor::name%]" - }, - "alarm_sound_detection": { - "name": "[%key:component::unifiprotect::entity::binary_sensor::alarm_sound_detection::name%]" - }, - "analytics_enabled": { - "name": "Analytics enabled" - }, - "insights_enabled": { - "name": "Insights enabled" - } - }, - "text": { - "doorbell": { - "name": "[%key:component::event::entity_component::doorbell::name%]" + "unadopt_device": { + "name": "Unadopt device" } }, "event": { @@ -591,16 +233,6 @@ } } }, - "nfc": { - "name": "NFC", - "state_attributes": { - "event_type": { - "state": { - "scanned": "Scanned" - } - } - } - }, "fingerprint": { "name": "Fingerprint", "state_attributes": { @@ -611,74 +243,313 @@ } } } - } - } - }, - "services": { - "add_doorbell_text": { - "name": "Add doorbell text", - "description": "Adds a new custom message for doorbells.", - "fields": { - "device_id": { - "name": "UniFi Protect NVR", - "description": "Any device from the UniFi Protect instance you want to change. In case you have multiple Protect instances." - }, - "message": { - "name": "Custom message", - "description": "New custom message to add. Must be less than 30 characters." + }, + "nfc": { + "name": "NFC", + "state_attributes": { + "event_type": { + "state": { + "scanned": "Scanned" + } + } } } }, - "remove_doorbell_text": { - "name": "Remove doorbell text", - "description": "Removes an existing custom message for doorbells.", - "fields": { - "device_id": { - "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::name%]", - "description": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::description%]" - }, - "message": { - "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::message::name%]", - "description": "Existing custom message to remove." - } + "media_player": { + "speaker": { + "name": "[%key:component::media_player::entity_component::speaker::name%]" } }, - "set_chime_paired_doorbells": { - "name": "Set chime paired doorbells", - "description": "Pairs doorbell(s) with a smart chime.", - "fields": { - "device_id": { - "name": "Chime", - "description": "The chimes to link to the doorbells." - }, - "doorbells": { - "name": "Doorbells", - "description": "The doorbells to link to the chime." - } + "number": { + "auto_lock_timeout": { + "name": "Auto-lock timeout" + }, + "auto_shutoff_duration": { + "name": "Auto-shutoff duration" + }, + "chime_duration": { + "name": "Chime duration" + }, + "infrared_custom_lux_trigger": { + "name": "Infrared custom lux trigger" + }, + "microphone_level": { + "name": "Microphone level" + }, + "motion_sensitivity": { + "name": "Motion sensitivity" + }, + "volume": { + "name": "[%key:component::sensor::entity_component::volume::name%]" + }, + "wide_dynamic_range": { + "name": "Wide dynamic range" + }, + "zoom_level": { + "name": "Zoom level" } }, - "remove_privacy_zone": { - "name": "Remove privacy zone", - "description": "Removes a privacy zone from a camera.", - "fields": { - "device_id": { - "name": "[%key:component::camera::title%]", - "description": "Camera you want to remove the privacy zone from." - }, - "name": { - "name": "Privacy zone", - "description": "The name of the zone to remove." - } + "select": { + "chime_type": { + "name": "Chime type" + }, + "doorbell_text": { + "name": "Doorbell text" + }, + "hdr_mode": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::hdr_mode::name%]" + }, + "infrared_mode": { + "name": "Infrared mode" + }, + "light_mode": { + "name": "Light mode" + }, + "liveview": { + "name": "Liveview" + }, + "mount_type": { + "name": "Mount type" + }, + "paired_camera": { + "name": "Paired camera" + }, + "recording_mode": { + "name": "Recording mode" } }, - "get_user_keyring_info": { - "name": "Get user keyring info", - "description": "Fetches a detailed list of users with NFC and fingerprint associations for automations.", - "fields": { - "device_id": { - "name": "UniFi Protect NVR", - "description": "Any device from the UniFi Protect instance you want to retrieve keyring details. This is useful for systems with multiple Protect instances." + "sensor": { + "alarm_sound_detected": { + "name": "Alarm sound detected" + }, + "bluetooth_signal_strength": { + "name": "Bluetooth signal strength" + }, + "chime_type": { + "name": "[%key:component::unifiprotect::entity::select::chime_type::name%]" + }, + "cpu_temperature": { + "name": "CPU temperature" + }, + "cpu_utilization": { + "name": "CPU utilization" + }, + "disk_write_rate": { + "name": "Disk write rate" + }, + "doorbell_text": { + "name": "[%key:component::unifiprotect::entity::select::doorbell_text::name%]" + }, + "infrared_mode": { + "name": "[%key:component::unifiprotect::entity::select::infrared_mode::name%]" + }, + "last_doorbell_ring": { + "name": "Last doorbell ring" + }, + "last_motion_detected": { + "name": "Last motion detected" + }, + "last_open": { + "name": "Last open" + }, + "last_ring": { + "name": "Last ring" + }, + "last_tampering_detected": { + "name": "Last tampering detected" + }, + "lens_type": { + "name": "Lens type" + }, + "license_plate_detected": { + "name": "License plate detected", + "state": { + "none": "[%key:component::binary_sensor::entity_component::gas::state::off%]" } + }, + "light_mode": { + "name": "[%key:component::unifiprotect::entity::select::light_mode::name%]" + }, + "link_speed": { + "name": "Link speed" + }, + "liveview": { + "name": "[%key:component::unifiprotect::entity::select::liveview::name%]" + }, + "memory_utilization": { + "name": "Memory utilization" + }, + "microphone_level": { + "name": "[%key:component::unifiprotect::entity::number::microphone_level::name%]" + }, + "motion_sensitivity": { + "name": "[%key:component::unifiprotect::entity::number::motion_sensitivity::name%]" + }, + "mount_type": { + "name": "[%key:component::unifiprotect::entity::select::mount_type::name%]" + }, + "oldest_recording": { + "name": "Oldest recording" + }, + "paired_camera": { + "name": "[%key:component::unifiprotect::entity::select::paired_camera::name%]" + }, + "received_data": { + "name": "Received data" + }, + "recording_capacity": { + "name": "Recording capacity" + }, + "recording_mode": { + "name": "[%key:component::unifiprotect::entity::select::recording_mode::name%]" + }, + "resolution_4k_video": { + "name": "Resolution: 4K video" + }, + "resolution_free_space": { + "name": "Resolution: free space" + }, + "resolution_hd_video": { + "name": "Resolution: HD video" + }, + "storage_used": { + "name": "Storage used" + }, + "storage_utilization": { + "name": "Storage utilization" + }, + "temperature": { + "name": "[%key:component::sensor::entity_component::temperature::name%]" + }, + "transferred_data": { + "name": "Transferred data" + }, + "type_continuous_video": { + "name": "Type: continuous video" + }, + "type_detections_video": { + "name": "Type: detections video" + }, + "type_timelapse_video": { + "name": "Type: timelapse video" + }, + "uptime": { + "name": "Uptime" + }, + "volume": { + "name": "[%key:component::sensor::entity_component::volume::name%]" + }, + "wifi_signal_strength": { + "name": "Wi-Fi signal strength" + } + }, + "switch": { + "alarm_sound_detection": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::alarm_sound_detection::name%]" + }, + "analytics_enabled": { + "name": "Analytics enabled" + }, + "color_night_vision": { + "name": "Color night vision" + }, + "detections_animal": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_animal::name%]" + }, + "detections_baby_cry": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_baby_cry::name%]" + }, + "detections_barking": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_barking::name%]" + }, + "detections_car_alarm": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_car_alarm::name%]" + }, + "detections_car_horn": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_car_horn::name%]" + }, + "detections_co_alarm": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_co_alarm::name%]" + }, + "detections_glass_break": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_glass_break::name%]" + }, + "detections_license_plate": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_license_plate::name%]" + }, + "detections_motion": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_motion::name%]" + }, + "detections_package": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_package::name%]" + }, + "detections_person": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_person::name%]" + }, + "detections_siren": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_siren::name%]" + }, + "detections_smoke": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_smoke::name%]" + }, + "detections_speak": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_speaking::name%]" + }, + "detections_vehicle": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::detections_vehicle::name%]" + }, + "hdr_mode": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::hdr_mode::name%]" + }, + "high_fps": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::high_fps::name%]" + }, + "humidity_sensor": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::humidity_sensor::name%]" + }, + "insights_enabled": { + "name": "Insights enabled" + }, + "light_sensor": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::light_sensor::name%]" + }, + "motion": { + "name": "[%key:component::binary_sensor::entity_component::motion::name%]" + }, + "overlay_show_date": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_date::name%]" + }, + "overlay_show_logo": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_logo::name%]" + }, + "overlay_show_name": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_name::name%]" + }, + "overlay_show_nerd_mode": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::overlay_show_nerd_mode::name%]" + }, + "privacy_mode": { + "name": "Privacy mode" + }, + "ssh_enabled": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::ssh_enabled::name%]" + }, + "status_light": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::status_light::name%]" + }, + "system_sounds": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::system_sounds::name%]" + }, + "temperature_sensor": { + "name": "Temperature sensor" + }, + "tracking_person": { + "name": "[%key:component::unifiprotect::entity::binary_sensor::tracking_person::name%]" + } + }, + "text": { + "doorbell": { + "name": "[%key:component::event::entity_component::doorbell::name%]" } } }, @@ -689,5 +560,134 @@ "protect_version": { "message": "Your UniFi Protect version ({current_version}) is too old. Minimum required: {min_version}." } + }, + "issues": { + "cloud_user": { + "fix_flow": { + "step": { + "confirm": { + "description": "Starting on July 22nd, 2024, Ubiquiti will require all cloud users to enroll in multi-factor authentication (MFA), which is incompatible with Home Assistant.\n\nIt would be best to migrate to using a [local user]({learn_more}) as soon as possible to keep the integration working.\n\nConfirming this repair will trigger a re-authentication flow to enter the needed authentication credentials.", + "title": "Ubiquiti Cloud Users are not Supported" + } + } + }, + "title": "Ubiquiti Cloud Users are not Supported" + }, + "deprecate_hdr_switch": { + "description": "UniFi Protect v3 added a new state for HDR (auto). As a result, the HDR Mode switch has been replaced with an HDR Mode select, and it is deprecated.\n\nBelow are the detected automations or scripts that use one or more of the deprecated entities:\n{items}\nThe above list may be incomplete and it does not include any template usages inside of dashboards. Please update any templates, automations or scripts accordingly.", + "title": "HDR Mode switch deprecated" + }, + "rtsp_disabled_readonly": { + "fix_flow": { + "step": { + "confirm": { + "description": "Are you sure you want to leave RTSPS disabled for {camera}?", + "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]" + }, + "start": { + "description": "RTSPS is disabled on the camera {camera}. RTSPS is required to be able to live stream your camera within Home Assistant. If you do not enable RTSPS, it may create an additional load on your UniFi Protect NVR, as any live video players will default to rapidly pulling snapshots from the camera.\n\nPlease [enable RTSPS]({learn_more}) on the camera and then come back and confirm this repair.", + "title": "RTSPS is disabled on camera {camera}" + } + } + }, + "title": "RTSPS is disabled on camera {camera}" + }, + "rtsp_disabled_writable": { + "fix_flow": { + "step": { + "confirm": { + "description": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::confirm::description%]", + "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]" + }, + "start": { + "description": "RTSPS is disabled on the camera {camera}. RTSPS is required to live stream your camera within Home Assistant. If you do not enable RTSPS, it may create an additional load on your UniFi Protect NVR as any live video players will default to rapidly pulling snapshots from the camera.\n\nYou may manually [enable RTSPS]({learn_more}) on your selected camera quality channel or Home Assistant can automatically enable the highest quality channel for you. Confirm this repair once you have enabled the RTSPS channel or if you want Home Assistant to enable the highest quality automatically.", + "title": "[%key:component::unifiprotect::issues::rtsp_disabled_readonly::fix_flow::step::start::title%]" + } + } + }, + "title": "RTSPS is disabled on camera {camera}" + } + }, + "options": { + "step": { + "init": { + "data": { + "all_updates": "Realtime metrics (WARNING: Greatly increases CPU usage)", + "disable_rtsp": "Disable the RTSP stream", + "max_media": "Max number of event to load for Media Browser (increases RAM usage)", + "override_connection_host": "Override connection host" + }, + "description": "Realtime metrics option should only be enabled if you have enabled the diagnostics sensors and want them updated in realtime. If not enabled, they will only update once every 15 minutes.", + "title": "UniFi Protect options" + } + } + }, + "services": { + "add_doorbell_text": { + "description": "Adds a new custom message for doorbells.", + "fields": { + "device_id": { + "description": "Any device from the UniFi Protect instance you want to change. In case you have multiple Protect instances.", + "name": "UniFi Protect NVR" + }, + "message": { + "description": "New custom message to add. Must be less than 30 characters.", + "name": "Custom message" + } + }, + "name": "Add doorbell text" + }, + "get_user_keyring_info": { + "description": "Fetches a detailed list of users with NFC and fingerprint associations for automations.", + "fields": { + "device_id": { + "description": "Any device from the UniFi Protect instance you want to retrieve keyring details. This is useful for systems with multiple Protect instances.", + "name": "UniFi Protect NVR" + } + }, + "name": "Get user keyring info" + }, + "remove_doorbell_text": { + "description": "Removes an existing custom message for doorbells.", + "fields": { + "device_id": { + "description": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::description%]", + "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::name%]" + }, + "message": { + "description": "Existing custom message to remove.", + "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::message::name%]" + } + }, + "name": "Remove doorbell text" + }, + "remove_privacy_zone": { + "description": "Removes a privacy zone from a camera.", + "fields": { + "device_id": { + "description": "Camera you want to remove the privacy zone from.", + "name": "[%key:component::camera::title%]" + }, + "name": { + "description": "The name of the zone to remove.", + "name": "Privacy zone" + } + }, + "name": "Remove privacy zone" + }, + "set_chime_paired_doorbells": { + "description": "Pairs doorbell(s) with a smart chime.", + "fields": { + "device_id": { + "description": "The chimes to link to the doorbells.", + "name": "Chime" + }, + "doorbells": { + "description": "The doorbells to link to the chime.", + "name": "Doorbells" + } + }, + "name": "Set chime paired doorbells" + } } } diff --git a/homeassistant/components/universal/strings.json b/homeassistant/components/universal/strings.json index a265a7c204c..f90df11c2f5 100644 --- a/homeassistant/components/universal/strings.json +++ b/homeassistant/components/universal/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads universal media players from the YAML-configuration." + "description": "Reloads universal media players from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/upb/icons.json b/homeassistant/components/upb/icons.json index 0274233da52..a6f76f0498c 100644 --- a/homeassistant/components/upb/icons.json +++ b/homeassistant/components/upb/icons.json @@ -1,28 +1,28 @@ { "services": { + "light_blink": { + "service": "mdi:eye" + }, "light_fade_start": { "service": "mdi:transition" }, "light_fade_stop": { "service": "mdi:transition-masked" }, - "light_blink": { + "link_blink": { "service": "mdi:eye" }, "link_deactivate": { "service": "mdi:link-off" }, - "link_goto": { - "service": "mdi:link-variant" - }, "link_fade_start": { "service": "mdi:transition" }, "link_fade_stop": { "service": "mdi:transition-masked" }, - "link_blink": { - "service": "mdi:eye" + "link_goto": { + "service": "mdi:link-variant" } } } diff --git a/homeassistant/components/upb/strings.json b/homeassistant/components/upb/strings.json index 7e4590d35a2..95cf158f216 100644 --- a/homeassistant/components/upb/strings.json +++ b/homeassistant/components/upb/strings.json @@ -1,111 +1,111 @@ { "config": { - "step": { - "user": { - "title": "Connect to UPB PIM", - "description": "Connect a Universal Powerline Bus Powerline Interface Module (UPB PIM). The address string must be in the form 'address[:port]' for 'tcp'. The port is optional and defaults to 2101. Example: '192.168.1.42'. For the serial protocol, the address must be in the form 'tty[:baud]'. The baud is optional and defaults to 4800. Example: '/dev/ttyS1'.", - "data": { - "protocol": "Protocol", - "address": "Address (see description above)", - "file_path": "Path and name of the UPStart UPB export file." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_upb_file": "Missing or invalid UPB UPStart export file, check the name and path of the file.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "address": "Address (see description above)", + "file_path": "Path and name of the UPStart UPB export file.", + "protocol": "Protocol" + }, + "description": "Connect a Universal Powerline Bus Powerline Interface Module (UPB PIM). The address string must be in the form 'address[:port]' for 'tcp'. The port is optional and defaults to 2101. Example: '192.168.1.42'. For the serial protocol, the address must be in the form 'tty[:baud]'. The baud is optional and defaults to 4800. Example: '/dev/ttyS1'.", + "title": "Connect to UPB PIM" + } } }, "services": { - "light_fade_start": { - "name": "Start light fade", - "description": "Starts fading a light either up or down from current brightness.", - "fields": { - "brightness": { - "name": "Brightness", - "description": "Number indicating brightness, where 0 turns the light off, 1 is the minimum brightness and 255 is the maximum brightness." - }, - "brightness_pct": { - "name": "Brightness percentage", - "description": "Number indicating percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness and 100 is the maximum brightness." - }, - "rate": { - "name": "Rate", - "description": "Rate for light to transition to new brightness." - } - } - }, - "light_fade_stop": { - "name": "Stop light fade", - "description": "Stops a light fade." - }, "light_blink": { - "name": "Blink light", "description": "Blinks a light.", "fields": { "rate": { - "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", - "description": "Amount of time that the link flashes on." + "description": "Amount of time that the link flashes on.", + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]" } - } + }, + "name": "Blink light" }, - "link_deactivate": { - "name": "Deactivate link", - "description": "Deactivates a UPB scene." - }, - "link_goto": { - "name": "Go to link", - "description": "Set scene to brightness.", + "light_fade_start": { + "description": "Starts fading a light either up or down from current brightness.", "fields": { "brightness": { - "name": "Brightness", - "description": "Number indicating brightness, where 0 turns the scene off, 1 is the minimum brightness and 255 is the maximum brightness." + "description": "Number indicating brightness, where 0 turns the light off, 1 is the minimum brightness and 255 is the maximum brightness.", + "name": "Brightness" }, "brightness_pct": { - "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]", - "description": "Number indicating percentage of full brightness, where 0 turns the scene off, 1 is the minimum brightness and 100 is the maximum brightness." + "description": "Number indicating percentage of full brightness, where 0 turns the light off, 1 is the minimum brightness and 100 is the maximum brightness.", + "name": "Brightness percentage" }, "rate": { - "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", - "description": "Amount of time for scene to transition to new brightness." + "description": "Rate for light to transition to new brightness.", + "name": "Rate" } - } + }, + "name": "Start light fade" }, - "link_fade_start": { - "name": "Start link fade", - "description": "Starts fading a link either up or down from current brightness.", - "fields": { - "brightness": { - "name": "Brightness", - "description": "[%key:component::upb::services::link_goto::fields::brightness::description%]" - }, - "brightness_pct": { - "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]", - "description": "[%key:component::upb::services::link_goto::fields::brightness_pct::description%]" - }, - "rate": { - "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", - "description": "[%key:component::upb::services::link_goto::fields::rate::description%]" - } - } - }, - "link_fade_stop": { - "name": "Stop link fade", - "description": "Stops a link fade." + "light_fade_stop": { + "description": "Stops a light fade.", + "name": "Stop light fade" }, "link_blink": { - "name": "Blink link", "description": "Blinks a link.", "fields": { "blink_rate": { - "name": "Blink rate", - "description": "[%key:component::upb::services::light_blink::fields::rate::description%]" + "description": "[%key:component::upb::services::light_blink::fields::rate::description%]", + "name": "Blink rate" } - } + }, + "name": "Blink link" + }, + "link_deactivate": { + "description": "Deactivates a UPB scene.", + "name": "Deactivate link" + }, + "link_fade_start": { + "description": "Starts fading a link either up or down from current brightness.", + "fields": { + "brightness": { + "description": "[%key:component::upb::services::link_goto::fields::brightness::description%]", + "name": "Brightness" + }, + "brightness_pct": { + "description": "[%key:component::upb::services::link_goto::fields::brightness_pct::description%]", + "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]" + }, + "rate": { + "description": "[%key:component::upb::services::link_goto::fields::rate::description%]", + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]" + } + }, + "name": "Start link fade" + }, + "link_fade_stop": { + "description": "Stops a link fade.", + "name": "Stop link fade" + }, + "link_goto": { + "description": "Set scene to brightness.", + "fields": { + "brightness": { + "description": "Number indicating brightness, where 0 turns the scene off, 1 is the minimum brightness and 255 is the maximum brightness.", + "name": "Brightness" + }, + "brightness_pct": { + "description": "Number indicating percentage of full brightness, where 0 turns the scene off, 1 is the minimum brightness and 100 is the maximum brightness.", + "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]" + }, + "rate": { + "description": "Amount of time for scene to transition to new brightness.", + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]" + } + }, + "name": "Go to link" } } } diff --git a/homeassistant/components/upcloud/strings.json b/homeassistant/components/upcloud/strings.json index fc52916e9b4..f38a21f11c4 100644 --- a/homeassistant/components/upcloud/strings.json +++ b/homeassistant/components/upcloud/strings.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" @@ -7,13 +10,10 @@ "step": { "user": { "data": { - "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%]" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "options": { diff --git a/homeassistant/components/update/strings.json b/homeassistant/components/update/strings.json index a90f5c8a998..13639a164ea 100644 --- a/homeassistant/components/update/strings.json +++ b/homeassistant/components/update/strings.json @@ -1,54 +1,53 @@ { - "title": "Update", "device_automation": { - "trigger_type": { - "changed_states": "{entity_name} update availability changed", - "turned_on": "{entity_name} got an update available", - "turned_off": "{entity_name} became up-to-date" - }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "changed_states": "{entity_name} update availability changed", + "turned_off": "{entity_name} became up-to-date", + "turned_on": "{entity_name} got an update available" } }, "entity_component": { "_": { "name": "[%key:component::update::title%]", "state": { - "on": "Update available", - "off": "Up-to-date" + "off": "Up-to-date", + "on": "Update available" }, "state_attributes": { - "in_progress": { - "name": "In progress", - "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" - } - }, "auto_update": { "name": "Auto update", "state": { - "true": "[%key:common::state::yes%]", - "false": "[%key:common::state::no%]" + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" } }, - "title": { - "name": "Title" - }, - "skipped_version": { - "name": "Skipped version" - }, - "release_url": { - "name": "Release URL" - }, - "release_summary": { - "name": "Release summary" + "in_progress": { + "name": "In progress", + "state": { + "false": "[%key:common::state::no%]", + "true": "[%key:common::state::yes%]" + } }, "installed_version": { "name": "Installed version" }, "latest_version": { "name": "Latest version" + }, + "release_summary": { + "name": "Release summary" + }, + "release_url": { + "name": "Release URL" + }, + "skipped_version": { + "name": "Skipped version" + }, + "title": { + "name": "Title" } } }, @@ -57,27 +56,28 @@ } }, "services": { + "clear_skipped": { + "description": "Removes the skipped version marker from an update.", + "name": "Clear skipped update" + }, "install": { - "name": "Install update", "description": "Installs an update for a device or service.", "fields": { - "version": { - "name": "Version", - "description": "The version to install. If omitted, the latest version will be installed." - }, "backup": { - "name": "Backup", - "description": "If supported by the integration, this creates a backup before starting the update." + "description": "If supported by the integration, this creates a backup before starting the update.", + "name": "Backup" + }, + "version": { + "description": "The version to install. If omitted, the latest version will be installed.", + "name": "Version" } - } + }, + "name": "Install update" }, "skip": { - "name": "Skip update", - "description": "Marks currently available update as skipped." - }, - "clear_skipped": { - "name": "Clear skipped update", - "description": "Removes the skipped version marker from an update." + "description": "Marks currently available update as skipped.", + "name": "Skip update" } - } + }, + "title": "Update" } diff --git a/homeassistant/components/upnp/icons.json b/homeassistant/components/upnp/icons.json index b6451f0fca8..429fb31b57f 100644 --- a/homeassistant/components/upnp/icons.json +++ b/homeassistant/components/upnp/icons.json @@ -7,25 +7,10 @@ "data_sent": { "default": "mdi:server-network" }, - "packets_received": { - "default": "mdi:server-network" - }, - "packets_sent": { - "default": "mdi:server-network" - }, - "external_ip": { - "default": "mdi:server-network" - }, - "uptime": { - "default": "mdi:server-network" - }, - "wan_status": { - "default": "mdi:server-network" - }, "download_speed": { "default": "mdi:server-network" }, - "upload_speed": { + "external_ip": { "default": "mdi:server-network" }, "packet_download_speed": { @@ -34,8 +19,23 @@ "packet_upload_speed": { "default": "mdi:server-network" }, + "packets_received": { + "default": "mdi:server-network" + }, + "packets_sent": { + "default": "mdi:server-network" + }, "port_mapping_number_of_entries_ipv4": { "default": "mdi:server-network" + }, + "upload_speed": { + "default": "mdi:server-network" + }, + "uptime": { + "default": "mdi:server-network" + }, + "wan_status": { + "default": "mdi:server-network" } } } diff --git a/homeassistant/components/upnp/strings.json b/homeassistant/components/upnp/strings.json index 750cffaf1e2..a62c8c4af08 100644 --- a/homeassistant/components/upnp/strings.json +++ b/homeassistant/components/upnp/strings.json @@ -1,5 +1,10 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "incomplete_discovery": "Incomplete discovery", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, "flow_title": "{name}", "step": { "ssdp_confirm": { @@ -10,20 +15,6 @@ "unique_id": "[%key:common::config_flow::data::device%]" } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "incomplete_discovery": "Incomplete discovery" - } - }, - "options": { - "step": { - "init": { - "data": { - "force_poll": "Force polling of all data" - } - } } }, "entity": { @@ -39,35 +30,44 @@ "data_sent": { "name": "Data sent" }, - "packets_received": { - "name": "Packets received" - }, - "packets_sent": { - "name": "Packets sent" + "download_speed": { + "name": "Download speed" }, "external_ip": { "name": "External IP" }, - "uptime": { - "name": "Uptime" - }, "packet_download_speed": { "name": "Packet download speed" }, "packet_upload_speed": { "name": "Packet upload speed" }, - "download_speed": { - "name": "Download speed" + "packets_received": { + "name": "Packets received" + }, + "packets_sent": { + "name": "Packets sent" + }, + "port_mapping_number_of_entries_ipv4": { + "name": "Number of port mapping entries (IPv4)" }, "upload_speed": { "name": "Upload speed" }, + "uptime": { + "name": "Uptime" + }, "wan_status": { "name": "WAN status" - }, - "port_mapping_number_of_entries_ipv4": { - "name": "Number of port mapping entries (IPv4)" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "force_poll": "Force polling of all data" + } } } } diff --git a/homeassistant/components/uptime/strings.json b/homeassistant/components/uptime/strings.json index 868c2a51588..a0ad67bc383 100644 --- a/homeassistant/components/uptime/strings.json +++ b/homeassistant/components/uptime/strings.json @@ -1,10 +1,10 @@ { - "title": "Uptime", "config": { "step": { "user": { "description": "[%key:common::config_flow::description::confirm_setup%]" } } - } + }, + "title": "Uptime" } diff --git a/homeassistant/components/uptime_kuma/icons.json b/homeassistant/components/uptime_kuma/icons.json index 73f5fd63661..982149b91e1 100644 --- a/homeassistant/components/uptime_kuma/icons.json +++ b/homeassistant/components/uptime_kuma/icons.json @@ -4,6 +4,12 @@ "cert_days_remaining": { "default": "mdi:certificate" }, + "hostname": { + "default": "mdi:ip-outline" + }, + "port": { + "default": "mdi:ip-outline" + }, "response_time": { "default": "mdi:timeline-clock-outline" }, @@ -11,8 +17,8 @@ "default": "mdi:lan-connect", "state": { "down": "mdi:lan-disconnect", - "pending": "mdi:lan-pending", - "maintenance": "mdi:account-hard-hat-outline" + "maintenance": "mdi:account-hard-hat-outline", + "pending": "mdi:lan-pending" } }, "type": { @@ -20,12 +26,6 @@ }, "url": { "default": "mdi:web" - }, - "hostname": { - "default": "mdi:ip-outline" - }, - "port": { - "default": "mdi:ip-outline" } } } diff --git a/homeassistant/components/uptime_kuma/strings.json b/homeassistant/components/uptime_kuma/strings.json index fb9b7760f09..1c31c1cf2cb 100644 --- a/homeassistant/components/uptime_kuma/strings.json +++ b/homeassistant/components/uptime_kuma/strings.json @@ -1,62 +1,62 @@ { "config": { - "step": { - "user": { - "description": "Set up **Uptime Kuma** monitoring service", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "url": "Enter the full URL of your Uptime Kuma instance. Be sure to include the protocol (`http` or `https`), the hostname or IP address, the port number (if it is a non-default port), and any path prefix if applicable. Example: `{example_url}`", - "verify_ssl": "Enable SSL certificate verification for secure connections. Disable only if connecting to an Uptime Kuma instance using a self-signed certificate or via IP address", - "api_key": "Enter an API key. To create a new API key navigate to **Settings → API Keys** and select **Add API Key**" - } - }, - "reauth_confirm": { - "title": "Re-authenticate with Uptime Kuma: {name}", - "description": "The API key for **{name}** is invalid. To re-authenticate with Uptime Kuma provide a new API key below", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]" - } - }, - "reconfigure": { - "title": "Update configuration for Uptime Kuma", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]", - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "url": "[%key:component::uptime_kuma::config::step::user::data_description::url%]", - "verify_ssl": "[%key:component::uptime_kuma::config::step::user::data_description::verify_ssl%]", - "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]" - } - }, - "hassio_confirm": { - "title": "Uptime Kuma via Home Assistant add-on", - "description": "Do you want to configure Home Assistant to connect to the Uptime Kuma service provided by the add-on: {addon}?", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]" - } - } + "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%]" }, "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%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "hassio_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]" + }, + "description": "Do you want to configure Home Assistant to connect to the Uptime Kuma service provided by the add-on: {addon}?", + "title": "Uptime Kuma via Home Assistant add-on" + }, + "reauth_confirm": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]" + }, + "description": "The API key for **{name}** is invalid. To re-authenticate with Uptime Kuma provide a new API key below", + "title": "Re-authenticate with Uptime Kuma: {name}" + }, + "reconfigure": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "[%key:component::uptime_kuma::config::step::user::data_description::api_key%]", + "url": "[%key:component::uptime_kuma::config::step::user::data_description::url%]", + "verify_ssl": "[%key:component::uptime_kuma::config::step::user::data_description::verify_ssl%]" + }, + "title": "Update configuration for Uptime Kuma" + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]", + "url": "[%key:common::config_flow::data::url%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "api_key": "Enter an API key. To create a new API key navigate to **Settings → API Keys** and select **Add API Key**", + "url": "Enter the full URL of your Uptime Kuma instance. Be sure to include the protocol (`http` or `https`), the hostname or IP address, the port number (if it is a non-default port), and any path prefix if applicable. Example: `{example_url}`", + "verify_ssl": "Enable SSL certificate verification for secure connections. Disable only if connecting to an Uptime Kuma instance using a self-signed certificate or via IP address" + }, + "description": "Set up **Uptime Kuma** monitoring service" + } } }, "entity": { @@ -64,57 +64,57 @@ "cert_days_remaining": { "name": "Certificate expiry" }, + "hostname": { + "name": "Monitored hostname" + }, + "port": { + "name": "Monitored port" + }, "response_time": { "name": "Response time" }, "status": { "name": "Status", "state": { - "up": "Up", "down": "Down", + "maintenance": "Maintenance", "pending": "Pending", - "maintenance": "Maintenance" + "up": "Up" } }, "type": { "name": "Monitor type", "state": { - "http": "HTTP(s)", - "port": "TCP port", - "ping": "Ping", - "keyword": "HTTP(s) - Keyword", "dns": "DNS", - "push": "Push", - "steam": "Steam Game Server", - "mqtt": "MQTT", - "sqlserver": "Microsoft SQL Server", - "json_query": "HTTP(s) - JSON query", - "group": "Group", "docker": "Docker", - "grpc_keyword": "gRPC(s) - Keyword", - "real_browser": "HTTP(s) - Browser engine", "gamedig": "GameDig", + "group": "Group", + "grpc_keyword": "gRPC(s) - Keyword", + "http": "HTTP(s)", + "json_query": "HTTP(s) - JSON query", "kafka_producer": "Kafka Producer", - "postgres": "PostgreSQL", - "mysql": "MySQL/MariaDB", + "keyword": "HTTP(s) - Keyword", + "manual": "Manual", "mongodb": "MongoDB", - "radius": "RADIUS", - "redis": "Redis", - "tailscale_ping": "Tailscale Ping", - "snmp": "SNMP", - "smtp": "SMTP", + "mqtt": "MQTT", + "mysql": "MySQL/MariaDB", + "ping": "Ping", + "port": "TCP port", + "postgres": "PostgreSQL", + "push": "Push", "rabbit_mq": "RabbitMQ", - "manual": "Manual" + "radius": "RADIUS", + "real_browser": "HTTP(s) - Browser engine", + "redis": "Redis", + "smtp": "SMTP", + "snmp": "SNMP", + "sqlserver": "Microsoft SQL Server", + "steam": "Steam Game Server", + "tailscale_ping": "Tailscale Ping" } }, "url": { "name": "Monitored URL" - }, - "hostname": { - "name": "Monitored hostname" - }, - "port": { - "name": "Monitored port" } }, "update": { diff --git a/homeassistant/components/uptimerobot/icons.json b/homeassistant/components/uptimerobot/icons.json index 36bd3732f41..2cfbc6e32ab 100644 --- a/homeassistant/components/uptimerobot/icons.json +++ b/homeassistant/components/uptimerobot/icons.json @@ -4,10 +4,10 @@ "monitor_status": { "default": "mdi:television", "state": { + "down": "mdi:television-off", "pause": "mdi:television-pause", - "up": "mdi:television-shimmer", "seems_down": "mdi:television-off", - "down": "mdi:television-off" + "up": "mdi:television-shimmer" } } }, diff --git a/homeassistant/components/uptimerobot/strings.json b/homeassistant/components/uptimerobot/strings.json index f912b6dd993..2b11b51dbb0 100644 --- a/homeassistant/components/uptimerobot/strings.json +++ b/homeassistant/components/uptimerobot/strings.json @@ -1,22 +1,28 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", + "reauth_failed_existing": "Could not update the config entry, please remove the integration and set it up again.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", + "not_main_key": "Wrong API key type detected, use the 'main' API key", + "reauth_failed_matching_account": "The API key you provided does not match the account ID for existing configuration.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "The 'main' API key for your UptimeRobot account" - } - }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", "data": { "api_key": "[%key:common::config_flow::data::api_key%]" }, "data_description": { "api_key": "[%key:component::uptimerobot::config::step::user::data_description::api_key%]" - } + }, + "title": "[%key:common::config_flow::title::reauth%]" }, "reconfigure": { "data": { @@ -25,21 +31,15 @@ "data_description": { "api_key": "[%key:component::uptimerobot::config::step::user::data_description::api_key%]" } + }, + "user": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "The 'main' API key for your UptimeRobot account" + } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "not_main_key": "Wrong API key type detected, use the 'main' API key", - "reauth_failed_matching_account": "The API key you provided does not match the account ID for existing configuration." - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reauth_failed_existing": "Could not update the config entry, please remove the integration and set it up again.", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { diff --git a/homeassistant/components/utility_meter/icons.json b/homeassistant/components/utility_meter/icons.json index 2539b73d168..3d4e60d8ae8 100644 --- a/homeassistant/components/utility_meter/icons.json +++ b/homeassistant/components/utility_meter/icons.json @@ -1,22 +1,22 @@ { "entity": { - "sensor": { - "utility_meter": { - "default": "mdi:counter" - } - }, "select": { "tariff": { "default": "mdi:clock-outline" } + }, + "sensor": { + "utility_meter": { + "default": "mdi:counter" + } } }, "services": { - "reset": { - "service": "mdi:numeric-0-box-outline" - }, "calibrate": { "service": "mdi:auto-fix" + }, + "reset": { + "service": "mdi:numeric-0-box-outline" } } } diff --git a/homeassistant/components/utility_meter/strings.json b/homeassistant/components/utility_meter/strings.json index 0ba7ad85050..bed3ef2e453 100644 --- a/homeassistant/components/utility_meter/strings.json +++ b/homeassistant/components/utility_meter/strings.json @@ -1,18 +1,18 @@ { - "title": "Utility Meter", "config": { + "error": { + "tariffs_not_unique": "Tariffs must be unique" + }, "step": { "user": { - "title": "Create Utility Meter", - "description": "Create a sensor which tracks consumption of various utilities (e.g., energy, gas, water, heating) over a configured period of time, typically monthly. The utility meter sensor optionally supports splitting the consumption by tariffs, in that case one sensor for each tariff is created as well as a select entity to choose the current tariff.", "data": { "always_available": "Sensor always available", "cycle": "Meter reset cycle", "delta_values": "Delta values", "name": "[%key:common::config_flow::data::name%]", - "periodically_resetting": "Periodically resetting", "net_consumption": "Net consumption", "offset": "Meter reset offset", + "periodically_resetting": "Periodically resetting", "source": "Input sensor", "tariffs": "Supported tariffs" }, @@ -20,14 +20,13 @@ "always_available": "If activated, the sensor will always show the last known value, even if the source entity is unavailable or unknown.", "delta_values": "Enable if the source values are delta values since the last reading instead of absolute values.", "net_consumption": "Enable if the source is a net meter, meaning it can both increase and decrease.", - "periodically_resetting": "Enable if the source may periodically reset to 0, for example at boot of the measuring device. If disabled, new readings are directly recorded after data inavailability.", "offset": "Offset the day of a monthly meter reset.", + "periodically_resetting": "Enable if the source may periodically reset to 0, for example at boot of the measuring device. If disabled, new readings are directly recorded after data inavailability.", "tariffs": "A list of supported tariffs, leave empty if only a single tariff is needed." - } + }, + "description": "Create a sensor which tracks consumption of various utilities (e.g., energy, gas, water, heating) over a configured period of time, typically monthly. The utility meter sensor optionally supports splitting the consumption by tariffs, in that case one sensor for each tariff is created as well as a select entity to choose the current tariff.", + "title": "Create Utility Meter" } - }, - "error": { - "tariffs_not_unique": "Tariffs must be unique" } }, "options": { @@ -35,8 +34,8 @@ "init": { "data": { "always_available": "[%key:component::utility_meter::config::step::user::data::always_available%]", - "source": "[%key:component::utility_meter::config::step::user::data::source%]", - "periodically_resetting": "[%key:component::utility_meter::config::step::user::data::periodically_resetting%]" + "periodically_resetting": "[%key:component::utility_meter::config::step::user::data::periodically_resetting%]", + "source": "[%key:component::utility_meter::config::step::user::data::source%]" }, "data_description": { "always_available": "[%key:component::utility_meter::config::step::user::data_description::always_available%]", @@ -48,14 +47,14 @@ "selector": { "cycle": { "options": { + "bimonthly": "Every two months", + "daily": "Daily", + "hourly": "Hourly", + "monthly": "Monthly", "none": "No cycle", "quarter-hourly": "Every 15 minutes", - "hourly": "Hourly", - "daily": "Daily", - "weekly": "Weekly", - "monthly": "Monthly", - "bimonthly": "Every two months", "quarterly": "Quarterly", + "weekly": "Weekly", "yearly": "Yearly" } }, @@ -66,19 +65,20 @@ } }, "services": { - "reset": { - "name": "Reset", - "description": "Resets all counters of a utility meter." - }, "calibrate": { - "name": "Calibrate", "description": "Calibrates a utility meter sensor.", "fields": { "value": { - "name": "Value", - "description": "Value to which set the meter." + "description": "Value to which set the meter.", + "name": "Value" } - } + }, + "name": "Calibrate" + }, + "reset": { + "description": "Resets all counters of a utility meter.", + "name": "Reset" } - } + }, + "title": "Utility Meter" } diff --git a/homeassistant/components/v2c/icons.json b/homeassistant/components/v2c/icons.json index 6b0a41bf752..29a0ecd2081 100644 --- a/homeassistant/components/v2c/icons.json +++ b/homeassistant/components/v2c/icons.json @@ -1,52 +1,52 @@ { "entity": { "sensor": { - "charge_power": { - "default": "mdi:ev-station" + "battery_power": { + "default": "mdi:home-battery" }, "charge_energy": { "default": "mdi:ev-station" }, + "charge_power": { + "default": "mdi:ev-station" + }, "charge_time": { "default": "mdi:timer" }, - "house_power": { - "default": "mdi:home-lightning-bolt" - }, "fv_power": { "default": "mdi:solar-power-variant" }, - "meter_error": { - "default": "mdi:alert" - }, - "battery_power": { - "default": "mdi:home-battery" - }, - "ssid": { - "default": "mdi:wifi" + "house_power": { + "default": "mdi:home-lightning-bolt" }, "ip_address": { "default": "mdi:ip" }, + "meter_error": { + "default": "mdi:alert" + }, "signal_status": { "default": "mdi:signal" + }, + "ssid": { + "default": "mdi:wifi" } }, "switch": { - "paused": { - "default": "mdi:pause" + "dynamic": { + "default": "mdi:gauge" }, "locked": { "default": "mdi:lock" }, - "timer": { - "default": "mdi:timer" - }, - "dynamic": { - "default": "mdi:gauge" - }, "pause_dynamic": { "default": "mdi:pause" + }, + "paused": { + "default": "mdi:pause" + }, + "timer": { + "default": "mdi:timer" } } } diff --git a/homeassistant/components/v2c/strings.json b/homeassistant/components/v2c/strings.json index d52b8f066f9..39453ebb625 100644 --- a/homeassistant/components/v2c/strings.json +++ b/homeassistant/components/v2c/strings.json @@ -3,6 +3,10 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -12,20 +16,16 @@ "host": "Hostname or IP address of your V2C Trydan EVSE." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { "binary_sensor": { - "connected": { - "name": "Connected" - }, "charging": { "name": "Charging" }, + "connected": { + "name": "Connected" + }, "ready": { "name": "Ready" } @@ -42,92 +42,92 @@ } }, "sensor": { - "charge_power": { - "name": "Charge power" - }, - "voltage_installation": { - "name": "Installation voltage" + "battery_power": { + "name": "Battery power" }, "charge_energy": { "name": "Charge energy" }, + "charge_power": { + "name": "Charge power" + }, "charge_time": { "name": "Charge time" }, - "house_power": { - "name": "House power" - }, "fv_power": { "name": "Photovoltaic power" }, - "battery_power": { - "name": "Battery power" - }, - "meter_error": { - "name": "Meter error", - "state": { - "no_error": "No error", - "communication": "Communication", - "reading": "Reading", - "meter": "Meter", - "waiting_wifi": "Waiting for Wi-Fi", - "waiting_communication": "Waiting communication", - "wrong_ip": "Wrong IP", - "meter_not_found": "Meter not found", - "wrong_meter": "Wrong meter", - "no_response": "No response", - "clamp_not_connected": "Clamp not connected", - "illegal_function": "Illegal function", - "illegal_data_address": "Illegal data address", - "illegal_data_value": "Illegal data value", - "server_device_failure": "Server device failure", - "acknowledge": "Acknowledge", - "server_device_busy": "Server device busy", - "negative_acknowledge": "Negative acknowledge", - "memory_parity_error": "Memory parity error", - "gateway_path_unavailable": "Gateway path unavailable", - "gateway_target_no_resp": "Gateway target no response", - "server_rtu_inactive244_timeout": "Server RTU inactive/timeout", - "invalid_server": "Invalid server", - "crc_error": "CRC error", - "fc_mismatch": "FC mismatch", - "server_id_mismatch": "Server id mismatch", - "packet_length_error": "Packet length error", - "parameter_count_error": "Parameter count error", - "parameter_limit_error": "Parameter limit error", - "request_queue_full": "Request queue full", - "illegal_ip_or_port": "Illegal IP or port", - "ip_connection_failed": "IP connection failed", - "tcp_head_mismatch": "TCP head mismatch", - "empty_message": "Empty message", - "undefined_error": "Undefined error" - } - }, - "ssid": { - "name": "SSID" + "house_power": { + "name": "House power" }, "ip_address": { "name": "IP address" }, + "meter_error": { + "name": "Meter error", + "state": { + "acknowledge": "Acknowledge", + "clamp_not_connected": "Clamp not connected", + "communication": "Communication", + "crc_error": "CRC error", + "empty_message": "Empty message", + "fc_mismatch": "FC mismatch", + "gateway_path_unavailable": "Gateway path unavailable", + "gateway_target_no_resp": "Gateway target no response", + "illegal_data_address": "Illegal data address", + "illegal_data_value": "Illegal data value", + "illegal_function": "Illegal function", + "illegal_ip_or_port": "Illegal IP or port", + "invalid_server": "Invalid server", + "ip_connection_failed": "IP connection failed", + "memory_parity_error": "Memory parity error", + "meter": "Meter", + "meter_not_found": "Meter not found", + "negative_acknowledge": "Negative acknowledge", + "no_error": "No error", + "no_response": "No response", + "packet_length_error": "Packet length error", + "parameter_count_error": "Parameter count error", + "parameter_limit_error": "Parameter limit error", + "reading": "Reading", + "request_queue_full": "Request queue full", + "server_device_busy": "Server device busy", + "server_device_failure": "Server device failure", + "server_id_mismatch": "Server id mismatch", + "server_rtu_inactive244_timeout": "Server RTU inactive/timeout", + "tcp_head_mismatch": "TCP head mismatch", + "undefined_error": "Undefined error", + "waiting_communication": "Waiting communication", + "waiting_wifi": "Waiting for Wi-Fi", + "wrong_ip": "Wrong IP", + "wrong_meter": "Wrong meter" + } + }, "signal_status": { "name": "Signal status" + }, + "ssid": { + "name": "SSID" + }, + "voltage_installation": { + "name": "Installation voltage" } }, "switch": { - "paused": { - "name": "Pause session" + "dynamic": { + "name": "Dynamic intensity modulation" }, "locked": { "name": "Lock EVSE" }, - "timer": { - "name": "Charge point timer" - }, - "dynamic": { - "name": "Dynamic intensity modulation" - }, "pause_dynamic": { "name": "Pause dynamic control modulation" + }, + "paused": { + "name": "Pause session" + }, + "timer": { + "name": "Charge point timer" } } } diff --git a/homeassistant/components/vacuum/strings.json b/homeassistant/components/vacuum/strings.json index f9e7a2844cd..c6107261e13 100644 --- a/homeassistant/components/vacuum/strings.json +++ b/homeassistant/components/vacuum/strings.json @@ -1,20 +1,19 @@ { - "title": "Vacuum", "device_automation": { - "condition_type": { - "is_docked": "{entity_name} is docked", - "is_cleaning": "{entity_name} is cleaning" - }, - "trigger_type": { - "cleaning": "{entity_name} started cleaning", - "docked": "{entity_name} docked" - }, "action_type": { "clean": "Let {entity_name} clean", "dock": "Let {entity_name} return to the dock" }, + "condition_type": { + "is_cleaning": "{entity_name} is cleaning", + "is_docked": "{entity_name} is docked" + }, "extra_fields": { "for": "[%key:common::device_automation::extra_fields::for%]" + }, + "trigger_type": { + "cleaning": "{entity_name} started cleaning", + "docked": "{entity_name} docked" } }, "entity_component": { @@ -33,69 +32,70 @@ } }, "services": { - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Starts a new cleaning task." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Stops the current cleaning task and returns to its dock." - }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles the vacuum cleaner on/off." - }, - "stop": { - "name": "[%key:common::action::stop%]", - "description": "Stops the current cleaning task." + "clean_spot": { + "description": "Tells the vacuum cleaner to do a spot clean-up.", + "name": "Clean spot" }, "locate": { - "name": "Locate", - "description": "Locates the vacuum cleaner robot." - }, - "start_pause": { - "name": "Start/pause", - "description": "Starts, pauses, or resumes the cleaning task." - }, - "start": { - "name": "[%key:common::action::start%]", - "description": "Starts or resumes the cleaning task." + "description": "Locates the vacuum cleaner robot.", + "name": "Locate" }, "pause": { - "name": "[%key:common::action::pause%]", - "description": "Pauses the cleaning task." + "description": "Pauses the cleaning task.", + "name": "[%key:common::action::pause%]" }, "return_to_base": { - "name": "Return to dock", - "description": "Tells the vacuum cleaner to return to its dock." - }, - "clean_spot": { - "name": "Clean spot", - "description": "Tells the vacuum cleaner to do a spot clean-up." + "description": "Tells the vacuum cleaner to return to its dock.", + "name": "Return to dock" }, "send_command": { - "name": "Send command", "description": "Sends a command to the vacuum cleaner.", "fields": { "command": { - "name": "Command", - "description": "Command to execute. The commands are integration-specific." + "description": "Command to execute. The commands are integration-specific.", + "name": "Command" }, "params": { - "name": "Parameters", - "description": "Parameters for the command. The parameters are integration-specific." + "description": "Parameters for the command. The parameters are integration-specific.", + "name": "Parameters" } - } + }, + "name": "Send command" }, "set_fan_speed": { - "name": "Set fan speed", "description": "Sets the fan speed of the vacuum cleaner.", "fields": { "fan_speed": { - "name": "Fan speed", - "description": "Fan speed. The value depends on the integration. Some integrations have speed steps, like 'medium'. Some use a percentage, between 0 and 100." + "description": "Fan speed. The value depends on the integration. Some integrations have speed steps, like 'medium'. Some use a percentage, between 0 and 100.", + "name": "Fan speed" } - } + }, + "name": "Set fan speed" + }, + "start": { + "description": "Starts or resumes the cleaning task.", + "name": "[%key:common::action::start%]" + }, + "start_pause": { + "description": "Starts, pauses, or resumes the cleaning task.", + "name": "Start/pause" + }, + "stop": { + "description": "Stops the current cleaning task.", + "name": "[%key:common::action::stop%]" + }, + "toggle": { + "description": "Toggles the vacuum cleaner on/off.", + "name": "[%key:common::action::toggle%]" + }, + "turn_off": { + "description": "Stops the current cleaning task and returns to its dock.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Starts a new cleaning task.", + "name": "[%key:common::action::turn_on%]" } - } + }, + "title": "Vacuum" } diff --git a/homeassistant/components/vallox/icons.json b/homeassistant/components/vallox/icons.json index 9123d1bfe9b..5d9d7449176 100644 --- a/homeassistant/components/vallox/icons.json +++ b/homeassistant/components/vallox/icons.json @@ -11,23 +11,23 @@ } }, "sensor": { + "cell_state": { + "default": "mdi:swap-horizontal-bold" + }, "current_profile": { "default": "mdi:gauge" }, - "fan_speed": { - "default": "mdi:fan" + "efficiency": { + "default": "mdi:gauge" }, "extract_fan_speed": { "default": "mdi:fan" }, - "supply_fan_speed": { + "fan_speed": { "default": "mdi:fan" }, - "cell_state": { - "default": "mdi:swap-horizontal-bold" - }, - "efficiency": { - "default": "mdi:gauge" + "supply_fan_speed": { + "default": "mdi:fan" } }, "switch": { @@ -37,8 +37,8 @@ } }, "services": { - "set_profile_fan_speed_home": { - "service": "mdi:home" + "set_profile": { + "service": "mdi:fan" }, "set_profile_fan_speed_away": { "service": "mdi:walk" @@ -46,8 +46,8 @@ "set_profile_fan_speed_boost": { "service": "mdi:speedometer" }, - "set_profile": { - "service": "mdi:fan" + "set_profile_fan_speed_home": { + "service": "mdi:home" } } } diff --git a/homeassistant/components/vallox/strings.json b/homeassistant/components/vallox/strings.json index f12a5328330..ab459a1c29c 100644 --- a/homeassistant/components/vallox/strings.json +++ b/homeassistant/components/vallox/strings.json @@ -1,14 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Vallox device." - } - }, "reconfigure": { "data": { "host": "[%key:common::config_flow::data::host%]" @@ -16,19 +20,15 @@ "data_description": { "host": "[%key:component::vallox::config::step::user::data_description::host%]" } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Vallox device." + } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "entity": { @@ -37,127 +37,127 @@ "name": "Post-heater" } }, + "date": { + "filter_change_date": { + "name": "Filter change date" + } + }, "number": { - "supply_air_target_home": { - "name": "Supply air temperature (Home)" - }, "supply_air_target_away": { "name": "Supply air temperature (Away)" }, "supply_air_target_boost": { "name": "Supply air temperature (Boost)" + }, + "supply_air_target_home": { + "name": "Supply air temperature (Home)" } }, "sensor": { - "current_profile": { - "name": "Current profile" - }, - "fan_speed": { - "name": "Fan speed" - }, - "extract_fan_speed": { - "name": "Extract fan speed" - }, - "supply_fan_speed": { - "name": "Supply fan speed" - }, - "remaining_time_for_filter": { - "name": "Remaining time for filter" - }, "cell_state": { "name": "Cell state" }, - "extract_air": { - "name": "Extract air" + "current_profile": { + "name": "Current profile" + }, + "efficiency": { + "name": "Efficiency" }, "exhaust_air": { "name": "Exhaust air" }, + "extract_air": { + "name": "Extract air" + }, + "extract_fan_speed": { + "name": "Extract fan speed" + }, + "fan_speed": { + "name": "Fan speed" + }, + "optional_air": { + "name": "Optional air" + }, "outdoor_air": { "name": "Outdoor air" }, + "profile_duration": { + "name": "Profile duration" + }, + "remaining_time_for_filter": { + "name": "Remaining time for filter" + }, "supply_air": { "name": "Supply air" }, "supply_cell_air": { "name": "Supply cell air" }, - "optional_air": { - "name": "Optional air" - }, - "efficiency": { - "name": "Efficiency" - }, - "profile_duration": { - "name": "Profile duration" + "supply_fan_speed": { + "name": "Supply fan speed" } }, "switch": { "bypass_locked": { "name": "Bypass locked" } - }, - "date": { - "filter_change_date": { - "name": "Filter change date" - } - } - }, - "services": { - "set_profile_fan_speed_home": { - "name": "Set profile fan speed home", - "description": "Sets the fan speed of the Home profile.", - "fields": { - "fan_speed": { - "name": "Fan speed", - "description": "Relative speed of the built-in fans." - } - } - }, - "set_profile_fan_speed_away": { - "name": "Set profile fan speed away", - "description": "Sets the fan speed of the Away profile.", - "fields": { - "fan_speed": { - "name": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::name%]", - "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]" - } - } - }, - "set_profile_fan_speed_boost": { - "name": "Set profile fan speed boost", - "description": "Sets the fan speed of the Boost profile.", - "fields": { - "fan_speed": { - "name": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::name%]", - "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]" - } - } - }, - "set_profile": { - "name": "Activate profile for duration", - "description": "Activate a profile and optionally set duration.", - "fields": { - "profile": { - "name": "Profile", - "description": "Profile to activate" - }, - "duration": { - "name": "Duration", - "description": "Activation duration, if omitted device uses stored duration. Duration of 65535 activates profile without timeout. Duration only applies to Boost, Fireplace and Extra profiles." - } - } } }, "selector": { "profile": { "options": { - "home": "[%key:common::state::home%]", "away": "[%key:common::state::not_home%]", "boost": "Boost", + "extra": "Extra", "fireplace": "Fireplace", - "extra": "Extra" + "home": "[%key:common::state::home%]" } } + }, + "services": { + "set_profile": { + "description": "Activate a profile and optionally set duration.", + "fields": { + "duration": { + "description": "Activation duration, if omitted device uses stored duration. Duration of 65535 activates profile without timeout. Duration only applies to Boost, Fireplace and Extra profiles.", + "name": "Duration" + }, + "profile": { + "description": "Profile to activate", + "name": "Profile" + } + }, + "name": "Activate profile for duration" + }, + "set_profile_fan_speed_away": { + "description": "Sets the fan speed of the Away profile.", + "fields": { + "fan_speed": { + "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]", + "name": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::name%]" + } + }, + "name": "Set profile fan speed away" + }, + "set_profile_fan_speed_boost": { + "description": "Sets the fan speed of the Boost profile.", + "fields": { + "fan_speed": { + "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]", + "name": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::name%]" + } + }, + "name": "Set profile fan speed boost" + }, + "set_profile_fan_speed_home": { + "description": "Sets the fan speed of the Home profile.", + "fields": { + "fan_speed": { + "description": "Relative speed of the built-in fans.", + "name": "Fan speed" + } + }, + "name": "Set profile fan speed home" + } } } diff --git a/homeassistant/components/valve/strings.json b/homeassistant/components/valve/strings.json index 39dc297fe7d..e781829b781 100644 --- a/homeassistant/components/valve/strings.json +++ b/homeassistant/components/valve/strings.json @@ -1,13 +1,12 @@ { - "title": "Valve", "entity_component": { "_": { "name": "[%key:component::valve::title%]", "state": { - "open": "[%key:common::state::open%]", - "opening": "[%key:common::state::opening%]", "closed": "[%key:common::state::closed%]", "closing": "[%key:common::state::closing%]", + "open": "[%key:common::state::open%]", + "opening": "[%key:common::state::opening%]", "stopped": "[%key:common::state::stopped%]" }, "state_attributes": { @@ -16,39 +15,40 @@ } } }, - "water": { - "name": "Water" - }, "gas": { "name": "Gas" + }, + "water": { + "name": "Water" } }, "services": { - "open_valve": { - "name": "[%key:common::action::open%]", - "description": "Opens a valve." - }, "close_valve": { - "name": "[%key:common::action::close%]", - "description": "Closes a valve." + "description": "Closes a valve.", + "name": "[%key:common::action::close%]" }, - "toggle": { - "name": "[%key:common::action::toggle%]", - "description": "Toggles a valve open/closed." + "open_valve": { + "description": "Opens a valve.", + "name": "[%key:common::action::open%]" }, "set_valve_position": { - "name": "Set position", "description": "Moves a valve to a specific position.", "fields": { "position": { - "name": "Position", - "description": "Target position." + "description": "Target position.", + "name": "Position" } - } + }, + "name": "Set position" }, "stop_valve": { - "name": "[%key:common::action::stop%]", - "description": "Stops the valve movement." + "description": "Stops the valve movement.", + "name": "[%key:common::action::stop%]" + }, + "toggle": { + "description": "Toggles a valve open/closed.", + "name": "[%key:common::action::toggle%]" } - } + }, + "title": "Valve" } diff --git a/homeassistant/components/vegehub/strings.json b/homeassistant/components/vegehub/strings.json index 3566a9d6a8c..c48ffdd66df 100644 --- a/homeassistant/components/vegehub/strings.json +++ b/homeassistant/components/vegehub/strings.json @@ -1,34 +1,33 @@ { - "title": "VegeHub", "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "Device already detected. Check discovered devices.", + "cannot_connect": "Failed to connect to the device. Please try again.", + "timeout_connect": "Timed out connecting. Ensure VegeHub is awake, and try again.", + "unknown_error": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "Failed to connect. Ensure VegeHub is awake, and try again.", + "invalid_ip": "Invalid IPv4 address.", + "timeout_connect": "Timeout establishing connection. Ensure VegeHub is awake, and try again." + }, "flow_title": "{host}", "step": { "user": { - "title": "Set up VegeHub", - "description": "Do you want to set up this VegeHub?", "data": { "ip_address": "[%key:common::config_flow::data::ip%]" }, "data_description": { "ip_address": "IP address of target VegeHub" - } + }, + "description": "Do you want to set up this VegeHub?", + "title": "Set up VegeHub" }, "zeroconf_confirm": { - "title": "[%key:component::vegehub::config::step::user::title%]", - "description": "[%key:component::vegehub::config::step::user::description%]" + "description": "[%key:component::vegehub::config::step::user::description%]", + "title": "[%key:component::vegehub::config::step::user::title%]" } - }, - "error": { - "cannot_connect": "Failed to connect. Ensure VegeHub is awake, and try again.", - "timeout_connect": "Timeout establishing connection. Ensure VegeHub is awake, and try again.", - "invalid_ip": "Invalid IPv4 address." - }, - "abort": { - "cannot_connect": "Failed to connect to the device. Please try again.", - "timeout_connect": "Timed out connecting. Ensure VegeHub is awake, and try again.", - "already_in_progress": "Device already detected. Check discovered devices.", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "unknown_error": "[%key:common::config_flow::error::unknown%]" } }, "entity": { @@ -45,5 +44,6 @@ "name": "Actuator {index}" } } - } + }, + "title": "VegeHub" } diff --git a/homeassistant/components/velbus/icons.json b/homeassistant/components/velbus/icons.json index a46f5e5fbf1..c56379f8b4c 100644 --- a/homeassistant/components/velbus/icons.json +++ b/homeassistant/components/velbus/icons.json @@ -1,16 +1,16 @@ { "services": { - "sync_clock": { - "service": "mdi:clock" + "clear_cache": { + "service": "mdi:delete" }, "scan": { "service": "mdi:magnify" }, - "clear_cache": { - "service": "mdi:delete" - }, "set_memo_text": { "service": "mdi:note-text" + }, + "sync_clock": { + "service": "mdi:clock" } } } diff --git a/homeassistant/components/velbus/manifest.json b/homeassistant/components/velbus/manifest.json index 2b4b71bcf18..68452db198b 100644 --- a/homeassistant/components/velbus/manifest.json +++ b/homeassistant/components/velbus/manifest.json @@ -17,20 +17,20 @@ "requirements": ["velbus-aio==2025.8.0"], "usb": [ { - "vid": "10CF", - "pid": "0B1B" + "pid": "0B1B", + "vid": "10CF" }, { - "vid": "10CF", - "pid": "0516" + "pid": "0516", + "vid": "10CF" }, { - "vid": "10CF", - "pid": "0517" + "pid": "0517", + "vid": "10CF" }, { - "vid": "10CF", - "pid": "0518" + "pid": "0518", + "vid": "10CF" } ] } diff --git a/homeassistant/components/velbus/strings.json b/homeassistant/components/velbus/strings.json index 82bcf5cdd5d..dd52c3a417e 100644 --- a/homeassistant/components/velbus/strings.json +++ b/homeassistant/components/velbus/strings.json @@ -1,118 +1,118 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { - "user": { - "title": "Define the Velbus connection", - "description": "How do you want to configure the Velbus hub?", - "menu_options": { - "network": "Via network connection", - "usbselect": "Via USB device" - } - }, "network": { - "title": "TCP/IP configuration", "data": { - "tls": "Use TLS (secure connection)", "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", "port": "[%key:common::config_flow::data::port%]", - "password": "[%key:common::config_flow::data::password%]" + "tls": "Use TLS (secure connection)" }, "data_description": { - "tls": "Enable this if you use a secure connection to your Velbus interface, like a Signum.", "host": "The IP address or hostname of the Velbus interface.", + "password": "The password of the Velbus interface, this is only needed if the interface is password-protected.", "port": "The port number of the Velbus interface.", - "password": "The password of the Velbus interface, this is only needed if the interface is password-protected." + "tls": "Enable this if you use a secure connection to your Velbus interface, like a Signum." }, - "description": "TCP/IP configuration, in case you use a Signum, VelServ, velbus-tcp or any other Velbus to TCP/IP interface." + "description": "TCP/IP configuration, in case you use a Signum, VelServ, velbus-tcp or any other Velbus to TCP/IP interface.", + "title": "TCP/IP configuration" }, "usbselect": { - "title": "USB configuration", "data": { "port": "[%key:common::config_flow::data::port%]" }, "data_description": { "port": "Select the serial port for your Velbus USB interface." }, - "description": "Select the serial port for your Velbus USB interface." + "description": "Select the serial port for your Velbus USB interface.", + "title": "USB configuration" + }, + "user": { + "description": "How do you want to configure the Velbus hub?", + "menu_options": { + "network": "Via network connection", + "usbselect": "Via USB device" + }, + "title": "Define the Velbus connection" } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "exceptions": { + "integration_not_found": { + "message": "Integration \"{target}\" not found in registry." + }, "invalid_hvac_mode": { "message": "Climate mode {hvac_mode} is not supported." }, "not_loaded": { "message": "{target} is not loaded." - }, - "integration_not_found": { - "message": "Integration \"{target}\" not found in registry." - } - }, - "services": { - "sync_clock": { - "name": "Sync clock", - "description": "Syncs the clock of the Velbus modules to the Home Assistant clock, this is the same as the 'sync clock' from VelbusLink.", - "fields": { - "config_entry": { - "name": "Config entry", - "description": "The config entry of the Velbus integration" - } - } - }, - "scan": { - "name": "Scan", - "description": "Scans the Velbus modules, this will be needed if you see unknown module warnings in the logs, or when you added new modules.", - "fields": { - "config_entry": { - "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]", - "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]" - } - } - }, - "clear_cache": { - "name": "Clear cache", - "description": "Clears the Velbus cache and then starts a new scan.", - "fields": { - "config_entry": { - "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]", - "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]" - }, - "address": { - "name": "Address", - "description": "The module address in decimal format, if this is provided we only clear this module, if nothing is provided we clear the whole cache directory (all modules) The decimal addresses are displayed in front of the modules listed at the integration page." - } - } - }, - "set_memo_text": { - "name": "Set memo text", - "description": "Sets the memo text to the display of modules like VMBGPO, VMBGPOD. Be sure the pages of the modules are configured to display the memo text.", - "fields": { - "config_entry": { - "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]", - "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]" - }, - "address": { - "name": "Address", - "description": "The module address in decimal format. The decimal addresses are displayed in front of the modules listed at the integration page." - }, - "memo_text": { - "name": "Memo text", - "description": "The actual text to be displayed. Text is limited to 64 characters." - } - } } }, "issues": { "deprecated_interface_parameter": { - "title": "Deprecated 'interface' parameter", - "description": "The 'interface' parameter in the Velbus actions is deprecated. The 'config_entry' parameter should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue." + "description": "The 'interface' parameter in the Velbus actions is deprecated. The 'config_entry' parameter should be used going forward.\n\nPlease adjust your automations or scripts to fix this issue.", + "title": "Deprecated 'interface' parameter" + } + }, + "services": { + "clear_cache": { + "description": "Clears the Velbus cache and then starts a new scan.", + "fields": { + "address": { + "description": "The module address in decimal format, if this is provided we only clear this module, if nothing is provided we clear the whole cache directory (all modules) The decimal addresses are displayed in front of the modules listed at the integration page.", + "name": "Address" + }, + "config_entry": { + "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]", + "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]" + } + }, + "name": "Clear cache" + }, + "scan": { + "description": "Scans the Velbus modules, this will be needed if you see unknown module warnings in the logs, or when you added new modules.", + "fields": { + "config_entry": { + "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]", + "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]" + } + }, + "name": "Scan" + }, + "set_memo_text": { + "description": "Sets the memo text to the display of modules like VMBGPO, VMBGPOD. Be sure the pages of the modules are configured to display the memo text.", + "fields": { + "address": { + "description": "The module address in decimal format. The decimal addresses are displayed in front of the modules listed at the integration page.", + "name": "Address" + }, + "config_entry": { + "description": "[%key:component::velbus::services::sync_clock::fields::config_entry::description%]", + "name": "[%key:component::velbus::services::sync_clock::fields::config_entry::name%]" + }, + "memo_text": { + "description": "The actual text to be displayed. Text is limited to 64 characters.", + "name": "Memo text" + } + }, + "name": "Set memo text" + }, + "sync_clock": { + "description": "Syncs the clock of the Velbus modules to the Home Assistant clock, this is the same as the 'sync clock' from VelbusLink.", + "fields": { + "config_entry": { + "description": "The config entry of the Velbus integration", + "name": "Config entry" + } + }, + "name": "Sync clock" } } } diff --git a/homeassistant/components/velux/strings.json b/homeassistant/components/velux/strings.json index 5123c59fe43..cce7cdf2f13 100644 --- a/homeassistant/components/velux/strings.json +++ b/homeassistant/components/velux/strings.json @@ -1,31 +1,25 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "discovery_confirm": { - "description": "Please enter the password for {name} ({host})", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" - } - }, - "services": { - "reboot_gateway": { - "name": "Reboot gateway", - "description": "Reboots the KLF200 Gateway." + "step": { + "discovery_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please enter the password for {name} ({host})" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]" + } + } } }, "entity": { @@ -34,5 +28,11 @@ "name": "Rain sensor" } } + }, + "services": { + "reboot_gateway": { + "description": "Reboots the KLF200 Gateway.", + "name": "Reboot gateway" + } } } diff --git a/homeassistant/components/venstar/strings.json b/homeassistant/components/venstar/strings.json index 1d916d0b8f6..37ee4bb4ca1 100644 --- a/homeassistant/components/venstar/strings.json +++ b/homeassistant/components/venstar/strings.json @@ -1,30 +1,38 @@ { "config": { - "step": { - "user": { - "description": "Connect to the Venstar thermostat", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "pin": "[%key:common::config_flow::data::pin%]", - "ssl": "[%key:common::config_flow::data::ssl%]" - }, - "data_description": { - "host": "Hostname or IP address of your Venstar thermostat." - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "pin": "[%key:common::config_flow::data::pin%]", + "ssl": "[%key:common::config_flow::data::ssl%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "host": "Hostname or IP address of your Venstar thermostat." + }, + "description": "Connect to the Venstar thermostat" + } } }, "entity": { "sensor": { + "active_stage": { + "name": "Active stage", + "state": { + "first_stage": "First stage", + "idle": "[%key:common::state::idle%]", + "second_stage": "Second stage" + } + }, "filter_install_time": { "name": "Filter installation time" }, @@ -34,19 +42,11 @@ "schedule_part": { "name": "Schedule part", "state": { - "morning": "Morning", "day": "Day", "evening": "Evening", - "night": "Night", - "inactive": "Inactive" - } - }, - "active_stage": { - "name": "Active stage", - "state": { - "idle": "[%key:common::state::idle%]", - "first_stage": "First stage", - "second_stage": "Second stage" + "inactive": "Inactive", + "morning": "Morning", + "night": "Night" } } } diff --git a/homeassistant/components/vera/strings.json b/homeassistant/components/vera/strings.json index acb166d4f64..bfa63083087 100644 --- a/homeassistant/components/vera/strings.json +++ b/homeassistant/components/vera/strings.json @@ -7,9 +7,9 @@ "step": { "user": { "data": { - "vera_controller_url": "Controller URL", + "exclude": "Vera device IDs to exclude from Home Assistant.", "lights": "Vera switch device IDs to treat as lights in Home Assistant.", - "exclude": "Vera device IDs to exclude from Home Assistant." + "vera_controller_url": "Controller URL" }, "data_description": { "vera_controller_url": "It should look like this: {sample_ip}" @@ -20,12 +20,12 @@ "options": { "step": { "init": { - "title": "Vera controller options", - "description": "See the Vera documentation for details on optional parameters: {documentation_url}. Note: Any changes here require a restart of the Home Assistant server. To clear values, provide a space.", "data": { - "lights": "[%key:component::vera::config::step::user::data::lights%]", - "exclude": "[%key:component::vera::config::step::user::data::exclude%]" - } + "exclude": "[%key:component::vera::config::step::user::data::exclude%]", + "lights": "[%key:component::vera::config::step::user::data::lights%]" + }, + "description": "See the Vera documentation for details on optional parameters: {documentation_url}. Note: Any changes here require a restart of the Home Assistant server. To clear values, provide a space.", + "title": "Vera controller options" } } } diff --git a/homeassistant/components/verisure/icons.json b/homeassistant/components/verisure/icons.json index 809cf004a3f..53d8d889245 100644 --- a/homeassistant/components/verisure/icons.json +++ b/homeassistant/components/verisure/icons.json @@ -3,11 +3,11 @@ "capture_smartcam": { "service": "mdi:camera" }, - "enable_autolock": { - "service": "mdi:lock" - }, "disable_autolock": { "service": "mdi:lock-off" + }, + "enable_autolock": { + "service": "mdi:lock" } } } diff --git a/homeassistant/components/verisure/strings.json b/homeassistant/components/verisure/strings.json index 6241225ed4e..364f2690e78 100644 --- a/homeassistant/components/verisure/strings.json +++ b/homeassistant/components/verisure/strings.json @@ -1,23 +1,25 @@ { "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%]", + "unknown_mfa": "Unknown error occurred during MFA setup" + }, "step": { - "user": { + "installation": { "data": { - "description": "Sign in with your Verisure My Pages account.", - "email": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } + "giid": "Installation" + }, + "description": "Home Assistant found multiple Verisure installations in your My Pages account. Please, select the installation to add to Home Assistant." }, "mfa": { "data": { - "description": "Your account has 2-step verification enabled. Please enter the verification code Verisure sends to you.", - "code": "Verification code" - } - }, - "installation": { - "description": "Home Assistant found multiple Verisure installations in your My Pages account. Please, select the installation to add to Home Assistant.", - "data": { - "giid": "Installation" + "code": "Verification code", + "description": "Your account has 2-step verification enabled. Please enter the verification code Verisure sends to you." } }, "reauth_confirm": { @@ -29,26 +31,15 @@ }, "reauth_mfa": { "data": { - "description": "[%key:component::verisure::config::step::mfa::data::description%]", - "code": "[%key:component::verisure::config::step::mfa::data::code%]" + "code": "[%key:component::verisure::config::step::mfa::data::code%]", + "description": "[%key:component::verisure::config::step::mfa::data::description%]" } - } - }, - "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "unknown_mfa": "Unknown error occurred during MFA setup" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { - "step": { - "init": { + }, + "user": { "data": { - "lock_code_digits": "Number of digits in PIN code for locks" + "description": "Sign in with your Verisure My Pages account.", + "email": "[%key:common::config_flow::data::email%]", + "password": "[%key:common::config_flow::data::password%]" } } } @@ -60,18 +51,27 @@ } } }, + "options": { + "step": { + "init": { + "data": { + "lock_code_digits": "Number of digits in PIN code for locks" + } + } + } + }, "services": { "capture_smartcam": { - "name": "Capture SmartCam image", - "description": "Captures a new image from a Verisure SmartCam." - }, - "enable_autolock": { - "name": "Enable autolock", - "description": "Enables autolock of a Verisure Lockguard Smartlock." + "description": "Captures a new image from a Verisure SmartCam.", + "name": "Capture SmartCam image" }, "disable_autolock": { - "name": "Disable autolock", - "description": "Disables autolock of a Verisure Lockguard Smartlock." + "description": "Disables autolock of a Verisure Lockguard Smartlock.", + "name": "Disable autolock" + }, + "enable_autolock": { + "description": "Enables autolock of a Verisure Lockguard Smartlock.", + "name": "Enable autolock" } } } diff --git a/homeassistant/components/version/strings.json b/homeassistant/components/version/strings.json index 36da7072626..cd280435be2 100644 --- a/homeassistant/components/version/strings.json +++ b/homeassistant/components/version/strings.json @@ -1,27 +1,27 @@ { - "title": "Version", "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "step": { "user": { - "title": "Select installation type", - "description": "Select the source you want to track versions from", "data": { "version_source": "Version source" - } + }, + "description": "Select the source you want to track versions from", + "title": "Select installation type" }, "version_source": { - "title": "Configure", - "description": "Configure {version_source} version tracking", "data": { "beta": "Include beta versions", "board": "Which board should be tracked", "channel": "Which channel should be tracked", "image": "Which image should be tracked" - } + }, + "description": "Configure {version_source} version tracking", + "title": "Configure" } } - } + }, + "title": "Version" } diff --git a/homeassistant/components/vesync/icons.json b/homeassistant/components/vesync/icons.json index c11bd002049..e11074e0a45 100644 --- a/homeassistant/components/vesync/icons.json +++ b/homeassistant/components/vesync/icons.json @@ -5,10 +5,10 @@ "state_attributes": { "preset_mode": { "state": { - "auto": "mdi:fan-auto", - "sleep": "mdi:sleep", "advanced_sleep": "mdi:sleep", + "auto": "mdi:fan-auto", "pet": "mdi:paw", + "sleep": "mdi:sleep", "turbo": "mdi:weather-tornado" } } diff --git a/homeassistant/components/vesync/strings.json b/homeassistant/components/vesync/strings.json index b74ebc4f00e..6d3154d1ac1 100644 --- a/homeassistant/components/vesync/strings.json +++ b/homeassistant/components/vesync/strings.json @@ -1,57 +1,31 @@ { "config": { - "step": { - "user": { - "title": "Enter username and password", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The VeSync integration needs to re-authenticate your account", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "description": "The VeSync integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "title": "Enter username and password" + } } }, "entity": { - "sensor": { - "filter_life": { - "name": "Filter lifetime" - }, - "air_quality": { - "name": "Air quality" - }, - "current_power": { - "name": "Current power" - }, - "energy_today": { - "name": "Energy use today" - }, - "energy_week": { - "name": "Energy use weekly" - }, - "energy_month": { - "name": "Energy use monthly" - }, - "energy_year": { - "name": "Energy use yearly" - }, - "current_voltage": { - "name": "Current voltage" - } - }, "binary_sensor": { "water_lacks": { "name": "Low water" @@ -60,16 +34,26 @@ "name": "Water tank lifted" } }, + "fan": { + "vesync": { + "state_attributes": { + "preset_mode": { + "state": { + "advanced_sleep": "Advanced sleep", + "auto": "[%key:common::state::auto%]", + "pet": "Pet", + "sleep": "Sleep", + "turbo": "Turbo" + } + } + } + } + }, "number": { "mist_level": { "name": "Mist level" } }, - "switch": { - "display": { - "name": "Display" - } - }, "select": { "night_light_level": { "name": "Night light level", @@ -81,26 +65,42 @@ } } }, - "fan": { - "vesync": { - "state_attributes": { - "preset_mode": { - "state": { - "auto": "[%key:common::state::auto%]", - "sleep": "Sleep", - "advanced_sleep": "Advanced sleep", - "pet": "Pet", - "turbo": "Turbo" - } - } - } + "sensor": { + "air_quality": { + "name": "Air quality" + }, + "current_power": { + "name": "Current power" + }, + "current_voltage": { + "name": "Current voltage" + }, + "energy_month": { + "name": "Energy use monthly" + }, + "energy_today": { + "name": "Energy use today" + }, + "energy_week": { + "name": "Energy use weekly" + }, + "energy_year": { + "name": "Energy use yearly" + }, + "filter_life": { + "name": "Filter lifetime" + } + }, + "switch": { + "display": { + "name": "Display" } } }, "services": { "update_devices": { - "name": "Update devices", - "description": "Adds new VeSync devices to Home Assistant." + "description": "Adds new VeSync devices to Home Assistant.", + "name": "Update devices" } } } diff --git a/homeassistant/components/vicare/icons.json b/homeassistant/components/vicare/icons.json index f3e0daeda52..c5db81ae15a 100644 --- a/homeassistant/components/vicare/icons.json +++ b/homeassistant/components/vicare/icons.json @@ -1,16 +1,13 @@ { "entity": { "binary_sensor": { - "circulation_pump": { - "default": "mdi:pump" - }, - "frost_protection": { - "default": "mdi:snowflake" - }, "burner": { "default": "mdi:gas-burner" }, - "solar_pump": { + "child_safety_lock_mode": { + "default": "mdi:lock" + }, + "circulation_pump": { "default": "mdi:pump" }, "domestic_hot_water_circulation_pump": { @@ -19,14 +16,17 @@ "domestic_hot_water_pump": { "default": "mdi:pump" }, - "one_time_charge": { - "default": "mdi:shower-head" + "frost_protection": { + "default": "mdi:snowflake" }, "mounting_mode": { "default": "mdi:wrench" }, - "child_safety_lock_mode": { - "default": "mdi:lock" + "one_time_charge": { + "default": "mdi:shower-head" + }, + "solar_pump": { + "default": "mdi:pump" }, "valve": { "default": "mdi:pipe-valve" @@ -46,34 +46,13 @@ } }, "sensor": { - "volumetric_flow": { - "default": "mdi:gauge" - }, - "ess_state_of_charge": { - "default": "mdi:home-battery" - }, - "pcc_transfer_power_exchange": { - "default": "mdi:transmission-tower" - }, - "pcc_energy_consumption": { - "default": "mdi:transmission-tower-export" - }, - "pcc_energy_feed_in": { - "default": "mdi:transmission-tower-import" - }, - "photovoltaic_energy_production_today": { - "default": "mdi:solar-power" - }, - "burner_starts": { - "default": "mdi:counter" - }, "burner_hours": { "default": "mdi:counter" }, "burner_modulation": { "default": "mdi:percent" }, - "compressor_starts": { + "burner_starts": { "default": "mdi:counter" }, "compressor_hours": { @@ -97,14 +76,35 @@ "compressor_phase": { "default": "mdi:information" }, - "ventilation_level": { - "default": "mdi:fan" + "compressor_starts": { + "default": "mdi:counter" }, - "zigbee_signal_strength": { - "default": "mdi:wifi" + "ess_state_of_charge": { + "default": "mdi:home-battery" + }, + "pcc_energy_consumption": { + "default": "mdi:transmission-tower-export" + }, + "pcc_energy_feed_in": { + "default": "mdi:transmission-tower-import" + }, + "pcc_transfer_power_exchange": { + "default": "mdi:transmission-tower" + }, + "photovoltaic_energy_production_today": { + "default": "mdi:solar-power" }, "valve_position": { "default": "mdi:pipe-valve" + }, + "ventilation_level": { + "default": "mdi:fan" + }, + "volumetric_flow": { + "default": "mdi:gauge" + }, + "zigbee_signal_strength": { + "default": "mdi:wifi" } } }, diff --git a/homeassistant/components/vicare/strings.json b/homeassistant/components/vicare/strings.json index bb02a633d40..80d5f593225 100644 --- a/homeassistant/components/vicare/strings.json +++ b/homeassistant/components/vicare/strings.json @@ -1,60 +1,57 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Set up ViCare integration.", - "data": { - "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]", - "client_id": "Client ID", - "heating_type": "Heating type" - }, - "data_description": { - "username": "The email address to log in to your ViCare account.", - "password": "The password to log in to your ViCare account.", - "client_id": "The ID of the API client created in the [Viessmann developer portal]({viessmann_developer_portal}).", - "heating_type": "Allows to overrule the device auto detection." - } - }, - "reauth_confirm": { - "description": "Please verify credentials.", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "client_id": "[%key:component::vicare::config::step::user::data::client_id%]" - }, - "data_description": { - "password": "[%key:component::vicare::config::step::user::data_description::password%]", - "client_id": "[%key:component::vicare::config::step::user::data_description::client_id%]" - } - } + "abort": { + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", + "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "unknown": "[%key:common::config_flow::error::unknown%]" + "flow_title": "{name}", + "step": { + "reauth_confirm": { + "data": { + "client_id": "[%key:component::vicare::config::step::user::data::client_id%]", + "password": "[%key:common::config_flow::data::password%]" + }, + "data_description": { + "client_id": "[%key:component::vicare::config::step::user::data_description::client_id%]", + "password": "[%key:component::vicare::config::step::user::data_description::password%]" + }, + "description": "Please verify credentials." + }, + "user": { + "data": { + "client_id": "Client ID", + "heating_type": "Heating type", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::email%]" + }, + "data_description": { + "client_id": "The ID of the API client created in the [Viessmann developer portal]({viessmann_developer_portal}).", + "heating_type": "Allows to overrule the device auto detection.", + "password": "The password to log in to your ViCare account.", + "username": "The email address to log in to your ViCare account." + }, + "description": "Set up ViCare integration." + } } }, "entity": { "binary_sensor": { - "circulation_pump": { - "name": "Circulation pump" - }, - "frost_protection": { - "name": "Frost protection" - }, "burner": { "name": "Burner" }, + "child_safety_lock_mode": { + "name": "Child safety lock" + }, + "circulation_pump": { + "name": "Circulation pump" + }, "compressor": { "name": "Compressor" }, - "solar_pump": { - "name": "Solar pump" - }, "domestic_hot_water_charging": { "name": "DHW charging" }, @@ -64,8 +61,8 @@ "domestic_hot_water_pump": { "name": "DHW pump" }, - "one_time_charge": { - "name": "One-time charge" + "frost_protection": { + "name": "Frost protection" }, "identification_mode": { "name": "Identification mode" @@ -73,8 +70,11 @@ "mounting_mode": { "name": "Mounting mode" }, - "child_safety_lock_mode": { - "name": "Child safety lock" + "one_time_charge": { + "name": "One-time charge" + }, + "solar_pump": { + "name": "Solar pump" }, "valve": { "name": "Valve" @@ -96,274 +96,70 @@ "state_attributes": { "preset_mode": { "state": { - "standby": "[%key:common::state::standby%]", "permanent": "Permanent", - "ventilation": "Schedule", "sensor_driven": "Sensor-driven", "sensor_override": "Schedule with sensor-override", - "standard": "Minimal" + "standard": "Minimal", + "standby": "[%key:common::state::standby%]", + "ventilation": "Schedule" } } } } }, "number": { + "comfort_cooling_temperature": { + "name": "Comfort cooling temperature" + }, + "comfort_heating_temperature": { + "name": "Comfort heating temperature" + }, + "comfort_temperature": { + "name": "Comfort temperature" + }, + "dhw_hysteresis_switch_off": { + "name": "DHW hysteresis switch off" + }, + "dhw_hysteresis_switch_on": { + "name": "DHW hysteresis switch on" + }, + "dhw_secondary_temperature": { + "name": "DHW secondary temperature" + }, + "dhw_temperature": { + "name": "DHW temperature" + }, "heating_curve_shift": { "name": "Heating curve shift" }, "heating_curve_slope": { "name": "Heating curve slope" }, - "normal_temperature": { - "name": "Normal temperature" - }, - "reduced_temperature": { - "name": "Reduced temperature" - }, - "comfort_temperature": { - "name": "Comfort temperature" + "normal_cooling_temperature": { + "name": "Normal cooling temperature" }, "normal_heating_temperature": { "name": "Normal heating temperature" }, - "reduced_heating_temperature": { - "name": "Reduced heating temperature" - }, - "comfort_heating_temperature": { - "name": "Comfort heating temperature" - }, - "normal_cooling_temperature": { - "name": "Normal cooling temperature" + "normal_temperature": { + "name": "Normal temperature" }, "reduced_cooling_temperature": { "name": "Reduced cooling temperature" }, - "comfort_cooling_temperature": { - "name": "Comfort cooling temperature" + "reduced_heating_temperature": { + "name": "Reduced heating temperature" }, - "dhw_temperature": { - "name": "DHW temperature" - }, - "dhw_secondary_temperature": { - "name": "DHW secondary temperature" - }, - "dhw_hysteresis_switch_on": { - "name": "DHW hysteresis switch on" - }, - "dhw_hysteresis_switch_off": { - "name": "DHW hysteresis switch off" + "reduced_temperature": { + "name": "Reduced temperature" } }, "sensor": { - "outside_temperature": { - "name": "Outside temperature" - }, - "return_temperature": { - "name": "Return temperature" - }, - "boiler_temperature": { - "name": "Boiler temperature" - }, "boiler_supply_temperature": { "name": "Boiler supply temperature" }, - "primary_circuit_supply_temperature": { - "name": "Primary circuit supply temperature" - }, - "primary_circuit_return_temperature": { - "name": "Primary circuit return temperature" - }, - "secondary_circuit_supply_temperature": { - "name": "Secondary circuit supply temperature" - }, - "secondary_circuit_return_temperature": { - "name": "Secondary circuit return temperature" - }, - "hotwater_out_temperature": { - "name": "DHW out temperature" - }, - "hotwater_max_temperature": { - "name": "DHW max temperature" - }, - "hotwater_min_temperature": { - "name": "DHW min temperature" - }, - "dhw_storage_temperature": { - "name": "DHW storage temperature" - }, - "dhw_storage_top_temperature": { - "name": "DHW storage top temperature" - }, - "dhw_storage_middle_temperature": { - "name": "DHW storage middle temperature" - }, - "dhw_storage_bottom_temperature": { - "name": "DHW storage bottom temperature" - }, - "hotwater_gas_consumption_today": { - "name": "DHW gas consumption today" - }, - "hotwater_gas_consumption_heating_this_week": { - "name": "DHW gas consumption this week" - }, - "hotwater_gas_consumption_heating_this_month": { - "name": "DHW gas consumption this month" - }, - "hotwater_gas_consumption_heating_this_year": { - "name": "DHW gas consumption this year" - }, - "gas_consumption_heating_today": { - "name": "Heating gas consumption today" - }, - "gas_consumption_heating_this_week": { - "name": "Heating gas consumption this week" - }, - "gas_consumption_heating_this_month": { - "name": "Heating gas consumption this month" - }, - "gas_consumption_heating_this_year": { - "name": "Heating gas consumption this year" - }, - "gas_consumption_fuelcell_today": { - "name": "Fuel cell gas consumption today" - }, - "gas_consumption_fuelcell_this_week": { - "name": "Fuel cell gas consumption this week" - }, - "gas_consumption_fuelcell_this_month": { - "name": "Fuel cell gas consumption this month" - }, - "gas_consumption_fuelcell_this_year": { - "name": "Fuel cell gas consumption this year" - }, - "gas_consumption_total_today": { - "name": "Gas consumption today" - }, - "gas_consumption_total_this_week": { - "name": "Gas consumption this week" - }, - "gas_consumption_total_this_month": { - "name": "Gas consumption this month" - }, - "gas_consumption_total_this_year": { - "name": "Gas consumption this year" - }, - "gas_summary_consumption_heating_currentday": { - "name": "Heating gas consumption today" - }, - "gas_summary_consumption_heating_currentmonth": { - "name": "Heating gas consumption this month" - }, - "gas_summary_consumption_heating_currentyear": { - "name": "Heating gas consumption this year" - }, - "gas_summary_consumption_heating_lastsevendays": { - "name": "Heating gas consumption last seven days" - }, - "hotwater_gas_summary_consumption_heating_currentday": { - "name": "DHW gas consumption today" - }, - "hotwater_gas_summary_consumption_heating_currentmonth": { - "name": "DHW gas consumption this month" - }, - "hotwater_gas_summary_consumption_heating_currentyear": { - "name": "DHW gas consumption this year" - }, - "hotwater_gas_summary_consumption_heating_lastsevendays": { - "name": "DHW gas consumption last seven days" - }, - "energy_summary_consumption_heating_currentday": { - "name": "Heating electricity consumption today" - }, - "energy_summary_consumption_heating_currentmonth": { - "name": "Heating electricity consumption this month" - }, - "energy_summary_consumption_heating_currentyear": { - "name": "Heating electricity consumption this year" - }, - "energy_summary_consumption_heating_lastsevendays": { - "name": "Heating electricity consumption last seven days" - }, - "energy_consumption_cooling_today": { - "name": "Cooling electricity consumption today" - }, - "energy_consumption_cooling_this_month": { - "name": "Cooling electricity consumption this month" - }, - "energy_consumption_cooling_this_year": { - "name": "Cooling electricity consumption this year" - }, - "energy_dhw_summary_consumption_heating_currentday": { - "name": "DHW electricity consumption today" - }, - "energy_dhw_summary_consumption_heating_currentmonth": { - "name": "DHW electricity consumption this month" - }, - "energy_dhw_summary_consumption_heating_currentyear": { - "name": "DHW electricity consumption this year" - }, - "energy_summary_dhw_consumption_heating_lastsevendays": { - "name": "DHW electricity consumption last seven days" - }, - "hydraulic_separator_temperature": { - "name": "Hydraulic separator temperature" - }, - "power_consumption_today": { - "name": "Electricity consumption today" - }, - "power_consumption_this_week": { - "name": "Electricity consumption this week" - }, - "power_consumption_this_month": { - "name": "Electricity consumption this month" - }, - "power_consumption_this_year": { - "name": "Electricity consumption this year" - }, - "power_production_current": { - "name": "Power production current" - }, - "power_production_today": { - "name": "Energy production today" - }, - "power_production_this_week": { - "name": "Energy production this week" - }, - "power_production_this_month": { - "name": "Energy production this month" - }, - "power_production_this_year": { - "name": "Energy production this year" - }, - "solar_storage_temperature": { - "name": "Solar storage temperature" - }, - "collector_temperature": { - "name": "Solar collector temperature" - }, - "solar_power_production_today": { - "name": "Solar energy production today" - }, - "solar_power_production_this_week": { - "name": "Solar energy production this week" - }, - "solar_power_production_this_month": { - "name": "Solar energy production this month" - }, - "solar_power_production_this_year": { - "name": "Solar energy production this year" - }, - "buffer_top_temperature": { - "name": "Buffer top temperature" - }, - "buffer_mid_top_temperature": { - "name": "Buffer mid top temperature" - }, - "buffer_middle_temperature": { - "name": "Buffer middle temperature" - }, - "buffer_mid_bottom_temperature": { - "name": "Buffer mid bottom temperature" + "boiler_temperature": { + "name": "Boiler temperature" }, "buffer_bottom_temperature": { "name": "Buffer bottom temperature" @@ -371,77 +167,17 @@ "buffer_main_temperature": { "name": "Buffer main temperature" }, - "volumetric_flow": { - "name": "Volumetric flow" + "buffer_mid_bottom_temperature": { + "name": "Buffer mid bottom temperature" }, - "ess_power_current": { - "name": "Battery power" + "buffer_mid_top_temperature": { + "name": "Buffer mid top temperature" }, - "ess_state": { - "name": "Battery state", - "state": { - "charge": "[%key:common::state::charging%]", - "discharge": "[%key:common::state::discharging%]", - "standby": "[%key:common::state::standby%]" - } + "buffer_middle_temperature": { + "name": "Buffer middle temperature" }, - "ess_charge_total": { - "name": "Battery charge total" - }, - "ess_discharge_today": { - "name": "Battery discharge today" - }, - "ess_discharge_this_week": { - "name": "Battery discharge this week" - }, - "ess_discharge_this_month": { - "name": "Battery discharge this month" - }, - "ess_discharge_this_year": { - "name": "Battery discharge this year" - }, - "ess_discharge_total": { - "name": "Battery discharge total" - }, - "pcc_transfer_power_exchange": { - "name": "Power exchange with grid" - }, - "pcc_energy_consumption": { - "name": "Energy import from grid" - }, - "pcc_energy_feed_in": { - "name": "Energy export to grid" - }, - "photovoltaic_power_production_current": { - "name": "PV power" - }, - "photovoltaic_energy_production_today": { - "name": "PV energy production today" - }, - "photovoltaic_energy_production_this_week": { - "name": "PV energy production this week" - }, - "photovoltaic_energy_production_this_month": { - "name": "PV energy production this month" - }, - "photovoltaic_energy_production_this_year": { - "name": "PV energy production this year" - }, - "photovoltaic_energy_production_total": { - "name": "PV energy production total" - }, - "photovoltaic_status": { - "name": "PV state", - "state": { - "ready": "[%key:common::state::standby%]", - "production": "Producing" - } - }, - "supply_temperature": { - "name": "Supply temperature" - }, - "burner_starts": { - "name": "Burner starts" + "buffer_top_temperature": { + "name": "Buffer top temperature" }, "burner_hours": { "name": "Burner hours" @@ -449,8 +185,11 @@ "burner_modulation": { "name": "Burner modulation" }, - "compressor_starts": { - "name": "Compressor starts" + "burner_starts": { + "name": "Burner starts" + }, + "collector_temperature": { + "name": "Solar collector temperature" }, "compressor_hours": { "name": "Compressor hours" @@ -473,38 +212,269 @@ "compressor_phase": { "name": "Compressor phase" }, - "ventilation_level": { - "name": "Ventilation level", + "compressor_starts": { + "name": "Compressor starts" + }, + "dhw_storage_bottom_temperature": { + "name": "DHW storage bottom temperature" + }, + "dhw_storage_middle_temperature": { + "name": "DHW storage middle temperature" + }, + "dhw_storage_temperature": { + "name": "DHW storage temperature" + }, + "dhw_storage_top_temperature": { + "name": "DHW storage top temperature" + }, + "energy_consumption_cooling_this_month": { + "name": "Cooling electricity consumption this month" + }, + "energy_consumption_cooling_this_year": { + "name": "Cooling electricity consumption this year" + }, + "energy_consumption_cooling_today": { + "name": "Cooling electricity consumption today" + }, + "energy_dhw_summary_consumption_heating_currentday": { + "name": "DHW electricity consumption today" + }, + "energy_dhw_summary_consumption_heating_currentmonth": { + "name": "DHW electricity consumption this month" + }, + "energy_dhw_summary_consumption_heating_currentyear": { + "name": "DHW electricity consumption this year" + }, + "energy_summary_consumption_heating_currentday": { + "name": "Heating electricity consumption today" + }, + "energy_summary_consumption_heating_currentmonth": { + "name": "Heating electricity consumption this month" + }, + "energy_summary_consumption_heating_currentyear": { + "name": "Heating electricity consumption this year" + }, + "energy_summary_consumption_heating_lastsevendays": { + "name": "Heating electricity consumption last seven days" + }, + "energy_summary_dhw_consumption_heating_lastsevendays": { + "name": "DHW electricity consumption last seven days" + }, + "ess_charge_total": { + "name": "Battery charge total" + }, + "ess_discharge_this_month": { + "name": "Battery discharge this month" + }, + "ess_discharge_this_week": { + "name": "Battery discharge this week" + }, + "ess_discharge_this_year": { + "name": "Battery discharge this year" + }, + "ess_discharge_today": { + "name": "Battery discharge today" + }, + "ess_discharge_total": { + "name": "Battery discharge total" + }, + "ess_power_current": { + "name": "Battery power" + }, + "ess_state": { + "name": "Battery state", "state": { - "standby": "[%key:common::state::standby%]", - "levelone": "1", - "leveltwo": "2", - "levelthree": "3", - "levelfour": "4" + "charge": "[%key:common::state::charging%]", + "discharge": "[%key:common::state::discharging%]", + "standby": "[%key:common::state::standby%]" } }, - "ventilation_reason": { - "name": "Ventilation reason", - "state": { - "standby": "[%key:common::state::standby%]", - "permanent": "Permanent", - "schedule": "Schedule", - "sensordriven": "Sensor-driven", - "silent": "Silent", - "forcedlevelfour": "Boost" - } + "fuel_need": { + "name": "Fuel need" }, - "supply_pressure": { - "name": "Supply pressure" + "gas_consumption_fuelcell_this_month": { + "name": "Fuel cell gas consumption this month" }, - "heating_rod_starts": { - "name": "Heating rod starts" + "gas_consumption_fuelcell_this_week": { + "name": "Fuel cell gas consumption this week" + }, + "gas_consumption_fuelcell_this_year": { + "name": "Fuel cell gas consumption this year" + }, + "gas_consumption_fuelcell_today": { + "name": "Fuel cell gas consumption today" + }, + "gas_consumption_heating_this_month": { + "name": "Heating gas consumption this month" + }, + "gas_consumption_heating_this_week": { + "name": "Heating gas consumption this week" + }, + "gas_consumption_heating_this_year": { + "name": "Heating gas consumption this year" + }, + "gas_consumption_heating_today": { + "name": "Heating gas consumption today" + }, + "gas_consumption_total_this_month": { + "name": "Gas consumption this month" + }, + "gas_consumption_total_this_week": { + "name": "Gas consumption this week" + }, + "gas_consumption_total_this_year": { + "name": "Gas consumption this year" + }, + "gas_consumption_total_today": { + "name": "Gas consumption today" + }, + "gas_summary_consumption_heating_currentday": { + "name": "Heating gas consumption today" + }, + "gas_summary_consumption_heating_currentmonth": { + "name": "Heating gas consumption this month" + }, + "gas_summary_consumption_heating_currentyear": { + "name": "Heating gas consumption this year" + }, + "gas_summary_consumption_heating_lastsevendays": { + "name": "Heating gas consumption last seven days" }, "heating_rod_hours": { "name": "Heating rod hours" }, - "spf_total": { - "name": "Seasonal performance factor" + "heating_rod_starts": { + "name": "Heating rod starts" + }, + "hotwater_gas_consumption_heating_this_month": { + "name": "DHW gas consumption this month" + }, + "hotwater_gas_consumption_heating_this_week": { + "name": "DHW gas consumption this week" + }, + "hotwater_gas_consumption_heating_this_year": { + "name": "DHW gas consumption this year" + }, + "hotwater_gas_consumption_today": { + "name": "DHW gas consumption today" + }, + "hotwater_gas_summary_consumption_heating_currentday": { + "name": "DHW gas consumption today" + }, + "hotwater_gas_summary_consumption_heating_currentmonth": { + "name": "DHW gas consumption this month" + }, + "hotwater_gas_summary_consumption_heating_currentyear": { + "name": "DHW gas consumption this year" + }, + "hotwater_gas_summary_consumption_heating_lastsevendays": { + "name": "DHW gas consumption last seven days" + }, + "hotwater_max_temperature": { + "name": "DHW max temperature" + }, + "hotwater_min_temperature": { + "name": "DHW min temperature" + }, + "hotwater_out_temperature": { + "name": "DHW out temperature" + }, + "hydraulic_separator_temperature": { + "name": "Hydraulic separator temperature" + }, + "outside_temperature": { + "name": "Outside temperature" + }, + "pcc_energy_consumption": { + "name": "Energy import from grid" + }, + "pcc_energy_feed_in": { + "name": "Energy export to grid" + }, + "pcc_transfer_power_exchange": { + "name": "Power exchange with grid" + }, + "photovoltaic_energy_production_this_month": { + "name": "PV energy production this month" + }, + "photovoltaic_energy_production_this_week": { + "name": "PV energy production this week" + }, + "photovoltaic_energy_production_this_year": { + "name": "PV energy production this year" + }, + "photovoltaic_energy_production_today": { + "name": "PV energy production today" + }, + "photovoltaic_energy_production_total": { + "name": "PV energy production total" + }, + "photovoltaic_power_production_current": { + "name": "PV power" + }, + "photovoltaic_status": { + "name": "PV state", + "state": { + "production": "Producing", + "ready": "[%key:common::state::standby%]" + } + }, + "power_consumption_this_month": { + "name": "Electricity consumption this month" + }, + "power_consumption_this_week": { + "name": "Electricity consumption this week" + }, + "power_consumption_this_year": { + "name": "Electricity consumption this year" + }, + "power_consumption_today": { + "name": "Electricity consumption today" + }, + "power_production_current": { + "name": "Power production current" + }, + "power_production_this_month": { + "name": "Energy production this month" + }, + "power_production_this_week": { + "name": "Energy production this week" + }, + "power_production_this_year": { + "name": "Energy production this year" + }, + "power_production_today": { + "name": "Energy production today" + }, + "primary_circuit_return_temperature": { + "name": "Primary circuit return temperature" + }, + "primary_circuit_supply_temperature": { + "name": "Primary circuit supply temperature" + }, + "return_temperature": { + "name": "Return temperature" + }, + "secondary_circuit_return_temperature": { + "name": "Secondary circuit return temperature" + }, + "secondary_circuit_supply_temperature": { + "name": "Secondary circuit supply temperature" + }, + "solar_power_production_this_month": { + "name": "Solar energy production this month" + }, + "solar_power_production_this_week": { + "name": "Solar energy production this week" + }, + "solar_power_production_this_year": { + "name": "Solar energy production this year" + }, + "solar_power_production_today": { + "name": "Solar energy production today" + }, + "solar_storage_temperature": { + "name": "Solar storage temperature" }, "spf_dhw": { "name": "Seasonal performance factor - domestic hot water" @@ -512,14 +482,44 @@ "spf_heating": { "name": "Seasonal performance factor - heating" }, - "fuel_need": { - "name": "Fuel need" + "spf_total": { + "name": "Seasonal performance factor" }, - "zigbee_signal_strength": { - "name": "[%key:component::sensor::entity_component::signal_strength::name%]" + "supply_pressure": { + "name": "Supply pressure" + }, + "supply_temperature": { + "name": "Supply temperature" }, "valve_position": { "name": "Valve position" + }, + "ventilation_level": { + "name": "Ventilation level", + "state": { + "levelfour": "4", + "levelone": "1", + "levelthree": "3", + "leveltwo": "2", + "standby": "[%key:common::state::standby%]" + } + }, + "ventilation_reason": { + "name": "Ventilation reason", + "state": { + "forcedlevelfour": "Boost", + "permanent": "Permanent", + "schedule": "Schedule", + "sensordriven": "Sensor-driven", + "silent": "Silent", + "standby": "[%key:common::state::standby%]" + } + }, + "volumetric_flow": { + "name": "Volumetric flow" + }, + "zigbee_signal_strength": { + "name": "[%key:component::sensor::entity_component::signal_strength::name%]" } }, "water_heater": { @@ -529,26 +529,26 @@ } }, "exceptions": { - "program_unknown": { - "message": "Cannot translate preset {preset} into a valid ViCare program" - }, "program_not_activated": { "message": "Unable to activate ViCare program {program}" }, "program_not_deactivated": { "message": "Unable to deactivate ViCare program {program}" + }, + "program_unknown": { + "message": "Cannot translate preset {preset} into a valid ViCare program" } }, "services": { "set_vicare_mode": { - "name": "Set ViCare mode", "description": "Sets the mode of the climate device as defined by Viessmann.", "fields": { "vicare_mode": { - "name": "ViCare mode", - "description": "For supported values, see the `vicare_modes` attribute of the climate entity." + "description": "For supported values, see the `vicare_modes` attribute of the climate entity.", + "name": "ViCare mode" } - } + }, + "name": "Set ViCare mode" } } } diff --git a/homeassistant/components/victron_remote_monitoring/strings.json b/homeassistant/components/victron_remote_monitoring/strings.json index 8047705599d..ca373388221 100644 --- a/homeassistant/components/victron_remote_monitoring/strings.json +++ b/homeassistant/components/victron_remote_monitoring/strings.json @@ -1,33 +1,8 @@ { "config": { - "step": { - "user": { - "description": "Enter your VRM API access token. We will then fetch your available sites.", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - }, - "data_description": { - "api_token": "The API access token for your VRM account" - } - }, - "select_site": { - "description": "Select the VRM site", - "data": { - "site_id": "VRM site" - }, - "data_description": { - "site_id": "Select one of your VRM sites" - } - }, - "reauth_confirm": { - "description": "Your existing token is no longer valid. Please enter a new VRM API access token to reauthenticate.", - "data": { - "api_token": "[%key:common::config_flow::data::api_token%]" - }, - "data_description": { - "api_token": "The new API access token for your VRM account" - } - } + "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%]", @@ -36,42 +11,49 @@ "site_not_found": "Site ID not found. Please check the ID and try again.", "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%]" + "step": { + "reauth_confirm": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "data_description": { + "api_token": "The new API access token for your VRM account" + }, + "description": "Your existing token is no longer valid. Please enter a new VRM API access token to reauthenticate." + }, + "select_site": { + "data": { + "site_id": "VRM site" + }, + "data_description": { + "site_id": "Select one of your VRM sites" + }, + "description": "Select the VRM site" + }, + "user": { + "data": { + "api_token": "[%key:common::config_flow::data::api_token%]" + }, + "data_description": { + "api_token": "The API access token for your VRM account" + }, + "description": "Enter your VRM API access token. We will then fetch your available sites." + } } }, "entity": { "sensor": { - "energy_production_estimate_yesterday": { - "name": "Estimated energy production - Yesterday" + "consumption_highest_peak_time_today": { + "name": "Highest consumption peak time - Today" }, - "energy_production_estimate_today": { - "name": "Estimated energy production - Today" + "consumption_highest_peak_time_tomorrow": { + "name": "Highest consumption peak time - Tomorrow" }, - "energy_production_estimate_today_remaining": { - "name": "Estimated energy production - Today remaining" + "consumption_highest_peak_time_yesterday": { + "name": "Highest consumption peak time - Yesterday" }, - "energy_production_estimate_tomorrow": { - "name": "Estimated energy production - Tomorrow" - }, - "power_highest_peak_time_yesterday": { - "name": "Highest peak time - Yesterday" - }, - "power_highest_peak_time_today": { - "name": "Highest peak time - Today" - }, - "power_highest_peak_time_tomorrow": { - "name": "Highest peak time - Tomorrow" - }, - "energy_production_current_hour": { - "name": "Estimated energy production - Current hour" - }, - "energy_production_next_hour": { - "name": "Estimated energy production - Next hour" - }, - "energy_consumption_estimate_yesterday": { - "name": "Estimated energy consumption - Yesterday" + "energy_consumption_current_hour": { + "name": "Estimated energy consumption - Current hour" }, "energy_consumption_estimate_today": { "name": "Estimated energy consumption - Today" @@ -82,20 +64,38 @@ "energy_consumption_estimate_tomorrow": { "name": "Estimated energy consumption - Tomorrow" }, - "consumption_highest_peak_time_yesterday": { - "name": "Highest consumption peak time - Yesterday" - }, - "consumption_highest_peak_time_today": { - "name": "Highest consumption peak time - Today" - }, - "consumption_highest_peak_time_tomorrow": { - "name": "Highest consumption peak time - Tomorrow" - }, - "energy_consumption_current_hour": { - "name": "Estimated energy consumption - Current hour" + "energy_consumption_estimate_yesterday": { + "name": "Estimated energy consumption - Yesterday" }, "energy_consumption_next_hour": { "name": "Estimated energy consumption - Next hour" + }, + "energy_production_current_hour": { + "name": "Estimated energy production - Current hour" + }, + "energy_production_estimate_today": { + "name": "Estimated energy production - Today" + }, + "energy_production_estimate_today_remaining": { + "name": "Estimated energy production - Today remaining" + }, + "energy_production_estimate_tomorrow": { + "name": "Estimated energy production - Tomorrow" + }, + "energy_production_estimate_yesterday": { + "name": "Estimated energy production - Yesterday" + }, + "energy_production_next_hour": { + "name": "Estimated energy production - Next hour" + }, + "power_highest_peak_time_today": { + "name": "Highest peak time - Today" + }, + "power_highest_peak_time_tomorrow": { + "name": "Highest peak time - Tomorrow" + }, + "power_highest_peak_time_yesterday": { + "name": "Highest peak time - Yesterday" } } } diff --git a/homeassistant/components/vilfo/icons.json b/homeassistant/components/vilfo/icons.json index 0b2e2a45a16..e6901f94efc 100644 --- a/homeassistant/components/vilfo/icons.json +++ b/homeassistant/components/vilfo/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "load": { - "default": "mdi:memory" - }, "boot_time": { "default": "mdi:timer-outline" + }, + "load": { + "default": "mdi:memory" } } } diff --git a/homeassistant/components/vilfo/strings.json b/homeassistant/components/vilfo/strings.json index 55c996d4a3d..5d3499fc68f 100644 --- a/homeassistant/components/vilfo/strings.json +++ b/homeassistant/components/vilfo/strings.json @@ -1,15 +1,7 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "host": "Hostname or IP address of your Vilfo router." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", @@ -17,17 +9,25 @@ "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Vilfo router." + } + } } }, "entity": { "sensor": { - "load": { - "name": "Load" - }, "boot_time": { "name": "Boot time" + }, + "load": { + "name": "Load" } } } diff --git a/homeassistant/components/vizio/strings.json b/homeassistant/components/vizio/strings.json index 2f97bb332e8..04fb7e9863b 100644 --- a/homeassistant/components/vizio/strings.json +++ b/homeassistant/components/vizio/strings.json @@ -1,76 +1,76 @@ { "config": { - "step": { - "user": { - "description": "An access token is only needed for TVs. If you are configuring a TV and do not have an access token yet, leave it blank to go through a pairing process.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "host": "[%key:common::config_flow::data::host%]", - "device_class": "Device type", - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "host": "Hostname or IP address of your VIZIO SmartCast device." - } - }, - "pair_tv": { - "title": "Complete pairing process", - "description": "Your TV should be displaying a code. Enter that code into the form and then continue to the next step to complete the pairing.", - "data": { - "pin": "[%key:common::config_flow::data::pin%]" - } - }, - "pairing_complete": { - "title": "Pairing complete", - "description": "Your VIZIO SmartCast device is now connected to Home Assistant." - }, - "pairing_complete_import": { - "title": "[%key:component::vizio::config::step::pairing_complete::title%]", - "description": "Your VIZIO SmartCast device is now connected to Home Assistant.\n\nYour access token is '**{access_token}**'." - } - }, - "error": { - "complete_pairing_failed": "Unable to complete pairing. Ensure the PIN you provided is correct and the TV is still powered and connected to the network before resubmitting.", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "existing_config_entry_found": "An existing VIZIO SmartCast device config entry with the same serial number has already been configured. You must delete the existing entry in order to configure this one." - }, "abort": { "already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "updated_entry": "This entry has already been set up but the name, apps, and/or options defined in the configuration do not match the previously imported configuration, so the configuration entry has been updated accordingly." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "complete_pairing_failed": "Unable to complete pairing. Ensure the PIN you provided is correct and the TV is still powered and connected to the network before resubmitting.", + "existing_config_entry_found": "An existing VIZIO SmartCast device config entry with the same serial number has already been configured. You must delete the existing entry in order to configure this one." + }, + "step": { + "pair_tv": { + "data": { + "pin": "[%key:common::config_flow::data::pin%]" + }, + "description": "Your TV should be displaying a code. Enter that code into the form and then continue to the next step to complete the pairing.", + "title": "Complete pairing process" + }, + "pairing_complete": { + "description": "Your VIZIO SmartCast device is now connected to Home Assistant.", + "title": "Pairing complete" + }, + "pairing_complete_import": { + "description": "Your VIZIO SmartCast device is now connected to Home Assistant.\n\nYour access token is '**{access_token}**'.", + "title": "[%key:component::vizio::config::step::pairing_complete::title%]" + }, + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "device_class": "Device type", + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" + }, + "data_description": { + "host": "Hostname or IP address of your VIZIO SmartCast device." + }, + "description": "An access token is only needed for TVs. If you are configuring a TV and do not have an access token yet, leave it blank to go through a pairing process." + } } }, "options": { "step": { "init": { - "title": "Update VIZIO SmartCast device options", - "description": "If you have a Smart TV, you can optionally filter your source list by choosing which apps to include or exclude in your source list.", "data": { - "volume_step": "Volume step size", + "apps_to_include_or_exclude": "Apps to include or exclude", "include_or_exclude": "Include or exclude apps?", - "apps_to_include_or_exclude": "Apps to include or exclude" - } + "volume_step": "Volume step size" + }, + "description": "If you have a Smart TV, you can optionally filter your source list by choosing which apps to include or exclude in your source list.", + "title": "Update VIZIO SmartCast device options" } } }, "services": { "update_setting": { - "name": "Update setting", "description": "Updates the value of a setting on a Vizio media player device.", "fields": { - "setting_type": { - "name": "Setting type", - "description": "The type of setting to be changed. Available types are listed in the 'setting_types' property." + "new_value": { + "description": "The new value for the setting.", + "name": "New value" }, "setting_name": { - "name": "Setting name", - "description": "The name of the setting to be changed. Available settings for a given setting_type are listed in the '[setting_type]_settings' property." + "description": "The name of the setting to be changed. Available settings for a given setting_type are listed in the '[setting_type]_settings' property.", + "name": "Setting name" }, - "new_value": { - "name": "New value", - "description": "The new value for the setting." + "setting_type": { + "description": "The type of setting to be changed. Available types are listed in the 'setting_types' property.", + "name": "Setting type" } - } + }, + "name": "Update setting" } } } diff --git a/homeassistant/components/vlc_telnet/strings.json b/homeassistant/components/vlc_telnet/strings.json index c0cacc734d3..0927008fd5e 100644 --- a/homeassistant/components/vlc_telnet/strings.json +++ b/homeassistant/components/vlc_telnet/strings.json @@ -1,39 +1,39 @@ { "config": { - "flow_title": "{host}", - "step": { - "reauth_confirm": { - "description": "Please enter the correct password for host: {host}", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "password": "[%key:common::config_flow::data::password%]", - "name": "[%key:common::config_flow::data::name%]" - }, - "data_description": { - "host": "Hostname or IP address of your VLC media player." - } - }, - "hassio_confirm": { - "description": "Do you want to connect to add-on {addon}?" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "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%]" + }, + "flow_title": "{host}", + "step": { + "hassio_confirm": { + "description": "Do you want to connect to add-on {addon}?" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please enter the correct password for host: {host}" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "Hostname or IP address of your VLC media player." + } + } } } } diff --git a/homeassistant/components/vodafone_station/icons.json b/homeassistant/components/vodafone_station/icons.json index b504fc5cc5f..6188876fa3a 100644 --- a/homeassistant/components/vodafone_station/icons.json +++ b/homeassistant/components/vodafone_station/icons.json @@ -9,18 +9,18 @@ } }, "sensor": { + "active_connection": { + "default": "mdi:wan" + }, + "external_ip_key": { + "default": "mdi:earth" + }, "external_ipv4": { "default": "mdi:earth" }, "external_ipv6": { "default": "mdi:earth" }, - "external_ip_key": { - "default": "mdi:earth" - }, - "active_connection": { - "default": "mdi:wan" - }, "fw_version": { "default": "mdi:new-box" }, diff --git a/homeassistant/components/vodafone_station/strings.json b/homeassistant/components/vodafone_station/strings.json index 958b774a485..0002e01307d 100644 --- a/homeassistant/components/vodafone_station/strings.json +++ b/homeassistant/components/vodafone_station/strings.json @@ -1,5 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "already_logged": "User already logged-in, please try again later.", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "model_not_supported": "The device model is currently unsupported.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "already_logged": "[%key:component::vodafone_station::config::abort::already_logged%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "model_not_supported": "[%key:component::vodafone_station::config::abort::model_not_supported%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{host}", "step": { "reauth_confirm": { @@ -10,57 +27,28 @@ "password": "[%key:component::vodafone_station::config::step::user::data_description::password%]" } }, - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "host": "The hostname or IP address of your Vodafone Station.", - "username": "The username for your Vodafone Station.", - "password": "The password for your Vodafone Station." - } - }, "reconfigure": { "data": { "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": { "host": "[%key:component::vodafone_station::config::step::user::data_description::host%]", - "username": "[%key:component::vodafone_station::config::step::user::data_description::username%]", - "password": "[%key:component::vodafone_station::config::step::user::data_description::password%]" + "password": "[%key:component::vodafone_station::config::step::user::data_description::password%]", + "username": "[%key:component::vodafone_station::config::step::user::data_description::username%]" } - } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "already_logged": "User already logged-in, please try again later.", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "model_not_supported": "The device model is currently unsupported.", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "already_logged": "[%key:component::vodafone_station::config::abort::already_logged%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "model_not_supported": "[%key:component::vodafone_station::config::abort::model_not_supported%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - } - }, - "options": { - "step": { - "init": { + }, + "user": { "data": { - "consider_home": "Seconds to consider a device at 'home'" + "host": "[%key:common::config_flow::data::host%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" }, "data_description": { - "consider_home": "The number of seconds to wait until marking a device as not home after it disconnects from the network." + "host": "The hostname or IP address of your Vodafone Station.", + "password": "The password for your Vodafone Station.", + "username": "The username for your Vodafone Station." } } } @@ -78,29 +66,26 @@ } }, "sensor": { - "external_ipv4": { - "name": "WAN IPv4 address" - }, - "external_ipv6": { - "name": "WAN IPv6 address" - }, - "external_ip_key": { - "name": "WAN internet key address" - }, "active_connection": { "name": "Active connection", "state": { - "unknown": "Unknown", "dsl": "xDSL", "fiber": "Fiber", - "internet_key": "Internet key" + "internet_key": "Internet key", + "unknown": "Unknown" } }, "down_stream": { "name": "WAN download rate" }, - "up_stream": { - "name": "WAN upload rate" + "external_ip_key": { + "name": "WAN internet key address" + }, + "external_ipv4": { + "name": "WAN IPv4 address" + }, + "external_ipv6": { + "name": "WAN IPv6 address" }, "fw_version": { "name": "Firmware version" @@ -111,9 +96,6 @@ "phone_num2": { "name": "Phone number (2)" }, - "sys_uptime": { - "name": "Uptime" - }, "sys_cpu_usage": { "name": "CPU usage" }, @@ -122,18 +104,36 @@ }, "sys_reboot_cause": { "name": "Reboot cause" + }, + "sys_uptime": { + "name": "Uptime" + }, + "up_stream": { + "name": "WAN upload rate" } } }, "exceptions": { - "update_failed": { - "message": "Error fetching data: {error}" + "cannot_authenticate": { + "message": "Error authenticating: {error}" }, "cannot_execute_action": { "message": "Cannot execute requested action: {error}" }, - "cannot_authenticate": { - "message": "Error authenticating: {error}" + "update_failed": { + "message": "Error fetching data: {error}" + } + }, + "options": { + "step": { + "init": { + "data": { + "consider_home": "Seconds to consider a device at 'home'" + }, + "data_description": { + "consider_home": "The number of seconds to wait until marking a device as not home after it disconnects from the network." + } + } } } } diff --git a/homeassistant/components/voip/strings.json b/homeassistant/components/voip/strings.json index 4f37ad1d6f7..417c1900356 100644 --- a/homeassistant/components/voip/strings.json +++ b/homeassistant/components/voip/strings.json @@ -1,12 +1,12 @@ { "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "user": { "description": "Receive Voice over IP calls to interact with Assist." } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, "entity": { @@ -15,11 +15,6 @@ "name": "Call in progress" } }, - "switch": { - "allow_call": { - "name": "Allow calls" - } - }, "select": { "pipeline": { "name": "[%key:component::assist_pipeline::entity::select::pipeline::name%]", @@ -30,23 +25,33 @@ "vad_sensitivity": { "name": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::name%]", "state": { - "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", "aggressive": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::aggressive%]", + "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", "relaxed": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::relaxed%]" } } + }, + "switch": { + "allow_call": { + "name": "Allow calls" + } + } + }, + "exceptions": { + "non_tts_announcement": { + "message": "VoIP does not currently support non-TTS announcements" } }, "issues": { "assist_in_progress_deprecated": { - "title": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::title%]", "fix_flow": { "step": { "confirm_disable_entity": { "description": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::fix_flow::step::confirm_disable_entity::description%]" } } - } + }, + "title": "[%key:component::assist_pipeline::issues::assist_in_progress_deprecated::title%]" } }, "options": { @@ -58,10 +63,5 @@ } } } - }, - "exceptions": { - "non_tts_announcement": { - "message": "VoIP does not currently support non-TTS announcements" - } } } diff --git a/homeassistant/components/volumio/strings.json b/homeassistant/components/volumio/strings.json index 32552ad7386..d38eb9eef04 100644 --- a/homeassistant/components/volumio/strings.json +++ b/homeassistant/components/volumio/strings.json @@ -1,6 +1,18 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "Cannot connect to discovered Volumio" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { + "discovery_confirm": { + "description": "Do you want to add Volumio (`{name}`) to Home Assistant?", + "title": "Discovered Volumio" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", @@ -9,19 +21,7 @@ "data_description": { "host": "Hostname or IP address of your Volumio media player." } - }, - "discovery_confirm": { - "description": "Do you want to add Volumio (`{name}`) to Home Assistant?", - "title": "Discovered Volumio" } - }, - "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%]", - "cannot_connect": "Cannot connect to discovered Volumio" } } } diff --git a/homeassistant/components/volvo/icons.json b/homeassistant/components/volvo/icons.json index e898f3deed5..bbf6329b75b 100644 --- a/homeassistant/components/volvo/icons.json +++ b/homeassistant/components/volvo/icons.json @@ -181,30 +181,6 @@ "on": "mdi:car-door-lock-open" } }, - "turn_indication_front_left_warning": { - "default": "mdi:arrow-left-top", - "state": { - "on": "mdi:car-light-alert" - } - }, - "turn_indication_front_right_warning": { - "default": "mdi:arrow-right-top", - "state": { - "on": "mdi:car-light-alert" - } - }, - "turn_indication_rear_left_warning": { - "default": "mdi:arrow-left-top", - "state": { - "on": "mdi:car-light-alert" - } - }, - "turn_indication_rear_right_warning": { - "default": "mdi:arrow-right-top", - "state": { - "on": "mdi:car-light-alert" - } - }, "tire_front_left": { "default": "mdi:tire", "state": { @@ -229,6 +205,30 @@ "on": "mdi:car-tire-alert" } }, + "turn_indication_front_left_warning": { + "default": "mdi:arrow-left-top", + "state": { + "on": "mdi:car-light-alert" + } + }, + "turn_indication_front_right_warning": { + "default": "mdi:arrow-right-top", + "state": { + "on": "mdi:car-light-alert" + } + }, + "turn_indication_rear_left_warning": { + "default": "mdi:arrow-left-top", + "state": { + "on": "mdi:car-light-alert" + } + }, + "turn_indication_rear_right_warning": { + "default": "mdi:arrow-right-top", + "state": { + "on": "mdi:car-light-alert" + } + }, "washer_fluid_level_warning": { "default": "mdi:wiper-wash", "state": { diff --git a/homeassistant/components/volvo/strings.json b/homeassistant/components/volvo/strings.json index 1a1c4499c30..ecc562fab57 100644 --- a/homeassistant/components/volvo/strings.json +++ b/homeassistant/components/volvo/strings.json @@ -3,33 +3,6 @@ "pressure": "Pressure" }, "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" - }, - "reauth_confirm": { - "description": "The Volvo integration needs to re-authenticate your account.", - "title": "[%key:common::config_flow::title::reauth%]" - }, - "api_key": { - "description": "Get your API key from the [Volvo developer portal]({volvo_dev_portal}).", - "data": { - "api_key": "[%key:common::config_flow::data::api_key%]" - }, - "data_description": { - "api_key": "The Volvo developers API key" - } - }, - "vin": { - "description": "Select a vehicle", - "data": { - "vin": "VIN" - }, - "data_description": { - "vin": "The Vehicle Identification Number of the vehicle you want to add" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", @@ -44,12 +17,39 @@ "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "error": { "cannot_load_vehicles": "Unable to retrieve vehicles.", "no_vehicles": "No vehicles found on this account." }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" + "step": { + "api_key": { + "data": { + "api_key": "[%key:common::config_flow::data::api_key%]" + }, + "data_description": { + "api_key": "The Volvo developers API key" + }, + "description": "Get your API key from the [Volvo developer portal]({volvo_dev_portal})." + }, + "pick_implementation": { + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The Volvo integration needs to re-authenticate your account.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "vin": { + "data": { + "vin": "VIN" + }, + "data_description": { + "vin": "The Vehicle Identification Number of the vehicle you want to add" + }, + "description": "Select a vehicle" + } } }, "entity": { @@ -147,18 +147,6 @@ "tank_lid": { "name": "Tank lid" }, - "turn_indication_front_left_warning": { - "name": "Turn indication front left" - }, - "turn_indication_front_right_warning": { - "name": "Turn indication front right" - }, - "turn_indication_rear_left_warning": { - "name": "Turn indication rear left" - }, - "turn_indication_rear_right_warning": { - "name": "Turn indication rear right" - }, "tire_front_left": { "name": "Tire front left" }, @@ -171,6 +159,18 @@ "tire_rear_right": { "name": "Tire rear right" }, + "turn_indication_front_left_warning": { + "name": "Turn indication front left" + }, + "turn_indication_front_right_warning": { + "name": "Turn indication front right" + }, + "turn_indication_rear_left_warning": { + "name": "Turn indication rear left" + }, + "turn_indication_rear_right_warning": { + "name": "Turn indication rear right" + }, "washer_fluid_level_warning": { "name": "Washer fluid" }, @@ -267,9 +267,9 @@ "name": "Charging power status", "state": { "fault": "[%key:common::state::fault%]", + "no_power_available": "No power", "power_available_but_not_activated": "Power available", - "providing_power": "Providing power", - "no_power_available": "No power" + "providing_power": "Providing power" } }, "charging_status": { @@ -352,11 +352,11 @@ "no_vehicle": { "message": "Unable to retrieve vehicle details." }, - "update_failed": { - "message": "Unable to update data." - }, "unauthorized": { "message": "Authentication failed. {message}" + }, + "update_failed": { + "message": "Unable to update data." } } } diff --git a/homeassistant/components/volvooncall/strings.json b/homeassistant/components/volvooncall/strings.json index 72a406273bd..272361b6d29 100644 --- a/homeassistant/components/volvooncall/strings.json +++ b/homeassistant/components/volvooncall/strings.json @@ -1,18 +1,18 @@ { "config": { + "abort": { + "deprecated": "Volvo On Call has been replaced by the Volvo integration. Please use the Volvo integration instead." + }, "step": { "user": { "description": "Volvo on Call is deprecated, use the Volvo integration" } - }, - "abort": { - "deprecated": "Volvo On Call has been replaced by the Volvo integration. Please use the Volvo integration instead." } }, "issues": { "volvooncall_deprecated": { - "title": "Volvo On Call has been replaced", - "description": "The Volvo On Call integration is deprecated and will be removed in 2026.3. Please use the Volvo integration instead.\n\nSteps:\n1. Remove this Volvo On Call integration.\n2. Add the Volvo integration through Settings > Devices & services > Add integration > Volvo.\n3. Follow the setup instructions to authenticate with your Volvo account." + "description": "The Volvo On Call integration is deprecated and will be removed in 2026.3. Please use the Volvo integration instead.\n\nSteps:\n1. Remove this Volvo On Call integration.\n2. Add the Volvo integration through Settings > Devices & services > Add integration > Volvo.\n3. Follow the setup instructions to authenticate with your Volvo account.", + "title": "Volvo On Call has been replaced" } } } diff --git a/homeassistant/components/wake_on_lan/strings.json b/homeassistant/components/wake_on_lan/strings.json index 89bc30e405a..a72edaba580 100644 --- a/homeassistant/components/wake_on_lan/strings.json +++ b/homeassistant/components/wake_on_lan/strings.json @@ -6,14 +6,14 @@ "step": { "user": { "data": { - "mac": "MAC address", "broadcast_address": "Broadcast address", - "broadcast_port": "Broadcast port" + "broadcast_port": "Broadcast port", + "mac": "MAC address" }, "data_description": { - "mac": "MAC address of the device to wake up.", "broadcast_address": "The IP address of the host to send the magic packet to. Defaults to `255.255.255.255` and is normally not changed.", - "broadcast_port": "The port to send the magic packet to. Defaults to `9` and is normally not changed." + "broadcast_port": "The port to send the magic packet to. Defaults to `9` and is normally not changed.", + "mac": "MAC address of the device to wake up." } } } @@ -37,22 +37,22 @@ }, "services": { "send_magic_packet": { - "name": "Send magic packet", "description": "Sends a 'magic packet' to wake up a device with 'Wake-On-LAN' capabilities.", "fields": { - "mac": { - "name": "[%key:component::wake_on_lan::config::step::user::data::mac%]", - "description": "[%key:component::wake_on_lan::config::step::user::data_description::mac%]" - }, "broadcast_address": { - "name": "[%key:component::wake_on_lan::config::step::user::data::broadcast_address%]", - "description": "[%key:component::wake_on_lan::config::step::user::data_description::broadcast_address%]" + "description": "[%key:component::wake_on_lan::config::step::user::data_description::broadcast_address%]", + "name": "[%key:component::wake_on_lan::config::step::user::data::broadcast_address%]" }, "broadcast_port": { - "name": "[%key:component::wake_on_lan::config::step::user::data::broadcast_port%]", - "description": "[%key:component::wake_on_lan::config::step::user::data_description::broadcast_port%]" + "description": "[%key:component::wake_on_lan::config::step::user::data_description::broadcast_port%]", + "name": "[%key:component::wake_on_lan::config::step::user::data::broadcast_port%]" + }, + "mac": { + "description": "[%key:component::wake_on_lan::config::step::user::data_description::mac%]", + "name": "[%key:component::wake_on_lan::config::step::user::data::mac%]" } - } + }, + "name": "Send magic packet" } } } diff --git a/homeassistant/components/wallbox/icons.json b/homeassistant/components/wallbox/icons.json index d4495939d6d..230f96d1c96 100644 --- a/homeassistant/components/wallbox/icons.json +++ b/homeassistant/components/wallbox/icons.json @@ -6,12 +6,12 @@ } }, "sensor": { - "charging_speed": { - "default": "mdi:speedometer" - }, "added_range": { "default": "mdi:map-marker-distance" }, + "charging_speed": { + "default": "mdi:speedometer" + }, "cost": { "default": "mdi:ev-station" }, diff --git a/homeassistant/components/wallbox/strings.json b/homeassistant/components/wallbox/strings.json index c59b5389658..8c3ffc458eb 100644 --- a/homeassistant/components/wallbox/strings.json +++ b/homeassistant/components/wallbox/strings.json @@ -1,34 +1,34 @@ { "config": { - "step": { - "user": { - "data": { - "station": "Station serial number", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "data_description": { - "station": "Serial number of the charger. Can be found in the Wallbox app or in the Wallbox portal.", - "username": "Username for your Wallbox account.", - "password": "Password for your Wallbox account." - } - }, - "reauth_confirm": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "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%]", - "reauth_invalid": "Re-authentication failed; serial number does not match original" + "reauth_invalid": "Re-authentication failed; serial number does not match original", + "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%]" + "step": { + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + } + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "station": "Station serial number", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "password": "Password for your Wallbox account.", + "station": "Serial number of the charger. Can be found in the Wallbox app or in the Wallbox portal.", + "username": "Username for your Wallbox account." + } + } } }, "entity": { @@ -38,28 +38,29 @@ } }, "number": { - "maximum_charging_current": { - "name": "Maximum charging current" - }, "energy_price": { "name": "Energy price" }, + "maximum_charging_current": { + "name": "Maximum charging current" + }, "maximum_icp_current": { "name": "Maximum ICP current" } }, + "select": { + "ecosmart": { + "name": "Solar charging", + "state": { + "eco_mode": "Eco mode", + "full_solar": "Full solar", + "off": "[%key:common::state::off%]" + } + } + }, "sensor": { - "charging_power": { - "name": "Charging power" - }, - "max_available_power": { - "name": "Max available power" - }, - "charging_speed": { - "name": "Charging speed" - }, - "added_range": { - "name": "Added range" + "added_discharged_energy": { + "name": "Discharged energy" }, "added_energy": { "name": "Added energy" @@ -70,15 +71,18 @@ "added_grid_energy": { "name": "Added grid energy" }, - "added_discharged_energy": { - "name": "Discharged energy" + "added_range": { + "name": "Added range" + }, + "charging_power": { + "name": "Charging power" + }, + "charging_speed": { + "name": "Charging speed" }, "cost": { "name": "Cost" }, - "state_of_charge": { - "name": "State of charge" - }, "current_mode": { "name": "Current mode" }, @@ -88,50 +92,46 @@ "energy_price": { "name": "Energy price" }, - "status_description": { - "name": "Status description" + "icp_max_current": { + "name": "Max ICP current" + }, + "max_available_power": { + "name": "Max available power" }, "max_charging_current": { "name": "Max charging current" }, - "icp_max_current": { - "name": "Max ICP current" + "state_of_charge": { + "name": "State of charge" + }, + "status_description": { + "name": "Status description" } }, "switch": { "pause_resume": { "name": "Pause/resume" } - }, - "select": { - "ecosmart": { - "name": "Solar charging", - "state": { - "off": "[%key:common::state::off%]", - "eco_mode": "Eco mode", - "full_solar": "Full solar" - } - } - } - }, - "issues": { - "insufficient_rights": { - "title": "The Wallbox account has insufficient rights.", - "description": "The Wallbox account has insufficient rights to lock/unlock and change the charging power. Please assign the user admin rights in the Wallbox portal." } }, "exceptions": { "api_failed": { "message": "Error communicating with Wallbox API" }, - "too_many_requests": { - "message": "Error communicating with Wallbox API, too many requests" + "insufficient_rights": { + "message": "Insufficient rights for Wallbox user" }, "invalid_auth": { "message": "Invalid authentication" }, + "too_many_requests": { + "message": "Error communicating with Wallbox API, too many requests" + } + }, + "issues": { "insufficient_rights": { - "message": "Insufficient rights for Wallbox user" + "description": "The Wallbox account has insufficient rights to lock/unlock and change the charging power. Please assign the user admin rights in the Wallbox portal.", + "title": "The Wallbox account has insufficient rights." } } } diff --git a/homeassistant/components/waqi/icons.json b/homeassistant/components/waqi/icons.json index 545e49fd54e..dd8adf343be 100644 --- a/homeassistant/components/waqi/icons.json +++ b/homeassistant/components/waqi/icons.json @@ -4,24 +4,6 @@ "carbon_monoxide": { "default": "mdi:molecule-co" }, - "nitrogen_dioxide": { - "default": "mdi:molecule" - }, - "ozone": { - "default": "mdi:molecule" - }, - "sulphur_dioxide": { - "default": "mdi:molecule" - }, - "pm10": { - "default": "mdi:molecule" - }, - "pm25": { - "default": "mdi:molecule" - }, - "neph": { - "default": "mdi:eye" - }, "dominant_pollutant": { "default": "mdi:molecule", "state": { @@ -29,10 +11,28 @@ "neph": "mdi:eye", "no2": "mdi:molecule", "o3": "mdi:molecule", - "so2": "mdi:molecule", "pm10": "mdi:molecule", - "pm25": "mdi:molecule" + "pm25": "mdi:molecule", + "so2": "mdi:molecule" } + }, + "neph": { + "default": "mdi:eye" + }, + "nitrogen_dioxide": { + "default": "mdi:molecule" + }, + "ozone": { + "default": "mdi:molecule" + }, + "pm10": { + "default": "mdi:molecule" + }, + "pm25": { + "default": "mdi:molecule" + }, + "sulphur_dioxide": { + "default": "mdi:molecule" } } } diff --git a/homeassistant/components/waqi/strings.json b/homeassistant/components/waqi/strings.json index 96fefe99f58..bb55855a1d9 100644 --- a/homeassistant/components/waqi/strings.json +++ b/homeassistant/components/waqi/strings.json @@ -1,5 +1,13 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,27 +17,18 @@ "api_key": "API key for the World Air Quality Index" } } - }, - "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_service%]" } }, "config_subentries": { "station": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "entry_type": "Measuring station", + "initiate_flow": { + "user": "Add measuring station" + }, "step": { - "user": { - "title": "Add measuring station", - "description": "How do you want to select a measuring station?", - "menu_options": { - "map": "[%key:common::config_flow::data::location%]", - "station_number": "Measuring station number" - } - }, "map": { "data": { "location": "[%key:common::config_flow::data::location%]" @@ -45,15 +44,16 @@ "data_description": { "station_number": "The number of the measuring station" } + }, + "user": { + "description": "How do you want to select a measuring station?", + "menu_options": { + "map": "[%key:common::config_flow::data::location%]", + "station_number": "Measuring station number" + }, + "title": "Add measuring station" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" - }, - "initiate_flow": { - "user": "Add measuring station" - }, - "entry_type": "Measuring station" + } } }, "entity": { @@ -61,24 +61,6 @@ "carbon_monoxide": { "name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]" }, - "nitrogen_dioxide": { - "name": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]" - }, - "ozone": { - "name": "[%key:component::sensor::entity_component::ozone::name%]" - }, - "sulphur_dioxide": { - "name": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" - }, - "pm10": { - "name": "[%key:component::sensor::entity_component::pm10::name%]" - }, - "pm25": { - "name": "[%key:component::sensor::entity_component::pm25::name%]" - }, - "neph": { - "name": "Visibility using nephelometry" - }, "dominant_pollutant": { "name": "Dominant pollutant", "state": { @@ -86,10 +68,28 @@ "neph": "Nephelometry", "no2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", "o3": "[%key:component::sensor::entity_component::ozone::name%]", - "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]", "pm10": "[%key:component::sensor::entity_component::pm10::name%]", - "pm25": "[%key:component::sensor::entity_component::pm25::name%]" + "pm25": "[%key:component::sensor::entity_component::pm25::name%]", + "so2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" } + }, + "neph": { + "name": "Visibility using nephelometry" + }, + "nitrogen_dioxide": { + "name": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]" + }, + "ozone": { + "name": "[%key:component::sensor::entity_component::ozone::name%]" + }, + "pm10": { + "name": "[%key:component::sensor::entity_component::pm10::name%]" + }, + "pm25": { + "name": "[%key:component::sensor::entity_component::pm25::name%]" + }, + "sulphur_dioxide": { + "name": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]" } } } diff --git a/homeassistant/components/water_heater/strings.json b/homeassistant/components/water_heater/strings.json index 9cc3a84c3cd..d5e7d6fadc1 100644 --- a/homeassistant/components/water_heater/strings.json +++ b/homeassistant/components/water_heater/strings.json @@ -1,24 +1,30 @@ { - "title": "Water heater", "device_automation": { "action_type": { - "turn_on": "[%key:common::device_automation::action_type::turn_on%]", - "turn_off": "[%key:common::device_automation::action_type::turn_off%]" + "turn_off": "[%key:common::device_automation::action_type::turn_off%]", + "turn_on": "[%key:common::device_automation::action_type::turn_on%]" } }, "entity_component": { "_": { "name": "[%key:component::water_heater::title%]", "state": { - "off": "[%key:common::state::off%]", "eco": "Eco", "electric": "Electric", "gas": "Gas", - "high_demand": "High demand", "heat_pump": "Heat pump", + "high_demand": "High demand", + "off": "[%key:common::state::off%]", "performance": "Performance" }, "state_attributes": { + "away_mode": { + "name": "Away mode", + "state": { + "off": "[%key:common::state::off%]", + "on": "[%key:common::state::on%]" + } + }, "current_operation": { "name": "Current operation" }, @@ -36,61 +42,10 @@ }, "target_temp_low": { "name": "Lower target temperature" - }, - "away_mode": { - "name": "Away mode", - "state": { - "off": "[%key:common::state::off%]", - "on": "[%key:common::state::on%]" - } } } } }, - "services": { - "set_away_mode": { - "name": "Set away mode", - "description": "Turns away mode on/off.", - "fields": { - "away_mode": { - "name": "Away mode", - "description": "New value of away mode." - } - } - }, - "set_temperature": { - "name": "Set temperature", - "description": "Sets the target temperature.", - "fields": { - "temperature": { - "name": "Temperature", - "description": "New target temperature for the water heater." - }, - "operation_mode": { - "name": "Operation mode", - "description": "New value of the operation mode. For a list of possible modes, refer to the integration documentation." - } - } - }, - "set_operation_mode": { - "name": "Set operation mode", - "description": "Sets the operation mode.", - "fields": { - "operation_mode": { - "name": "[%key:component::water_heater::services::set_temperature::fields::operation_mode::name%]", - "description": "[%key:component::water_heater::services::set_temperature::fields::operation_mode::description%]" - } - } - }, - "turn_on": { - "name": "[%key:common::action::turn_on%]", - "description": "Turns water heater on." - }, - "turn_off": { - "name": "[%key:common::action::turn_off%]", - "description": "Turns water heater off." - } - }, "exceptions": { "not_valid_operation_mode": { "message": "Operation mode {operation_mode} is not valid for {entity_id}. Valid operation modes are: {operation_list}." @@ -98,5 +53,50 @@ "operation_list_not_defined": { "message": "Operation mode {operation_mode} is not valid for {entity_id}. The operation list is not defined." } - } + }, + "services": { + "set_away_mode": { + "description": "Turns away mode on/off.", + "fields": { + "away_mode": { + "description": "New value of away mode.", + "name": "Away mode" + } + }, + "name": "Set away mode" + }, + "set_operation_mode": { + "description": "Sets the operation mode.", + "fields": { + "operation_mode": { + "description": "[%key:component::water_heater::services::set_temperature::fields::operation_mode::description%]", + "name": "[%key:component::water_heater::services::set_temperature::fields::operation_mode::name%]" + } + }, + "name": "Set operation mode" + }, + "set_temperature": { + "description": "Sets the target temperature.", + "fields": { + "operation_mode": { + "description": "New value of the operation mode. For a list of possible modes, refer to the integration documentation.", + "name": "Operation mode" + }, + "temperature": { + "description": "New target temperature for the water heater.", + "name": "Temperature" + } + }, + "name": "Set temperature" + }, + "turn_off": { + "description": "Turns water heater off.", + "name": "[%key:common::action::turn_off%]" + }, + "turn_on": { + "description": "Turns water heater on.", + "name": "[%key:common::action::turn_on%]" + } + }, + "title": "Water heater" } diff --git a/homeassistant/components/watergate/icons.json b/homeassistant/components/watergate/icons.json index 28a0bfbc825..974214355ac 100644 --- a/homeassistant/components/watergate/icons.json +++ b/homeassistant/components/watergate/icons.json @@ -1,11 +1,11 @@ { "entity": { "event": { - "auto_shut_off_volume": { - "default": "mdi:water" - }, "auto_shut_off_duration": { "default": "mdi:timelapse" + }, + "auto_shut_off_volume": { + "default": "mdi:water" } } } diff --git a/homeassistant/components/watergate/strings.json b/homeassistant/components/watergate/strings.json index 634e05e7973..b4f467f1e84 100644 --- a/homeassistant/components/watergate/strings.json +++ b/homeassistant/components/watergate/strings.json @@ -1,89 +1,89 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { "ip_address": "[%key:common::config_flow::data::ip%]" }, - "title": "Configure Watergate device", "data_description": { "ip_address": "Provide an IP address of your Watergate device." - } + }, + "title": "Configure Watergate device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "event": { - "auto_shut_off_volume": { - "name": "Volume auto shut-off", - "state_attributes": { - "event_type": { - "state": { - "volume_threshold": "Volume", - "duration_threshold": "Duration" - } - }, - "volume": { - "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::volume_threshold%]" - }, - "duration": { - "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::duration_threshold%]" - } - } - }, "auto_shut_off_duration": { "name": "Duration auto shut-off", "state_attributes": { + "duration": { + "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::duration_threshold%]" + }, "event_type": { "state": { - "volume_threshold": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::volume_threshold%]", - "duration_threshold": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::duration_threshold%]" + "duration_threshold": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::duration_threshold%]", + "volume_threshold": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::volume_threshold%]" } }, "volume": { "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::volume_threshold%]" - }, + } + } + }, + "auto_shut_off_volume": { + "name": "Volume auto shut-off", + "state_attributes": { "duration": { "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::duration_threshold%]" + }, + "event_type": { + "state": { + "duration_threshold": "Duration", + "volume_threshold": "Volume" + } + }, + "volume": { + "name": "[%key:component::watergate::entity::event::auto_shut_off_volume::state_attributes::event_type::state::volume_threshold%]" } } } }, "sensor": { - "water_meter_volume": { - "name": "Water meter volume" - }, - "water_meter_duration": { - "name": "Water meter duration" - }, - "wifi_up_since": { - "name": "Wi-Fi up since" - }, "mqtt_up_since": { "name": "MQTT up since" }, - "water_temperature": { - "name": "Water temperature" - }, - "water_pressure": { - "name": "Water pressure" - }, - "up_since": { - "name": "Up since" - }, "power_supply_mode": { "name": "Power supply mode", "state": { "battery": "Battery", - "external": "Mains", - "battery_external": "Battery and mains" + "battery_external": "Battery and mains", + "external": "Mains" } + }, + "up_since": { + "name": "Up since" + }, + "water_meter_duration": { + "name": "Water meter duration" + }, + "water_meter_volume": { + "name": "Water meter volume" + }, + "water_pressure": { + "name": "Water pressure" + }, + "water_temperature": { + "name": "Water temperature" + }, + "wifi_up_since": { + "name": "Wi-Fi up since" } } } diff --git a/homeassistant/components/watttime/strings.json b/homeassistant/components/watttime/strings.json index b62a9961131..54c335e05c3 100644 --- a/homeassistant/components/watttime/strings.json +++ b/homeassistant/components/watttime/strings.json @@ -1,51 +1,41 @@ { "config": { - "step": { - "coordinates": { - "description": "Input the latitude and longitude to monitor:", - "data": { - "latitude": "[%key:common::config_flow::data::latitude%]", - "longitude": "[%key:common::config_flow::data::longitude%]" - } - }, - "location": { - "description": "Pick a location to monitor:", - "data": { - "location_type": "[%key:common::config_flow::data::location%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "Please re-enter the password for {username}:", - "data": { - "password": "[%key:common::config_flow::data::password%]" - } - }, - "user": { - "description": "Input your username and password:", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "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%]", "unknown_coordinates": "No data for latitude/longitude" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" - } - }, - "options": { "step": { - "init": { - "title": "Configure WattTime", + "coordinates": { "data": { - "show_on_map": "Show monitored location on the map" - } + "latitude": "[%key:common::config_flow::data::latitude%]", + "longitude": "[%key:common::config_flow::data::longitude%]" + }, + "description": "Input the latitude and longitude to monitor:" + }, + "location": { + "data": { + "location_type": "[%key:common::config_flow::data::location%]" + }, + "description": "Pick a location to monitor:" + }, + "reauth_confirm": { + "data": { + "password": "[%key:common::config_flow::data::password%]" + }, + "description": "Please re-enter the password for {username}:", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Input your username and password:" } } }, @@ -58,5 +48,15 @@ "name": "Relative marginal emissions intensity" } } + }, + "options": { + "step": { + "init": { + "data": { + "show_on_map": "Show monitored location on the map" + }, + "title": "Configure WattTime" + } + } } } diff --git a/homeassistant/components/waze_travel_time/strings.json b/homeassistant/components/waze_travel_time/strings.json index c57f5470b04..dcbf2edef6b 100644 --- a/homeassistant/components/waze_travel_time/strings.json +++ b/homeassistant/components/waze_travel_time/strings.json @@ -1,116 +1,116 @@ { - "title": "Waze Travel Time", "config": { - "step": { - "user": { - "description": "For Origin and Destination, enter the address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter an entity ID which provides this information in its state, an entity ID with latitude and longitude attributes, or zone friendly name.", - "data": { - "name": "[%key:common::config_flow::data::name%]", - "origin": "Origin", - "destination": "Destination", - "region": "Region" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" + "step": { + "user": { + "data": { + "destination": "Destination", + "name": "[%key:common::config_flow::data::name%]", + "origin": "Origin", + "region": "Region" + }, + "description": "For Origin and Destination, enter the address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter an entity ID which provides this information in its state, an entity ID with latitude and longitude attributes, or zone friendly name." + } } }, "options": { "step": { "init": { - "description": "Some options will allow you to force the integration to use a particular route or avoid a particular route in its time travel calculation.", "data": { - "units": "Units", - "vehicle_type": "Vehicle type", - "incl_filter": "Exact street name which must be part of the selected route", - "excl_filter": "Exact street name which must NOT be part of the selected route", - "realtime": "Realtime travel time?", - "avoid_toll_roads": "Avoid toll roads?", "avoid_ferries": "Avoid ferries?", - "avoid_subscription_roads": "Avoid roads needing a vignette / subscription?" - } + "avoid_subscription_roads": "Avoid roads needing a vignette / subscription?", + "avoid_toll_roads": "Avoid toll roads?", + "excl_filter": "Exact street name which must NOT be part of the selected route", + "incl_filter": "Exact street name which must be part of the selected route", + "realtime": "Realtime travel time?", + "units": "Units", + "vehicle_type": "Vehicle type" + }, + "description": "Some options will allow you to force the integration to use a particular route or avoid a particular route in its time travel calculation." } } }, "selector": { - "vehicle_type": { + "region": { "options": { - "car": "Car", - "taxi": "Taxi", - "motorcycle": "Motorcycle" + "au": "Australia", + "eu": "Europe", + "il": "Israel", + "na": "North America", + "us": "USA" } }, "units": { "options": { - "metric": "Metric system", - "imperial": "Imperial system" + "imperial": "Imperial system", + "metric": "Metric system" } }, - "region": { + "vehicle_type": { "options": { - "us": "USA", - "na": "North America", - "eu": "Europe", - "il": "Israel", - "au": "Australia" + "car": "Car", + "motorcycle": "Motorcycle", + "taxi": "Taxi" } } }, "services": { "get_travel_times": { - "name": "Get travel times", "description": "Retrieves route alternatives and travel times between two locations.", "fields": { - "origin": { - "name": "[%key:component::waze_travel_time::config::step::user::data::origin%]", - "description": "The origin of the route." - }, - "destination": { - "name": "[%key:component::waze_travel_time::config::step::user::data::destination%]", - "description": "The destination of the route." - }, - "region": { - "name": "[%key:component::waze_travel_time::config::step::user::data::region%]", - "description": "The region. Controls which Waze server is used." - }, - "units": { - "name": "[%key:component::waze_travel_time::options::step::init::data::units%]", - "description": "Which unit system to use." - }, - "vehicle_type": { - "name": "[%key:component::waze_travel_time::options::step::init::data::vehicle_type%]", - "description": "Which vehicle to use." - }, - "realtime": { - "name": "[%key:component::waze_travel_time::options::step::init::data::realtime%]", - "description": "Use real-time or statistical data." - }, - "avoid_toll_roads": { - "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_toll_roads%]", - "description": "Whether to avoid toll roads." - }, "avoid_ferries": { - "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_ferries%]", - "description": "Whether to avoid ferries." + "description": "Whether to avoid ferries.", + "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_ferries%]" }, "avoid_subscription_roads": { - "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_subscription_roads%]", - "description": "Whether to avoid subscription roads." + "description": "Whether to avoid subscription roads.", + "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_subscription_roads%]" }, - "incl_filter": { - "name": "Streets to include", - "description": "[%key:component::waze_travel_time::options::step::init::data::incl_filter%]" + "avoid_toll_roads": { + "description": "Whether to avoid toll roads.", + "name": "[%key:component::waze_travel_time::options::step::init::data::avoid_toll_roads%]" + }, + "destination": { + "description": "The destination of the route.", + "name": "[%key:component::waze_travel_time::config::step::user::data::destination%]" }, "excl_filter": { - "name": "Streets to exclude", - "description": "[%key:component::waze_travel_time::options::step::init::data::excl_filter%]" + "description": "[%key:component::waze_travel_time::options::step::init::data::excl_filter%]", + "name": "Streets to exclude" + }, + "incl_filter": { + "description": "[%key:component::waze_travel_time::options::step::init::data::incl_filter%]", + "name": "Streets to include" + }, + "origin": { + "description": "The origin of the route.", + "name": "[%key:component::waze_travel_time::config::step::user::data::origin%]" + }, + "realtime": { + "description": "Use real-time or statistical data.", + "name": "[%key:component::waze_travel_time::options::step::init::data::realtime%]" + }, + "region": { + "description": "The region. Controls which Waze server is used.", + "name": "[%key:component::waze_travel_time::config::step::user::data::region%]" + }, + "units": { + "description": "Which unit system to use.", + "name": "[%key:component::waze_travel_time::options::step::init::data::units%]" + }, + "vehicle_type": { + "description": "Which vehicle to use.", + "name": "[%key:component::waze_travel_time::options::step::init::data::vehicle_type%]" } - } + }, + "name": "Get travel times" } - } + }, + "title": "Waze Travel Time" } diff --git a/homeassistant/components/weather/strings.json b/homeassistant/components/weather/strings.json index 31e644b32e3..cda8b91ff79 100644 --- a/homeassistant/components/weather/strings.json +++ b/homeassistant/components/weather/strings.json @@ -1,5 +1,4 @@ { - "title": "Weather", "entity_component": { "_": { "name": "[%key:component::weather::title%]", @@ -21,6 +20,15 @@ "windy-variant": "Windy, cloudy" }, "state_attributes": { + "apparent_temperature": { + "name": "Apparent temperature" + }, + "cloud_coverage": { + "name": "Cloud coverage" + }, + "dew_point": { + "name": "Dew point temperature" + }, "forecast": { "name": "Forecast" }, @@ -30,9 +38,6 @@ "ozone": { "name": "Ozone" }, - "cloud_coverage": { - "name": "Cloud coverage" - }, "precipitation_unit": { "name": "Precipitation unit" }, @@ -42,18 +47,15 @@ "pressure_unit": { "name": "Pressure unit" }, - "apparent_temperature": { - "name": "Apparent temperature" - }, - "dew_point": { - "name": "Dew point temperature" - }, "temperature": { "name": "Temperature" }, "temperature_unit": { "name": "Temperature unit" }, + "uv_index": { + "name": "UV index" + }, "visibility": { "name": "Visibility" }, @@ -71,13 +73,23 @@ }, "wind_speed_unit": { "name": "Wind speed unit" - }, - "uv_index": { - "name": "UV index" } } } }, + "issues": { + "deprecated_service_weather_get_forecast": { + "fix_flow": { + "step": { + "confirm": { + "description": "Use `weather.get_forecasts` instead which supports multiple entities.\n\nPlease replace this action and adjust your automations and scripts and select **Submit** to close this issue.", + "title": "[%key:component::weather::issues::deprecated_service_weather_get_forecast::title%]" + } + } + }, + "title": "Detected use of deprecated action weather.get_forecast" + } + }, "selector": { "forecast_type": { "options": { @@ -88,38 +100,26 @@ } }, "services": { - "get_forecasts": { - "name": "Get forecasts", - "description": "Retrieves the forecast from selected weather services.", - "fields": { - "type": { - "name": "Forecast type", - "description": "The scope of the weather forecast." - } - } - }, "get_forecast": { - "name": "Get forecast", "description": "Retrieves the forecast from a selected weather service.", "fields": { "type": { - "name": "[%key:component::weather::services::get_forecasts::fields::type::name%]", - "description": "[%key:component::weather::services::get_forecasts::fields::type::description%]" + "description": "[%key:component::weather::services::get_forecasts::fields::type::description%]", + "name": "[%key:component::weather::services::get_forecasts::fields::type::name%]" } - } + }, + "name": "Get forecast" + }, + "get_forecasts": { + "description": "Retrieves the forecast from selected weather services.", + "fields": { + "type": { + "description": "The scope of the weather forecast.", + "name": "Forecast type" + } + }, + "name": "Get forecasts" } }, - "issues": { - "deprecated_service_weather_get_forecast": { - "title": "Detected use of deprecated action weather.get_forecast", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::weather::issues::deprecated_service_weather_get_forecast::title%]", - "description": "Use `weather.get_forecasts` instead which supports multiple entities.\n\nPlease replace this action and adjust your automations and scripts and select **Submit** to close this issue." - } - } - } - } - } + "title": "Weather" } diff --git a/homeassistant/components/weatherflow/icons.json b/homeassistant/components/weatherflow/icons.json index 8e45060681e..6b691f41c9b 100644 --- a/homeassistant/components/weatherflow/icons.json +++ b/homeassistant/components/weatherflow/icons.json @@ -1,5 +1,13 @@ { "entity": { + "event": { + "lightning_strike_event": { + "default": "mdi:weather-lightning" + }, + "precip_start_event": { + "default": "mdi:weather-rainy" + } + }, "sensor": { "lightning_average_distance": { "default": "mdi:lightning-bolt" @@ -38,14 +46,6 @@ "337.5": "mdi:arrow-up" } } - }, - "event": { - "lightning_strike_event": { - "default": "mdi:weather-lightning" - }, - "precip_start_event": { - "default": "mdi:weather-rainy" - } } } } diff --git a/homeassistant/components/weatherflow/strings.json b/homeassistant/components/weatherflow/strings.json index a4e3aac8ddd..d2146e88370 100644 --- a/homeassistant/components/weatherflow/strings.json +++ b/homeassistant/components/weatherflow/strings.json @@ -1,36 +1,44 @@ { "config": { - "step": { - "user": { - "description": "Unable to discover Tempest WeatherFlow devices. Select **Submit** to try again.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Tempest WeatherFlow device." - } - } + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" }, "error": { "address_in_use": "Unable to open local UDP port 50222.", "cannot_connect": "UDP discovery error.", "no_device_found": "[%key:common::config_flow::abort::no_devices_found%]" }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + "step": { + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Tempest WeatherFlow device." + }, + "description": "Unable to discover Tempest WeatherFlow devices. Select **Submit** to try again." + } } }, "entity": { + "event": { + "lightning_strike_event": { + "name": "Lightning strike" + }, + "precip_start_event": { + "name": "Precipitation start" + } + }, "sensor": { "air_density": { "name": "Air density" }, - "dew_point": { - "name": "Dew point" - }, "battery_voltage": { "name": "Battery voltage" }, + "dew_point": { + "name": "Dew point" + }, "feels_like": { "name": "Feels like" }, @@ -43,9 +51,9 @@ "precipitation_type": { "name": "Precipitation type", "state": { + "hail": "Hail", "none": "None", "rain": "Rain", - "hail": "Hail", "rain_hail": "Rain and hail" } }, @@ -64,9 +72,6 @@ "wet_bulb_temperature": { "name": "Wet bulb temperature" }, - "wind_speed_average": { - "name": "Wind speed average" - }, "wind_direction": { "name": "Wind direction" }, @@ -78,14 +83,9 @@ }, "wind_lull": { "name": "Wind lull" - } - }, - "event": { - "lightning_strike_event": { - "name": "Lightning strike" }, - "precip_start_event": { - "name": "Precipitation start" + "wind_speed_average": { + "name": "Wind speed average" } } } diff --git a/homeassistant/components/weatherflow_cloud/icons.json b/homeassistant/components/weatherflow_cloud/icons.json index a5759d8b810..221ac699372 100644 --- a/homeassistant/components/weatherflow_cloud/icons.json +++ b/homeassistant/components/weatherflow_cloud/icons.json @@ -60,6 +60,15 @@ } }, + "precip_analysis_type_yesterday": { + "default": "mdi:radar", + "state": { + "lightning": "mdi:weather-lightning-rainy", + "rain": "mdi:weather-rainy", + "rain_snow": "mdi:weather-snoy-rainy", + "snow": "mdi:weather-snowy" + } + }, "precip_minutes_local_day": { "default": "mdi:umbrella-closed", "range": { @@ -79,15 +88,6 @@ } }, - "precip_analysis_type_yesterday": { - "default": "mdi:radar", - "state": { - "rain": "mdi:weather-rainy", - "snow": "mdi:weather-snowy", - "rain_snow": "mdi:weather-snoy-rainy", - "lightning": "mdi:weather-lightning-rainy" - } - }, "sea_level_pressure": { "default": "mdi:gauge" }, diff --git a/homeassistant/components/weatherflow_cloud/strings.json b/homeassistant/components/weatherflow_cloud/strings.json index 5b628e9f5c8..b5ed90294e6 100644 --- a/homeassistant/components/weatherflow_cloud/strings.json +++ b/homeassistant/components/weatherflow_cloud/strings.json @@ -1,27 +1,27 @@ { "config": { - "step": { - "user": { - "description": "Set up a WeatherFlow Forecast Station", - "data": { - "api_token": "Personal API token" - } - }, - "reauth_confirm": { - "description": "Reauthenticate with WeatherFlow", - "data": { - "api_token": "[%key:component::weatherflow_cloud::config::step::user::data::api_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + "step": { + "reauth_confirm": { + "data": { + "api_token": "[%key:component::weatherflow_cloud::config::step::user::data::api_token%]" + }, + "description": "Reauthenticate with WeatherFlow" + }, + "user": { + "data": { + "api_token": "Personal API token" + }, + "description": "Set up a WeatherFlow Forecast Station" + } } }, "entity": { diff --git a/homeassistant/components/weatherkit/strings.json b/homeassistant/components/weatherkit/strings.json index a0b62a5e16f..313773f6444 100644 --- a/homeassistant/components/weatherkit/strings.json +++ b/homeassistant/components/weatherkit/strings.json @@ -1,25 +1,25 @@ { "config": { - "step": { - "user": { - "title": "WeatherKit setup", - "description": "Enter your location details and WeatherKit authentication credentials below.", - "data": { - "name": "Name", - "location": "[%key:common::config_flow::data::location%]", - "key_id": "Key ID", - "team_id": "Apple team ID", - "service_id": "Service ID", - "key_pem": "Private key (.p8)" - } - } - }, "error": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "unsupported_location": "Apple WeatherKit does not provide data for this location.", + "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%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + "unsupported_location": "Apple WeatherKit does not provide data for this location." + }, + "step": { + "user": { + "data": { + "key_id": "Key ID", + "key_pem": "Private key (.p8)", + "location": "[%key:common::config_flow::data::location%]", + "name": "Name", + "service_id": "Service ID", + "team_id": "Apple team ID" + }, + "description": "Enter your location details and WeatherKit authentication credentials below.", + "title": "WeatherKit setup" + } } }, "entity": { @@ -27,9 +27,9 @@ "pressure_trend": { "name": "Pressure trend", "state": { - "steady": "Steady", + "falling": "Falling", "rising": "Rising", - "falling": "Falling" + "steady": "Steady" } } } diff --git a/homeassistant/components/webdav/strings.json b/homeassistant/components/webdav/strings.json index 689b27bbf66..cb5bf060e60 100644 --- a/homeassistant/components/webdav/strings.json +++ b/homeassistant/components/webdav/strings.json @@ -1,43 +1,43 @@ { "config": { - "step": { - "user": { - "data": { - "url": "[%key:common::config_flow::data::url%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "backup_path": "Backup path", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - }, - "data_description": { - "url": "The URL of the WebDAV server. Check with your provider for the correct URL.", - "username": "The username for the WebDAV server.", - "password": "The password for the WebDAV server.", - "backup_path": "Define the path where the backups should be located (will be created automatically if it does not exist).", - "verify_ssl": "Whether to verify the SSL certificate of the server. If you are using a self-signed certificate, do not select this option." - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "error": { + "access_denied": "The access to the backup path has been denied. Please check the permissions of the backup path.", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "access_denied": "The access to the backup path has been denied. Please check the permissions of the backup path.", "invalid_method": "The server does not support the required methods. Please check whether you have the correct URL. Check with your provider for the correct URL.", "unknown": "[%key:common::config_flow::error::unknown%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + "step": { + "user": { + "data": { + "backup_path": "Backup path", + "password": "[%key:common::config_flow::data::password%]", + "url": "[%key:common::config_flow::data::url%]", + "username": "[%key:common::config_flow::data::username%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" + }, + "data_description": { + "backup_path": "Define the path where the backups should be located (will be created automatically if it does not exist).", + "password": "The password for the WebDAV server.", + "url": "The URL of the WebDAV server. Check with your provider for the correct URL.", + "username": "The username for the WebDAV server.", + "verify_ssl": "Whether to verify the SSL certificate of the server. If you are using a self-signed certificate, do not select this option." + } + } } }, "exceptions": { - "invalid_username_password": { - "message": "Invalid username or password" - }, "cannot_connect": { "message": "Cannot connect to WebDAV server" }, "failed_to_migrate_folder": { "message": "Failed to migrate wrong encoded folder \"{wrong_path}\" to \"{correct_path}\"." + }, + "invalid_username_password": { + "message": "Invalid username or password" } } } diff --git a/homeassistant/components/webmin/icons.json b/homeassistant/components/webmin/icons.json index 67a9ef45f0c..64c2d38a79b 100644 --- a/homeassistant/components/webmin/icons.json +++ b/homeassistant/components/webmin/icons.json @@ -1,59 +1,59 @@ { "entity": { "sensor": { - "load_1m": { - "default": "mdi:chip" - }, - "load_5m": { - "default": "mdi:chip" - }, - "load_15m": { - "default": "mdi:chip" - }, - "mem_total": { - "default": "mdi:memory" - }, - "mem_free": { - "default": "mdi:memory" - }, - "swap_total": { - "default": "mdi:memory" - }, - "swap_free": { - "default": "mdi:memory" - }, - "disk_total": { - "default": "mdi:harddisk" - }, - "disk_used": { - "default": "mdi:harddisk" - }, "disk_free": { "default": "mdi:harddisk" }, - "disk_fs_total": { - "default": "mdi:harddisk" - }, - "disk_fs_used": { - "default": "mdi:harddisk" - }, "disk_fs_free": { "default": "mdi:harddisk" }, + "disk_fs_ifree": { + "default": "mdi:harddisk" + }, "disk_fs_itotal": { "default": "mdi:harddisk" }, "disk_fs_iused": { "default": "mdi:harddisk" }, - "disk_fs_ifree": { + "disk_fs_iused_percent": { + "default": "mdi:harddisk" + }, + "disk_fs_total": { + "default": "mdi:harddisk" + }, + "disk_fs_used": { "default": "mdi:harddisk" }, "disk_fs_used_percent": { "default": "mdi:harddisk" }, - "disk_fs_iused_percent": { + "disk_total": { "default": "mdi:harddisk" + }, + "disk_used": { + "default": "mdi:harddisk" + }, + "load_15m": { + "default": "mdi:chip" + }, + "load_1m": { + "default": "mdi:chip" + }, + "load_5m": { + "default": "mdi:chip" + }, + "mem_free": { + "default": "mdi:memory" + }, + "mem_total": { + "default": "mdi:memory" + }, + "swap_free": { + "default": "mdi:memory" + }, + "swap_total": { + "default": "mdi:memory" } } } diff --git a/homeassistant/components/webmin/strings.json b/homeassistant/components/webmin/strings.json index b92986f917a..38064ece3a2 100644 --- a/homeassistant/components/webmin/strings.json +++ b/homeassistant/components/webmin/strings.json @@ -1,86 +1,86 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Please enter the connection details of your instance.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]", - "ssl": "[%key:common::config_flow::data::ssl%]", - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "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%]" }, "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%]", - "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%]" + "flow_title": "{name}", + "step": { + "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%]" + }, + "description": "Please enter the connection details of your instance." + } } }, "entity": { "sensor": { - "load_1m": { - "name": "Load (1 min)" - }, - "load_5m": { - "name": "Load (5 min)" - }, - "load_15m": { - "name": "Load (15 min)" - }, - "mem_total": { - "name": "Memory total" - }, - "mem_free": { - "name": "Memory free" - }, - "swap_total": { - "name": "Swap total" - }, - "swap_free": { - "name": "Swap free" - }, - "disk_total": { - "name": "Disks total space" - }, - "disk_used": { - "name": "Disks used space" - }, "disk_free": { "name": "Disks free space" }, - "disk_fs_total": { - "name": "Disk total space {mountpoint}" - }, - "disk_fs_used": { - "name": "Disk used space {mountpoint}" - }, "disk_fs_free": { "name": "Disk free space {mountpoint}" }, + "disk_fs_ifree": { + "name": "Disk free inodes {mountpoint}" + }, "disk_fs_itotal": { "name": "Disk total inodes {mountpoint}" }, "disk_fs_iused": { "name": "Disk used inodes {mountpoint}" }, - "disk_fs_ifree": { - "name": "Disk free inodes {mountpoint}" + "disk_fs_iused_percent": { + "name": "Disk inode usage {mountpoint}" + }, + "disk_fs_total": { + "name": "Disk total space {mountpoint}" + }, + "disk_fs_used": { + "name": "Disk used space {mountpoint}" }, "disk_fs_used_percent": { "name": "Disk usage {mountpoint}" }, - "disk_fs_iused_percent": { - "name": "Disk inode usage {mountpoint}" + "disk_total": { + "name": "Disks total space" + }, + "disk_used": { + "name": "Disks used space" + }, + "load_15m": { + "name": "Load (15 min)" + }, + "load_1m": { + "name": "Load (1 min)" + }, + "load_5m": { + "name": "Load (5 min)" + }, + "mem_free": { + "name": "Memory free" + }, + "mem_total": { + "name": "Memory total" + }, + "swap_free": { + "name": "Swap free" + }, + "swap_total": { + "name": "Swap total" } } } diff --git a/homeassistant/components/webostv/strings.json b/homeassistant/components/webostv/strings.json index 2f0a413754e..a055d7bd6f7 100644 --- a/homeassistant/components/webostv/strings.json +++ b/homeassistant/components/webostv/strings.json @@ -1,23 +1,25 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", + "wrong_device": "The configured device is not the same found at this hostname or IP address." + }, + "error": { + "cannot_connect": "Failed to connect, please turn on your TV and try again.", + "error_pairing": "Pairing failed, make sure to accept the pairing request on the TV and try again." + }, "flow_title": "{name}", "step": { - "user": { - "description": "Turn on the TV, fill the host field and select **Submit**", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your LG webOS TV." - } - }, "pairing": { - "title": "LG webOS TV pairing", - "description": "Select **Submit** and accept the pairing request on your TV.\n\n![Image](/static/images/config_webos.png)" + "description": "Select **Submit** and accept the pairing request on your TV.\n\n![Image](/static/images/config_webos.png)", + "title": "LG webOS TV pairing" }, "reauth_confirm": { - "title": "[%key:component::webostv::config::step::pairing::title%]", - "description": "[%key:component::webostv::config::step::pairing::description%]" + "description": "[%key:component::webostv::config::step::pairing::description%]", + "title": "[%key:component::webostv::config::step::pairing::title%]" }, "reconfigure": { "data": { @@ -26,36 +28,16 @@ "data_description": { "host": "[%key:component::webostv::config::step::user::data_description::host%]" } - } - }, - "error": { - "cannot_connect": "Failed to connect, please turn on your TV and try again.", - "error_pairing": "Pairing failed, make sure to accept the pairing request on the TV and try again." - }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "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%]", - "wrong_device": "The configured device is not the same found at this hostname or IP address." - } - }, - "options": { - "step": { - "init": { - "title": "Options for LG webOS TV", - "description": "Select enabled sources", + }, + "user": { "data": { - "sources": "Sources list" + "host": "[%key:common::config_flow::data::host%]" }, "data_description": { - "sources": "List of sources to enable" - } + "host": "Hostname or IP address of your LG webOS TV." + }, + "description": "Turn on the TV, fill the host field and select **Submit**" } - }, - "error": { - "cannot_connect": "[%key:component::webostv::config::error::cannot_connect%]", - "error_pairing": "[%key:component::webostv::config::error::error_pairing%]" } }, "device_automation": { @@ -63,60 +45,18 @@ "webostv.turn_on": "Device is requested to turn on" } }, - "services": { - "button": { - "name": "Button", - "description": "Sends a button press command.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of the webOS TV entities where to run the API method." - }, - "button": { - "name": "Button", - "description": "Name of the button to press. Known possible values are LEFT, RIGHT, DOWN, UP, HOME, MENU, BACK, ENTER, DASH, INFO, ASTERISK, CC, EXIT, MUTE, RED, GREEN, BLUE, YELLOW, VOLUMEUP, VOLUMEDOWN, CHANNELUP, CHANNELDOWN, PLAY, PAUSE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9." - } - } - }, - "command": { - "name": "Command", - "description": "Sends a command.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "[%key:component::webostv::services::button::fields::entity_id::description%]" - }, - "command": { - "name": "Command", - "description": "Endpoint of the command." - }, - "payload": { - "name": "Payload", - "description": "An optional payload to provide to the endpoint in the format of key value pairs." - } - } - }, - "select_sound_output": { - "name": "Select sound output", - "description": "Sends the TV the command to change sound output.", - "fields": { - "entity_id": { - "name": "Entity", - "description": "Name(s) of the webOS TV entities to change sound output on." - }, - "sound_output": { - "name": "Sound output", - "description": "Name of the sound output to switch to." - } - } - } - }, "exceptions": { + "communication_error": { + "message": "Communication error while calling {func} for device {name}: {error}" + }, "device_off": { "message": "Error calling {func} for device {name}: Device is off and cannot be controlled." }, - "communication_error": { - "message": "Communication error while calling {func} for device {name}: {error}" + "invalid_entity_id": { + "message": "Entity {entity_id} is not a valid webOS TV entity." + }, + "notify_communication_error": { + "message": "Communication error while sending notification to device {name}: {error}" }, "notify_device_off": { "message": "Error sending notification to device {name}: Device is off and cannot be controlled." @@ -124,20 +64,80 @@ "notify_icon_not_found": { "message": "Icon {icon_path} not found when sending notification for device {name}" }, - "notify_communication_error": { - "message": "Communication error while sending notification to device {name}: {error}" + "source_not_found": { + "message": "Source {source} not found in the sources list for {name}." }, "unhandled_trigger_type": { "message": "Unhandled trigger type: {trigger_type}" }, "unknown_trigger_platform": { "message": "Unknown trigger platform: {platform}" + } + }, + "options": { + "error": { + "cannot_connect": "[%key:component::webostv::config::error::cannot_connect%]", + "error_pairing": "[%key:component::webostv::config::error::error_pairing%]" }, - "invalid_entity_id": { - "message": "Entity {entity_id} is not a valid webOS TV entity." + "step": { + "init": { + "data": { + "sources": "Sources list" + }, + "data_description": { + "sources": "List of sources to enable" + }, + "description": "Select enabled sources", + "title": "Options for LG webOS TV" + } + } + }, + "services": { + "button": { + "description": "Sends a button press command.", + "fields": { + "button": { + "description": "Name of the button to press. Known possible values are LEFT, RIGHT, DOWN, UP, HOME, MENU, BACK, ENTER, DASH, INFO, ASTERISK, CC, EXIT, MUTE, RED, GREEN, BLUE, YELLOW, VOLUMEUP, VOLUMEDOWN, CHANNELUP, CHANNELDOWN, PLAY, PAUSE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.", + "name": "Button" + }, + "entity_id": { + "description": "Name(s) of the webOS TV entities where to run the API method.", + "name": "Entity" + } + }, + "name": "Button" }, - "source_not_found": { - "message": "Source {source} not found in the sources list for {name}." + "command": { + "description": "Sends a command.", + "fields": { + "command": { + "description": "Endpoint of the command.", + "name": "Command" + }, + "entity_id": { + "description": "[%key:component::webostv::services::button::fields::entity_id::description%]", + "name": "Entity" + }, + "payload": { + "description": "An optional payload to provide to the endpoint in the format of key value pairs.", + "name": "Payload" + } + }, + "name": "Command" + }, + "select_sound_output": { + "description": "Sends the TV the command to change sound output.", + "fields": { + "entity_id": { + "description": "Name(s) of the webOS TV entities to change sound output on.", + "name": "Entity" + }, + "sound_output": { + "description": "Name of the sound output to switch to.", + "name": "Sound output" + } + }, + "name": "Select sound output" } } } diff --git a/homeassistant/components/weheat/icons.json b/homeassistant/components/weheat/icons.json index c0955cd051d..e8eb5bb8dd9 100644 --- a/homeassistant/components/weheat/icons.json +++ b/homeassistant/components/weheat/icons.json @@ -1,61 +1,61 @@ { "entity": { "binary_sensor": { - "indoor_unit_water_pump_state": { - "default": "mdi:pump" - }, "indoor_unit_auxiliary_pump_state": { "default": "mdi:pump" }, "indoor_unit_dhw_valve_or_pump_state": { "default": "mdi:pump" }, + "indoor_unit_electric_heater_state": { + "default": "mdi:heating-coil" + }, "indoor_unit_gas_boiler_state": { "default": "mdi:toggle-switch" }, - "indoor_unit_electric_heater_state": { - "default": "mdi:heating-coil" + "indoor_unit_water_pump_state": { + "default": "mdi:pump" } }, "sensor": { - "power_output": { - "default": "mdi:heat-wave" - }, - "power_input": { - "default": "mdi:lightning-bolt" - }, - "cop": { - "default": "mdi:speedometer" + "central_heating_flow_volume": { + "default": "mdi:pump" }, "ch_inlet_temperature": { "default": "mdi:radiator" }, + "compressor_percentage": { + "default": "mdi:fan" + }, + "compressor_rpm": { + "default": "mdi:fan" + }, + "cop": { + "default": "mdi:speedometer" + }, + "dhw_flow_volume": { + "default": "mdi:pump" + }, + "electricity_used": { + "default": "mdi:flash" + }, + "heat_pump_state": { + "default": "mdi:state-machine" + }, "outside_temperature": { "default": "mdi:home-thermometer-outline" }, + "power_input": { + "default": "mdi:lightning-bolt" + }, + "power_output": { + "default": "mdi:heat-wave" + }, "thermostat_room_temperature": { "default": "mdi:home-thermometer" }, "thermostat_room_temperature_setpoint": { "default": "mdi:home-thermometer" - }, - "heat_pump_state": { - "default": "mdi:state-machine" - }, - "dhw_flow_volume": { - "default": "mdi:pump" - }, - "central_heating_flow_volume": { - "default": "mdi:pump" - }, - "electricity_used": { - "default": "mdi:flash" - }, - "compressor_rpm": { - "default": "mdi:fan" - }, - "compressor_percentage": { - "default": "mdi:fan" } } } diff --git a/homeassistant/components/weheat/strings.json b/homeassistant/components/weheat/strings.json index b3c2af71803..f86bc9baa34 100644 --- a/homeassistant/components/weheat/strings.json +++ b/homeassistant/components/weheat/strings.json @@ -1,93 +1,75 @@ { "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%]", + "no_devices_found": "Could not find any heat pumps on this account", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", + "wrong_account": "You can only reauthenticate this account with the same user." + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "find_devices": { + "title": "Select your heat pump" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "find_devices": { - "title": "Select your heat pump" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "Re-authenticate with WeHeat", - "description": "You need to re-authenticate with WeHeat to continue" + "description": "You need to re-authenticate with WeHeat to continue", + "title": "Re-authenticate with WeHeat" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", - "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", - "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "no_devices_found": "Could not find any heat pumps on this account", - "wrong_account": "You can only reauthenticate this account with the same user." - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { "binary_sensor": { - "indoor_unit_water_pump_state": { - "name": "Indoor unit water pump" - }, "indoor_unit_auxiliary_pump_state": { "name": "Indoor unit auxiliary water pump" }, "indoor_unit_dhw_valve_or_pump_state": { "name": "Indoor unit DHW valve or water pump" }, + "indoor_unit_electric_heater_state": { + "name": "Indoor unit electric heater" + }, "indoor_unit_gas_boiler_state": { "name": "Indoor unit gas boiler heating allowed" }, - "indoor_unit_electric_heater_state": { - "name": "Indoor unit electric heater" + "indoor_unit_water_pump_state": { + "name": "Indoor unit water pump" } }, "sensor": { - "power_output": { - "name": "Output power" - }, - "power_input": { - "name": "Input power" - }, - "cop": { - "name": "COP" - }, - "water_inlet_temperature": { - "name": "Water inlet temperature" - }, - "water_outlet_temperature": { - "name": "Water outlet temperature" + "central_heating_flow_volume": { + "name": "Central heating pump flow" }, "ch_inlet_temperature": { "name": "Central heating inlet temperature" }, - "outside_temperature": { - "name": "Outside temperature" + "compressor_percentage": { + "name": "Compressor usage" }, - "thermostat_water_setpoint": { - "name": "Water target temperature" + "compressor_rpm": { + "name": "Compressor speed" }, - "thermostat_room_temperature": { - "name": "Current room temperature" - }, - "thermostat_room_temperature_setpoint": { - "name": "Room temperature setpoint" - }, - "dhw_top_temperature": { - "name": "DHW top temperature" + "cop": { + "name": "COP" }, "dhw_bottom_temperature": { "name": "DHW bottom temperature" @@ -95,21 +77,8 @@ "dhw_flow_volume": { "name": "DHW pump flow" }, - "central_heating_flow_volume": { - "name": "Central heating pump flow" - }, - "heat_pump_state": { - "state": { - "standby": "[%key:common::state::standby%]", - "water_check": "Checking water temperature", - "heating": "Heating", - "cooling": "Cooling", - "dhw": "Heating DHW", - "legionella_prevention": "Legionella prevention", - "defrosting": "Defrosting", - "self_test": "Self-test", - "manual_control": "Manual control" - } + "dhw_top_temperature": { + "name": "DHW top temperature" }, "electricity_used": { "name": "Electricity used" @@ -117,11 +86,42 @@ "energy_output": { "name": "Total energy output" }, - "compressor_rpm": { - "name": "Compressor speed" + "heat_pump_state": { + "state": { + "cooling": "Cooling", + "defrosting": "Defrosting", + "dhw": "Heating DHW", + "heating": "Heating", + "legionella_prevention": "Legionella prevention", + "manual_control": "Manual control", + "self_test": "Self-test", + "standby": "[%key:common::state::standby%]", + "water_check": "Checking water temperature" + } }, - "compressor_percentage": { - "name": "Compressor usage" + "outside_temperature": { + "name": "Outside temperature" + }, + "power_input": { + "name": "Input power" + }, + "power_output": { + "name": "Output power" + }, + "thermostat_room_temperature": { + "name": "Current room temperature" + }, + "thermostat_room_temperature_setpoint": { + "name": "Room temperature setpoint" + }, + "thermostat_water_setpoint": { + "name": "Water target temperature" + }, + "water_inlet_temperature": { + "name": "Water inlet temperature" + }, + "water_outlet_temperature": { + "name": "Water outlet temperature" } } } diff --git a/homeassistant/components/wemo/icons.json b/homeassistant/components/wemo/icons.json index af5024afcff..86a129f0c81 100644 --- a/homeassistant/components/wemo/icons.json +++ b/homeassistant/components/wemo/icons.json @@ -1,10 +1,10 @@ { "services": { - "set_humidity": { - "service": "mdi:water-percent" - }, "reset_filter_life": { "service": "mdi:refresh" + }, + "set_humidity": { + "service": "mdi:water-percent" } } } diff --git a/homeassistant/components/wemo/strings.json b/homeassistant/components/wemo/strings.json index 9b112d9a388..77a1507cee6 100644 --- a/homeassistant/components/wemo/strings.json +++ b/homeassistant/components/wemo/strings.json @@ -1,27 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "Do you want to set up Wemo?" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "enable_subscription": "Subscribe to device local push updates", - "enable_long_press": "Register for device long-press events" - } - } - }, - "error": { - "long_press_requires_subscription": "Local push update subscriptions must be enabled to use long-press events", - "unknown": "[%key:common::config_flow::error::unknown%]" } }, "device_automation": { @@ -29,20 +15,34 @@ "long_press": "Wemo button was pressed for 2 seconds" } }, + "options": { + "error": { + "long_press_requires_subscription": "Local push update subscriptions must be enabled to use long-press events", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "init": { + "data": { + "enable_long_press": "Register for device long-press events", + "enable_subscription": "Subscribe to device local push updates" + } + } + } + }, "services": { + "reset_filter_life": { + "description": "Resets the WeMo Humidifier's filter lifetime to 100%.", + "name": "Reset filter lifetime" + }, "set_humidity": { - "name": "Set humidity", "description": "Sets the target humidity of WeMo humidifier devices.", "fields": { "target_humidity": { - "name": "Target humidity", - "description": "Target humidity." + "description": "Target humidity.", + "name": "Target humidity" } - } - }, - "reset_filter_life": { - "name": "Reset filter lifetime", - "description": "Resets the WeMo Humidifier's filter lifetime to 100%." + }, + "name": "Set humidity" } } } diff --git a/homeassistant/components/whirlpool/icons.json b/homeassistant/components/whirlpool/icons.json index 0a82ac349df..ba647f5b5b4 100644 --- a/homeassistant/components/whirlpool/icons.json +++ b/homeassistant/components/whirlpool/icons.json @@ -1,20 +1,20 @@ { "entity": { "sensor": { - "washer_state": { - "default": "mdi:washing-machine" - }, "dryer_state": { "default": "mdi:tumble-dryer" }, "oven_state": { "default": "mdi:stove" }, + "oven_state_lower": { + "default": "mdi:stove" + }, "oven_state_upper": { "default": "mdi:stove" }, - "oven_state_lower": { - "default": "mdi:stove" + "washer_state": { + "default": "mdi:washing-machine" } } } diff --git a/homeassistant/components/whirlpool/strings.json b/homeassistant/components/whirlpool/strings.json index aa0fb6ffe11..b1c0caf7c94 100644 --- a/homeassistant/components/whirlpool/strings.json +++ b/homeassistant/components/whirlpool/strings.json @@ -3,36 +3,6 @@ "account_locked_error": "The account is locked. Please follow the instructions in the manufacturer's app to unlock it" }, "config": { - "step": { - "user": { - "title": "Configure your Whirlpool account", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "region": "Region", - "brand": "Brand" - }, - "data_description": { - "username": "The username or email address you use to log in to the Whirlpool/Maytag app", - "password": "The password you use to log in to the Whirlpool/Maytag app", - "region": "The region where your appliances where purchased", - "brand": "The brand of the mobile app you use, or the brand of the appliances in your account" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "data": { - "password": "[%key:common::config_flow::data::password%]", - "region": "[%key:component::whirlpool::config::step::user::data::region%]", - "brand": "[%key:component::whirlpool::config::step::user::data::brand%]" - }, - "data_description": { - "password": "[%key:component::whirlpool::config::step::user::data_description::password%]", - "brand": "[%key:component::whirlpool::config::step::user::data_description::brand%]", - "region": "[%key:component::whirlpool::config::step::user::data_description::region%]" - } - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" @@ -41,166 +11,196 @@ "account_locked": "[%key:component::whirlpool::common::account_locked_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%]", - "no_appliances": "No supported appliances found" + "no_appliances": "No supported appliances found", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "reauth_confirm": { + "data": { + "brand": "[%key:component::whirlpool::config::step::user::data::brand%]", + "password": "[%key:common::config_flow::data::password%]", + "region": "[%key:component::whirlpool::config::step::user::data::region%]" + }, + "data_description": { + "brand": "[%key:component::whirlpool::config::step::user::data_description::brand%]", + "password": "[%key:component::whirlpool::config::step::user::data_description::password%]", + "region": "[%key:component::whirlpool::config::step::user::data_description::region%]" + }, + "title": "[%key:common::config_flow::title::reauth%]" + }, + "user": { + "data": { + "brand": "Brand", + "password": "[%key:common::config_flow::data::password%]", + "region": "Region", + "username": "[%key:common::config_flow::data::username%]" + }, + "data_description": { + "brand": "The brand of the mobile app you use, or the brand of the appliances in your account", + "password": "The password you use to log in to the Whirlpool/Maytag app", + "region": "The region where your appliances where purchased", + "username": "The username or email address you use to log in to the Whirlpool/Maytag app" + }, + "title": "Configure your Whirlpool account" + } } }, "entity": { "sensor": { - "washer_state": { - "name": "State", - "state": { - "standby": "[%key:common::state::standby%]", - "setting": "Setting", - "delay_countdown": "Delay countdown", - "delay_paused": "Delay paused", - "smart_delay": "Smart delay", - "smart_grid_pause": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", - "pause": "[%key:common::state::paused%]", - "running_maincycle": "Running maincycle", - "running_postcycle": "Running postcycle", - "exception": "Exception", - "complete": "Complete", - "power_failure": "Power failure", - "service_diagnostic_mode": "Service diagnostic mode", - "factory_diagnostic_mode": "Factory diagnostic mode", - "life_test": "Life test", - "customer_focus_mode": "Customer focus mode", - "demo_mode": "Demo mode", - "hard_stop_or_error": "Hard stop or error", - "system_initialize": "System initialize", - "cycle_filling": "Cycle filling", - "cycle_rinsing": "Cycle rinsing", - "cycle_sensing": "Cycle sensing", - "cycle_soaking": "Cycle soaking", - "cycle_spinning": "Cycle spinning", - "cycle_washing": "Cycle washing" - } - }, "dryer_state": { "name": "[%key:component::whirlpool::entity::sensor::washer_state::name%]", "state": { - "standby": "[%key:common::state::standby%]", - "setting": "[%key:component::whirlpool::entity::sensor::washer_state::state::setting%]", - "delay_countdown": "[%key:component::whirlpool::entity::sensor::washer_state::state::delay_countdown%]", - "delay_paused": "[%key:component::whirlpool::entity::sensor::washer_state::state::delay_paused%]", - "smart_delay": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", - "smart_grid_pause": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", - "pause": "[%key:common::state::paused%]", - "running_maincycle": "[%key:component::whirlpool::entity::sensor::washer_state::state::running_maincycle%]", - "running_postcycle": "[%key:component::whirlpool::entity::sensor::washer_state::state::running_postcycle%]", - "exception": "[%key:component::whirlpool::entity::sensor::washer_state::state::exception%]", "complete": "[%key:component::whirlpool::entity::sensor::washer_state::state::complete%]", - "power_failure": "[%key:component::whirlpool::entity::sensor::washer_state::state::power_failure%]", - "service_diagnostic_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::service_diagnostic_mode%]", - "factory_diagnostic_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::factory_diagnostic_mode%]", - "life_test": "[%key:component::whirlpool::entity::sensor::washer_state::state::life_test%]", "customer_focus_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::customer_focus_mode%]", - "demo_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::demo_mode%]", - "hard_stop_or_error": "[%key:component::whirlpool::entity::sensor::washer_state::state::hard_stop_or_error%]", - "system_initialize": "[%key:component::whirlpool::entity::sensor::washer_state::state::system_initialize%]", "cycle_filling": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_filling%]", "cycle_rinsing": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_rinsing%]", "cycle_sensing": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_sensing%]", "cycle_soaking": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_soaking%]", "cycle_spinning": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_spinning%]", - "cycle_washing": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_washing%]" - } - }, - "whirlpool_tank": { - "name": "Detergent level", - "state": { - "unknown": "Unknown", - "empty": "[%key:common::state::empty%]", - "25": "25%", - "50": "50%", - "100": "100%", - "active": "[%key:common::state::active%]" + "cycle_washing": "[%key:component::whirlpool::entity::sensor::washer_state::state::cycle_washing%]", + "delay_countdown": "[%key:component::whirlpool::entity::sensor::washer_state::state::delay_countdown%]", + "delay_paused": "[%key:component::whirlpool::entity::sensor::washer_state::state::delay_paused%]", + "demo_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::demo_mode%]", + "exception": "[%key:component::whirlpool::entity::sensor::washer_state::state::exception%]", + "factory_diagnostic_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::factory_diagnostic_mode%]", + "hard_stop_or_error": "[%key:component::whirlpool::entity::sensor::washer_state::state::hard_stop_or_error%]", + "life_test": "[%key:component::whirlpool::entity::sensor::washer_state::state::life_test%]", + "pause": "[%key:common::state::paused%]", + "power_failure": "[%key:component::whirlpool::entity::sensor::washer_state::state::power_failure%]", + "running_maincycle": "[%key:component::whirlpool::entity::sensor::washer_state::state::running_maincycle%]", + "running_postcycle": "[%key:component::whirlpool::entity::sensor::washer_state::state::running_postcycle%]", + "service_diagnostic_mode": "[%key:component::whirlpool::entity::sensor::washer_state::state::service_diagnostic_mode%]", + "setting": "[%key:component::whirlpool::entity::sensor::washer_state::state::setting%]", + "smart_delay": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", + "smart_grid_pause": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", + "standby": "[%key:common::state::standby%]", + "system_initialize": "[%key:component::whirlpool::entity::sensor::washer_state::state::system_initialize%]" } }, "end_time": { "name": "End time" }, - "oven_state": { - "name": "State", - "state": { - "standby": "[%key:common::state::standby%]", - "preheating": "Preheating", - "cooking": "Cooking" - } - }, - "oven_state_upper": { - "name": "Upper oven state", - "state": { - "standby": "[%key:common::state::standby%]", - "preheating": "[%key:component::whirlpool::entity::sensor::oven_state::state::preheating%]", - "cooking": "[%key:component::whirlpool::entity::sensor::oven_state::state::cooking%]" - } - }, - "oven_state_lower": { - "name": "Lower oven state", - "state": { - "standby": "[%key:common::state::standby%]", - "preheating": "[%key:component::whirlpool::entity::sensor::oven_state::state::preheating%]", - "cooking": "[%key:component::whirlpool::entity::sensor::oven_state::state::cooking%]" - } - }, "oven_cook_mode": { "name": "Cook mode", "state": { - "standby": "[%key:common::state::standby%]", + "air_fry": "Air fry", "bake": "Bake", - "convection_bake": "Convection bake", "broil": "Broil", + "convection_bake": "Convection bake", "convection_broil": "Convection broil", "convection_roast": "Convection roast", "keep_warm": "Keep warm", - "air_fry": "Air fry" - } - }, - "oven_cook_mode_upper": { - "name": "Upper oven cook mode", - "state": { - "standby": "[%key:common::state::standby%]", - "bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::bake%]", - "convection_bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_bake%]", - "broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::broil%]", - "convection_broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_broil%]", - "convection_roast": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_roast%]", - "keep_warm": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::keep_warm%]", - "air_fry": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::air_fry%]" + "standby": "[%key:common::state::standby%]" } }, "oven_cook_mode_lower": { "name": "Lower oven cook mode", "state": { - "standby": "[%key:common::state::standby%]", + "air_fry": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::air_fry%]", "bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::bake%]", - "convection_bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_bake%]", "broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::broil%]", + "convection_bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_bake%]", "convection_broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_broil%]", "convection_roast": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_roast%]", "keep_warm": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::keep_warm%]", - "air_fry": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::air_fry%]" + "standby": "[%key:common::state::standby%]" + } + }, + "oven_cook_mode_upper": { + "name": "Upper oven cook mode", + "state": { + "air_fry": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::air_fry%]", + "bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::bake%]", + "broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::broil%]", + "convection_bake": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_bake%]", + "convection_broil": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_broil%]", + "convection_roast": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::convection_roast%]", + "keep_warm": "[%key:component::whirlpool::entity::sensor::oven_cook_mode::state::keep_warm%]", + "standby": "[%key:common::state::standby%]" } }, "oven_current_temperature": { "name": "Current temperature" }, + "oven_current_temperature_lower": { + "name": "Lower oven current temperature" + }, "oven_current_temperature_upper": { "name": "Upper oven current temperature" }, - "oven_current_temperature_lower": { - "name": "Lower oven current temperature" + "oven_state": { + "name": "State", + "state": { + "cooking": "Cooking", + "preheating": "Preheating", + "standby": "[%key:common::state::standby%]" + } + }, + "oven_state_lower": { + "name": "Lower oven state", + "state": { + "cooking": "[%key:component::whirlpool::entity::sensor::oven_state::state::cooking%]", + "preheating": "[%key:component::whirlpool::entity::sensor::oven_state::state::preheating%]", + "standby": "[%key:common::state::standby%]" + } + }, + "oven_state_upper": { + "name": "Upper oven state", + "state": { + "cooking": "[%key:component::whirlpool::entity::sensor::oven_state::state::cooking%]", + "preheating": "[%key:component::whirlpool::entity::sensor::oven_state::state::preheating%]", + "standby": "[%key:common::state::standby%]" + } }, "oven_target_temperature": { "name": "Target temperature" }, + "oven_target_temperature_lower": { + "name": "Lower oven target temperature" + }, "oven_target_temperature_upper": { "name": "Upper oven target temperature" }, - "oven_target_temperature_lower": { - "name": "Lower oven target temperature" + "washer_state": { + "name": "State", + "state": { + "complete": "Complete", + "customer_focus_mode": "Customer focus mode", + "cycle_filling": "Cycle filling", + "cycle_rinsing": "Cycle rinsing", + "cycle_sensing": "Cycle sensing", + "cycle_soaking": "Cycle soaking", + "cycle_spinning": "Cycle spinning", + "cycle_washing": "Cycle washing", + "delay_countdown": "Delay countdown", + "delay_paused": "Delay paused", + "demo_mode": "Demo mode", + "exception": "Exception", + "factory_diagnostic_mode": "Factory diagnostic mode", + "hard_stop_or_error": "Hard stop or error", + "life_test": "Life test", + "pause": "[%key:common::state::paused%]", + "power_failure": "Power failure", + "running_maincycle": "Running maincycle", + "running_postcycle": "Running postcycle", + "service_diagnostic_mode": "Service diagnostic mode", + "setting": "Setting", + "smart_delay": "Smart delay", + "smart_grid_pause": "[%key:component::whirlpool::entity::sensor::washer_state::state::smart_delay%]", + "standby": "[%key:common::state::standby%]", + "system_initialize": "System initialize" + } + }, + "whirlpool_tank": { + "name": "Detergent level", + "state": { + "25": "25%", + "50": "50%", + "100": "100%", + "active": "[%key:common::state::active%]", + "empty": "[%key:common::state::empty%]", + "unknown": "Unknown" + } } } }, diff --git a/homeassistant/components/whois/strings.json b/homeassistant/components/whois/strings.json index 814b952d417..2c5b85a87ed 100644 --- a/homeassistant/components/whois/strings.json +++ b/homeassistant/components/whois/strings.json @@ -1,22 +1,22 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, + "error": { + "private_registry": "The given domain is registered in a private registry and cannot be monitored", + "quota_exceeded": "Your whois quota has been exceeded for this TLD", + "unexpected_response": "Unexpected response from whois server", + "unknown_date_format": "Unknown date format in whois server response", + "unknown_tld": "The given TLD is unknown or not available to this integration", + "whois_command_failed": "Whois command failed: could not retrieve whois information" + }, "step": { "user": { "data": { "domain": "Domain name" } } - }, - "error": { - "unexpected_response": "Unexpected response from whois server", - "unknown_date_format": "Unknown date format in whois server response", - "unknown_tld": "The given TLD is unknown or not available to this integration", - "whois_command_failed": "Whois command failed: could not retrieve whois information", - "private_registry": "The given domain is registered in a private registry and cannot be monitored", - "quota_exceeded": "Your whois quota has been exceeded for this TLD" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } }, "entity": { @@ -51,11 +51,16 @@ "status": { "name": "Status", "state": { + "active": "Active", "add_period": "Add period", "auto_renew_period": "Auto-renew period", + "client_delete_prohibited": "Client delete prohibited", + "client_hold": "Client hold", + "client_renew_prohibited": "Client renew prohibited", + "client_transfer_prohibited": "Client transfer prohibited", + "client_update_prohibited": "Client update prohibited", "inactive": "Inactive", "ok": "Active", - "active": "Active", "pending_create": "Pending create", "pending_renew": "Pending renew", "pending_restore": "Pending restore", @@ -68,12 +73,7 @@ "server_renew_prohibited": "Server renew prohibited", "server_transfer_prohibited": "Server transfer prohibited", "server_update_prohibited": "Server update prohibited", - "transfer_period": "Transfer period", - "client_delete_prohibited": "Client delete prohibited", - "client_hold": "Client hold", - "client_renew_prohibited": "Client renew prohibited", - "client_transfer_prohibited": "Client transfer prohibited", - "client_update_prohibited": "Client update prohibited" + "transfer_period": "Transfer period" } } } diff --git a/homeassistant/components/wiffi/strings.json b/homeassistant/components/wiffi/strings.json index ac92a8ee8c3..a1cc35eb97e 100644 --- a/homeassistant/components/wiffi/strings.json +++ b/homeassistant/components/wiffi/strings.json @@ -1,17 +1,17 @@ { "config": { - "step": { - "user": { - "title": "Set up TCP server for WIFFI devices", - "data": { - "port": "[%key:common::config_flow::data::port%]" - } - } - }, "abort": { "addr_in_use": "Server port already in use.", "already_configured": "Server port is already configured.", "start_server_failed": "Start server failed." + }, + "step": { + "user": { + "data": { + "port": "[%key:common::config_flow::data::port%]" + }, + "title": "Set up TCP server for WIFFI devices" + } } }, "options": { diff --git a/homeassistant/components/wilight/icons.json b/homeassistant/components/wilight/icons.json index 48bcae2a301..5ed9550fd2a 100644 --- a/homeassistant/components/wilight/icons.json +++ b/homeassistant/components/wilight/icons.json @@ -1,23 +1,23 @@ { "entity": { "switch": { - "watering": { - "default": "mdi:water" - }, "pause": { "default": "mdi:pause-circle-outline" + }, + "watering": { + "default": "mdi:water" } } }, "services": { - "set_watering_time": { - "service": "mdi:timer" - }, "set_pause_time": { "service": "mdi:timer-pause" }, "set_trigger": { "service": "mdi:gesture-tap-button" + }, + "set_watering_time": { + "service": "mdi:timer" } } } diff --git a/homeassistant/components/wilight/strings.json b/homeassistant/components/wilight/strings.json index ccba52d99e0..ede4ff74993 100644 --- a/homeassistant/components/wilight/strings.json +++ b/homeassistant/components/wilight/strings.json @@ -1,61 +1,61 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "not_supported_device": "This WiLight is currently not supported", + "not_wilight_device": "This Device is not WiLight" + }, "flow_title": "{name}", "step": { "confirm": { "description": "The following components are supported: {components}" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "not_supported_device": "This WiLight is currently not supported", - "not_wilight_device": "This Device is not WiLight" } }, "entity": { "switch": { - "watering": { - "name": "Watering" - }, "pause": { "name": "Pause" + }, + "watering": { + "name": "Watering" } } }, "services": { - "set_watering_time": { - "name": "Set watering time", - "description": "Sets time for watering.", - "fields": { - "watering_time": { - "name": "Duration", - "description": "Duration for this irrigation to be turned on." - } - } - }, "set_pause_time": { - "name": "Set pause time", "description": "Sets time to pause.", "fields": { "pause_time": { - "name": "Duration", - "description": "Duration for this irrigation to be paused." + "description": "Duration for this irrigation to be paused.", + "name": "Duration" } - } + }, + "name": "Set pause time" }, "set_trigger": { - "name": "Set trigger", "description": "Sets the trigger to use.", "fields": { - "trigger_index": { - "name": "Trigger index", - "description": "Index of Trigger from 1 to 4." - }, "trigger": { - "name": "Trigger rules", - "description": "Configuration of trigger." + "description": "Configuration of trigger.", + "name": "Trigger rules" + }, + "trigger_index": { + "description": "Index of Trigger from 1 to 4.", + "name": "Trigger index" } - } + }, + "name": "Set trigger" + }, + "set_watering_time": { + "description": "Sets time for watering.", + "fields": { + "watering_time": { + "description": "Duration for this irrigation to be turned on.", + "name": "Duration" + } + }, + "name": "Set watering time" } } } diff --git a/homeassistant/components/withings/icons.json b/homeassistant/components/withings/icons.json index 8123337dc82..667fb330574 100644 --- a/homeassistant/components/withings/icons.json +++ b/homeassistant/components/withings/icons.json @@ -4,29 +4,37 @@ "in_bed": { "default": "mdi:bed-outline", "state": { - "on": "mdi:bed", - "off": "mdi:bed-empty" + "off": "mdi:bed-empty", + "on": "mdi:bed" } } }, "sensor": { + "activity_distance_today": { + "default": "mdi:map-marker-distance" + }, + "activity_elevation_today": { + "default": "mdi:stairs-up" + }, + "activity_steps_today": { + "default": "mdi:shoe-print" + }, + "average_heart_rate": { + "default": "mdi:heart-pulse" + }, + "battery": { + "default": "mdi:battery-off", + "state": { + "high": "mdi:battery", + "low": "mdi:battery-20", + "medium": "mdi:battery-50" + } + }, "bone_mass": { "default": "mdi:bone" }, - "heart_pulse": { - "default": "mdi:heart-pulse" - }, - "height": { - "default": "mdi:human-male-height-variant" - }, - "hydration": { - "default": "mdi:water" - }, - "muscle_mass_for_segments_left_arm": { - "default": "mdi:arm-flex" - }, - "muscle_mass_for_segments_right_arm": { - "default": "mdi:arm-flex" + "deep_sleep": { + "default": "mdi:sleep" }, "fat_free_mass_for_segments_left_arm": { "default": "mdi:arm-flex" @@ -40,96 +48,59 @@ "fat_mass_for_segments_right_arm": { "default": "mdi:arm-flex" }, - "deep_sleep": { - "default": "mdi:sleep" - }, - "time_to_sleep": { - "default": "mdi:sleep" - }, - "time_to_wakeup": { - "default": "mdi:sleep-off" - }, - "average_heart_rate": { + "heart_pulse": { "default": "mdi:heart-pulse" }, + "height": { + "default": "mdi:human-male-height-variant" + }, + "hydration": { + "default": "mdi:water" + }, + "light_sleep": { + "default": "mdi:sleep" + }, "maximum_heart_rate": { "default": "mdi:heart-pulse" }, "minimum_heart_rate": { "default": "mdi:heart-pulse" }, - "light_sleep": { - "default": "mdi:sleep" + "muscle_mass_for_segments_left_arm": { + "default": "mdi:arm-flex" + }, + "muscle_mass_for_segments_right_arm": { + "default": "mdi:arm-flex" }, "rem_sleep": { "default": "mdi:sleep" }, + "sleep_goal": { + "default": "mdi:bed-clock" + }, "sleep_score": { "default": "mdi:medal" }, + "step_goal": { + "default": "mdi:shoe-print" + }, + "time_to_sleep": { + "default": "mdi:sleep" + }, + "time_to_wakeup": { + "default": "mdi:sleep-off" + }, "wakeup_count": { "default": "mdi:sleep-off" }, "wakeup_time": { "default": "mdi:sleep-off" }, - "activity_steps_today": { - "default": "mdi:shoe-print" - }, - "activity_distance_today": { - "default": "mdi:map-marker-distance" - }, - "activity_elevation_today": { - "default": "mdi:stairs-up" - }, - "step_goal": { - "default": "mdi:shoe-print" - }, - "sleep_goal": { - "default": "mdi:bed-clock" - }, "workout_distance": { "default": "mdi:map-marker-distance" }, - "workout_type": { - "state": { - "walk": "mdi:walk", - "run": "mdi:run", - "hiking": "mdi:hiking", - "skating": "mdi:skateboarding", - "bicycling": "mdi:bike", - "swimming": "mdi:swim", - "surfing": "mdi:surfing", - "kitesurfing": "mdi:kitesurfing", - "windsurfing": "mdi:kitesurfing", - "tennis": "mdi:tennis", - "table_tennis": "mdi:table-tennis", - "squash": "mdi:racquetball", - "badminton": "mdi:badminton", - "lift_weights": "mdi:weight-lifter", - "basket_ball": "mdi:basketball", - "soccer": "mdi:soccer", - "football": "mdi:football", - "rugby": "mdi:rugby", - "volley_ball": "mdi:volleyball", - "waterpolo": "mdi:water-polo", - "horse_riding": "mdi:horse-human", - "golf": "mdi:golf", - "yoga": "mdi:yoga", - "dancing": "mdi:human-female-dance", - "boxing": "mdi:boxing-glove", - "fencing": "mdi:fencing", - "martial_arts": "mdi:karate", - "skiing": "mdi:ski", - "snowboarding": "mdi:snowboard", - "rowing": "mdi:rowing", - "baseball": "mdi:baseball", - "handball": "mdi:handball", - "hockey": "mdi:hockey-sticks", - "ice_hockey": "mdi:hockey-sticks", - "climbing": "mdi:carabiner", - "ice_skating": "mdi:skate" - } + "workout_duration": { + "default": "mdi:timer" }, "workout_elevation": { "default": "mdi:stairs-up" @@ -137,15 +108,44 @@ "workout_pause_duration": { "default": "mdi:timer-pause" }, - "workout_duration": { - "default": "mdi:timer" - }, - "battery": { - "default": "mdi:battery-off", + "workout_type": { "state": { - "low": "mdi:battery-20", - "medium": "mdi:battery-50", - "high": "mdi:battery" + "badminton": "mdi:badminton", + "baseball": "mdi:baseball", + "basket_ball": "mdi:basketball", + "bicycling": "mdi:bike", + "boxing": "mdi:boxing-glove", + "climbing": "mdi:carabiner", + "dancing": "mdi:human-female-dance", + "fencing": "mdi:fencing", + "football": "mdi:football", + "golf": "mdi:golf", + "handball": "mdi:handball", + "hiking": "mdi:hiking", + "hockey": "mdi:hockey-sticks", + "horse_riding": "mdi:horse-human", + "ice_hockey": "mdi:hockey-sticks", + "ice_skating": "mdi:skate", + "kitesurfing": "mdi:kitesurfing", + "lift_weights": "mdi:weight-lifter", + "martial_arts": "mdi:karate", + "rowing": "mdi:rowing", + "rugby": "mdi:rugby", + "run": "mdi:run", + "skating": "mdi:skateboarding", + "skiing": "mdi:ski", + "snowboarding": "mdi:snowboard", + "soccer": "mdi:soccer", + "squash": "mdi:racquetball", + "surfing": "mdi:surfing", + "swimming": "mdi:swim", + "table_tennis": "mdi:table-tennis", + "tennis": "mdi:tennis", + "volley_ball": "mdi:volleyball", + "walk": "mdi:walk", + "waterpolo": "mdi:water-polo", + "windsurfing": "mdi:kitesurfing", + "yoga": "mdi:yoga" } } } diff --git a/homeassistant/components/withings/strings.json b/homeassistant/components/withings/strings.json index 4792e3362bd..8d442005666 100644 --- a/homeassistant/components/withings/strings.json +++ b/homeassistant/components/withings/strings.json @@ -3,41 +3,41 @@ "description": "To be able to login to Withings we require a client ID and secret. To acquire them, please follow the following steps.\n\n1. Go to the [Withings Developer Dashboard]({developer_dashboard_url}) and be sure to select the Public Cloud.\n1. Log in with your Withings account.\n1. Select **Create an application**.\n1. Select the checkbox for **Public API integration**.\n1. Select **Development** as target environment.\n1. Fill in an application name and description of your choice.\n1. Fill in `{redirect_url}` for the registered URL. Make sure that you don't press the button to test it.\n1. Fill in the client ID and secret that are now available." }, "config": { - "step": { - "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", - "data": { - "implementation": "[%key:common::config_flow::data::implementation%]" - }, - "data_description": { - "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The Withings integration needs to re-authenticate your account" - }, - "oauth_discovery": { - "description": "Home Assistant has found a Withings device on your network. Be aware that the setup of Withings is more complicated than many other integrations. Press **Submit** to continue setting up Withings." - } - }, - "error": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" - }, "abort": { + "already_configured": "Configuration updated for profile.", "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "already_configured": "Configuration updated for profile.", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "wrong_account": "Authenticated account does not match the account to be reauthenticated. Please log in with the correct account." }, "create_entry": { "default": "Successfully authenticated with Withings." + }, + "error": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, + "step": { + "oauth_discovery": { + "description": "Home Assistant has found a Withings device on your network. Be aware that the setup of Withings is more complicated than many other integrations. Press **Submit** to continue setting up Withings." + }, + "pick_implementation": { + "data": { + "implementation": "[%key:common::config_flow::data::implementation%]" + }, + "data_description": { + "implementation": "[%key:common::config_flow::description::implementation%]" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" + }, + "reauth_confirm": { + "description": "The Withings integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" + } } }, "entity": { @@ -52,63 +52,62 @@ } }, "sensor": { - "fat_mass": { - "name": "Fat mass" + "activity_active_calories_burnt_today": { + "name": "Active calories burnt today" }, - "fat_free_mass": { - "name": "Fat free mass" + "activity_active_duration_today": { + "name": "Active time today" }, - "muscle_mass": { - "name": "Muscle mass" + "activity_distance_today": { + "name": "Distance travelled today" }, - "bone_mass": { - "name": "Bone mass" + "activity_elevation_today": { + "name": "Elevation change today" }, - "height": { - "name": "Height" + "activity_intense_duration_today": { + "name": "Intense activity today" + }, + "activity_moderate_duration_today": { + "name": "Moderate activity today" + }, + "activity_soft_duration_today": { + "name": "Soft activity today" + }, + "activity_steps_today": { + "name": "Steps today" + }, + "activity_total_calories_burnt_today": { + "name": "Total calories burnt today" + }, + "average_heart_rate": { + "name": "Average heart rate" + }, + "average_respiratory_rate": { + "name": "Average respiratory rate" + }, + "battery": { + "name": "[%key:component::sensor::entity_component::battery::name%]", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } }, "body_temperature": { "name": "Body temperature" }, - "skin_temperature": { - "name": "Skin temperature" + "bone_mass": { + "name": "Bone mass" }, - "fat_ratio": { - "name": "Fat ratio" + "breathing_disturbances_intensity": { + "name": "Breathing disturbances intensity" + }, + "deep_sleep": { + "name": "Deep sleep" }, "diastolic_blood_pressure": { "name": "Diastolic blood pressure" }, - "systolic_blood_pressure": { - "name": "Systolic blood pressure" - }, - "heart_pulse": { - "name": "Heart pulse" - }, - "spo2": { - "name": "SpO2" - }, - "hydration": { - "name": "Hydration" - }, - "pulse_wave_velocity": { - "name": "Pulse wave velocity" - }, - "vo2_max": { - "name": "VO2 max" - }, - "extracellular_water": { - "name": "Extracellular water" - }, - "intracellular_water": { - "name": "Intracellular water" - }, - "vascular_age": { - "name": "Vascular age" - }, - "visceral_fat_index": { - "name": "Visceral fat index" - }, "electrodermal_activity_feet": { "name": "Electrodermal activity feet" }, @@ -118,87 +117,105 @@ "electrodermal_activity_right_foot": { "name": "Electrodermal activity right foot" }, - "muscle_mass_for_segments_torso": { - "name": "Muscle mass in torso" + "extracellular_water": { + "name": "Extracellular water" }, - "muscle_mass_for_segments_left_arm": { - "name": "Muscle mass in left arm" - }, - "muscle_mass_for_segments_right_arm": { - "name": "Muscle mass in right arm" - }, - "muscle_mass_for_segments_left_leg": { - "name": "Muscle mass in left leg" - }, - "muscle_mass_for_segments_right_leg": { - "name": "Muscle mass in right leg" - }, - "fat_free_mass_for_segments_torso": { - "name": "Fat free mass in torso" + "fat_free_mass": { + "name": "Fat free mass" }, "fat_free_mass_for_segments_left_arm": { "name": "Fat free mass in left arm" }, - "fat_free_mass_for_segments_right_arm": { - "name": "Fat free mass in right arm" - }, "fat_free_mass_for_segments_left_leg": { "name": "Fat free mass in left leg" }, + "fat_free_mass_for_segments_right_arm": { + "name": "Fat free mass in right arm" + }, "fat_free_mass_for_segments_right_leg": { "name": "Fat free mass in right leg" }, - "fat_mass_for_segments_torso": { - "name": "Fat mass in torso" + "fat_free_mass_for_segments_torso": { + "name": "Fat free mass in torso" + }, + "fat_mass": { + "name": "Fat mass" }, "fat_mass_for_segments_left_arm": { "name": "Fat mass in left arm" }, - "fat_mass_for_segments_right_arm": { - "name": "Fat mass in right arm" - }, "fat_mass_for_segments_left_leg": { "name": "Fat mass in left leg" }, + "fat_mass_for_segments_right_arm": { + "name": "Fat mass in right arm" + }, "fat_mass_for_segments_right_leg": { "name": "Fat mass in right leg" }, - "breathing_disturbances_intensity": { - "name": "Breathing disturbances intensity" + "fat_mass_for_segments_torso": { + "name": "Fat mass in torso" }, - "deep_sleep": { - "name": "Deep sleep" + "fat_ratio": { + "name": "Fat ratio" }, - "time_to_sleep": { - "name": "Time to sleep" + "heart_pulse": { + "name": "Heart pulse" }, - "time_to_wakeup": { - "name": "Time to wakeup" + "height": { + "name": "Height" }, - "average_heart_rate": { - "name": "Average heart rate" + "hydration": { + "name": "Hydration" }, - "maximum_heart_rate": { - "name": "Maximum heart rate" - }, - "minimum_heart_rate": { - "name": "Minimum heart rate" + "intracellular_water": { + "name": "Intracellular water" }, "light_sleep": { "name": "Light sleep" }, - "rem_sleep": { - "name": "REM sleep" - }, - "average_respiratory_rate": { - "name": "Average respiratory rate" + "maximum_heart_rate": { + "name": "Maximum heart rate" }, "maximum_respiratory_rate": { "name": "Maximum respiratory rate" }, + "minimum_heart_rate": { + "name": "Minimum heart rate" + }, "minimum_respiratory_rate": { "name": "Minimum respiratory rate" }, + "muscle_mass": { + "name": "Muscle mass" + }, + "muscle_mass_for_segments_left_arm": { + "name": "Muscle mass in left arm" + }, + "muscle_mass_for_segments_left_leg": { + "name": "Muscle mass in left leg" + }, + "muscle_mass_for_segments_right_arm": { + "name": "Muscle mass in right arm" + }, + "muscle_mass_for_segments_right_leg": { + "name": "Muscle mass in right leg" + }, + "muscle_mass_for_segments_torso": { + "name": "Muscle mass in torso" + }, + "pulse_wave_velocity": { + "name": "Pulse wave velocity" + }, + "rem_sleep": { + "name": "REM sleep" + }, + "skin_temperature": { + "name": "Skin temperature" + }, + "sleep_goal": { + "name": "Sleep goal" + }, "sleep_score": { "name": "Sleep score" }, @@ -208,108 +225,48 @@ "snoring_episode_count": { "name": "Snoring episode count" }, + "spo2": { + "name": "SpO2" + }, + "step_goal": { + "name": "Step goal" + }, + "systolic_blood_pressure": { + "name": "Systolic blood pressure" + }, + "time_to_sleep": { + "name": "Time to sleep" + }, + "time_to_wakeup": { + "name": "Time to wakeup" + }, + "vascular_age": { + "name": "Vascular age" + }, + "visceral_fat_index": { + "name": "Visceral fat index" + }, + "vo2_max": { + "name": "VO2 max" + }, "wakeup_count": { "name": "Wakeup count" }, "wakeup_time": { "name": "Wakeup time" }, - "step_goal": { - "name": "Step goal" - }, - "sleep_goal": { - "name": "Sleep goal" - }, "weight_goal": { "name": "Weight goal" }, - "activity_steps_today": { - "name": "Steps today" - }, - "activity_distance_today": { - "name": "Distance travelled today" - }, - "activity_elevation_today": { - "name": "Elevation change today" - }, - "activity_soft_duration_today": { - "name": "Soft activity today" - }, - "activity_moderate_duration_today": { - "name": "Moderate activity today" - }, - "activity_intense_duration_today": { - "name": "Intense activity today" - }, - "activity_active_duration_today": { - "name": "Active time today" - }, - "activity_active_calories_burnt_today": { - "name": "Active calories burnt today" - }, - "activity_total_calories_burnt_today": { - "name": "Total calories burnt today" - }, - "workout_type": { - "name": "Last workout type", - "state": { - "walk": "Walking", - "run": "Running", - "hiking": "Hiking", - "skating": "Skating", - "bmx": "BMX", - "bicycling": "Bicycling", - "swimming": "Swimming", - "surfing": "Surfing", - "kitesurfing": "Kitesurfing", - "windsurfing": "Windsurfing", - "bodyboard": "Bodyboard", - "tennis": "Tennis", - "table_tennis": "Table tennis", - "squash": "Squash", - "badminton": "Badminton", - "lift_weights": "Lift weights", - "calisthenics": "Calisthenics", - "elliptical": "Elliptical", - "pilates": "Pilates", - "basket_ball": "Basket ball", - "soccer": "Soccer", - "football": "Football", - "rugby": "Rugby", - "volley_ball": "Volley ball", - "waterpolo": "Waterpolo", - "horse_riding": "Horse riding", - "golf": "Golf", - "yoga": "Yoga", - "dancing": "Dancing", - "boxing": "Boxing", - "fencing": "Fencing", - "wrestling": "Wrestling", - "martial_arts": "Martial arts", - "skiing": "Skiing", - "snowboarding": "Snowboarding", - "other": "Other", - "no_activity": "No activity", - "rowing": "Rowing", - "zumba": "Zumba", - "baseball": "Baseball", - "handball": "Handball", - "hockey": "Hockey", - "ice_hockey": "Ice hockey", - "climbing": "Climbing", - "ice_skating": "Ice skating", - "multi_sport": "Multi sport", - "indoor_walk": "Indoor walking", - "indoor_running": "Indoor running", - "indoor_cycling": "Indoor cycling" - } - }, "workout_active_calories_burnt": { "name": "Calories burnt last workout" }, "workout_distance": { "name": "Distance travelled last workout" }, + "workout_duration": { + "name": "Last workout duration" + }, "workout_elevation": { "name": "Elevation change last workout" }, @@ -319,15 +276,58 @@ "workout_pause_duration": { "name": "Pause during last workout" }, - "workout_duration": { - "name": "Last workout duration" - }, - "battery": { - "name": "[%key:component::sensor::entity_component::battery::name%]", + "workout_type": { + "name": "Last workout type", "state": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" + "badminton": "Badminton", + "baseball": "Baseball", + "basket_ball": "Basket ball", + "bicycling": "Bicycling", + "bmx": "BMX", + "bodyboard": "Bodyboard", + "boxing": "Boxing", + "calisthenics": "Calisthenics", + "climbing": "Climbing", + "dancing": "Dancing", + "elliptical": "Elliptical", + "fencing": "Fencing", + "football": "Football", + "golf": "Golf", + "handball": "Handball", + "hiking": "Hiking", + "hockey": "Hockey", + "horse_riding": "Horse riding", + "ice_hockey": "Ice hockey", + "ice_skating": "Ice skating", + "indoor_cycling": "Indoor cycling", + "indoor_running": "Indoor running", + "indoor_walk": "Indoor walking", + "kitesurfing": "Kitesurfing", + "lift_weights": "Lift weights", + "martial_arts": "Martial arts", + "multi_sport": "Multi sport", + "no_activity": "No activity", + "other": "Other", + "pilates": "Pilates", + "rowing": "Rowing", + "rugby": "Rugby", + "run": "Running", + "skating": "Skating", + "skiing": "Skiing", + "snowboarding": "Snowboarding", + "soccer": "Soccer", + "squash": "Squash", + "surfing": "Surfing", + "swimming": "Swimming", + "table_tennis": "Table tennis", + "tennis": "Tennis", + "volley_ball": "Volley ball", + "walk": "Walking", + "waterpolo": "Waterpolo", + "windsurfing": "Windsurfing", + "wrestling": "Wrestling", + "yoga": "Yoga", + "zumba": "Zumba" } } } diff --git a/homeassistant/components/wiz/icons.json b/homeassistant/components/wiz/icons.json index 896f28a8ef1..7f0ce2222d9 100644 --- a/homeassistant/components/wiz/icons.json +++ b/homeassistant/components/wiz/icons.json @@ -1,11 +1,11 @@ { "entity": { "number": { - "effect_speed": { - "default": "mdi:speedometer" - }, "dual_head_ratio": { "default": "mdi:floor-lamp-dual" + }, + "effect_speed": { + "default": "mdi:speedometer" } } } diff --git a/homeassistant/components/wiz/strings.json b/homeassistant/components/wiz/strings.json index b75e199fe33..5569cb422d4 100644 --- a/homeassistant/components/wiz/strings.json +++ b/homeassistant/components/wiz/strings.json @@ -1,13 +1,19 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "error": { + "bulb_time_out": "Can not connect to the bulb. Maybe the bulb is offline or a wrong IP was entered. Please turn on the light and try again!", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "no_ip": "Not a valid IP address.", + "no_wiz_light": "The bulb cannot be connected via WiZ Platform integration.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name} ({host})", "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::ip%]" - }, - "description": "If you leave the IP Address empty, discovery will be used to find devices." - }, "discovery_confirm": { "description": "Do you want to set up {name} ({host})?" }, @@ -15,28 +21,22 @@ "data": { "device": "[%key:common::config_flow::data::device%]" } + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::ip%]" + }, + "description": "If you leave the IP Address empty, discovery will be used to find devices." } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "bulb_time_out": "Can not connect to the bulb. Maybe the bulb is offline or a wrong IP was entered. Please turn on the light and try again!", - "no_wiz_light": "The bulb cannot be connected via WiZ Platform integration.", - "no_ip": "Not a valid IP address." - }, - "abort": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { "number": { - "effect_speed": { - "name": "Effect speed" - }, "dual_head_ratio": { "name": "Dual head ratio" + }, + "effect_speed": { + "name": "Effect speed" } } } diff --git a/homeassistant/components/wled/icons.json b/homeassistant/components/wled/icons.json index 65de1d0f985..db3cbe573bf 100644 --- a/homeassistant/components/wled/icons.json +++ b/homeassistant/components/wled/icons.json @@ -14,54 +14,54 @@ } }, "select": { - "preset": { - "default": "mdi:playlist-play" - }, - "playlist": { - "default": "mdi:play-speed" - }, "color_palette": { "default": "mdi:palette-outline" }, - "segment_color_palette": { - "default": "mdi:palette-outline" - }, "live_override": { "default": "mdi:theater" + }, + "playlist": { + "default": "mdi:play-speed" + }, + "preset": { + "default": "mdi:playlist-play" + }, + "segment_color_palette": { + "default": "mdi:palette-outline" } }, "sensor": { "free_heap": { "default": "mdi:memory" }, - "wifi_signal": { + "ip": { + "default": "mdi:ip-network" + }, + "wifi_bssid": { "default": "mdi:wifi" }, "wifi_channel": { "default": "mdi:wifi" }, - "wifi_bssid": { + "wifi_signal": { "default": "mdi:wifi" - }, - "ip": { - "default": "mdi:ip-network" } }, "switch": { "nightlight": { "default": "mdi:weather-night" }, - "sync_send": { - "default": "mdi:upload-network-outline" - }, - "sync_receive": { - "default": "mdi:download-network-outline" - }, "reverse": { "default": "mdi:swap-horizontal-bold" }, "segment_reverse": { "default": "mdi:swap-horizontal-bold" + }, + "sync_receive": { + "default": "mdi:download-network-outline" + }, + "sync_send": { + "default": "mdi:upload-network-outline" } } } diff --git a/homeassistant/components/wled/strings.json b/homeassistant/components/wled/strings.json index 1f15aea979b..76ef5765258 100644 --- a/homeassistant/components/wled/strings.json +++ b/homeassistant/components/wled/strings.json @@ -1,36 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{name}", "step": { "user": { - "description": "Set up your WLED to integrate with Home Assistant.", "data": { "host": "[%key:common::config_flow::data::host%]" }, "data_description": { "host": "Hostname or IP address of your WLED device." - } + }, + "description": "Set up your WLED to integrate with Home Assistant." }, "zeroconf_confirm": { "description": "Do you want to add the WLED named `{name}` to Home Assistant?", "title": "Discovered WLED device" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - } - }, - "options": { - "step": { - "init": { - "data": { - "keep_master_light": "Add 'Main' control even with single LED segment" - } - } } }, "entity": { @@ -54,20 +45,17 @@ "segment_intensity": { "name": "Segment {segment} intensity" }, - "speed": { - "name": "Speed" - }, "segment_speed": { "name": "Segment {segment} speed" + }, + "speed": { + "name": "Speed" } }, "select": { "color_palette": { "name": "Color palette" }, - "segment_color_palette": { - "name": "Segment {segment} color palette" - }, "live_override": { "name": "Live override", "state": { @@ -76,60 +64,72 @@ "2": "Until device restarts" } }, + "playlist": { + "name": "Playlist" + }, "preset": { "name": "Preset" }, - "playlist": { - "name": "Playlist" + "segment_color_palette": { + "name": "Segment {segment} color palette" } }, "sensor": { "estimated_current": { "name": "Estimated current" }, + "free_heap": { + "name": "Free memory" + }, "info_leds_count": { "name": "LED count" }, "info_leds_max_power": { "name": "Max current" }, + "ip": { + "name": "IP" + }, "uptime": { "name": "Uptime" }, - "free_heap": { - "name": "Free memory" - }, - "wifi_signal": { - "name": "Wi-Fi signal" - }, - "wifi_rssi": { - "name": "Wi-Fi RSSI" - }, - "wifi_channel": { - "name": "Wi-Fi channel" - }, "wifi_bssid": { "name": "Wi-Fi BSSID" }, - "ip": { - "name": "IP" + "wifi_channel": { + "name": "Wi-Fi channel" + }, + "wifi_rssi": { + "name": "Wi-Fi RSSI" + }, + "wifi_signal": { + "name": "Wi-Fi signal" } }, "switch": { "nightlight": { "name": "Nightlight" }, - "sync_send": { - "name": "Sync send" - }, - "sync_receive": { - "name": "Sync receive" - }, "reverse": { "name": "Reverse" }, "segment_reverse": { "name": "Segment {segment} reverse" + }, + "sync_receive": { + "name": "Sync receive" + }, + "sync_send": { + "name": "Sync send" + } + } + }, + "options": { + "step": { + "init": { + "data": { + "keep_master_light": "Add 'Main' control even with single LED segment" + } } } } diff --git a/homeassistant/components/wmspro/strings.json b/homeassistant/components/wmspro/strings.json index 9b6d129905b..f1c72a1f26b 100644 --- a/homeassistant/components/wmspro/strings.json +++ b/homeassistant/components/wmspro/strings.json @@ -1,5 +1,15 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{host}", "step": { "user": { @@ -10,16 +20,6 @@ "host": "The hostname or IP address of your WMS WebControl pro." } } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]" } } } diff --git a/homeassistant/components/wolflink/strings.json b/homeassistant/components/wolflink/strings.json index ba746a579cd..642b7ed5aca 100644 --- a/homeassistant/components/wolflink/strings.json +++ b/homeassistant/components/wolflink/strings.json @@ -9,18 +9,18 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - }, - "title": "WOLF SmartSet connection" - }, "device": { "data": { "device_name": "[%key:common::config_flow::data::device%]" }, "title": "Select WOLF device" + }, + "user": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "title": "WOLF SmartSet connection" } } }, @@ -28,87 +28,87 @@ "sensor": { "state": { "state": { - "ein": "[%key:common::state::on%]", - "aus": "[%key:common::state::off%]", - "deaktiviert": "[%key:common::state::disabled%]", - "standby": "[%key:common::state::standby%]", - "storung": "[%key:common::state::fault%]", - "auto": "[%key:common::state::auto%]", - "permanent": "Permanent", - "initialisierung": "Initialization", - "antilegionellenfunktion": "Anti-legionella function", - "fernschalter_ein": "Remote control enabled", "1_x_warmwasser": "1 x DHW", - "bereit_keine_ladung": "Ready, not loading", - "solarbetrieb": "Solar mode", - "reduzierter_betrieb": "Limited mode", - "smart_home": "SmartHome", - "smart_grid": "SmartGrid", - "ruhekontakt": "Rest contact", - "vorspulen": "Entry rinsing", - "zunden": "Ignition", - "stabilisierung": "Stabilization", - "ventilprufung": "Valve test", - "nachspulen": "Post-flush", - "softstart": "Soft start", - "taktsperre": "Anti-cycle", - "betrieb_ohne_brenner": "Working without burner", "abgasklappe": "Flue gas damper", - "gradienten_uberwachung": "Gradient monitoring", - "gasdruck": "Gas pressure", - "spreizung_hoch": "dT too wide", - "spreizung_kf": "Spread KF", - "test": "Test", - "start": "[%key:common::action::start%]", + "absenkbetrieb": "Setback mode", + "absenkstop": "Setback stop", + "aktiviert": "Activated", + "antilegionellenfunktion": "Anti-legionella function", + "at_abschaltung": "OT shutdown", + "at_frostschutz": "OT frost protection", + "aus": "[%key:common::state::off%]", + "auto": "[%key:common::state::auto%]", + "auto_off_cool": "AutoOffCool", + "auto_on_cool": "AutoOnCool", + "automatik_aus": "Automatic OFF", + "automatik_ein": "Automatic ON", + "bereit_keine_ladung": "Ready, not loading", + "betrieb_ohne_brenner": "Working without burner", + "cooling": "Cooling", + "deaktiviert": "[%key:common::state::disabled%]", + "dhw_prior": "DHWPrior", + "eco": "Eco", + "ein": "[%key:common::state::on%]", + "estrichtrocknung": "Screed drying", + "externe_deaktivierung": "External deactivation", + "fernschalter_ein": "Remote control enabled", "frost_heizkreis": "Heating circuit frost", "frost_warmwasser": "DHW frost", - "schornsteinfeger": "Emissions test", - "kombibetrieb": "Combi mode", - "parallelbetrieb": "Parallel mode", - "warmwasserbetrieb": "DHW mode", - "warmwassernachlauf": "DHW run-on", - "heizbetrieb": "Heating mode", - "nachlauf_heizkreispumpe": "Heating circuit pump run-on", "frostschutz": "Frost protection", - "kaskadenbetrieb": "Cascade operation", + "gasdruck": "Gas pressure", "glt_betrieb": "BMS mode", + "gradienten_uberwachung": "Gradient monitoring", + "heizbetrieb": "Heating mode", + "heizgerat_mit_speicher": "Boiler with cylinder", + "heizung": "Heating", + "initialisierung": "Initialization", "kalibration": "Calibration", "kalibration_heizbetrieb": "Heating mode calibration", - "kalibration_warmwasserbetrieb": "DHW calibration", "kalibration_kombibetrieb": "Combi mode calibration", - "warmwasser_schnellstart": "DHW quick start", - "externe_deaktivierung": "External deactivation", - "heizung": "Heating", - "warmwasser": "DHW", + "kalibration_warmwasserbetrieb": "DHW calibration", + "kaskadenbetrieb": "Cascade operation", + "kombibetrieb": "Combi mode", "kombigerat": "Combi boiler", "kombigerat_mit_solareinbindung": "Combi boiler with solar integration", - "heizgerat_mit_speicher": "Boiler with cylinder", + "mindest_kombizeit": "Minimum combi time", + "nachlauf_heizkreispumpe": "Heating circuit pump run-on", + "nachspulen": "Post-flush", "nur_heizgerat": "Boiler only", - "aktiviert": "Activated", - "sparen": "Economy", - "estrichtrocknung": "Screed drying", - "telefonfernschalter": "Telephone remote switch", + "parallelbetrieb": "Parallel mode", "partymodus": "Party mode", - "urlaubsmodus": "Holiday mode", - "automatik_ein": "Automatic ON", - "automatik_aus": "Automatic OFF", - "permanentbetrieb": "Permanent mode", - "sparbetrieb": "Economy mode", - "auto_on_cool": "AutoOnCool", - "auto_off_cool": "AutoOffCool", "perm_cooling": "PermCooling", - "absenkbetrieb": "Setback mode", - "eco": "Eco", - "absenkstop": "Setback stop", - "at_abschaltung": "OT shutdown", + "permanent": "Permanent", + "permanentbetrieb": "Permanent mode", + "reduzierter_betrieb": "Limited mode", "rt_abschaltung": "RT shutdown", - "at_frostschutz": "OT frost protection", "rt_frostschutz": "RT frost protection", - "dhw_prior": "DHWPrior", - "cooling": "Cooling", + "ruhekontakt": "Rest contact", + "schornsteinfeger": "Emissions test", + "smart_grid": "SmartGrid", + "smart_home": "SmartHome", + "softstart": "Soft start", + "solarbetrieb": "Solar mode", + "sparbetrieb": "Economy mode", + "sparen": "Economy", + "spreizung_hoch": "dT too wide", + "spreizung_kf": "Spread KF", + "stabilisierung": "Stabilization", + "standby": "[%key:common::state::standby%]", + "start": "[%key:common::action::start%]", + "storung": "[%key:common::state::fault%]", + "taktsperre": "Anti-cycle", + "telefonfernschalter": "Telephone remote switch", + "test": "Test", "tpw": "TPW", + "urlaubsmodus": "Holiday mode", + "ventilprufung": "Valve test", + "vorspulen": "Entry rinsing", + "warmwasser": "DHW", + "warmwasser_schnellstart": "DHW quick start", + "warmwasserbetrieb": "DHW mode", + "warmwassernachlauf": "DHW run-on", "warmwasservorrang": "DHW priority", - "mindest_kombizeit": "Minimum combi time" + "zunden": "Ignition" } } } diff --git a/homeassistant/components/workday/strings.json b/homeassistant/components/workday/strings.json index e78ece25c21..b0a1869aad1 100644 --- a/homeassistant/components/workday/strings.json +++ b/homeassistant/components/workday/strings.json @@ -1,87 +1,186 @@ { - "title": "Workday", "config": { "abort": { "already_configured": "Workday has already been set up with chosen configuration" }, - "step": { - "user": { - "data": { - "name": "[%key:common::config_flow::data::name%]", - "country": "[%key:common::config_flow::data::country%]" - } - }, - "options": { - "description": "Set additional options for {name} configured for country {country}", - "data": { - "excludes": "Days to exclude", - "days_offset": "Offset", - "workdays": "Days to include", - "add_holidays": "Add holidays", - "remove_holidays": "Remove holidays", - "province": "Subdivision of country", - "language": "Language for named holidays", - "category": "Additional category as holiday" - }, - "data_description": { - "excludes": "Select which weekdays to exclude as workdays.\nThe key `holidays` adds those for the configured country, customizable by all the settings below. Read the documentation on how to use them correctly.", - "days_offset": "Days offset from current day", - "workdays": "Select which weekdays to include as possible workdays.", - "add_holidays": "Add custom holidays as YYYY-MM-DD or as range using `,` as separator", - "remove_holidays": "Remove holidays as YYYY-MM-DD, as range using `,` as separator or by using partial of name", - "province": "State, territory, province or region of country", - "language": "Language to use when configuring named holiday exclusions", - "category": "Select additional categories to include as holidays" - } - } - }, "error": { "add_holiday_error": "Incorrect format on date (YYYY-MM-DD)", "add_holiday_range_error": "Incorrect format on date range (YYYY-MM-DD,YYYY-MM-DD)", "remove_holiday_error": "Incorrect format on date (YYYY-MM-DD) or holiday name not found", "remove_holiday_range_error": "Incorrect format on date range (YYYY-MM-DD,YYYY-MM-DD)" - } - }, - "options": { + }, "step": { - "init": { - "description": "Change additional options for {name} configured for country {country}", + "options": { "data": { - "excludes": "[%key:component::workday::config::step::options::data::excludes%]", - "days_offset": "[%key:component::workday::config::step::options::data::days_offset%]", - "workdays": "[%key:component::workday::config::step::options::data::workdays%]", - "add_holidays": "[%key:component::workday::config::step::options::data::add_holidays%]", - "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]", - "province": "[%key:component::workday::config::step::options::data::province%]", - "language": "[%key:component::workday::config::step::options::data::language%]", - "category": "[%key:component::workday::config::step::options::data::category%]" + "add_holidays": "Add holidays", + "category": "Additional category as holiday", + "days_offset": "Offset", + "excludes": "Days to exclude", + "language": "Language for named holidays", + "province": "Subdivision of country", + "remove_holidays": "Remove holidays", + "workdays": "Days to include" }, "data_description": { - "excludes": "[%key:component::workday::config::step::options::data_description::excludes%]", - "days_offset": "[%key:component::workday::config::step::options::data_description::days_offset%]", - "workdays": "[%key:component::workday::config::step::options::data_description::workdays%]", - "add_holidays": "[%key:component::workday::config::step::options::data_description::add_holidays%]", - "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]", - "province": "[%key:component::workday::config::step::options::data_description::province%]", - "language": "[%key:component::workday::config::step::options::data_description::language%]", - "category": "[%key:component::workday::config::step::options::data_description::category%]" + "add_holidays": "Add custom holidays as YYYY-MM-DD or as range using `,` as separator", + "category": "Select additional categories to include as holidays", + "days_offset": "Days offset from current day", + "excludes": "Select which weekdays to exclude as workdays.\nThe key `holidays` adds those for the configured country, customizable by all the settings below. Read the documentation on how to use them correctly.", + "language": "Language to use when configuring named holiday exclusions", + "province": "State, territory, province or region of country", + "remove_holidays": "Remove holidays as YYYY-MM-DD, as range using `,` as separator or by using partial of name", + "workdays": "Select which weekdays to include as possible workdays." + }, + "description": "Set additional options for {name} configured for country {country}" + }, + "user": { + "data": { + "country": "[%key:common::config_flow::data::country%]", + "name": "[%key:common::config_flow::data::name%]" + } + } + } + }, + "entity": { + "binary_sensor": { + "workday": { + "state_attributes": { + "days_offset": { + "name": "[%key:component::workday::config::step::options::data::days_offset%]" + }, + "excludes": { + "name": "[%key:component::workday::config::step::options::data::excludes%]" + }, + "workdays": { + "name": "[%key:component::workday::config::step::options::data::workdays%]" + } } } }, + "calendar": { + "workday": { + "name": "[%key:component::calendar::title%]" + } + } + }, + "issues": { + "bad_country": { + "fix_flow": { + "step": { + "country": { + "data": { + "country": "[%key:common::config_flow::data::country%]" + }, + "description": "Select a country to use for your Workday sensor.", + "title": "Select country for {title}" + }, + "province": { + "data": { + "province": "[%key:component::workday::config::step::options::data::province%]" + }, + "data_description": { + "province": "[%key:component::workday::config::step::options::data_description::province%]" + }, + "description": "Select a province in country {country} to use for your Workday sensor.", + "title": "Select province for {title}" + } + } + }, + "title": "Configured country for {title} does not exist" + }, + "bad_date_holiday": { + "fix_flow": { + "error": { + "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]" + }, + "step": { + "fix_remove_holiday": { + "data": { + "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]" + }, + "data_description": { + "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]" + }, + "description": "Remove holiday date `{remove_holidays}` as it can't be found in country {country}.", + "title": "[%key:component::workday::issues::bad_date_holiday::title%]" + } + } + }, + "title": "Configured holiday date {remove_holidays} for {title} does not exist" + }, + "bad_named_holiday": { + "fix_flow": { + "error": { + "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]" + }, + "step": { + "fix_remove_holiday": { + "data": { + "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]" + }, + "data_description": { + "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]" + }, + "description": "Remove named holiday `{remove_holidays}` as it can't be found in country {country}.", + "title": "[%key:component::workday::issues::bad_named_holiday::title%]" + } + } + }, + "title": "Configured named holiday {remove_holidays} for {title} does not exist" + }, + "bad_province": { + "fix_flow": { + "step": { + "province": { + "data": { + "province": "[%key:component::workday::config::step::options::data::province%]" + }, + "data_description": { + "province": "[%key:component::workday::config::step::options::data_description::province%]" + }, + "description": "[%key:component::workday::issues::bad_country::fix_flow::step::province::description%]", + "title": "[%key:component::workday::issues::bad_country::fix_flow::step::province::title%]" + } + } + }, + "title": "Configured province in country {country} for {title} does not exist" + } + }, + "options": { "error": { "add_holiday_error": "[%key:component::workday::config::error::add_holiday_error%]", "add_holiday_range_error": "[%key:component::workday::config::error::add_holiday_range_error%]", + "already_configured": "Service with this configuration already exist", "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]", - "remove_holiday_range_error": "[%key:component::workday::config::error::remove_holiday_range_error%]", - "already_configured": "Service with this configuration already exist" + "remove_holiday_range_error": "[%key:component::workday::config::error::remove_holiday_range_error%]" + }, + "step": { + "init": { + "data": { + "add_holidays": "[%key:component::workday::config::step::options::data::add_holidays%]", + "category": "[%key:component::workday::config::step::options::data::category%]", + "days_offset": "[%key:component::workday::config::step::options::data::days_offset%]", + "excludes": "[%key:component::workday::config::step::options::data::excludes%]", + "language": "[%key:component::workday::config::step::options::data::language%]", + "province": "[%key:component::workday::config::step::options::data::province%]", + "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]", + "workdays": "[%key:component::workday::config::step::options::data::workdays%]" + }, + "data_description": { + "add_holidays": "[%key:component::workday::config::step::options::data_description::add_holidays%]", + "category": "[%key:component::workday::config::step::options::data_description::category%]", + "days_offset": "[%key:component::workday::config::step::options::data_description::days_offset%]", + "excludes": "[%key:component::workday::config::step::options::data_description::excludes%]", + "language": "[%key:component::workday::config::step::options::data_description::language%]", + "province": "[%key:component::workday::config::step::options::data_description::province%]", + "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]", + "workdays": "[%key:component::workday::config::step::options::data_description::workdays%]" + }, + "description": "Change additional options for {name} configured for country {country}" + } } }, "selector": { - "province": { - "options": { - "none": "No subdivision" - } - }, "category": { "options": { "armed_forces": "Armed forces", @@ -103,132 +202,33 @@ }, "days": { "options": { - "mon": "[%key:common::time::monday%]", - "tue": "[%key:common::time::tuesday%]", - "wed": "[%key:common::time::wednesday%]", - "thu": "[%key:common::time::thursday%]", "fri": "[%key:common::time::friday%]", + "holiday": "Holidays", + "mon": "[%key:common::time::monday%]", "sat": "[%key:common::time::saturday%]", "sun": "[%key:common::time::sunday%]", - "holiday": "Holidays" - } - } - }, - "issues": { - "bad_country": { - "title": "Configured country for {title} does not exist", - "fix_flow": { - "step": { - "country": { - "title": "Select country for {title}", - "description": "Select a country to use for your Workday sensor.", - "data": { - "country": "[%key:common::config_flow::data::country%]" - } - }, - "province": { - "title": "Select province for {title}", - "description": "Select a province in country {country} to use for your Workday sensor.", - "data": { - "province": "[%key:component::workday::config::step::options::data::province%]" - }, - "data_description": { - "province": "[%key:component::workday::config::step::options::data_description::province%]" - } - } - } + "thu": "[%key:common::time::thursday%]", + "tue": "[%key:common::time::tuesday%]", + "wed": "[%key:common::time::wednesday%]" } }, - "bad_province": { - "title": "Configured province in country {country} for {title} does not exist", - "fix_flow": { - "step": { - "province": { - "title": "[%key:component::workday::issues::bad_country::fix_flow::step::province::title%]", - "description": "[%key:component::workday::issues::bad_country::fix_flow::step::province::description%]", - "data": { - "province": "[%key:component::workday::config::step::options::data::province%]" - }, - "data_description": { - "province": "[%key:component::workday::config::step::options::data_description::province%]" - } - } - } - } - }, - "bad_named_holiday": { - "title": "Configured named holiday {remove_holidays} for {title} does not exist", - "fix_flow": { - "step": { - "fix_remove_holiday": { - "title": "[%key:component::workday::issues::bad_named_holiday::title%]", - "description": "Remove named holiday `{remove_holidays}` as it can't be found in country {country}.", - "data": { - "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]" - }, - "data_description": { - "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]" - } - } - }, - "error": { - "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]" - } - } - }, - "bad_date_holiday": { - "title": "Configured holiday date {remove_holidays} for {title} does not exist", - "fix_flow": { - "step": { - "fix_remove_holiday": { - "title": "[%key:component::workday::issues::bad_date_holiday::title%]", - "description": "Remove holiday date `{remove_holidays}` as it can't be found in country {country}.", - "data": { - "remove_holidays": "[%key:component::workday::config::step::options::data::remove_holidays%]" - }, - "data_description": { - "remove_holidays": "[%key:component::workday::config::step::options::data_description::remove_holidays%]" - } - } - }, - "error": { - "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]" - } - } - } - }, - "entity": { - "binary_sensor": { - "workday": { - "state_attributes": { - "workdays": { - "name": "[%key:component::workday::config::step::options::data::workdays%]" - }, - "excludes": { - "name": "[%key:component::workday::config::step::options::data::excludes%]" - }, - "days_offset": { - "name": "[%key:component::workday::config::step::options::data::days_offset%]" - } - } - } - }, - "calendar": { - "workday": { - "name": "[%key:component::calendar::title%]" + "province": { + "options": { + "none": "No subdivision" } } }, "services": { "check_date": { - "name": "Check date", "description": "Checks if a given date is a workday.", "fields": { "check_date": { - "name": "Date", - "description": "Date to check if workday." + "description": "Date to check if workday.", + "name": "Date" } - } + }, + "name": "Check date" } - } + }, + "title": "Workday" } diff --git a/homeassistant/components/worldclock/strings.json b/homeassistant/components/worldclock/strings.json index 2f6b8d67a7c..5823139352f 100644 --- a/homeassistant/components/worldclock/strings.json +++ b/homeassistant/components/worldclock/strings.json @@ -7,12 +7,12 @@ "user": { "data": { "name": "[%key:common::config_flow::data::name%]", - "time_zone": "Timezone", - "time_format": "Time format" + "time_format": "Time format", + "time_zone": "Timezone" }, "data_description": { - "time_zone": "Select timezone from list", - "time_format": "Select a pre-defined format from the list or define your own format." + "time_format": "Select a pre-defined format from the list or define your own format.", + "time_zone": "Select timezone from list" } } } diff --git a/homeassistant/components/ws66i/strings.json b/homeassistant/components/ws66i/strings.json index ec5bc621a89..1cb4672ad50 100644 --- a/homeassistant/components/ws66i/strings.json +++ b/homeassistant/components/ws66i/strings.json @@ -1,22 +1,21 @@ { "config": { - "step": { - "user": { - "title": "Connect to the device", - "data": { - "ip_address": "[%key:common::config_flow::data::ip%]" - } - } - }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "step": { + "user": { + "data": { + "ip_address": "[%key:common::config_flow::data::ip%]" + }, + "title": "Connect to the device" + } } }, "options": { "step": { "init": { - "title": "Configure sources", "data": { "source_1": "Name of source #1", "source_2": "Name of source #2", @@ -24,7 +23,8 @@ "source_4": "Name of source #4", "source_5": "Name of source #5", "source_6": "Name of source #6" - } + }, + "title": "Configure sources" } } } diff --git a/homeassistant/components/wyoming/strings.json b/homeassistant/components/wyoming/strings.json index 2578b0e5278..b8fb3fad5f1 100644 --- a/homeassistant/components/wyoming/strings.json +++ b/homeassistant/components/wyoming/strings.json @@ -1,27 +1,27 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", + "no_port": "No port for endpoint", + "no_services": "No services found at endpoint" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { + "hassio_confirm": { + "description": "Do you want to configure Home Assistant to connect to the Wyoming service provided by the add-on: {addon}?" + }, "user": { "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]" } }, - "hassio_confirm": { - "description": "Do you want to configure Home Assistant to connect to the Wyoming service provided by the add-on: {addon}?" - }, "zeroconf_confirm": { "description": "Do you want to configure Home Assistant to connect to the Wyoming service {name}?", "title": "Discovered Wyoming service" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", - "no_services": "No services found at endpoint", - "no_port": "No port for endpoint" } }, "entity": { @@ -30,37 +30,6 @@ "name": "[%key:component::assist_pipeline::entity::binary_sensor::assist_in_progress::name%]" } }, - "select": { - "pipeline": { - "name": "[%key:component::assist_pipeline::entity::select::pipeline::name%]", - "state": { - "preferred": "[%key:component::assist_pipeline::entity::select::pipeline::state::preferred%]" - } - }, - "noise_suppression_level": { - "name": "Noise suppression level", - "state": { - "off": "[%key:common::state::off%]", - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]", - "max": "Max" - } - }, - "vad_sensitivity": { - "name": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::name%]", - "state": { - "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", - "aggressive": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::aggressive%]", - "relaxed": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::relaxed%]" - } - } - }, - "switch": { - "mute": { - "name": "Mute" - } - }, "number": { "auto_gain": { "name": "Auto gain" @@ -68,6 +37,37 @@ "volume_multiplier": { "name": "Mic volume" } + }, + "select": { + "noise_suppression_level": { + "name": "Noise suppression level", + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "max": "Max", + "medium": "[%key:common::state::medium%]", + "off": "[%key:common::state::off%]" + } + }, + "pipeline": { + "name": "[%key:component::assist_pipeline::entity::select::pipeline::name%]", + "state": { + "preferred": "[%key:component::assist_pipeline::entity::select::pipeline::state::preferred%]" + } + }, + "vad_sensitivity": { + "name": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::name%]", + "state": { + "aggressive": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::aggressive%]", + "default": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::default%]", + "relaxed": "[%key:component::assist_pipeline::entity::select::vad_sensitivity::state::relaxed%]" + } + } + }, + "switch": { + "mute": { + "name": "Mute" + } } } } diff --git a/homeassistant/components/xbox/icons.json b/homeassistant/components/xbox/icons.json index 44f923bc584..4d1f7ed27c7 100644 --- a/homeassistant/components/xbox/icons.json +++ b/homeassistant/components/xbox/icons.json @@ -1,8 +1,22 @@ { "entity": { + "binary_sensor": { + "has_game_pass": { + "default": "mdi:microsoft-xbox" + }, + "in_game": { + "default": "mdi:microsoft-xbox-controller" + }, + "online": { + "default": "mdi:account" + } + }, "sensor": { - "status": { - "default": "mdi:message-text-outline" + "follower": { + "default": "mdi:account-arrow-left" + }, + "following": { + "default": "mdi:account-arrow-right" }, "gamer_score": { "default": "mdi:alpha-g-circle" @@ -10,22 +24,8 @@ "last_online": { "default": "mdi:account-clock" }, - "follower": { - "default": "mdi:account-arrow-left" - }, - "following": { - "default": "mdi:account-arrow-right" - } - }, - "binary_sensor": { - "online": { - "default": "mdi:account" - }, - "in_game": { - "default": "mdi:microsoft-xbox-controller" - }, - "has_game_pass": { - "default": "mdi:microsoft-xbox" + "status": { + "default": "mdi:message-text-outline" } } } diff --git a/homeassistant/components/xbox/manifest.json b/homeassistant/components/xbox/manifest.json index 067052f010b..fd30a61e4ea 100644 --- a/homeassistant/components/xbox/manifest.json +++ b/homeassistant/components/xbox/manifest.json @@ -14,12 +14,12 @@ "requirements": ["xbox-webapi==2.1.0"], "ssdp": [ { - "modelName": "Xbox 360", - "manufacturer": "Microsoft Corporation" + "manufacturer": "Microsoft Corporation", + "modelName": "Xbox 360" }, { - "modelName": "Xbox One", - "manufacturer": "Microsoft Corporation" + "manufacturer": "Microsoft Corporation", + "modelName": "Xbox One" } ] } diff --git a/homeassistant/components/xbox/strings.json b/homeassistant/components/xbox/strings.json index a40531e1646..9a59030c6d7 100644 --- a/homeassistant/components/xbox/strings.json +++ b/homeassistant/components/xbox/strings.json @@ -1,37 +1,50 @@ { "config": { + "abort": { + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", + "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", + "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%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { + "oauth_discovery": { + "description": "Home Assistant has found an Xbox device on your network. Press **Submit** to continue setting up the Xbox integration.", + "title": "Discovered Xbox device" + }, "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } - }, - "oauth_discovery": { - "description": "Home Assistant has found an Xbox device on your network. Press **Submit** to continue setting up the Xbox integration.", - "title": "Discovered Xbox device" + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "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%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "entity": { + "binary_sensor": { + "has_game_pass": { + "name": "Subscribed to Xbox Game Pass" + }, + "in_game": { + "name": "In game" + } + }, "sensor": { - "status": { - "name": "Status" + "follower": { + "name": "Follower", + "unit_of_measurement": "[%key:component::xbox::entity::sensor::following::unit_of_measurement%]" + }, + "following": { + "name": "Following", + "unit_of_measurement": "people" }, "gamer_score": { "name": "Gamerscore", @@ -40,21 +53,8 @@ "last_online": { "name": "Last online" }, - "following": { - "name": "Following", - "unit_of_measurement": "people" - }, - "follower": { - "name": "Follower", - "unit_of_measurement": "[%key:component::xbox::entity::sensor::following::unit_of_measurement%]" - } - }, - "binary_sensor": { - "in_game": { - "name": "In game" - }, - "has_game_pass": { - "name": "Subscribed to Xbox Game Pass" + "status": { + "name": "Status" } } }, diff --git a/homeassistant/components/xiaomi_aqara/strings.json b/homeassistant/components/xiaomi_aqara/strings.json index 6221b9b9d65..aa6e17542fe 100644 --- a/homeassistant/components/xiaomi_aqara/strings.json +++ b/homeassistant/components/xiaomi_aqara/strings.json @@ -1,95 +1,95 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "If the IP and MAC addresses are left empty, auto-discovery is used", - "data": { - "interface": "The network interface to use", - "host": "IP address (optional)", - "mac": "MAC address (optional)" - } - }, - "settings": { - "title": "Optional settings", - "description": "The key (password) can be retrieved using this tutorial: https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz. If the key is not provided only sensors will be accessible", - "data": { - "key": "The key of your Gateway", - "name": "Name of the Gateway" - } - }, - "select": { - "description": "Select the Xiaomi Aqara Gateway that you wish to connect", - "data": { - "select_ip": "[%key:common::config_flow::data::ip%]" - } - } - }, - "error": { - "discovery_error": "Failed to discover a Xiaomi Aqara Gateway, try using the IP of the device running Home Assistant as interface", - "invalid_interface": "Invalid network interface", - "invalid_key": "Invalid Gateway key", - "invalid_host": "Invalid hostname or IP address, see https://www.home-assistant.io/integrations/xiaomi_aqara/#connection-problem", - "invalid_mac": "Invalid MAC address" - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "not_xiaomi_aqara": "Not a Xiaomi Aqara Gateway, discovered device did not match known gateways" + }, + "error": { + "discovery_error": "Failed to discover a Xiaomi Aqara Gateway, try using the IP of the device running Home Assistant as interface", + "invalid_host": "Invalid hostname or IP address, see https://www.home-assistant.io/integrations/xiaomi_aqara/#connection-problem", + "invalid_interface": "Invalid network interface", + "invalid_key": "Invalid Gateway key", + "invalid_mac": "Invalid MAC address" + }, + "flow_title": "{name}", + "step": { + "select": { + "data": { + "select_ip": "[%key:common::config_flow::data::ip%]" + }, + "description": "Select the Xiaomi Aqara Gateway that you wish to connect" + }, + "settings": { + "data": { + "key": "The key of your Gateway", + "name": "Name of the Gateway" + }, + "description": "The key (password) can be retrieved using this tutorial: https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz. If the key is not provided only sensors will be accessible", + "title": "Optional settings" + }, + "user": { + "data": { + "host": "IP address (optional)", + "interface": "The network interface to use", + "mac": "MAC address (optional)" + }, + "description": "If the IP and MAC addresses are left empty, auto-discovery is used" + } } }, "services": { "add_device": { - "name": "Add device", "description": "Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds. A new device can be added afterwards by pressing the pairing button once.", "fields": { "gw_mac": { - "name": "Gateway MAC", - "description": "MAC address of the Xiaomi Aqara Gateway." + "description": "MAC address of the Xiaomi Aqara Gateway.", + "name": "Gateway MAC" } - } + }, + "name": "Add device" }, "play_ringtone": { - "name": "Play ringtone", "description": "Plays a specific ringtone. The version of the gateway firmware must be 1.4.1_145 at least.", "fields": { "gw_mac": { - "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", - "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]", + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]" }, "ringtone_id": { - "name": "Ringtone ID", - "description": "One of the allowed ringtone IDs." + "description": "One of the allowed ringtone IDs.", + "name": "Ringtone ID" }, "ringtone_vol": { - "name": "Ringtone volume", - "description": "The volume in percent." + "description": "The volume in percent.", + "name": "Ringtone volume" } - } + }, + "name": "Play ringtone" }, "remove_device": { - "name": "Remove device", "description": "Removes a specific device. The removal is required if a device shall be paired with another gateway.", "fields": { "device_id": { - "name": "Device ID", - "description": "Hardware address of the device to remove." + "description": "Hardware address of the device to remove.", + "name": "Device ID" }, "gw_mac": { - "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", - "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]", + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]" } - } + }, + "name": "Remove device" }, "stop_ringtone": { - "name": "Stop ringtone", "description": "Stops a playing ringtone immediately.", "fields": { "gw_mac": { - "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", - "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]", + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]" } - } + }, + "name": "Stop ringtone" } } } diff --git a/homeassistant/components/xiaomi_ble/strings.json b/homeassistant/components/xiaomi_ble/strings.json index 5f64cd1acdc..30e5792e647 100644 --- a/homeassistant/components/xiaomi_ble/strings.json +++ b/homeassistant/components/xiaomi_ble/strings.json @@ -1,37 +1,39 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "api_error": "Error while communicating with Mi API: {error_detail}", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "error": { + "api_device_not_found": "The device was not found in your Mi account.", + "auth_failed": "Authentication failed: {error_detail}", + "decryption_failed": "The provided bindkey did not work, sensor data could not be decrypted. Please check it and try again.", + "expected_24_characters": "Expected a 24 character hexadecimal bindkey.", + "expected_32_characters": "Expected a 32 character hexadecimal bindkey." + }, "flow_title": "{name}", "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%]" }, + "cloud_auth": { + "data": { + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" + }, + "description": "Please provide your Mi app username and password. This data won't be saved and only used to retrieve the device encryption key. Usernames and passwords are case sensitive." + }, "confirm_slow": { "description": "There hasn't been a broadcast from this device in the last minute so we aren't sure if this device uses encryption or not. This may be because the device uses a slow broadcast interval. Confirm to add this device anyway, then the next time a broadcast is received you will be prompted to enter its bindkey if it's needed." }, - "get_encryption_key_legacy": { - "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 24 character hexadecimal bindkey.", - "data": { - "bindkey": "Bindkey" - } - }, "get_encryption_key_4_5": { - "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 32 character hexadecimal bindkey.", "data": { "bindkey": "Bindkey" - } - }, - "cloud_auth": { - "description": "Please provide your Mi app username and password. This data won't be saved and only used to retrieve the device encryption key. Usernames and passwords are case sensitive.", - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" - } + }, + "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 32 character hexadecimal bindkey." }, "get_encryption_key_4_5_choose_method": { "description": "A Mi device can be set up in Home Assistant in two different ways.\n\nYou can enter the bindkey yourself, or Home Assistant can import them from your Mi account.", @@ -39,85 +41,83 @@ "cloud_auth": "Mi account (recommended)", "get_encryption_key_4_5": "Enter encryption key manually" } + }, + "get_encryption_key_legacy": { + "data": { + "bindkey": "Bindkey" + }, + "description": "The sensor data broadcast by the sensor is encrypted. In order to decrypt it we need a 24 character hexadecimal bindkey." + }, + "user": { + "data": { + "address": "[%key:common::config_flow::data::device%]" + }, + "description": "[%key:component::bluetooth::config::step::user::description%]" } - }, - "error": { - "decryption_failed": "The provided bindkey did not work, sensor data could not be decrypted. Please check it and try again.", - "expected_24_characters": "Expected a 24 character hexadecimal bindkey.", - "expected_32_characters": "Expected a 32 character hexadecimal bindkey.", - "auth_failed": "Authentication failed: {error_detail}", - "api_device_not_found": "The device was not found in your Mi account." - }, - "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", - "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%]", - "api_error": "Error while communicating with Mi API: {error_detail}" } }, "device_automation": { "trigger_subtype": { - "press": "Press", + "abnormal": "Abnormal", "double_press": "Double press", - "long_press": "Long press", - "motion_detected": "Motion detected", - "rotate_left": "Rotate left", - "rotate_right": "Rotate right", - "rotate_left_pressed": "Rotate left (pressed)", - "rotate_right_pressed": "Rotate right (pressed)", - "match_successful": "Match successful", - "match_failed": "Match failed", - "low_quality_too_light_fuzzy": "Low quality (too light, fuzzy)", "insufficient_area": "Insufficient area", + "lock_inside_the_door": "Lock inside the door", + "lock_outside_the_door": "Lock outside the door", + "locked": "Locked", + "long_press": "Long press", + "low_quality_too_light_fuzzy": "Low quality (too light, fuzzy)", + "match_failed": "Match failed", + "match_successful": "Match successful", + "motion_detected": "Motion detected", + "press": "Press", + "release_the_antilock": "Release antilock", + "rotate_left": "Rotate left", + "rotate_left_pressed": "Rotate left (pressed)", + "rotate_right": "Rotate right", + "rotate_right_pressed": "Rotate right (pressed)", "skin_is_too_dry": "Skin is too dry", "skin_is_too_wet": "Skin is too wet", - "lock_outside_the_door": "Lock outside the door", - "unlock_outside_the_door": "Unlock outside the door", - "lock_inside_the_door": "Lock inside the door", - "unlock_inside_the_door": "Unlock inside the door", - "locked": "Locked", - "turn_on_antilock": "Turn on antilock", - "release_the_antilock": "Release antilock", - "turn_on_child_lock": "Turn on child lock", "turn_off_child_lock": "Turn off child lock", - "abnormal": "Abnormal" + "turn_on_antilock": "Turn on antilock", + "turn_on_child_lock": "Turn on child lock", + "unlock_inside_the_door": "Unlock inside the door", + "unlock_outside_the_door": "Unlock outside the door" }, "trigger_type": { "button": "Button \"{subtype}\"", + "button_air_exchange": "Button Air Exchange \"{subtype}\"", + "button_brightness": "Button Brightness \"{subtype}\"", + "button_color_temperature": "Button Color Temperature \"{subtype}\"", + "button_decrease_speed": "Button Decrease Speed \"{subtype}\"", + "button_decrease_wind_speed": "Button Decrease Wind Speed \"{subtype}\"", + "button_dry": "Button Dry \"{subtype}\"", + "button_fan": "Button Fan \"{subtype}\"", + "button_heat": "Button Heat \"{subtype}\"", + "button_increase_speed": "Button Increase Speed \"{subtype}\"", + "button_increase_wind_speed": "Button Increase Wind Speed \"{subtype}\"", "button_left": "Button Left \"{subtype}\"", + "button_light": "Button Light \"{subtype}\"", + "button_m": "Button M \"{subtype}\"", "button_mid_left": "Button Mid Left \"{subtype}\"", "button_mid_right": "Button Mid Right \"{subtype}\"", "button_middle": "Button Middle \"{subtype}\"", - "button_right": "Button Right \"{subtype}\"", - "button_on": "Button On \"{subtype}\"", - "button_off": "Button Off \"{subtype}\"", - "button_brightness": "Button Brightness \"{subtype}\"", - "button_plus": "Button Plus \"{subtype}\"", "button_min": "Button Min \"{subtype}\"", - "button_m": "Button M \"{subtype}\"", - "button_heat": "Button Heat \"{subtype}\"", - "button_air_exchange": "Button Air Exchange \"{subtype}\"", - "button_dry": "Button Dry \"{subtype}\"", - "button_fan": "Button Fan \"{subtype}\"", - "button_swing": "Button Swing \"{subtype}\"", - "button_decrease_speed": "Button Decrease Speed \"{subtype}\"", - "button_increase_speed": "Button Increase Speed \"{subtype}\"", - "button_stop": "Button Stop \"{subtype}\"", - "button_light": "Button Light \"{subtype}\"", - "button_wind_speed": "Button Wind Speed \"{subtype}\"", - "button_wind_mode": "Button Wind Mode \"{subtype}\"", - "button_color_temperature": "Button Color Temperature \"{subtype}\"", + "button_off": "Button Off \"{subtype}\"", + "button_on": "Button On \"{subtype}\"", + "button_plus": "Button Plus \"{subtype}\"", "button_power": "Button Power \"{subtype}\"", + "button_right": "Button Right \"{subtype}\"", + "button_stop": "Button Stop \"{subtype}\"", + "button_swing": "Button Swing \"{subtype}\"", "button_timer_30_minutes": "Button Timer 30 Minutes \"{subtype}\"", "button_timer_60_minutes": "Button Timer 30 Minutes \"{subtype}\"", - "button_increase_wind_speed": "Button Increase Wind Speed \"{subtype}\"", - "button_decrease_wind_speed": "Button Decrease Wind Speed \"{subtype}\"", + "button_wind_mode": "Button Wind Mode \"{subtype}\"", + "button_wind_speed": "Button Wind Speed \"{subtype}\"", + "cube": "{subtype}", "dimmer": "{subtype}", "fingerprint": "{subtype}", "lock": "{subtype}", - "motion": "{subtype}", - "cube": "{subtype}" + "motion": "{subtype}" } }, "entity": { @@ -126,9 +126,9 @@ "state_attributes": { "event_type": { "state": { - "press": "Press", "double_press": "Double press", - "long_press": "Long press" + "long_press": "Long press", + "press": "Press" } } } @@ -147,11 +147,11 @@ "state_attributes": { "event_type": { "state": { - "press": "Press", "long_press": "Long press", + "press": "Press", "rotate_left": "Rotate left", - "rotate_right": "Rotate right", "rotate_left_pressed": "Rotate left (pressed)", + "rotate_right": "Rotate right", "rotate_right_pressed": "Rotate right (pressed)" } } @@ -161,29 +161,29 @@ "state_attributes": { "event_type": { "state": { + "error_nfc_frequently_unlocks": "Error NFC frequently unlocks", + "failure_to_unlock_frequently_in_multiple_ways": "Failure to unlock frequently in multiple ways", + "failure_to_unlock_the_vein_frequently": "Failure to unlock the vein frequently", + "foreign_body_in_the_keyhole": "Foreign body in the keyhole", "frequent_unlocking_with_incorrect_password": "Frequent unlocking with incorrect password", "frequent_unlocking_with_wrong_fingerprints": "Frequent unlocking with wrong fingerprints", - "operation_timeout_password_input_timeout": "Operation timeout password input timeout", - "lock_picking": "Lock picking", - "reset_button_is_pressed": "Reset button is pressed", - "the_wrong_key_is_frequently_unlocked": "The wrong key is frequently unlocked", - "foreign_body_in_the_keyhole": "Foreign body in the keyhole", - "the_key_has_not_been_taken_out": "The key has not been taken out", - "error_nfc_frequently_unlocks": "Error NFC frequently unlocks", - "timeout_is_not_locked_as_required": "Timeout is not locked as required", - "failure_to_unlock_frequently_in_multiple_ways": "Failure to unlock frequently in multiple ways", - "unlocking_the_face_frequently_fails": "Unlocking the face frequently fails", - "failure_to_unlock_the_vein_frequently": "Failure to unlock the vein frequently", "hijacking_alarm": "Hijacking alarm", - "unlock_inside_the_door_after_arming": "Unlock inside the door after arming", + "lock_picking": "Lock picking", + "mechanical_failure": "Mechanical failure", + "operation_timeout_password_input_timeout": "Operation timeout password input timeout", "palmprints_frequently_fail_to_unlock": "Palmprints frequently fail to unlock", - "the_safe_was_moved": "The safe was moved", + "reset_button_is_pressed": "Reset button is pressed", + "the_accessory_battery_is_low": "The accessory battery is low", "the_battery_level_is_less_than_10_percent": "The battery level is less than 10%", "the_battery_level_is_less_than_5_percent": "The battery level is less than 5%", "the_fingerprint_sensor_is_abnormal": "The fingerprint sensor is abnormal", - "the_accessory_battery_is_low": "The accessory battery is low", - "mechanical_failure": "Mechanical failure", - "the_lock_sensor_is_faulty": "The lock sensor is faulty" + "the_key_has_not_been_taken_out": "The key has not been taken out", + "the_lock_sensor_is_faulty": "The lock sensor is faulty", + "the_safe_was_moved": "The safe was moved", + "the_wrong_key_is_frequently_unlocked": "The wrong key is frequently unlocked", + "timeout_is_not_locked_as_required": "Timeout is not locked as required", + "unlock_inside_the_door_after_arming": "Unlock inside the door after arming", + "unlocking_the_face_frequently_fails": "Unlocking the face frequently fails" } } } @@ -192,10 +192,10 @@ "state_attributes": { "event_type": { "state": { - "match_successful": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::match_successful%]", - "match_failed": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::match_failed%]", - "low_quality_too_light_fuzzy": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::low_quality_too_light_fuzzy%]", "insufficient_area": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::insufficient_area%]", + "low_quality_too_light_fuzzy": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::low_quality_too_light_fuzzy%]", + "match_failed": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::match_failed%]", + "match_successful": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::match_successful%]", "skin_is_too_dry": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::skin_is_too_dry%]", "skin_is_too_wet": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::skin_is_too_wet%]" } @@ -206,16 +206,16 @@ "state_attributes": { "event_type": { "state": { - "lock_outside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::lock_outside_the_door%]", - "unlock_outside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::unlock_outside_the_door%]", + "abnormal": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::abnormal%]", "lock_inside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::lock_inside_the_door%]", - "unlock_inside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::unlock_inside_the_door%]", + "lock_outside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::lock_outside_the_door%]", "locked": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::locked%]", - "turn_on_antilock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::turn_on_antilock%]", "release_the_antilock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::release_the_antilock%]", - "turn_on_child_lock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::turn_on_child_lock%]", "turn_off_child_lock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::turn_off_child_lock%]", - "abnormal": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::abnormal%]" + "turn_on_antilock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::turn_on_antilock%]", + "turn_on_child_lock": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::turn_on_child_lock%]", + "unlock_inside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::unlock_inside_the_door%]", + "unlock_outside_the_door": "[%key:component::xiaomi_ble::device_automation::trigger_subtype::unlock_outside_the_door%]" } } } diff --git a/homeassistant/components/xiaomi_miio/icons.json b/homeassistant/components/xiaomi_miio/icons.json index cc0800f1d9d..f990539abef 100644 --- a/homeassistant/components/xiaomi_miio/icons.json +++ b/homeassistant/components/xiaomi_miio/icons.json @@ -20,62 +20,53 @@ "fan_set_extra_features": { "service": "mdi:cog" }, - "light_set_scene": { - "service": "mdi:palette" - }, - "light_set_delayed_turn_off": { - "service": "mdi:timer" - }, - "light_reminder_on": { - "service": "mdi:alarm" - }, - "light_reminder_off": { - "service": "mdi:alarm-off" - }, - "light_night_light_mode_on": { - "service": "mdi:weather-night" - }, - "light_night_light_mode_off": { - "service": "mdi:weather-sunny" + "light_eyecare_mode_off": { + "service": "mdi:eye-off" }, "light_eyecare_mode_on": { "service": "mdi:eye" }, - "light_eyecare_mode_off": { - "service": "mdi:eye-off" + "light_night_light_mode_off": { + "service": "mdi:weather-sunny" + }, + "light_night_light_mode_on": { + "service": "mdi:weather-night" + }, + "light_reminder_off": { + "service": "mdi:alarm-off" + }, + "light_reminder_on": { + "service": "mdi:alarm" + }, + "light_set_delayed_turn_off": { + "service": "mdi:timer" + }, + "light_set_scene": { + "service": "mdi:palette" }, "remote_learn_command": { "service": "mdi:remote" }, - "remote_set_led_on": { - "service": "mdi:led-on" - }, "remote_set_led_off": { "service": "mdi:led-off" }, - "switch_set_wifi_led_on": { - "service": "mdi:wifi" - }, - "switch_set_wifi_led_off": { - "service": "mdi:wifi-off" - }, - "switch_set_power_price": { - "service": "mdi:currency-usd" + "remote_set_led_on": { + "service": "mdi:led-on" }, "switch_set_power_mode": { "service": "mdi:power" }, - "vacuum_remote_control_start": { - "service": "mdi:play" + "switch_set_power_price": { + "service": "mdi:currency-usd" }, - "vacuum_remote_control_stop": { - "service": "mdi:stop" + "switch_set_wifi_led_off": { + "service": "mdi:wifi-off" }, - "vacuum_remote_control_move": { - "service": "mdi:remote" + "switch_set_wifi_led_on": { + "service": "mdi:wifi" }, - "vacuum_remote_control_move_step": { - "service": "mdi:remote" + "vacuum_clean_segment": { + "service": "mdi:map-marker" }, "vacuum_clean_zone": { "service": "mdi:map-marker" @@ -83,8 +74,17 @@ "vacuum_goto": { "service": "mdi:map-marker" }, - "vacuum_clean_segment": { - "service": "mdi:map-marker" + "vacuum_remote_control_move": { + "service": "mdi:remote" + }, + "vacuum_remote_control_move_step": { + "service": "mdi:remote" + }, + "vacuum_remote_control_start": { + "service": "mdi:play" + }, + "vacuum_remote_control_stop": { + "service": "mdi:stop" } } } diff --git a/homeassistant/components/xiaomi_miio/strings.json b/homeassistant/components/xiaomi_miio/strings.json index 00e11224649..dd332b929b1 100644 --- a/homeassistant/components/xiaomi_miio/strings.json +++ b/homeassistant/components/xiaomi_miio/strings.json @@ -1,41 +1,36 @@ { "config": { "abort": { - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "incomplete_info": "Incomplete information to set up device, no host or token supplied.", "not_xiaomi_miio": "Device is not (yet) supported by Xiaomi Home integration.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "wrong_token": "Checksum error, wrong token", - "unknown_device": "The device model is not known, not able to set up the device using config flow.", - "cloud_no_devices": "No devices found in this Xiaomi Home account.", "cloud_credentials_incomplete": "Credentials incomplete, please fill in username, password and server region", - "cloud_login_error": "Could not log in to Xiaomi Home, check the credentials." + "cloud_login_error": "Could not log in to Xiaomi Home, check the credentials.", + "cloud_no_devices": "No devices found in this Xiaomi Home account.", + "unknown_device": "The device model is not known, not able to set up the device using config flow.", + "wrong_token": "Checksum error, wrong token" }, "flow_title": "{name}", "step": { - "reauth_confirm": { - "description": "The Xiaomi Home integration needs to re-authenticate your account in order to update the tokens or add missing credentials.", - "title": "[%key:common::config_flow::title::reauth%]" - }, "cloud": { "data": { - "cloud_username": "[%key:common::config_flow::data::username%]", - "cloud_password": "[%key:common::config_flow::data::password%]", "cloud_country": "Server region", + "cloud_password": "[%key:common::config_flow::data::password%]", + "cloud_username": "[%key:common::config_flow::data::username%]", "manual": "Configure manually (not recommended)" }, "description": "Log in to Xiaomi Home, see https://www.openhab.org/addons/bindings/miio/#country-servers for the server region to use." }, - "select": { + "connect": { "data": { - "select_device": "[%key:common::config_flow::data::device%]" - }, - "description": "Select the Xiaomi Home device to set up." + "model": "Device model" + } }, "manual": { "data": { @@ -44,11 +39,277 @@ }, "description": "You will need the 32 character API token, see https://www.home-assistant.io/integrations/xiaomi_miio#retrieving-the-access-token for instructions. Please note, that this API token is different from the key used by the Xiaomi Aqara integration." }, - "connect": { + "reauth_confirm": { + "description": "The Xiaomi Home integration needs to re-authenticate your account in order to update the tokens or add missing credentials.", + "title": "[%key:common::config_flow::title::reauth%]" + }, + "select": { "data": { - "model": "Device model" + "select_device": "[%key:common::config_flow::data::device%]" + }, + "description": "Select the Xiaomi Home device to set up." + } + } + }, + "entity": { + "binary_sensor": { + "is_water_box_attached": { + "name": "Mop attached" + }, + "is_water_box_carriage_attached": { + "name": "[%key:component::xiaomi_miio::entity::binary_sensor::is_water_box_attached::name%]" + }, + "is_water_shortage": { + "name": "Water shortage" + }, + "no_water": { + "name": "Water tank empty" + }, + "powersupply_attached": { + "name": "Power supply" + }, + "ptc_status": { + "name": "Auxiliary heat status" + }, + "water_tank_detached": { + "name": "Water tank" + } + }, + "button": { + "reset_dust_filter": { + "name": "Reset dust filter" + }, + "reset_upper_filter": { + "name": "Reset upper filter" + }, + "reset_vacuum_filter": { + "name": "Reset filter" + }, + "reset_vacuum_main_brush": { + "name": "Reset main brush" + }, + "reset_vacuum_sensor_dirty": { + "name": "Reset sensor dirty" + }, + "reset_vacuum_side_brush": { + "name": "Reset side brush" + } + }, + "fan": { + "generic_fan": { + "state_attributes": { + "preset_mode": { + "state": { + "nature": "Nature", + "normal": "[%key:common::state::normal%]" + } + } } } + }, + "number": { + "angle": { + "name": "Oscillation angle" + }, + "delay_off_countdown": { + "name": "Delay off countdown" + }, + "fan_level": { + "name": "Fan level" + }, + "favorite_level": { + "name": "Favorite level" + }, + "favorite_rpm": { + "name": "Favorite motor speed" + }, + "led_brightness": { + "name": "LED brightness" + }, + "led_brightness_level": { + "name": "LED brightness" + }, + "motor_speed": { + "name": "Motor speed" + }, + "volume": { + "name": "Volume" + } + }, + "select": { + "airpurifier_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "favorite": "Favorite", + "silent": "Silent" + } + }, + "display_orientation": { + "state": { + "forward": "Forward", + "left": "Left", + "right": "Right" + } + }, + "led_brightness": { + "state": { + "bright": "Bright", + "dim": "Dim", + "off": "[%key:common::state::off%]" + } + }, + "ptc_level": { + "state": { + "high": "[%key:common::state::high%]", + "low": "[%key:common::state::low%]", + "medium": "[%key:common::state::medium%]" + } + } + }, + "sensor": { + "actual_speed": { + "name": "Actual speed" + }, + "air_quality": { + "name": "Air quality" + }, + "air_quality_index": { + "name": "Air quality index" + }, + "area": { + "name": "Last clean area" + }, + "clean_area": { + "name": "Current clean area" + }, + "clean_time": { + "name": "Current clean duration" + }, + "control_speed": { + "name": "Control speed" + }, + "count": { + "name": "Total clean count" + }, + "dnd_end": { + "name": "DnD end" + }, + "dnd_start": { + "name": "DnD start" + }, + "duration": { + "name": "Last clean duration" + }, + "dust_collection_count": { + "name": "Total dust collection count" + }, + "dust_filter_life_remaining": { + "name": "Dust filter life remaining" + }, + "dust_filter_life_remaining_days": { + "name": "Dust filter lifetime remaining days" + }, + "favorite_speed": { + "name": "Favorite speed" + }, + "filter_hours_used": { + "name": "Filter use" + }, + "filter_left": { + "name": "Filter remaining" + }, + "filter_left_time": { + "name": "Filter lifetime remaining" + }, + "filter_life_remaining": { + "name": "Filter life remaining" + }, + "illuminance": { + "name": "[%key:component::sensor::entity_component::illuminance::name%]" + }, + "last_clean_end": { + "name": "Last clean end" + }, + "last_clean_start": { + "name": "Last clean start" + }, + "load_power": { + "name": "Load power" + }, + "main_brush_left": { + "name": "Main brush remaining" + }, + "motor2_speed": { + "name": "Second motor speed" + }, + "motor_speed": { + "name": "[%key:component::xiaomi_miio::entity::number::motor_speed::name%]" + }, + "purify_volume": { + "name": "Purify volume" + }, + "sensor_dirty_left": { + "name": "Sensor dirty remaining" + }, + "side_brush_left": { + "name": "Side brush remaining" + }, + "total_area": { + "name": "Total clean area" + }, + "total_duration": { + "name": "Total duration" + }, + "tvoc": { + "name": "TVOC" + }, + "upper_filter_life_remaining": { + "name": "Upper filter life remaining" + }, + "upper_filter_life_remaining_days": { + "name": "Upper filter lifetime remaining days" + }, + "use_time": { + "name": "Use time" + }, + "water_level": { + "name": "Water level" + } + }, + "switch": { + "anion": { + "name": "[%key:component::xiaomi_miio::entity::switch::ionizer::name%]" + }, + "auto_detect": { + "name": "Autodetect" + }, + "buzzer": { + "name": "Buzzer" + }, + "child_lock": { + "name": "Child lock" + }, + "clean_mode": { + "name": "Clean mode" + }, + "display": { + "name": "Display" + }, + "dry": { + "name": "Dry mode" + }, + "ionizer": { + "name": "Ionizer" + }, + "learn_mode": { + "name": "Learn mode" + }, + "led": { + "name": "LED" + }, + "ptc": { + "name": "Auxiliary heat" + } } }, "options": { @@ -63,531 +324,270 @@ } } }, - "entity": { - "select": { - "led_brightness": { - "state": { - "bright": "Bright", - "dim": "Dim", - "off": "[%key:common::state::off%]" - } - }, - "display_orientation": { - "state": { - "forward": "Forward", - "left": "Left", - "right": "Right" - } - }, - "airpurifier_mode": { - "state": { - "silent": "Silent", - "auto": "[%key:common::state::auto%]", - "favorite": "Favorite" - } - }, - "ptc_level": { - "state": { - "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" - } - } - }, - "fan": { - "generic_fan": { - "state_attributes": { - "preset_mode": { - "state": { - "nature": "Nature", - "normal": "[%key:common::state::normal%]" - } - } - } - } - }, - "binary_sensor": { - "no_water": { - "name": "Water tank empty" - }, - "water_tank_detached": { - "name": "Water tank" - }, - "ptc_status": { - "name": "Auxiliary heat status" - }, - "powersupply_attached": { - "name": "Power supply" - }, - "is_water_box_attached": { - "name": "Mop attached" - }, - "is_water_shortage": { - "name": "Water shortage" - }, - "is_water_box_carriage_attached": { - "name": "[%key:component::xiaomi_miio::entity::binary_sensor::is_water_box_attached::name%]" - } - }, - "button": { - "reset_dust_filter": { - "name": "Reset dust filter" - }, - "reset_upper_filter": { - "name": "Reset upper filter" - }, - "reset_vacuum_main_brush": { - "name": "Reset main brush" - }, - "reset_vacuum_side_brush": { - "name": "Reset side brush" - }, - "reset_vacuum_filter": { - "name": "Reset filter" - }, - "reset_vacuum_sensor_dirty": { - "name": "Reset sensor dirty" - } - }, - "number": { - "motor_speed": { - "name": "Motor speed" - }, - "favorite_level": { - "name": "Favorite level" - }, - "fan_level": { - "name": "Fan level" - }, - "volume": { - "name": "Volume" - }, - "angle": { - "name": "Oscillation angle" - }, - "delay_off_countdown": { - "name": "Delay off countdown" - }, - "led_brightness": { - "name": "LED brightness" - }, - "led_brightness_level": { - "name": "LED brightness" - }, - "favorite_rpm": { - "name": "Favorite motor speed" - } - }, - "sensor": { - "load_power": { - "name": "Load power" - }, - "water_level": { - "name": "Water level" - }, - "actual_speed": { - "name": "Actual speed" - }, - "control_speed": { - "name": "Control speed" - }, - "favorite_speed": { - "name": "Favorite speed" - }, - "motor_speed": { - "name": "[%key:component::xiaomi_miio::entity::number::motor_speed::name%]" - }, - "motor2_speed": { - "name": "Second motor speed" - }, - "use_time": { - "name": "Use time" - }, - "illuminance": { - "name": "[%key:component::sensor::entity_component::illuminance::name%]" - }, - "air_quality": { - "name": "Air quality" - }, - "tvoc": { - "name": "TVOC" - }, - "air_quality_index": { - "name": "Air quality index" - }, - "filter_life_remaining": { - "name": "Filter life remaining" - }, - "filter_hours_used": { - "name": "Filter use" - }, - "filter_left_time": { - "name": "Filter lifetime remaining" - }, - "dust_filter_life_remaining": { - "name": "Dust filter life remaining" - }, - "dust_filter_life_remaining_days": { - "name": "Dust filter lifetime remaining days" - }, - "upper_filter_life_remaining": { - "name": "Upper filter life remaining" - }, - "upper_filter_life_remaining_days": { - "name": "Upper filter lifetime remaining days" - }, - "purify_volume": { - "name": "Purify volume" - }, - "dnd_start": { - "name": "DnD start" - }, - "dnd_end": { - "name": "DnD end" - }, - "last_clean_start": { - "name": "Last clean start" - }, - "last_clean_end": { - "name": "Last clean end" - }, - "duration": { - "name": "Last clean duration" - }, - "area": { - "name": "Last clean area" - }, - "clean_time": { - "name": "Current clean duration" - }, - "clean_area": { - "name": "Current clean area" - }, - "total_duration": { - "name": "Total duration" - }, - "total_area": { - "name": "Total clean area" - }, - "count": { - "name": "Total clean count" - }, - "dust_collection_count": { - "name": "Total dust collection count" - }, - "main_brush_left": { - "name": "Main brush remaining" - }, - "side_brush_left": { - "name": "Side brush remaining" - }, - "filter_left": { - "name": "Filter remaining" - }, - "sensor_dirty_left": { - "name": "Sensor dirty remaining" - } - }, - "switch": { - "buzzer": { - "name": "Buzzer" - }, - "child_lock": { - "name": "Child lock" - }, - "display": { - "name": "Display" - }, - "dry": { - "name": "Dry mode" - }, - "clean_mode": { - "name": "Clean mode" - }, - "led": { - "name": "LED" - }, - "learn_mode": { - "name": "Learn mode" - }, - "auto_detect": { - "name": "Autodetect" - }, - "ionizer": { - "name": "Ionizer" - }, - "anion": { - "name": "[%key:component::xiaomi_miio::entity::switch::ionizer::name%]" - }, - "ptc": { - "name": "Auxiliary heat" - } - } - }, "services": { "fan_reset_filter": { - "name": "Fan reset filter", "description": "Resets the filter lifetime and usage.", "fields": { "entity_id": { - "name": "Entity ID", - "description": "Name of the Xiaomi Home entity." + "description": "Name of the Xiaomi Home entity.", + "name": "Entity ID" } - } + }, + "name": "Fan reset filter" }, "fan_set_extra_features": { - "name": "Fan set extra features", "description": "Manipulates a storage register which advertises extra features. The Mi Home app evaluates the value. A feature called \"turbo mode\" is unlocked in the app on value 1.", "fields": { "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]", + "name": "Entity ID" }, "features": { - "name": "Features", - "description": "Integer, known values are 0 (default) and 1 (turbo mode)." + "description": "Integer, known values are 0 (default) and 1 (turbo mode).", + "name": "Features" } - } - }, - "light_set_scene": { - "name": "Light set scene", - "description": "Sets a fixed scene.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "Name of the light entity." - }, - "scene": { - "name": "Scene", - "description": "Number of the fixed scene." - } - } - }, - "light_set_delayed_turn_off": { - "name": "Light set delayed turn off", - "description": "Sets the delayed turning off of a light.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_set_scene::fields::entity_id::description%]" - }, - "time_period": { - "name": "Time period", - "description": "Time period for the delayed turning off." - } - } - }, - "light_reminder_on": { - "name": "Light reminder on", - "description": "Enables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "Name of the entity to act on." - } - } - }, - "light_reminder_off": { - "name": "Light reminder off", - "description": "Disables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" - } - } - }, - "light_night_light_mode_on": { - "name": "Light night light mode on", - "description": "Turns on the night light mode of a light (EYECARE SMART LAMP 2 ONLY).", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" - } - } - }, - "light_night_light_mode_off": { - "name": "Light night light mode off", - "description": "Turns off the night light mode of a light (EYECARE SMART LAMP 2 ONLY).", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" - } - } - }, - "light_eyecare_mode_on": { - "name": "Light eyecare mode on", - "description": "Turns on the eyecare mode of a light (EYECARE SMART LAMP 2 ONLY).", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" - } - } + }, + "name": "Fan set extra features" }, "light_eyecare_mode_off": { - "name": "Light eyecare mode off", "description": "Turns off the eyecare mode of a light (EYECARE SMART LAMP 2 ONLY).", "fields": { "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]", + "name": "Entity ID" } - } + }, + "name": "Light eyecare mode off" + }, + "light_eyecare_mode_on": { + "description": "Turns on the eyecare mode of a light (EYECARE SMART LAMP 2 ONLY).", + "fields": { + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]", + "name": "Entity ID" + } + }, + "name": "Light eyecare mode on" + }, + "light_night_light_mode_off": { + "description": "Turns off the night light mode of a light (EYECARE SMART LAMP 2 ONLY).", + "fields": { + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]", + "name": "Entity ID" + } + }, + "name": "Light night light mode off" + }, + "light_night_light_mode_on": { + "description": "Turns on the night light mode of a light (EYECARE SMART LAMP 2 ONLY).", + "fields": { + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]", + "name": "Entity ID" + } + }, + "name": "Light night light mode on" + }, + "light_reminder_off": { + "description": "Disables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", + "fields": { + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]", + "name": "Entity ID" + } + }, + "name": "Light reminder off" + }, + "light_reminder_on": { + "description": "Enables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", + "fields": { + "entity_id": { + "description": "Name of the entity to act on.", + "name": "Entity ID" + } + }, + "name": "Light reminder on" + }, + "light_set_delayed_turn_off": { + "description": "Sets the delayed turning off of a light.", + "fields": { + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::light_set_scene::fields::entity_id::description%]", + "name": "Entity ID" + }, + "time_period": { + "description": "Time period for the delayed turning off.", + "name": "Time period" + } + }, + "name": "Light set delayed turn off" + }, + "light_set_scene": { + "description": "Sets a fixed scene.", + "fields": { + "entity_id": { + "description": "Name of the light entity.", + "name": "Entity ID" + }, + "scene": { + "description": "Number of the fixed scene.", + "name": "Scene" + } + }, + "name": "Light set scene" }, "remote_learn_command": { - "name": "Remote learn command", "description": "Learns an IR command. Select **Perform action**, point the remote at the IR device, and the learned command will be shown as a notification in Overview.", "fields": { "slot": { - "name": "Slot", - "description": "Define the slot used to save the IR command." + "description": "Define the slot used to save the IR command.", + "name": "Slot" }, "timeout": { - "name": "Timeout", - "description": "Define the timeout before which the command must be learned." + "description": "Define the timeout before which the command must be learned.", + "name": "Timeout" } - } - }, - "remote_set_led_on": { - "name": "Remote set LED on", - "description": "Turns on the remote’s blue LED." + }, + "name": "Remote learn command" }, "remote_set_led_off": { - "name": "Remote set LED off", - "description": "Turns off the remote’s blue LED." + "description": "Turns off the remote’s blue LED.", + "name": "Remote set LED off" }, - "switch_set_wifi_led_on": { - "name": "Switch set Wi-Fi LED on", - "description": "Turns on the Wi-Fi LED of a switch.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" - } - } - }, - "switch_set_wifi_led_off": { - "name": "Switch set Wi-Fi LED off", - "description": "Turns off the Wi-Fi LED of a switch.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" - } - } - }, - "switch_set_power_price": { - "name": "Switch set power price", - "description": "Sets the power price.", - "fields": { - "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Power price." - } - } + "remote_set_led_on": { + "description": "Turns on the remote’s blue LED.", + "name": "Remote set LED on" }, "switch_set_power_mode": { - "name": "Switch set power mode", "description": "Sets the power mode.", "fields": { "entity_id": { - "name": "Entity ID", - "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]", + "name": "Entity ID" }, "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Power mode." + "description": "Power mode.", + "name": "[%key:common::config_flow::data::mode%]" } - } + }, + "name": "Switch set power mode" }, - "vacuum_remote_control_start": { - "name": "Vacuum remote control start", - "description": "Starts remote control of the vacuum cleaner. You can then move it with the 'Vacuum remote control move' action, when done use 'Vacuum remote control stop'." - }, - "vacuum_remote_control_stop": { - "name": "Vacuum remote control stop", - "description": "Stops remote control mode of the vacuum cleaner." - }, - "vacuum_remote_control_move": { - "name": "Vacuum remote control move", - "description": "Remote controls the vacuum cleaner, make sure you first set it in remote control mode with the 'Vacuum remote control start' action.", + "switch_set_power_price": { + "description": "Sets the power price.", "fields": { - "velocity": { - "name": "Velocity", - "description": "Speed." + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]", + "name": "Entity ID" }, - "rotation": { - "name": "Rotation", - "description": "Rotation, between -179 degrees and 179 degrees." - }, - "duration": { - "name": "Duration", - "description": "Duration of the movement." + "mode": { + "description": "Power price.", + "name": "[%key:common::config_flow::data::mode%]" } - } + }, + "name": "Switch set power price" }, - "vacuum_remote_control_move_step": { - "name": "Vacuum remote control move step", - "description": "Remote controls the vacuum cleaner, only makes one move and then stops.", + "switch_set_wifi_led_off": { + "description": "Turns off the Wi-Fi LED of a switch.", "fields": { - "velocity": { - "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::name%]", - "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::description%]" - }, - "rotation": { - "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::rotation::name%]", - "description": "Rotation." - }, - "duration": { - "name": "Duration", - "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::duration::description%]" + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]", + "name": "Entity ID" } - } + }, + "name": "Switch set Wi-Fi LED off" }, - "vacuum_clean_zone": { - "name": "Vacuum clean zone", - "description": "Starts the cleaning operation in the selected areas for the number of repeats indicated.", + "switch_set_wifi_led_on": { + "description": "Turns on the Wi-Fi LED of a switch.", "fields": { - "zone": { - "name": "Zone", - "description": "Array of zones. Each zone is an array of 4 integer values." - }, - "repeats": { - "name": "Repeats", - "description": "Number of cleaning repeats for each zone." + "entity_id": { + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]", + "name": "Entity ID" } - } - }, - "vacuum_goto": { - "name": "Vacuum go to", - "description": "Sends the robot to the specified coordinates.", - "fields": { - "x_coord": { - "name": "X coordinate", - "description": "X-coordinate." - }, - "y_coord": { - "name": "Y coordinate", - "description": "Y-coordinate." - } - } + }, + "name": "Switch set Wi-Fi LED on" }, "vacuum_clean_segment": { - "name": "Vacuum clean segment", "description": "Starts cleaning of the specified segment(s).", "fields": { "segments": { - "name": "Segments", - "description": "Segments." + "description": "Segments.", + "name": "Segments" } - } + }, + "name": "Vacuum clean segment" + }, + "vacuum_clean_zone": { + "description": "Starts the cleaning operation in the selected areas for the number of repeats indicated.", + "fields": { + "repeats": { + "description": "Number of cleaning repeats for each zone.", + "name": "Repeats" + }, + "zone": { + "description": "Array of zones. Each zone is an array of 4 integer values.", + "name": "Zone" + } + }, + "name": "Vacuum clean zone" + }, + "vacuum_goto": { + "description": "Sends the robot to the specified coordinates.", + "fields": { + "x_coord": { + "description": "X-coordinate.", + "name": "X coordinate" + }, + "y_coord": { + "description": "Y-coordinate.", + "name": "Y coordinate" + } + }, + "name": "Vacuum go to" + }, + "vacuum_remote_control_move": { + "description": "Remote controls the vacuum cleaner, make sure you first set it in remote control mode with the 'Vacuum remote control start' action.", + "fields": { + "duration": { + "description": "Duration of the movement.", + "name": "Duration" + }, + "rotation": { + "description": "Rotation, between -179 degrees and 179 degrees.", + "name": "Rotation" + }, + "velocity": { + "description": "Speed.", + "name": "Velocity" + } + }, + "name": "Vacuum remote control move" + }, + "vacuum_remote_control_move_step": { + "description": "Remote controls the vacuum cleaner, only makes one move and then stops.", + "fields": { + "duration": { + "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::duration::description%]", + "name": "Duration" + }, + "rotation": { + "description": "Rotation.", + "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::rotation::name%]" + }, + "velocity": { + "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::description%]", + "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::name%]" + } + }, + "name": "Vacuum remote control move step" + }, + "vacuum_remote_control_start": { + "description": "Starts remote control of the vacuum cleaner. You can then move it with the 'Vacuum remote control move' action, when done use 'Vacuum remote control stop'.", + "name": "Vacuum remote control start" + }, + "vacuum_remote_control_stop": { + "description": "Stops remote control mode of the vacuum cleaner.", + "name": "Vacuum remote control stop" } } } diff --git a/homeassistant/components/yale/strings.json b/homeassistant/components/yale/strings.json index f5078ac2ece..22f4afb55c9 100644 --- a/homeassistant/components/yale/strings.json +++ b/homeassistant/components/yale/strings.json @@ -1,32 +1,32 @@ { "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%]", + "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", + "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", + "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", + "oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", + "reauth_invalid_user": "Reauthenticate must use the same account.", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" } - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "oauth_error": "[%key:common::config_flow::abort::oauth2_error%]", - "missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]", - "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": { @@ -48,11 +48,6 @@ "name": "[%key:component::camera::title%]" } }, - "sensor": { - "operator": { - "name": "Operator" - } - }, "event": { "doorbell": { "state_attributes": { @@ -72,6 +67,11 @@ } } } + }, + "sensor": { + "operator": { + "name": "Operator" + } } } } diff --git a/homeassistant/components/yale_smart_alarm/strings.json b/homeassistant/components/yale_smart_alarm/strings.json index fd8d403da8d..c69374d9ca7 100644 --- a/homeassistant/components/yale_smart_alarm/strings.json +++ b/homeassistant/components/yale_smart_alarm/strings.json @@ -6,19 +6,11 @@ "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { - "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unique_id_exists": "Another config entry with this username already exist" }, "step": { - "user": { - "data": { - "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]", - "name": "[%key:common::config_flow::data::name%]", - "area_id": "Area ID" - } - }, "reauth_confirm": { "data": { "password": "[%key:common::config_flow::data::password%]" @@ -26,35 +18,34 @@ }, "reconfigure": { "data": { - "username": "[%key:common::config_flow::data::username%]", + "area_id": "[%key:component::yale_smart_alarm::config::step::user::data::area_id%]", "password": "[%key:common::config_flow::data::password%]", - "area_id": "[%key:component::yale_smart_alarm::config::step::user::data::area_id%]" + "username": "[%key:common::config_flow::data::username%]" } - } - } - }, - "options": { - "step": { - "init": { + }, + "user": { "data": { - "lock_code_digits": "Number of digits in PIN code for locks" + "area_id": "Area ID", + "name": "[%key:common::config_flow::data::name%]", + "password": "[%key:common::config_flow::data::password%]", + "username": "[%key:common::config_flow::data::username%]" } } } }, "entity": { "binary_sensor": { - "power_loss": { - "name": "Power loss" - }, "battery": { "name": "Battery" }, - "tamper": { - "name": "Tamper" - }, "jam": { "name": "Jam" + }, + "power_loss": { + "name": "Power loss" + }, + "tamper": { + "name": "Tamper" } }, "button": { @@ -62,11 +53,6 @@ "name": "Panic button" } }, - "switch": { - "autolock": { - "name": "Autolock" - } - }, "select": { "volume": { "name": "Volume", @@ -76,23 +62,37 @@ "off": "[%key:common::state::off%]" } } + }, + "switch": { + "autolock": { + "name": "Autolock" + } } }, "exceptions": { - "set_alarm": { - "message": "Could not set alarm for {name}: {error}" - }, "could_not_change_alarm": { "message": "Could not change alarm, check system ready for arming" }, - "set_lock": { - "message": "Could not set lock for {name}: {error}" - }, "could_not_change_lock": { "message": "Could not set lock, check system ready for lock" }, "could_not_trigger_panic": { "message": "Could not trigger panic button for entity ID {entity_id}: {error}" + }, + "set_alarm": { + "message": "Could not set alarm for {name}: {error}" + }, + "set_lock": { + "message": "Could not set lock for {name}: {error}" + } + }, + "options": { + "step": { + "init": { + "data": { + "lock_code_digits": "Number of digits in PIN code for locks" + } + } } } } diff --git a/homeassistant/components/yalexs_ble/strings.json b/homeassistant/components/yalexs_ble/strings.json index 604ff34aa6f..c4e4210a0b6 100644 --- a/homeassistant/components/yalexs_ble/strings.json +++ b/homeassistant/components/yalexs_ble/strings.json @@ -1,65 +1,65 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "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_key_format": "The offline key must be a 32-byte hex string.", + "invalid_key_index": "The offline key slot must be an integer between 0 and 255.", + "no_longer_in_range": "The lock is no longer in Bluetooth range. Move the lock or adapter and try again.", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "flow_title": "{name}", "step": { - "user": { - "description": "Select the device you want to set up over Bluetooth.", - "data": { - "address": "Bluetooth address" - } + "integration_discovery_confirm": { + "description": "Do you want to set up {name} over Bluetooth with address {address}?" }, "key_slot": { - "description": "Enter the key for the {title} lock with address {address}. If you are using the August or Yale cloud integration to obtain the key, you may be able to avoid this manual setup by reloading the August or Yale cloud integration while the lock is in Bluetooth range.", "data": { "key": "Offline Key (32-byte hex string)", "slot": "Offline Key Slot (Integer between 0 and 255)" - } + }, + "description": "Enter the key for the {title} lock with address {address}. If you are using the August or Yale cloud integration to obtain the key, you may be able to avoid this manual setup by reloading the August or Yale cloud integration while the lock is in Bluetooth range." }, "reauth_validate": { - "description": "Enter the updated key for the {title} lock with address {address}. If you are using the August or Yale cloud integration to obtain the key, you may be able to avoid manual re-authentication by reloading the August or Yale cloud integration while the lock is in Bluetooth range.", "data": { "key": "[%key:component::yalexs_ble::config::step::key_slot::data::key%]", "slot": "[%key:component::yalexs_ble::config::step::key_slot::data::slot%]" - } + }, + "description": "Enter the updated key for the {title} lock with address {address}. If you are using the August or Yale cloud integration to obtain the key, you may be able to avoid manual re-authentication by reloading the August or Yale cloud integration while the lock is in Bluetooth range." }, - "integration_discovery_confirm": { - "description": "Do you want to set up {name} over Bluetooth with address {address}?" + "user": { + "data": { + "address": "Bluetooth address" + }, + "description": "Select the device you want to set up over Bluetooth." + } + } + }, + "entity": { + "lock": { + "secure_mode": { + "name": "Secure mode" } }, - "error": { - "no_longer_in_range": "The lock is no longer in Bluetooth range. Move the lock or adapter and try again.", - "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%]", - "invalid_key_format": "The offline key must be a 32-byte hex string.", - "invalid_key_index": "The offline key slot must be an integer between 0 and 255." - }, - "abort": { - "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", - "already_configured": "[%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%]" + "sensor": { + "battery_voltage": { + "name": "Battery voltage" + } } }, "options": { "step": { "device_options": { - "description": "If the lock does not support push updates via advertisements or you want lock operation to be more responsive, you can enable always connected mode. Always connected will cause the lock to stay connected to Home Assistant via Bluetooth, which will use more battery.", "data": { "always_connected": "Always connected" - } - } - } - }, - "entity": { - "sensor": { - "battery_voltage": { - "name": "Battery voltage" - } - }, - "lock": { - "secure_mode": { - "name": "Secure mode" + }, + "description": "If the lock does not support push updates via advertisements or you want lock operation to be more responsive, you can enable always connected mode. Always connected will cause the lock to stay connected to Home Assistant via Bluetooth, which will use more battery." } } } diff --git a/homeassistant/components/yamaha/strings.json b/homeassistant/components/yamaha/strings.json index ecb69d9fc38..fc36ad67de6 100644 --- a/homeassistant/components/yamaha/strings.json +++ b/homeassistant/components/yamaha/strings.json @@ -1,38 +1,38 @@ { "services": { "enable_output": { - "name": "Enable output", "description": "Enables or disables an output port.", "fields": { - "port": { - "name": "[%key:common::config_flow::data::port%]", - "description": "Name of port to enable/disable." - }, "enabled": { - "name": "[%key:common::state::enabled%]", - "description": "Indicate if port should be enabled or not." + "description": "Indicate if port should be enabled or not.", + "name": "[%key:common::state::enabled%]" + }, + "port": { + "description": "Name of port to enable/disable.", + "name": "[%key:common::config_flow::data::port%]" } - } + }, + "name": "Enable output" }, "menu_cursor": { - "name": "Menu cursor", "description": "Controls the cursor in a menu.", "fields": { "cursor": { - "name": "Cursor", - "description": "Name of the cursor key to press ('up', 'down', 'left', 'right', 'select', 'return')." + "description": "Name of the cursor key to press ('up', 'down', 'left', 'right', 'select', 'return').", + "name": "Cursor" } - } + }, + "name": "Menu cursor" }, "select_scene": { - "name": "Select scene", "description": "Selects a scene on the receiver.", "fields": { "scene": { - "name": "Scene", - "description": "Name of the scene. Standard for RX-V437 is 'BD/DVD Movie Viewing', 'TV Viewing', 'NET Audio Listening' or 'Radio Listening'." + "description": "Name of the scene. Standard for RX-V437 is 'BD/DVD Movie Viewing', 'TV Viewing', 'NET Audio Listening' or 'Radio Listening'.", + "name": "Scene" } - } + }, + "name": "Select scene" } } } diff --git a/homeassistant/components/yamaha_musiccast/strings.json b/homeassistant/components/yamaha_musiccast/strings.json index e38eb5955d9..bb088d8e316 100644 --- a/homeassistant/components/yamaha_musiccast/strings.json +++ b/homeassistant/components/yamaha_musiccast/strings.json @@ -1,20 +1,5 @@ { "config": { - "flow_title": "MusicCast: {name}", - "step": { - "user": { - "description": "Set up MusicCast to integrate with Home Assistant.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Yamaha MusicCast receiver." - } - }, - "confirm": { - "description": "[%key:common::config_flow::description::confirm_setup%]" - } - }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "yxc_control_url_missing": "The control URL is not given in the ssdp description." @@ -23,6 +8,21 @@ "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "no_musiccast_device": "This device seems to be no MusicCast Device.", "unknown": "[%key:common::config_flow::error::unknown%]" + }, + "flow_title": "MusicCast: {name}", + "step": { + "confirm": { + "description": "[%key:common::config_flow::description::confirm_setup%]" + }, + "user": { + "data": { + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Yamaha MusicCast receiver." + }, + "description": "Set up MusicCast to integrate with Home Assistant." + } } }, "entity": { @@ -32,41 +32,20 @@ "auto": "[%key:common::state::auto%]" } }, - "zone_sleep": { - "state": { - "off": "[%key:common::state::off%]", - "30_min": "30 minutes", - "60_min": "60 minutes", - "90_min": "90 minutes", - "120_min": "120 minutes" - } - }, - "zone_tone_control_mode": { - "state": { - "manual": "[%key:common::state::manual%]", - "auto": "[%key:common::state::auto%]", - "bypass": "Bypass" - } - }, - "zone_surr_decoder_type": { - "state": { - "toggle": "[%key:common::action::toggle%]", - "auto": "[%key:common::state::auto%]", - "dolby_pl": "Dolby ProLogic", - "dolby_pl2x_movie": "Dolby ProLogic 2x Movie", - "dolby_pl2x_music": "Dolby ProLogic 2x Music", - "dolby_pl2x_game": "Dolby ProLogic 2x Game", - "dolby_surround": "Dolby Surround", - "dts_neural_x": "DTS Neural:X", - "dts_neo6_cinema": "DTS Neo:6 Cinema", - "dts_neo6_music": "DTS Neo:6 Music" - } - }, "zone_equalizer_mode": { "state": { - "manual": "[%key:common::state::manual%]", "auto": "[%key:common::state::auto%]", - "bypass": "[%key:component::yamaha_musiccast::entity::select::zone_tone_control_mode::state::bypass%]" + "bypass": "[%key:component::yamaha_musiccast::entity::select::zone_tone_control_mode::state::bypass%]", + "manual": "[%key:common::state::manual%]" + } + }, + "zone_link_audio_delay": { + "state": { + "audio_sync": "Audio synchronization", + "audio_sync_off": "Audio synchronization off", + "audio_sync_on": "Audio synchronization on", + "balanced": "Balanced", + "lip_sync": "Lip synchronization" } }, "zone_link_audio_quality": { @@ -77,18 +56,39 @@ }, "zone_link_control": { "state": { - "standard": "Standard", "speed": "Speed", - "stability": "Stability" + "stability": "Stability", + "standard": "Standard" } }, - "zone_link_audio_delay": { + "zone_sleep": { "state": { - "audio_sync_on": "Audio synchronization on", - "audio_sync_off": "Audio synchronization off", - "balanced": "Balanced", - "lip_sync": "Lip synchronization", - "audio_sync": "Audio synchronization" + "30_min": "30 minutes", + "60_min": "60 minutes", + "90_min": "90 minutes", + "120_min": "120 minutes", + "off": "[%key:common::state::off%]" + } + }, + "zone_surr_decoder_type": { + "state": { + "auto": "[%key:common::state::auto%]", + "dolby_pl": "Dolby ProLogic", + "dolby_pl2x_game": "Dolby ProLogic 2x Game", + "dolby_pl2x_movie": "Dolby ProLogic 2x Movie", + "dolby_pl2x_music": "Dolby ProLogic 2x Music", + "dolby_surround": "Dolby Surround", + "dts_neo6_cinema": "DTS Neo:6 Cinema", + "dts_neo6_music": "DTS Neo:6 Music", + "dts_neural_x": "DTS Neural:X", + "toggle": "[%key:common::action::toggle%]" + } + }, + "zone_tone_control_mode": { + "state": { + "auto": "[%key:common::state::auto%]", + "bypass": "Bypass", + "manual": "[%key:common::state::manual%]" } } } diff --git a/homeassistant/components/yardian/icons.json b/homeassistant/components/yardian/icons.json index 05b0ecb3881..78707bee8b8 100644 --- a/homeassistant/components/yardian/icons.json +++ b/homeassistant/components/yardian/icons.json @@ -1,29 +1,29 @@ { "entity": { - "switch": { - "switch": { - "default": "mdi:water" - } - }, "binary_sensor": { + "freeze_prevent": { + "default": "mdi:snowflake-alert" + }, + "standby": { + "default": "mdi:pause-circle" + }, "watering_running": { "default": "mdi:sprinkler", "state": { "off": "mdi:sprinkler-variant" } }, - "standby": { - "default": "mdi:pause-circle" - }, - "freeze_prevent": { - "default": "mdi:snowflake-alert" - }, "zone_enabled": { "default": "mdi:toggle-switch", "state": { "off": "mdi:toggle-switch-off" } } + }, + "switch": { + "switch": { + "default": "mdi:water" + } } }, "services": { diff --git a/homeassistant/components/yardian/strings.json b/homeassistant/components/yardian/strings.json index 226285e1e95..f865e0014e4 100644 --- a/homeassistant/components/yardian/strings.json +++ b/homeassistant/components/yardian/strings.json @@ -1,35 +1,35 @@ { "config": { - "step": { - "user": { - "data": { - "host": "[%key:common::config_flow::data::host%]", - "access_token": "[%key:common::config_flow::data::access_token%]" - }, - "data_description": { - "host": "Hostname or IP address of your Yardian Smart Sprinkler Controller. You can find it in the Yardian app." - } - } + "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%]" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + "step": { + "user": { + "data": { + "access_token": "[%key:common::config_flow::data::access_token%]", + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Yardian Smart Sprinkler Controller. You can find it in the Yardian app." + } + } } }, "entity": { "binary_sensor": { - "watering_running": { - "name": "Watering running" + "freeze_prevent": { + "name": "Freeze prevent" }, "standby": { "name": "Standby" }, - "freeze_prevent": { - "name": "Freeze prevent" + "watering_running": { + "name": "Watering running" }, "zone_enabled": { "name": "Zone {zone} enabled" @@ -38,14 +38,14 @@ }, "services": { "start_irrigation": { - "name": "Start irrigation", "description": "Starts the irrigation.", "fields": { "duration": { - "name": "Duration", - "description": "Duration for the target to be turned on." + "description": "Duration for the target to be turned on.", + "name": "Duration" } - } + }, + "name": "Start irrigation" } } } diff --git a/homeassistant/components/yeelight/icons.json b/homeassistant/components/yeelight/icons.json index 898637e752c..78e5e3cc492 100644 --- a/homeassistant/components/yeelight/icons.json +++ b/homeassistant/components/yeelight/icons.json @@ -7,29 +7,29 @@ } }, "services": { - "set_mode": { - "service": "mdi:cog" + "set_auto_delay_off_scene": { + "service": "mdi:timer" }, - "set_color_scene": { + "set_color_flow_scene": { "service": "mdi:palette" }, - "set_hsv_scene": { + "set_color_scene": { "service": "mdi:palette" }, "set_color_temp_scene": { "service": "mdi:palette" }, - "set_color_flow_scene": { + "set_hsv_scene": { "service": "mdi:palette" }, - "set_auto_delay_off_scene": { - "service": "mdi:timer" - }, - "start_flow": { - "service": "mdi:play" + "set_mode": { + "service": "mdi:cog" }, "set_music_mode": { "service": "mdi:music" + }, + "start_flow": { + "service": "mdi:play" } } } diff --git a/homeassistant/components/yeelight/manifest.json b/homeassistant/components/yeelight/manifest.json index d65ebb3a25a..585a0090a57 100644 --- a/homeassistant/components/yeelight/manifest.json +++ b/homeassistant/components/yeelight/manifest.json @@ -19,8 +19,8 @@ "requirements": ["yeelight==0.7.16", "async-upnp-client==0.45.0"], "zeroconf": [ { - "type": "_miio._udp.local.", - "name": "yeelink-*" + "name": "yeelink-*", + "type": "_miio._udp.local." } ] } diff --git a/homeassistant/components/yeelight/strings.json b/homeassistant/components/yeelight/strings.json index e01a853a360..a18977f292d 100644 --- a/homeassistant/components/yeelight/strings.json +++ b/homeassistant/components/yeelight/strings.json @@ -1,43 +1,30 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "flow_title": "{model} {id} ({host})", "step": { - "user": { - "description": "If you leave the host empty, discovery will be used to find devices.", - "data": { - "host": "[%key:common::config_flow::data::host%]" - }, - "data_description": { - "host": "Hostname or IP address of your Yeelight Wi-Fi bulb." - } + "discovery_confirm": { + "description": "Do you want to set up {model} ({host})?" }, "pick_device": { "data": { "device": "[%key:common::config_flow::data::device%]" } }, - "discovery_confirm": { - "description": "Do you want to set up {model} ({host})?" - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" - } - }, - "options": { - "step": { - "init": { + "user": { "data": { - "model": "[%key:common::generic::model%]", - "transition": "Transition Time (ms)", - "use_music_mode": "Enable Music Mode", - "save_on_change": "Save Status On Change", - "nightlight_switch": "Use Nightlight Switch" - } + "host": "[%key:common::config_flow::data::host%]" + }, + "data_description": { + "host": "Hostname or IP address of your Yeelight Wi-Fi bulb." + }, + "description": "If you leave the host empty, discovery will be used to find devices." } } }, @@ -48,145 +35,158 @@ } }, "light": { - "nightlight": { - "name": "Nightlight" - }, "ambilight": { "name": "Ambilight" + }, + "nightlight": { + "name": "Nightlight" } } }, - "services": { - "set_mode": { - "name": "Set mode", - "description": "Sets an operation mode.", - "fields": { - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "Operation mode." - } - } - }, - "set_color_scene": { - "name": "Set color scene", - "description": "Changes the light to the specified RGB color and brightness. If the light is off, it will be turned on.", - "fields": { - "rgb_color": { - "name": "RGB color", - "description": "Color for the light in RGB format." - }, - "brightness": { - "name": "Brightness", - "description": "The brightness value to set." - } - } - }, - "set_hsv_scene": { - "name": "Set HSV scene", - "description": "Changes the light to the specified HSV color and brightness. If the light is off, it will be turned on.", - "fields": { - "hs_color": { - "name": "Hue/sat color", - "description": "Color for the light in hue/sat format. Hue is 0-359 and Sat is 0-100." - }, - "brightness": { - "name": "Brightness", - "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" - } - } - }, - "set_color_temp_scene": { - "name": "Set color temperature scene", - "description": "Changes the light to the specified color temperature. If the light is off, it will be turned on.", - "fields": { - "kelvin": { - "name": "Kelvin", - "description": "Color temperature for the light in Kelvin." - }, - "brightness": { - "name": "Brightness", - "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" - } - } - }, - "set_color_flow_scene": { - "name": "Set color flow scene", - "description": "Starts a color flow. If the light is off, it will be turned on.", - "fields": { - "count": { - "name": "Count", - "description": "The number of times to run this flow (0 to run forever)." - }, - "action": { - "name": "Action", - "description": "The action to take after the flow stops." - }, - "transitions": { - "name": "Transitions", - "description": "Array of transitions, for desired effect. Examples https://yeelight.readthedocs.io/en/stable/flow.html." - } - } - }, - "set_auto_delay_off_scene": { - "name": "Set auto delay off scene", - "description": "Turns the light on to the specified brightness and sets a timer to turn it back off after the given number of minutes. If the light is off, it will be turned on.", - "fields": { - "minutes": { - "name": "Minutes", - "description": "The time to wait before automatically turning the light off." - }, - "brightness": { - "name": "Brightness", - "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" - } - } - }, - "start_flow": { - "name": "Start flow", - "description": "Starts a custom flow, using transitions from https://yeelight.readthedocs.io/en/stable/yeelight.html#flow-objects.", - "fields": { - "count": { - "name": "Count", - "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::count::description%]" - }, - "action": { - "name": "Action", - "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::action::description%]" - }, - "transitions": { - "name": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::name%]", - "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::description%]" - } - } - }, - "set_music_mode": { - "name": "Set music mode", - "description": "Enables or disables music mode.", - "fields": { - "music_mode": { - "name": "Music mode", - "description": "Whether to enable or disable music mode." + "options": { + "step": { + "init": { + "data": { + "model": "[%key:common::generic::model%]", + "nightlight_switch": "Use Nightlight Switch", + "save_on_change": "Save Status On Change", + "transition": "Transition Time (ms)", + "use_music_mode": "Enable Music Mode" } } } }, "selector": { - "mode": { - "options": { - "normal": "[%key:common::state::normal%]", - "color_flow": "Color flow", - "hsv": "HSV", - "last": "Last", - "moonlight": "Moonlight", - "rgb": "RGB" - } - }, "action": { "options": { "off": "[%key:common::state::off%]", "recover": "Recover", "stay": "Stay" } + }, + "mode": { + "options": { + "color_flow": "Color flow", + "hsv": "HSV", + "last": "Last", + "moonlight": "Moonlight", + "normal": "[%key:common::state::normal%]", + "rgb": "RGB" + } + } + }, + "services": { + "set_auto_delay_off_scene": { + "description": "Turns the light on to the specified brightness and sets a timer to turn it back off after the given number of minutes. If the light is off, it will be turned on.", + "fields": { + "brightness": { + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]", + "name": "Brightness" + }, + "minutes": { + "description": "The time to wait before automatically turning the light off.", + "name": "Minutes" + } + }, + "name": "Set auto delay off scene" + }, + "set_color_flow_scene": { + "description": "Starts a color flow. If the light is off, it will be turned on.", + "fields": { + "action": { + "description": "The action to take after the flow stops.", + "name": "Action" + }, + "count": { + "description": "The number of times to run this flow (0 to run forever).", + "name": "Count" + }, + "transitions": { + "description": "Array of transitions, for desired effect. Examples https://yeelight.readthedocs.io/en/stable/flow.html.", + "name": "Transitions" + } + }, + "name": "Set color flow scene" + }, + "set_color_scene": { + "description": "Changes the light to the specified RGB color and brightness. If the light is off, it will be turned on.", + "fields": { + "brightness": { + "description": "The brightness value to set.", + "name": "Brightness" + }, + "rgb_color": { + "description": "Color for the light in RGB format.", + "name": "RGB color" + } + }, + "name": "Set color scene" + }, + "set_color_temp_scene": { + "description": "Changes the light to the specified color temperature. If the light is off, it will be turned on.", + "fields": { + "brightness": { + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]", + "name": "Brightness" + }, + "kelvin": { + "description": "Color temperature for the light in Kelvin.", + "name": "Kelvin" + } + }, + "name": "Set color temperature scene" + }, + "set_hsv_scene": { + "description": "Changes the light to the specified HSV color and brightness. If the light is off, it will be turned on.", + "fields": { + "brightness": { + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]", + "name": "Brightness" + }, + "hs_color": { + "description": "Color for the light in hue/sat format. Hue is 0-359 and Sat is 0-100.", + "name": "Hue/sat color" + } + }, + "name": "Set HSV scene" + }, + "set_mode": { + "description": "Sets an operation mode.", + "fields": { + "mode": { + "description": "Operation mode.", + "name": "[%key:common::config_flow::data::mode%]" + } + }, + "name": "Set mode" + }, + "set_music_mode": { + "description": "Enables or disables music mode.", + "fields": { + "music_mode": { + "description": "Whether to enable or disable music mode.", + "name": "Music mode" + } + }, + "name": "Set music mode" + }, + "start_flow": { + "description": "Starts a custom flow, using transitions from https://yeelight.readthedocs.io/en/stable/yeelight.html#flow-objects.", + "fields": { + "action": { + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::action::description%]", + "name": "Action" + }, + "count": { + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::count::description%]", + "name": "Count" + }, + "transitions": { + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::description%]", + "name": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::name%]" + } + }, + "name": "Start flow" } } } diff --git a/homeassistant/components/yolink/icons.json b/homeassistant/components/yolink/icons.json index 59366b804f5..948f1db4b98 100644 --- a/homeassistant/components/yolink/icons.json +++ b/homeassistant/components/yolink/icons.json @@ -10,28 +10,28 @@ "default": "mdi:volume-high" } }, + "select": { + "sprinkler_mode": { + "default": "mdi:auto-mode" + } + }, "sensor": { "power_failure_alarm": { "default": "mdi:flash" }, + "power_failure_alarm_beep": { + "default": "mdi:bullhorn" + }, "power_failure_alarm_mute": { "default": "mdi:volume-mute" }, "power_failure_alarm_volume": { "default": "mdi:volume-high" }, - "power_failure_alarm_beep": { - "default": "mdi:bullhorn" - }, "water_meter_reading": { "default": "mdi:gauge" } }, - "select": { - "sprinkler_mode": { - "default": "mdi:auto-mode" - } - }, "switch": { "manipulator_state": { "default": "mdi:pipe" diff --git a/homeassistant/components/yolink/strings.json b/homeassistant/components/yolink/strings.json index 9e60b77f43a..2f2393cb7f5 100644 --- a/homeassistant/components/yolink/strings.json +++ b/homeassistant/components/yolink/strings.json @@ -1,67 +1,67 @@ { "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_successful": "[%key:common::config_flow::abort::reauth_successful%]" + }, + "create_entry": { + "default": "[%key:common::config_flow::create_entry::authenticated%]" + }, "step": { "pick_implementation": { - "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]", "data": { "implementation": "[%key:common::config_flow::data::implementation%]" }, "data_description": { "implementation": "[%key:common::config_flow::description::implementation%]" - } + }, + "title": "[%key:common::config_flow::title::oauth2_pick_implementation%]" }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The YoLink integration needs to re-authenticate your account" + "description": "The YoLink integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } - }, - "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%]", - "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", - "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", - "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%]", - "missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]" - }, - "create_entry": { - "default": "[%key:common::config_flow::create_entry::authenticated%]" } }, "device_automation": { "trigger_type": { - "button_1_short_press": "Button_1 (short press)", "button_1_long_press": "Button_1 (long press)", - "button_2_short_press": "Button_2 (short press)", + "button_1_short_press": "Button_1 (short press)", "button_2_long_press": "Button_2 (long press)", - "button_3_short_press": "Button_3 (short press)", + "button_2_short_press": "Button_2 (short press)", "button_3_long_press": "Button_3 (long press)", - "button_4_short_press": "Button_4 (short press)", - "button_4_long_press": "Button_4 (long press)" - } - }, - "exceptions": { - "invalid_config_entry": { - "message": "Config entry not found or not loaded!" - }, - "valve_inoperable_currently": { - "message": "The Valve cannot be operated currently." + "button_3_short_press": "Button_3 (short press)", + "button_4_long_press": "Button_4 (long press)", + "button_4_short_press": "Button_4 (short press)" } }, "entity": { "binary_sensor": { "water_running": { "name": "Water is flowing" } }, - "switch": { - "usb_ports": { "name": "USB ports" }, - "plug_1": { "name": "Plug 1" }, - "plug_2": { "name": "Plug 2" }, - "plug_3": { "name": "Plug 3" }, - "plug_4": { "name": "Plug 4" } + "number": { + "config_volume": { + "name": "Volume" + } + }, + "select": { + "sprinkler_mode": { + "name": "Mode", + "state": { + "auto": "[%key:common::state::auto%]", + "manual": "[%key:common::state::manual%]", + "off": "[%key:common::state::off%]" + } + } }, "sensor": { "current_power": { @@ -78,6 +78,13 @@ "off": "[%key:common::state::off%]" } }, + "power_failure_alarm_beep": { + "name": "Power failure alarm beep", + "state": { + "disabled": "[%key:common::state::disabled%]", + "enabled": "[%key:common::state::enabled%]" + } + }, "power_failure_alarm_mute": { "name": "Power failure alarm mute", "state": { "muted": "Muted", "unmuted": "Unmuted" } @@ -85,94 +92,87 @@ "power_failure_alarm_volume": { "name": "Power failure alarm volume", "state": { + "high": "[%key:common::state::high%]", "low": "[%key:common::state::low%]", - "medium": "[%key:common::state::medium%]", - "high": "[%key:common::state::high%]" + "medium": "[%key:common::state::medium%]" } }, - "power_failure_alarm_beep": { - "name": "Power failure alarm beep", - "state": { - "enabled": "[%key:common::state::enabled%]", - "disabled": "[%key:common::state::disabled%]" - } - }, - "water_meter_reading": { - "name": "Water meter reading" - }, "water_meter_1_reading": { "name": "Water meter 1 reading" }, "water_meter_2_reading": { "name": "Water meter 2 reading" + }, + "water_meter_reading": { + "name": "Water meter reading" } }, - "number": { - "config_volume": { - "name": "Volume" - } + "switch": { + "plug_1": { "name": "Plug 1" }, + "plug_2": { "name": "Plug 2" }, + "plug_3": { "name": "Plug 3" }, + "plug_4": { "name": "Plug 4" }, + "usb_ports": { "name": "USB ports" } }, "valve": { - "meter_valve_state": { - "name": "Valve state" - }, "meter_valve_1_state": { "name": "Valve 1" }, "meter_valve_2_state": { "name": "Valve 2" }, + "meter_valve_state": { + "name": "Valve state" + }, "sprinkler_valve": { "name": "[%key:component::valve::title%]" } - }, - "select": { - "sprinkler_mode": { - "name": "Mode", - "state": { - "auto": "[%key:common::state::auto%]", - "manual": "[%key:common::state::manual%]", - "off": "[%key:common::state::off%]" - } - } } }, - "services": { - "play_on_speaker_hub": { - "name": "Play on SpeakerHub", - "description": "Converts text to speech for playback on a YoLink SpeakerHub", - "fields": { - "target_device": { - "name": "SpeakerHub device", - "description": "SpeakerHub device for audio playback." - }, - "message": { - "name": "Text message", - "description": "Text message to be played." - }, - "tone": { - "name": "Tone", - "description": "Tone before playing audio." - }, - "volume": { - "name": "Volume", - "description": "Overrides the speaker volume during playback of this message only." - }, - "repeat": { - "name": "Repeat", - "description": "The amount of times the text will be repeated." - } - } + "exceptions": { + "invalid_config_entry": { + "message": "Config entry not found or not loaded!" + }, + "valve_inoperable_currently": { + "message": "The Valve cannot be operated currently." } }, "selector": { "speaker_tone": { "options": { - "emergency": "Emergency", "alert": "Alert", - "warn": "Warn", - "tip": "Tip" + "emergency": "Emergency", + "tip": "Tip", + "warn": "Warn" } } + }, + "services": { + "play_on_speaker_hub": { + "description": "Converts text to speech for playback on a YoLink SpeakerHub", + "fields": { + "message": { + "description": "Text message to be played.", + "name": "Text message" + }, + "repeat": { + "description": "The amount of times the text will be repeated.", + "name": "Repeat" + }, + "target_device": { + "description": "SpeakerHub device for audio playback.", + "name": "SpeakerHub device" + }, + "tone": { + "description": "Tone before playing audio.", + "name": "Tone" + }, + "volume": { + "description": "Overrides the speaker volume during playback of this message only.", + "name": "Volume" + } + }, + "name": "Play on SpeakerHub" + } } } diff --git a/homeassistant/components/youless/strings.json b/homeassistant/components/youless/strings.json index c735e2b2ff2..6d6020c0269 100644 --- a/homeassistant/components/youless/strings.json +++ b/homeassistant/components/youless/strings.json @@ -1,23 +1,26 @@ { "config": { + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" + }, "step": { "user": { "data": { - "name": "[%key:common::config_flow::data::name%]", - "host": "[%key:common::config_flow::data::host%]" + "host": "[%key:common::config_flow::data::host%]", + "name": "[%key:common::config_flow::data::name%]" }, "data_description": { "host": "Hostname or IP address of your YouLess device." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } }, "device": { - "water": { - "name": "Water meter" + "delivery": { + "name": "Energy delivery meter" + }, + "extra": { + "name": "S0 meter" }, "gas": { "name": "Gas meter" @@ -25,56 +28,53 @@ "power": { "name": "Power meter" }, - "delivery": { - "name": "Energy delivery meter" - }, - "extra": { - "name": "S0 meter" + "water": { + "name": "Water meter" } }, "entity": { "sensor": { - "total_water": { - "name": "Total water usage" - }, - "total_gas_m3": { - "name": "Total gas usage" - }, - "active_power_w": { - "name": "Current power usage" + "active_current_phase_a": { + "name": "Current phase {phase}" }, "active_power_phase_w": { "name": "Power phase {phase}" }, - "active_voltage_phase_v": { - "name": "Voltage phase {phase}" + "active_power_w": { + "name": "Current power usage" }, - "active_current_phase_a": { - "name": "Current phase {phase}" + "active_s0_w": { + "name": "Current usage" }, "active_tariff": { "name": "Tariff" }, - "total_energy_import_tariff_kwh": { - "name": "Energy import tariff {tariff}" - }, - "total_energy_import_kwh": { - "name": "Total energy import" - }, - "total_energy_export_tariff_kwh": { - "name": "Energy export tariff {tariff}" - }, - "total_s0_kwh": { - "name": "Total energy" - }, - "active_s0_w": { - "name": "Current usage" + "active_voltage_phase_v": { + "name": "Voltage phase {phase}" }, "average_peak": { "name": "Average peak" }, "month_peak": { "name": "Month peak" + }, + "total_energy_export_tariff_kwh": { + "name": "Energy export tariff {tariff}" + }, + "total_energy_import_kwh": { + "name": "Total energy import" + }, + "total_energy_import_tariff_kwh": { + "name": "Energy import tariff {tariff}" + }, + "total_gas_m3": { + "name": "Total gas usage" + }, + "total_s0_kwh": { + "name": "Total energy" + }, + "total_water": { + "name": "Total water usage" } } } diff --git a/homeassistant/components/youtube/strings.json b/homeassistant/components/youtube/strings.json index 78ca0532459..a9aee20e2ca 100644 --- a/homeassistant/components/youtube/strings.json +++ b/homeassistant/components/youtube/strings.json @@ -2,39 +2,29 @@ "config": { "abort": { "access_not_configured": "Please read the below message we got from Google:\n\n{message}", - "no_channel": "Please create a YouTube channel to be able to use the integration. Instructions can be found at {support_url}.", "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", - "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "no_channel": "Please create a YouTube channel to be able to use the integration. Instructions can be found at {support_url}.", "no_subscriptions": "You need to be subscribed to YouTube channels in order to add them.", - "unknown": "[%key:common::config_flow::error::unknown%]", "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%]", - "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", + "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", + "unknown": "[%key:common::config_flow::error::unknown%]", "wrong_account": "Wrong account: please authenticate with the right account." }, "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%]" }, "step": { "channels": { - "description": "Select the channels you want to add.", - "data": { "channels": "YouTube channels" } + "data": { "channels": "YouTube channels" }, + "description": "Select the channels you want to add." }, "reauth_confirm": { - "title": "[%key:common::config_flow::title::reauth%]", - "description": "The YouTube integration needs to re-authenticate your account" - } - } - }, - "options": { - "step": { - "init": { - "description": "[%key:component::youtube::config::step::channels::description%]", - "data": { - "channels": "[%key:component::youtube::config::step::channels::data::channels%]" - } + "description": "The YouTube integration needs to re-authenticate your account", + "title": "[%key:common::config_flow::title::reauth%]" } } }, @@ -43,12 +33,22 @@ "latest_upload": { "name": "Latest upload", "state_attributes": { - "video_id": { "name": "Video ID" }, - "published_at": { "name": "Published at" } + "published_at": { "name": "Published at" }, + "video_id": { "name": "Video ID" } } }, "subscribers": { "name": "Subscribers" }, "views": { "name": "Views" } } + }, + "options": { + "step": { + "init": { + "data": { + "channels": "[%key:component::youtube::config::step::channels::data::channels%]" + }, + "description": "[%key:component::youtube::config::step::channels::description%]" + } + } } } diff --git a/homeassistant/components/zamg/strings.json b/homeassistant/components/zamg/strings.json index 6ffc489bdf5..8cf32f4a3e7 100644 --- a/homeassistant/components/zamg/strings.json +++ b/homeassistant/components/zamg/strings.json @@ -1,22 +1,22 @@ { "config": { - "flow_title": "{name}", - "step": { - "user": { - "description": "Set up GeoSphere Austria to integrate with Home Assistant.", - "data": { - "station_id": "Station ID (Defaults to nearest station)" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "station_not_found": "[%key:component::zamg::config::error::station_not_found%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "station_not_found": "Station ID not found at GeoSphere Austria" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "station_not_found": "[%key:component::zamg::config::error::station_not_found%]" + "flow_title": "{name}", + "step": { + "user": { + "data": { + "station_id": "Station ID (Defaults to nearest station)" + }, + "description": "Set up GeoSphere Austria to integrate with Home Assistant." + } } } } diff --git a/homeassistant/components/zengge/strings.json b/homeassistant/components/zengge/strings.json index abc3b2450aa..cece5f491fe 100644 --- a/homeassistant/components/zengge/strings.json +++ b/homeassistant/components/zengge/strings.json @@ -1,8 +1,8 @@ { "issues": { "integration_removed": { - "title": "The Zengge integration has been removed", - "description": "The Zengge integration has been removed from Home Assistant. Support for Zengge lights is provided by the `led_ble` integration.\n\nTo resolve this issue, please remove the (now defunct) `zengge` light configuration from your Home Assistant configuration and [configure the `led_ble` integration]({led_ble_url})." + "description": "The Zengge integration has been removed from Home Assistant. Support for Zengge lights is provided by the `led_ble` integration.\n\nTo resolve this issue, please remove the (now defunct) `zengge` light configuration from your Home Assistant configuration and [configure the `led_ble` integration]({led_ble_url}).", + "title": "The Zengge integration has been removed" } } } diff --git a/homeassistant/components/zeroconf/strings.json b/homeassistant/components/zeroconf/strings.json index 65d992a382e..0d7f5abee33 100644 --- a/homeassistant/components/zeroconf/strings.json +++ b/homeassistant/components/zeroconf/strings.json @@ -1,14 +1,14 @@ { "issues": { "duplicate_instance_id": { - "title": "Duplicate Home Assistant instance detected on your network", "fix_flow": { "step": { "confirm_recreate": { "description": "Another device ({other_ip}) on your network is advertising the same Home Assistant instance ID ({instance_id} reachable via {other_host_url}) as this instance. This can cause network instability and excessive traffic.\n\nTo fix this issue:\n1. Change the instance ID on **only one** of the Home Assistant instances.\n2. Once the conflict is resolved, the repair issue on the other instance will disappear automatically.\n\nAfter confirming, a new instance ID will be generated for this Home Assistant instance and the instance will restart. This will not affect your configuration or data, but it may take a few minutes for other devices on your network to recognize the change.\n\nTo proceed, click 'Submit' below." } } - } + }, + "title": "Duplicate Home Assistant instance detected on your network" } } } diff --git a/homeassistant/components/zerproc/strings.json b/homeassistant/components/zerproc/strings.json index ad8f0f41ae7..2e8312544e7 100644 --- a/homeassistant/components/zerproc/strings.json +++ b/homeassistant/components/zerproc/strings.json @@ -1,13 +1,13 @@ { "config": { + "abort": { + "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "confirm": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]" } } } diff --git a/homeassistant/components/zeversolar/icons.json b/homeassistant/components/zeversolar/icons.json index 8e30a4df86b..c2c859a9ca0 100644 --- a/homeassistant/components/zeversolar/icons.json +++ b/homeassistant/components/zeversolar/icons.json @@ -1,11 +1,11 @@ { "entity": { "sensor": { - "pac": { - "default": "mdi:solar-power-variant" - }, "energy_today": { "default": "mdi:home-battery" + }, + "pac": { + "default": "mdi:solar-power-variant" } } } diff --git a/homeassistant/components/zeversolar/strings.json b/homeassistant/components/zeversolar/strings.json index b75bbe781ef..7eb66da9c12 100644 --- a/homeassistant/components/zeversolar/strings.json +++ b/homeassistant/components/zeversolar/strings.json @@ -1,5 +1,14 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { "user": { "data": { @@ -9,15 +18,6 @@ "host": "Hostname or IP address of your Zeversolar inverter." } } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "unknown": "[%key:common::config_flow::error::unknown%]" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/zha/icons.json b/homeassistant/components/zha/icons.json index 5caa1dec373..8cf929e9c6e 100644 --- a/homeassistant/components/zha/icons.json +++ b/homeassistant/components/zha/icons.json @@ -29,236 +29,233 @@ } }, "number": { - "timer_duration": { + "auto_off_timer": { "default": "mdi:timer" }, - "filter_life_time": { - "default": "mdi:timer" - }, - "dimming_speed_up_remote": { - "default": "mdi:speedometer" + "away_preset_temperature": { + "default": "mdi:temperature-celsius" }, "button_delay": { "default": "mdi:speedometer" }, + "default_level_local": { + "default": "mdi:brightness-percent" + }, + "default_level_remote": { + "default": "mdi:brightness-percent" + }, + "dimming_speed_down_local": { + "default": "mdi:speedometer" + }, + "dimming_speed_down_remote": { + "default": "mdi:speedometer" + }, "dimming_speed_up_local": { "default": "mdi:speedometer" }, + "dimming_speed_up_remote": { + "default": "mdi:speedometer" + }, + "double_tap_down_level": { + "default": "mdi:brightness-percent" + }, + "double_tap_up_level": { + "default": "mdi:brightness-percent" + }, + "exercise_trigger_time": { + "default": "mdi:clock" + }, + "external_temperature_sensor": { + "default": "mdi:thermometer" + }, + "filter_life_time": { + "default": "mdi:timer" + }, + "led_color_when_off": { + "default": "mdi:palette" + }, + "led_color_when_on": { + "default": "mdi:palette" + }, + "led_intensity_when_off": { + "default": "mdi:brightness-percent" + }, + "led_intensity_when_on": { + "default": "mdi:brightness-percent" + }, + "load_level_indicator_timeout": { + "default": "mdi:timer" + }, + "load_room_mean": { + "default": "mdi:scale-balance" + }, + "local_temperature_calibration": { + "default": "mdi:temperature-celsius" + }, + "maximum_level": { + "default": "mdi:brightness-percent" + }, + "minimum_level": { + "default": "mdi:brightness-percent" + }, + "portion_weight": { + "default": "mdi:weight-gram" + }, + "presence_detection_timeout": { + "default": "mdi:timer-edit" + }, + "quick_start_time": { + "default": "mdi:speedometer" + }, "ramp_rate_off_to_on_local": { "default": "mdi:speedometer" }, "ramp_rate_off_to_on_remote": { "default": "mdi:speedometer" }, - "dimming_speed_down_remote": { - "default": "mdi:speedometer" - }, - "dimming_speed_down_local": { - "default": "mdi:speedometer" - }, "ramp_rate_on_to_off_local": { "default": "mdi:speedometer" }, "ramp_rate_on_to_off_remote": { "default": "mdi:speedometer" }, - "minimum_level": { - "default": "mdi:brightness-percent" - }, - "maximum_level": { - "default": "mdi:brightness-percent" - }, - "default_level_local": { - "default": "mdi:brightness-percent" - }, - "default_level_remote": { - "default": "mdi:brightness-percent" - }, - "state_after_power_restored": { - "default": "mdi:brightness-percent" - }, - "auto_off_timer": { - "default": "mdi:timer" - }, - "quick_start_time": { - "default": "mdi:speedometer" - }, - "load_level_indicator_timeout": { - "default": "mdi:timer" - }, - "led_color_when_on": { - "default": "mdi:palette" - }, - "led_color_when_off": { - "default": "mdi:palette" - }, - "led_intensity_when_on": { - "default": "mdi:brightness-percent" - }, - "led_intensity_when_off": { - "default": "mdi:brightness-percent" - }, - "double_tap_up_level": { - "default": "mdi:brightness-percent" - }, - "double_tap_down_level": { - "default": "mdi:brightness-percent" + "regulation_setpoint_offset": { + "default": "mdi:thermostat" }, "serving_size": { "default": "mdi:counter" }, - "portion_weight": { - "default": "mdi:weight-gram" + "state_after_power_restored": { + "default": "mdi:brightness-percent" }, - "away_preset_temperature": { - "default": "mdi:temperature-celsius" - }, - "local_temperature_calibration": { - "default": "mdi:temperature-celsius" - }, - "presence_detection_timeout": { - "default": "mdi:timer-edit" - }, - "exercise_trigger_time": { - "default": "mdi:clock" - }, - "external_temperature_sensor": { - "default": "mdi:thermometer" - }, - "load_room_mean": { - "default": "mdi:scale-balance" - }, - "regulation_setpoint_offset": { - "default": "mdi:thermostat" + "timer_duration": { + "default": "mdi:timer" } }, "select": { + "device_mode": { + "default": "mdi:cogs" + }, + "exercise_day_of_week": { + "default": "mdi:wrench-clock" + }, "feeding_mode": { "default": "mdi:wrench-clock" }, "keypad_lockout": { "default": "mdi:lock" }, - "exercise_day_of_week": { - "default": "mdi:wrench-clock" - }, "off_led_color": { "default": "mdi:palette-outline" }, "on_led_color": { "default": "mdi:palette" }, - "device_mode": { - "default": "mdi:cogs" - }, "pilot_wire_mode": { "default": "mdi:radiator" } }, "sensor": { - "timer_time_left": { - "default": "mdi:timer" - }, "device_run_time": { "default": "mdi:timer" }, "filter_run_time": { "default": "mdi:timer" }, - "last_feeding_source": { - "default": "mdi:devices" + "hooks_state": { + "default": "mdi:hook" }, "last_feeding_size": { "default": "mdi:counter" }, - "portions_dispensed_today": { - "default": "mdi:counter" - }, - "weight_dispensed_today": { - "default": "mdi:weight-gram" - }, - "smoke_density": { - "default": "mdi:google-circles-communities" + "last_feeding_source": { + "default": "mdi:devices" }, "last_illumination_state": { "default": "mdi:theme-light-dark" }, + "load_estimate": { + "default": "mdi:scale-balance" + }, + "open_window_detected": { + "default": "mdi:window-open" + }, "pi_heating_demand": { "default": "mdi:radiator" }, + "portions_dispensed_today": { + "default": "mdi:counter" + }, + "preheat_time": { + "default": "mdi:radiator" + }, "setpoint_change_source": { "default": "mdi:thermostat" }, - "hooks_state": { - "default": "mdi:hook" + "smoke_density": { + "default": "mdi:google-circles-communities" }, - "open_window_detected": { - "default": "mdi:window-open" + "timer_time_left": { + "default": "mdi:timer" }, - "load_estimate": { - "default": "mdi:scale-balance" - }, - "preheat_time": { - "default": "mdi:radiator" + "weight_dispensed_today": { + "default": "mdi:weight-gram" } }, "switch": { - "led_indicator": { - "default": "mdi:led-on" - }, - "child_lock": { - "default": "mdi:account-lock" - }, - "heartbeat_indicator": { - "default": "mdi:heart-flash" - }, - "linkage_alarm": { - "default": "mdi:shield-link-variant" + "buzzer_manual_alarm": { + "default": "mdi:bullhorn" }, "buzzer_manual_mute": { "default": "mdi:volume-off" }, - "buzzer_manual_alarm": { - "default": "mdi:bullhorn" + "child_lock": { + "default": "mdi:account-lock" }, - "inverted": { - "default": "mdi:arrow-up-down" - }, - "hooks_locked": { - "default": "mdi:lock" + "double_up_full": { + "default": "mdi:gesture-double-tap" }, "external_window_sensor": { "default": "mdi:window-open" }, - "use_internal_window_detection": { - "default": "mdi:window-open" - }, - "prioritize_external_temperature_sensor": { - "default": "mdi:thermometer" + "heartbeat_indicator": { + "default": "mdi:heart-flash" }, "heat_available": { "default": "mdi:water-boiler" }, + "hooks_locked": { + "default": "mdi:lock" + }, + "inverted": { + "default": "mdi:arrow-up-down" + }, + "led_indicator": { + "default": "mdi:led-on" + }, + "linkage_alarm": { + "default": "mdi:shield-link-variant" + }, + "prioritize_external_temperature_sensor": { + "default": "mdi:thermometer" + }, + "use_internal_window_detection": { + "default": "mdi:window-open" + }, "use_load_balancing": { "default": "mdi:scale-balance" - }, - "double_up_full": { - "default": "mdi:gesture-double-tap" } } }, "services": { - "permit": { - "service": "mdi:cellphone-link" + "clear_lock_user_code": { + "service": "mdi:lock-remove" }, - "remove": { - "service": "mdi:cellphone-remove" + "disable_lock_user_code": { + "service": "mdi:lock-off" }, - "reconfigure_device": { - "service": "mdi:cellphone-cog" - }, - "set_zigbee_cluster_attribute": { - "service": "mdi:cog" + "enable_lock_user_code": { + "service": "mdi:lock" }, "issue_zigbee_cluster_command": { "service": "mdi:console" @@ -266,23 +263,26 @@ "issue_zigbee_group_command": { "service": "mdi:console" }, + "permit": { + "service": "mdi:cellphone-link" + }, + "reconfigure_device": { + "service": "mdi:cellphone-cog" + }, + "remove": { + "service": "mdi:cellphone-remove" + }, + "set_lock_user_code": { + "service": "mdi:lock" + }, + "set_zigbee_cluster_attribute": { + "service": "mdi:cog" + }, "warning_device_squawk": { "service": "mdi:alert" }, "warning_device_warn": { "service": "mdi:alert" - }, - "clear_lock_user_code": { - "service": "mdi:lock-remove" - }, - "enable_lock_user_code": { - "service": "mdi:lock" - }, - "disable_lock_user_code": { - "service": "mdi:lock-off" - }, - "set_lock_user_code": { - "service": "mdi:lock" } } } diff --git a/homeassistant/components/zha/manifest.json b/homeassistant/components/zha/manifest.json index 307b287d8f5..338de2d5d10 100644 --- a/homeassistant/components/zha/manifest.json +++ b/homeassistant/components/zha/manifest.json @@ -24,128 +24,128 @@ "requirements": ["zha==0.0.73"], "usb": [ { - "vid": "10C4", - "pid": "EA60", "description": "*2652*", - "known_devices": ["slae.sh cc2652rb stick"] + "known_devices": ["slae.sh cc2652rb stick"], + "pid": "EA60", + "vid": "10C4" }, { - "vid": "10C4", - "pid": "EA60", "description": "*slzb-07*", - "known_devices": ["smlight slzb-07"] + "known_devices": ["smlight slzb-07"], + "pid": "EA60", + "vid": "10C4" }, { - "vid": "1A86", + "description": "*sonoff*plus*", + "known_devices": ["sonoff zigbee dongle plus v2"], "pid": "55D4", + "vid": "1A86" + }, + { "description": "*sonoff*plus*", - "known_devices": ["sonoff zigbee dongle plus v2"] - }, - { - "vid": "10C4", + "known_devices": ["sonoff zigbee dongle plus"], "pid": "EA60", - "description": "*sonoff*plus*", - "known_devices": ["sonoff zigbee dongle plus"] + "vid": "10C4" }, { - "vid": "10C4", + "description": "*tubeszb*", + "known_devices": ["TubesZB Coordinator"], "pid": "EA60", - "description": "*tubeszb*", - "known_devices": ["TubesZB Coordinator"] + "vid": "10C4" }, { - "vid": "1A86", - "pid": "7523", "description": "*tubeszb*", - "known_devices": ["TubesZB Coordinator"] + "known_devices": ["TubesZB Coordinator"], + "pid": "7523", + "vid": "1A86" }, { - "vid": "1A86", - "pid": "7523", "description": "*zigstar*", - "known_devices": ["ZigStar Coordinators"] + "known_devices": ["ZigStar Coordinators"], + "pid": "7523", + "vid": "1A86" }, { - "vid": "1CF1", + "description": "*conbee*", + "known_devices": ["Conbee II"], "pid": "0030", - "description": "*conbee*", - "known_devices": ["Conbee II"] + "vid": "1CF1" }, { - "vid": "0403", + "description": "*conbee*", + "known_devices": ["Conbee III"], "pid": "6015", - "description": "*conbee*", - "known_devices": ["Conbee III"] + "vid": "0403" }, { - "vid": "10C4", - "pid": "8A2A", "description": "*zigbee*", - "known_devices": ["Nortek HUSBZB-1"] + "known_devices": ["Nortek HUSBZB-1"], + "pid": "8A2A", + "vid": "10C4" }, { - "vid": "0403", + "description": "*zigate*", + "known_devices": ["ZiGate+"], "pid": "6015", - "description": "*zigate*", - "known_devices": ["ZiGate+"] + "vid": "0403" }, { - "vid": "10C4", + "description": "*zigate*", + "known_devices": ["ZiGate"], "pid": "EA60", - "description": "*zigate*", - "known_devices": ["ZiGate"] + "vid": "10C4" }, { - "vid": "10C4", - "pid": "8B34", "description": "*bv 2010/10*", - "known_devices": ["Bitron Video AV2010/10"] + "known_devices": ["Bitron Video AV2010/10"], + "pid": "8B34", + "vid": "10C4" }, { - "vid": "10C4", - "pid": "EA60", "description": "*sonoff*max*", - "known_devices": ["SONOFF Dongle Max MG24"] + "known_devices": ["SONOFF Dongle Max MG24"], + "pid": "EA60", + "vid": "10C4" }, { - "vid": "10C4", - "pid": "EA60", "description": "*sonoff*lite*mg21*", - "known_devices": ["sonoff zigbee dongle lite mg21"] + "known_devices": ["sonoff zigbee dongle lite mg21"], + "pid": "EA60", + "vid": "10C4" } ], "zeroconf": [ { - "type": "_esphomelib._tcp.local.", - "name": "tube*" + "name": "tube*", + "type": "_esphomelib._tcp.local." }, { - "type": "_zigate-zigbee-gateway._tcp.local.", - "name": "*zigate*" + "name": "*zigate*", + "type": "_zigate-zigbee-gateway._tcp.local." }, { - "type": "_zigstar_gw._tcp.local.", - "name": "*zigstar*" + "name": "*zigstar*", + "type": "_zigstar_gw._tcp.local." }, { - "type": "_uzg-01._tcp.local.", - "name": "uzg-01*" + "name": "uzg-01*", + "type": "_uzg-01._tcp.local." }, { - "type": "_slzb-06._tcp.local.", - "name": "slzb-06*" + "name": "slzb-06*", + "type": "_slzb-06._tcp.local." }, { - "type": "_xzg._tcp.local.", - "name": "xzg*" + "name": "xzg*", + "type": "_xzg._tcp.local." }, { - "type": "_czc._tcp.local.", - "name": "czc*" + "name": "czc*", + "type": "_czc._tcp.local." }, { - "type": "_zigbee-coordinator._tcp.local.", - "name": "*" + "name": "*", + "type": "_zigbee-coordinator._tcp.local." } ] } diff --git a/homeassistant/components/zha/strings.json b/homeassistant/components/zha/strings.json index 06ab143b6bd..ef052cbcb78 100644 --- a/homeassistant/components/zha/strings.json +++ b/homeassistant/components/zha/strings.json @@ -1,13 +1,77 @@ { "config": { + "abort": { + "cannot_resolve_path": "Could not resolve device path: {path}", + "cannot_restore_backup": "The adapter you are restoring to does not properly support backup restoration. Please upgrade the firmware.\n\nError: {error}", + "cannot_restore_backup_no_ieee_confirm": "The adapter you are restoring to has outdated firmware and cannot write the adapter IEEE address multiple times. Please upgrade the firmware or confirm permanent overwrite in the previous step.", + "invalid_zeroconf_data": "The coordinator has invalid Zeroconf service info and cannot be identified by ZHA", + "not_zha_device": "This device is not a ZHA device", + "reconfigure_successful": "ZHA has successfully migrated from your old adapter to the new one. Give your Zigbee network a few minutes to stabilize.\n\nIf you no longer need the old adapter, you can now unplug it.", + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", + "usb_probe_failed": "Failed to probe the USB device", + "wrong_firmware_installed": "Your device is running the wrong firmware and cannot be used with ZHA until the correct firmware is installed. [A repair has been created]({repair_url}) with more information and instructions for how to fix this." + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_backup_json": "Invalid backup JSON" + }, "flow_title": "{name}", "step": { + "choose_automatic_backup": { + "data": { + "choose_automatic_backup": "Choose an automatic backup" + }, + "description": "Restore your network settings from an automatic backup", + "title": "Restore automatic backup" + }, + "choose_formation_strategy": { + "description": "Choose the network settings for your adapter.", + "menu_option_descriptions": { + "choose_automatic_backup": "This will let you change your adapter's network settings back to a previous state, in case you have changed them.", + "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", + "form_new_network": "This will create a new Zigbee network.", + "reuse_settings": "This will let ZHA import the settings from a stick that was used with other software, migrating some of the network automatically.", + "upload_manual_backup": "This will let you upload a backup JSON file from ZHA or the Zigbee2MQTT `coordinator_backup.json` file." + }, + "menu_options": { + "choose_automatic_backup": "Restore an automatic backup", + "form_initial_network": "Create a network", + "form_new_network": "Erase network settings and create a new network", + "reuse_settings": "Keep adapter network settings", + "upload_manual_backup": "Upload a manual backup" + }, + "title": "Network formation" + }, + "choose_migration_strategy": { + "description": "Choose how you want to migrate your Zigbee network backup from your old adapter to a new one.", + "menu_option_descriptions": { + "migration_strategy_advanced": "This will let you restore a specific network backup or upload your own.", + "migration_strategy_recommended": "This is the quickest option to migrate to a new adapter." + }, + "menu_options": { + "migration_strategy_advanced": "Advanced migration", + "migration_strategy_recommended": "Migrate automatically (recommended)" + }, + "title": "Migrate to a new adapter" + }, "choose_serial_port": { - "title": "Select a serial port", - "description": "Select the serial port for your Zigbee adapter", "data": { "path": "Serial device path" - } + }, + "description": "Select the serial port for your Zigbee adapter", + "title": "Select a serial port" + }, + "choose_setup_strategy": { + "description": "Choose how you want to set up Zigbee. Automatic setup is recommended unless you are restoring your network from a backup or setting up an adapter with nonstandard settings.", + "menu_option_descriptions": { + "setup_strategy_advanced": "This will let you restore from a backup.", + "setup_strategy_recommended": "This is the quickest option to create a new network and get started." + }, + "menu_options": { + "setup_strategy_advanced": "Advanced setup", + "setup_strategy_recommended": "Set up automatically (recommended)" + }, + "title": "Set up Zigbee" }, "confirm": { "description": "Do you want to set up {name}?" @@ -16,291 +80,84 @@ "description": "Do you want to set up {name}?" }, "manual_pick_radio_type": { - "title": "Select an adapter type", - "description": "Pick your Zigbee adapter type", "data": { "radio_type": "Adapter type" - } + }, + "description": "Pick your Zigbee adapter type", + "title": "Select an adapter type" }, "manual_port_config": { - "title": "Serial port settings", - "description": "ZHA was not able to automatically detect serial port settings for your adapter. This usually is an issue with the firmware or permissions.\n\nIf you are using firmware with nonstandard settings, enter the serial port settings", "data": { - "path": "Serial device path", "baudrate": "Serial port speed", - "flow_control": "Serial port flow control" + "flow_control": "Serial port flow control", + "path": "Serial device path" }, "data_description": { - "path": "Path to the serial port or `socket://` TCP address", "baudrate": "Baudrate to use when communicating with the serial port, usually 115200 or 460800", - "flow_control": "Check your adapter's documentation for the correct option, usually `None` or `Hardware`" - } - }, - "verify_radio": { - "title": "Adapter is not recommended", - "description": "The adapter you are using ({name}) is not recommended and support for it may be removed in the future. Please see the Zigbee Home Automation integration's documentation for [a list of recommended adapters]({docs_recommended_adapters_url})." - }, - "choose_setup_strategy": { - "title": "Set up Zigbee", - "description": "Choose how you want to set up Zigbee. Automatic setup is recommended unless you are restoring your network from a backup or setting up an adapter with nonstandard settings.", - "menu_options": { - "setup_strategy_recommended": "Set up automatically (recommended)", - "setup_strategy_advanced": "Advanced setup" + "flow_control": "Check your adapter's documentation for the correct option, usually `None` or `Hardware`", + "path": "Path to the serial port or `socket://` TCP address" }, - "menu_option_descriptions": { - "setup_strategy_recommended": "This is the quickest option to create a new network and get started.", - "setup_strategy_advanced": "This will let you restore from a backup." - } - }, - "choose_migration_strategy": { - "title": "Migrate to a new adapter", - "description": "Choose how you want to migrate your Zigbee network backup from your old adapter to a new one.", - "menu_options": { - "migration_strategy_recommended": "Migrate automatically (recommended)", - "migration_strategy_advanced": "Advanced migration" - }, - "menu_option_descriptions": { - "migration_strategy_recommended": "This is the quickest option to migrate to a new adapter.", - "migration_strategy_advanced": "This will let you restore a specific network backup or upload your own." - } - }, - "maybe_reset_old_radio": { - "title": "Resetting old adapter", - "description": "A backup was created earlier and your old adapter is being reset as part of the migration." - }, - "choose_formation_strategy": { - "title": "Network formation", - "description": "Choose the network settings for your adapter.", - "menu_options": { - "form_new_network": "Erase network settings and create a new network", - "form_initial_network": "Create a network", - "reuse_settings": "Keep adapter network settings", - "choose_automatic_backup": "Restore an automatic backup", - "upload_manual_backup": "Upload a manual backup" - }, - "menu_option_descriptions": { - "form_new_network": "This will create a new Zigbee network.", - "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", - "reuse_settings": "This will let ZHA import the settings from a stick that was used with other software, migrating some of the network automatically.", - "choose_automatic_backup": "This will let you change your adapter's network settings back to a previous state, in case you have changed them.", - "upload_manual_backup": "This will let you upload a backup JSON file from ZHA or the Zigbee2MQTT `coordinator_backup.json` file." - } - }, - "choose_automatic_backup": { - "title": "Restore automatic backup", - "description": "Restore your network settings from an automatic backup", - "data": { - "choose_automatic_backup": "Choose an automatic backup" - } - }, - "upload_manual_backup": { - "title": "Upload a manual backup", - "description": "Restore your network settings from an uploaded backup JSON file. You can download one from a different ZHA installation from **Network Settings**, or use a Zigbee2MQTT `coordinator_backup.json` file.", - "data": { - "uploaded_backup_file": "Upload a file" - } + "description": "ZHA was not able to automatically detect serial port settings for your adapter. This usually is an issue with the firmware or permissions.\n\nIf you are using firmware with nonstandard settings, enter the serial port settings", + "title": "Serial port settings" }, "maybe_confirm_ezsp_restore": { - "title": "Overwrite adapter IEEE address", - "description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.", "data": { "overwrite_coordinator_ieee": "Permanently replace the adapter IEEE address" - } - } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_backup_json": "Invalid backup JSON" - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "not_zha_device": "This device is not a ZHA device", - "usb_probe_failed": "Failed to probe the USB device", - "cannot_resolve_path": "Could not resolve device path: {path}", - "wrong_firmware_installed": "Your device is running the wrong firmware and cannot be used with ZHA until the correct firmware is installed. [A repair has been created]({repair_url}) with more information and instructions for how to fix this.", - "invalid_zeroconf_data": "The coordinator has invalid Zeroconf service info and cannot be identified by ZHA", - "cannot_restore_backup": "The adapter you are restoring to does not properly support backup restoration. Please upgrade the firmware.\n\nError: {error}", - "cannot_restore_backup_no_ieee_confirm": "The adapter you are restoring to has outdated firmware and cannot write the adapter IEEE address multiple times. Please upgrade the firmware or confirm permanent overwrite in the previous step.", - "reconfigure_successful": "ZHA has successfully migrated from your old adapter to the new one. Give your Zigbee network a few minutes to stabilize.\n\nIf you no longer need the old adapter, you can now unplug it." - } - }, - "options": { - "flow_title": "[%key:component::zha::config::flow_title%]", - "step": { - "init": { - "title": "Reconfigure ZHA", - "description": "A backup will be performed and ZHA will be stopped. Do you wish to continue?" - }, - "prompt_migrate_or_reconfigure": { - "title": "Migrate or re-configure", - "description": "Are you migrating to a new adapter or re-configuring the current adapter?", - "menu_options": { - "intent_migrate": "Migrate to a new adapter", - "intent_reconfigure": "Re-configure the current adapter" }, - "menu_option_descriptions": { - "intent_migrate": "This will help you migrate your Zigbee network from your old adapter to a new one.", - "intent_reconfigure": "This will let you change the serial port for your current Zigbee adapter." - } + "description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.", + "title": "Overwrite adapter IEEE address" }, - "intent_migrate": { - "title": "[%key:component::zha::options::step::prompt_migrate_or_reconfigure::menu_options::intent_migrate%]", - "description": "Before plugging in your new adapter, your old adapter needs to be reset. An automatic backup will be performed. If you are using a combined Z-Wave and Zigbee adapter like the HUSBZB-1, this will only reset the Zigbee portion.\n\n*Note: if you are migrating from a **ConBee/RaspBee**, make sure it is running firmware `0x26720700` or newer! Otherwise, some devices may not be controllable after migrating until they are power cycled.*\n\nDo you wish to continue?" - }, - "choose_serial_port": { - "title": "[%key:component::zha::config::step::choose_serial_port::title%]", - "data": { - "path": "[%key:component::zha::config::step::choose_serial_port::data::path%]" - }, - "description": "[%key:component::zha::config::step::choose_serial_port::description%]" - }, - "manual_pick_radio_type": { - "data": { - "radio_type": "[%key:component::zha::config::step::manual_pick_radio_type::data::radio_type%]" - }, - "title": "[%key:component::zha::config::step::manual_pick_radio_type::data::radio_type%]", - "description": "[%key:component::zha::config::step::manual_pick_radio_type::description%]" - }, - "manual_port_config": { - "title": "[%key:component::zha::config::step::manual_port_config::title%]", - "description": "[%key:component::zha::config::step::manual_port_config::description%]", - "data": { - "path": "[%key:component::zha::config::step::manual_port_config::data::path%]", - "baudrate": "[%key:component::zha::config::step::manual_port_config::data::baudrate%]", - "flow_control": "[%key:component::zha::config::step::manual_port_config::data::flow_control%]" - } - }, - "verify_radio": { - "title": "[%key:component::zha::config::step::verify_radio::title%]", - "description": "[%key:component::zha::config::step::verify_radio::description%]" - }, - "choose_migration_strategy": { - "title": "[%key:component::zha::config::step::choose_migration_strategy::title%]", - "description": "[%key:component::zha::config::step::choose_migration_strategy::description%]", - "menu_options": { - "migration_strategy_recommended": "[%key:component::zha::config::step::choose_migration_strategy::menu_options::migration_strategy_recommended%]", - "migration_strategy_advanced": "[%key:component::zha::config::step::choose_migration_strategy::menu_options::migration_strategy_advanced%]" - }, - "menu_option_descriptions": { - "migration_strategy_recommended": "[%key:component::zha::config::step::choose_migration_strategy::menu_option_descriptions::migration_strategy_recommended%]", - "migration_strategy_advanced": "[%key:component::zha::config::step::choose_migration_strategy::menu_option_descriptions::migration_strategy_advanced%]" - } - }, - "choose_formation_strategy": { - "title": "[%key:component::zha::config::step::choose_formation_strategy::title%]", - "description": "[%key:component::zha::config::step::choose_formation_strategy::description%]", - "menu_options": { - "form_new_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::form_new_network%]", - "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::form_initial_network%]", - "reuse_settings": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::reuse_settings%]", - "choose_automatic_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::choose_automatic_backup%]", - "upload_manual_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::upload_manual_backup%]" - }, - "menu_option_descriptions": { - "form_new_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", - "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", - "reuse_settings": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::reuse_settings%]", - "choose_automatic_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::choose_automatic_backup%]", - "upload_manual_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::upload_manual_backup%]" - } - }, - "choose_automatic_backup": { - "title": "[%key:component::zha::config::step::choose_automatic_backup::title%]", - "description": "[%key:component::zha::config::step::choose_automatic_backup::description%]", - "data": { - "choose_automatic_backup": "[%key:component::zha::config::step::choose_automatic_backup::data::choose_automatic_backup%]" - } + "maybe_reset_old_radio": { + "description": "A backup was created earlier and your old adapter is being reset as part of the migration.", + "title": "Resetting old adapter" }, "upload_manual_backup": { - "title": "[%key:component::zha::config::step::upload_manual_backup::title%]", - "description": "[%key:component::zha::config::step::upload_manual_backup::description%]", "data": { - "uploaded_backup_file": "[%key:component::zha::config::step::upload_manual_backup::data::uploaded_backup_file%]" - } + "uploaded_backup_file": "Upload a file" + }, + "description": "Restore your network settings from an uploaded backup JSON file. You can download one from a different ZHA installation from **Network Settings**, or use a Zigbee2MQTT `coordinator_backup.json` file.", + "title": "Upload a manual backup" }, - "maybe_confirm_ezsp_restore": { - "title": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::title%]", - "description": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::description%]", - "data": { - "overwrite_coordinator_ieee": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::data::overwrite_coordinator_ieee%]" - } + "verify_radio": { + "description": "The adapter you are using ({name}) is not recommended and support for it may be removed in the future. Please see the Zigbee Home Automation integration's documentation for [a list of recommended adapters]({docs_recommended_adapters_url}).", + "title": "Adapter is not recommended" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_backup_json": "[%key:component::zha::config::error::invalid_backup_json%]" - }, - "abort": { - "not_zha_device": "[%key:component::zha::config::abort::not_zha_device%]", - "usb_probe_failed": "[%key:component::zha::config::abort::usb_probe_failed%]", - "cannot_resolve_path": "[%key:component::zha::config::abort::cannot_resolve_path%]", - "wrong_firmware_installed": "[%key:component::zha::config::abort::wrong_firmware_installed%]", - "cannot_restore_backup": "[%key:component::zha::config::abort::cannot_restore_backup%]", - "cannot_restore_backup_no_ieee_confirm": "[%key:component::zha::config::abort::cannot_restore_backup_no_ieee_confirm%]", - "reconfigure_successful": "[%key:component::zha::config::abort::reconfigure_successful%]" } }, "config_panel": { - "zha_options": { - "title": "Global options", - "enhanced_light_transition": "Enable enhanced light color/temperature transition from an off-state", - "light_transitioning_flag": "Enable enhanced brightness slider during light transition", - "group_members_assume_state": "Group members assume state of group", - "enable_identify_on_join": "Enable identify effect when devices join the network", - "default_light_transition": "Default light transition time (seconds)", - "consider_unavailable_mains": "Consider mains-powered devices unavailable after (seconds)", - "enable_mains_startup_polling": "Refresh state for mains-powered devices on startup", - "consider_unavailable_battery": "Consider battery-powered devices unavailable after (seconds)" - }, "zha_alarm_options": { - "title": "Alarm control panel options", - "alarm_master_code": "Master code for the alarm control panel(s)", + "alarm_arm_requires_code": "Code required for arming actions", "alarm_failed_tries": "The number of consecutive failed code entries to trigger an alarm", - "alarm_arm_requires_code": "Code required for arming actions" + "alarm_master_code": "Master code for the alarm control panel(s)", + "title": "Alarm control panel options" + }, + "zha_options": { + "consider_unavailable_battery": "Consider battery-powered devices unavailable after (seconds)", + "consider_unavailable_mains": "Consider mains-powered devices unavailable after (seconds)", + "default_light_transition": "Default light transition time (seconds)", + "enable_identify_on_join": "Enable identify effect when devices join the network", + "enable_mains_startup_polling": "Refresh state for mains-powered devices on startup", + "enhanced_light_transition": "Enable enhanced light color/temperature transition from an off-state", + "group_members_assume_state": "Group members assume state of group", + "light_transitioning_flag": "Enable enhanced brightness slider during light transition", + "title": "Global options" } }, "device_automation": { "action_type": { - "squawk": "Squawk", - "warn": "Warn", "issue_all_led_effect": "Issue effect for all LEDs", - "issue_individual_led_effect": "Issue effect for individual LED" + "issue_individual_led_effect": "Issue effect for individual LED", + "squawk": "Squawk", + "warn": "Warn" }, - "trigger_type": { - "remote_button_short_press": "\"{subtype}\" pressed", - "remote_button_short_release": "\"{subtype}\" released", - "remote_button_long_press": "\"{subtype}\" continuously pressed", - "remote_button_long_release": "\"{subtype}\" released after long press", - "remote_button_double_press": "\"{subtype}\" double clicked", - "remote_button_triple_press": "\"{subtype}\" triple clicked", - "remote_button_quadruple_press": "\"{subtype}\" quadruple clicked", - "remote_button_quintuple_press": "\"{subtype}\" quintuple clicked", - "remote_button_alt_short_press": "\"{subtype}\" pressed (Alternate mode)", - "remote_button_alt_short_release": "\"{subtype}\" released (Alternate mode)", - "remote_button_alt_long_press": "\"{subtype}\" continuously pressed (Alternate mode)", - "remote_button_alt_long_release": "\"{subtype}\" released after long press (Alternate mode)", - "remote_button_alt_double_press": "\"{subtype}\" double clicked (Alternate mode)", - "remote_button_alt_triple_press": "\"{subtype}\" triple clicked (Alternate mode)", - "remote_button_alt_quadruple_press": "\"{subtype}\" quadruple clicked (Alternate mode)", - "remote_button_alt_quintuple_press": "\"{subtype}\" quintuple clicked (Alternate mode)", - "device_rotated": "Device rotated \"{subtype}\"", - "device_shaken": "Device shaken", - "device_slid": "Device slid \"{subtype}\"", - "device_tilted": "Device tilted", - "device_knocked": "Device knocked \"{subtype}\"", - "device_dropped": "Device dropped", - "device_flipped": "Device flipped \"{subtype}\"", - "device_offline": "Device offline" + "extra_fields": { + "color": "Color hue", + "duration": "Duration in seconds", + "effect_type": "Effect type", + "led_number": "LED number", + "level": "Brightness (%)" }, "trigger_subtype": { - "turn_on": "[%key:common::action::turn_on%]", - "turn_off": "[%key:common::action::turn_off%]", - "dim_up": "Dim up", - "dim_down": "Dim down", - "left": "Left", - "right": "Right", - "open": "[%key:common::action::open%]", - "close": "[%key:common::action::close%]", "both_buttons": "Both buttons", "button": "Button", "button_1": "First button", @@ -309,303 +166,47 @@ "button_4": "Fourth button", "button_5": "Fifth button", "button_6": "Sixth button", - "face_any": "With any/specified face(s) activated", + "close": "[%key:common::action::close%]", + "dim_down": "Dim down", + "dim_up": "Dim up", "face_1": "With face 1 activated", "face_2": "With face 2 activated", "face_3": "With face 3 activated", "face_4": "With face 4 activated", "face_5": "With face 5 activated", - "face_6": "With face 6 activated" + "face_6": "With face 6 activated", + "face_any": "With any/specified face(s) activated", + "left": "Left", + "open": "[%key:common::action::open%]", + "right": "Right", + "turn_off": "[%key:common::action::turn_off%]", + "turn_on": "[%key:common::action::turn_on%]" }, - "extra_fields": { - "color": "Color hue", - "duration": "Duration in seconds", - "effect_type": "Effect type", - "led_number": "LED number", - "level": "Brightness (%)" - } - }, - "services": { - "permit": { - "name": "Permit", - "description": "Allows nodes to join the Zigbee network.", - "fields": { - "duration": { - "name": "Duration", - "description": "Time to permit joins." - }, - "ieee": { - "name": "IEEE", - "description": "IEEE address of the node permitting new joins." - }, - "source_ieee": { - "name": "Source IEEE", - "description": "IEEE address of the joining device (must be combined with the 'Install code' field)." - }, - "install_code": { - "name": "Install code", - "description": "Install code of the joining device (must be combined with the 'Source IEEE' field)." - }, - "qr_code": { - "name": "QR code", - "description": "Provides both the IEEE address and the install code of the joining device (different between vendors)." - } - } - }, - "remove": { - "name": "Remove", - "description": "Removes a node from the Zigbee network.", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "IEEE address of the node to remove." - } - } - }, - "reconfigure_device": { - "name": "Reconfigure device", - "description": "Reconfigures a ZHA device (heal device). Use this if you are having issues with the device. If the device in question is a battery-powered device, ensure it is awake and accepting commands when you use this action.", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "IEEE address of the device to reconfigure." - } - } - }, - "set_zigbee_cluster_attribute": { - "name": "Set Zigbee cluster attribute", - "description": "Sets an attribute value for the specified cluster on the specified entity.", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "IEEE address for the device." - }, - "endpoint_id": { - "name": "Endpoint ID", - "description": "Endpoint ID for the cluster." - }, - "cluster_id": { - "name": "Cluster ID", - "description": "ZCL cluster to retrieve attributes for." - }, - "cluster_type": { - "name": "Cluster type", - "description": "Type of the cluster." - }, - "attribute": { - "name": "Attribute", - "description": "ID of the attribute to set." - }, - "value": { - "name": "Value", - "description": "Value to write to the attribute." - }, - "manufacturer": { - "name": "Manufacturer", - "description": "Manufacturer code. Use a value of \"-1\" to force no code to be set." - } - } - }, - "issue_zigbee_cluster_command": { - "name": "Issue Zigbee cluster command", - "description": "Issues a command on the specified cluster on the specified entity.", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]" - }, - "endpoint_id": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::endpoint_id::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::endpoint_id::description%]" - }, - "cluster_id": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::description%]" - }, - "cluster_type": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::description%]" - }, - "command": { - "name": "Command", - "description": "ID of the command to execute." - }, - "command_type": { - "name": "Command Type", - "description": "Type of the command to execute." - }, - "args": { - "name": "Args", - "description": "Arguments to pass to the command." - }, - "params": { - "name": "Params", - "description": "Parameters to pass to the command." - }, - "manufacturer": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]" - } - } - }, - "issue_zigbee_group_command": { - "name": "Issue Zigbee group command", - "description": "Issues a command on the specified cluster on the specified group.", - "fields": { - "group": { - "name": "Group", - "description": "Hexadecimal address of the group." - }, - "cluster_id": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::name%]", - "description": "ZCL cluster to send command to." - }, - "cluster_type": { - "name": "Cluster type", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::description%]" - }, - "command": { - "name": "Command", - "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::command::description%]" - }, - "args": { - "name": "Args", - "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::args::description%]" - }, - "manufacturer": { - "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]" - } - } - }, - "warning_device_squawk": { - "name": "Warning device squawk", - "description": "This action uses the WD capabilities to emit a quick audible/visible pulse called a \"squawk\". The squawk command has no effect if the WD is currently active (warning in progress).", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]" - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The Squawk Mode field is used as a 4-bit enumeration, and can have one of the values shown in Table 8-24 of the ZCL spec - Squawk Mode Field. The exact operation of each mode (how the WD “squawks”) is implementation specific." - }, - "strobe": { - "name": "Strobe", - "description": "The strobe field is used as a Boolean, and determines if the visual indication is also required in addition to the audible squawk, as shown in Table 8-25 of the ZCL spec - Strobe Bit." - }, - "level": { - "name": "Level", - "description": "The squawk level field is used as a 2-bit enumeration, and determines the intensity of audible squawk sound as shown in Table 8-26 of the ZCL spec - Squawk Level Field Values." - } - } - }, - "warning_device_warn": { - "name": "Warning device starts alert", - "description": "This action starts the operation of the warning device. The warning device alerts the surrounding area by audible (siren) and visual (strobe) signals.", - "fields": { - "ieee": { - "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]" - }, - "mode": { - "name": "[%key:common::config_flow::data::mode%]", - "description": "The Warning Mode field is used as a 4-bit enumeration, can have one of the values 0-6 defined below in table 8-20 of the ZCL spec. The exact behavior of the warning device in each mode is according to the relevant security standards." - }, - "strobe": { - "name": "[%key:component::zha::services::warning_device_squawk::fields::strobe::name%]", - "description": "The Strobe field is used as a 2-bit enumeration, and determines if the visual indication is required in addition to the audible siren, as indicated in Table 8-21 of the ZCL spec. \"0\" means no strobe, \"1\" means strobe. If the strobe field is “1” and the Warning Mode is “0” (“Stop”), then only the strobe is activated." - }, - "level": { - "name": "Level", - "description": "The Siren Level field is used as a 2-bit enumeration, and indicates the intensity of audible squawk sound as shown in Table 8-22 of the ZCL spec." - }, - "duration": { - "name": "Duration", - "description": "Requested duration of warning, in seconds (16 bit). If both Strobe and Warning Mode are \"0\" this field is ignored." - }, - "duty_cycle": { - "name": "Duty cycle", - "description": "Indicates the length of the flash cycle. This allows you to vary the flash duration for different alarm types (e.g., fire, police, burglar). The valid range is 0-100 in increments of 10. All other values must be rounded to the nearest valid value. Strobe calculates a duty cycle over a duration of one second. The ON state must precede the OFF state. For example, if the Strobe Duty Cycle field specifies “40,”, then the strobe flashes ON for 4/10ths of a second and then turns OFF for 6/10ths of a second." - }, - "intensity": { - "name": "Intensity", - "description": "Indicates the intensity of the strobe as shown in Table 8-23 of the ZCL spec. This attribute is designed to vary the output of the strobe (i.e., brightness) and not its frequency, which is detailed in section 8.4.2.3.1.6 of the ZCL spec." - } - } - }, - "clear_lock_user_code": { - "name": "Clear lock user", - "description": "Clears a user code from a lock.", - "fields": { - "code_slot": { - "name": "Code slot", - "description": "Code slot to clear code from." - } - } - }, - "enable_lock_user_code": { - "name": "Enable lock user", - "description": "Enables a user code on a lock.", - "fields": { - "code_slot": { - "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]", - "description": "Code slot to enable." - } - } - }, - "disable_lock_user_code": { - "name": "Disable lock user", - "description": "Disables a user code on a lock.", - "fields": { - "code_slot": { - "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]", - "description": "Code slot to disable." - } - } - }, - "set_lock_user_code": { - "name": "Set lock user code", - "description": "Sets a user code on a lock.", - "fields": { - "code_slot": { - "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]", - "description": "Code slot to set the code in." - }, - "user_code": { - "name": "Code", - "description": "Code to set." - } - } - } - }, - "issues": { - "wrong_silabs_firmware_installed_nabucasa": { - "title": "Zigbee adapter with multiprotocol firmware detected", - "description": "Your Zigbee adapter was previously used with multiprotocol (Zigbee and Thread) and still has multiprotocol firmware installed: ({firmware_type}).\n\nTo run your adapter exclusively with ZHA, you need to install the Zigbee firmware:\n - Go to Settings > System > Hardware, select the device and select Configure.\n - Select the 'Migrate Zigbee to a new adapter' option and follow the instructions." - }, - "wrong_silabs_firmware_installed_other": { - "title": "[%key:component::zha::issues::wrong_silabs_firmware_installed_nabucasa::title%]", - "description": "Your Zigbee adapter was previously used with multiprotocol (Zigbee and Thread) and still has multiprotocol firmware installed: ({firmware_type}).\n\nTo run your adapter exclusively with ZHA, you need to install Zigbee firmware. Follow your Zigbee adapter manufacturer's instructions for how to do this." - }, - "inconsistent_network_settings": { - "title": "Zigbee network settings have changed", - "fix_flow": { - "step": { - "init": { - "title": "[%key:component::zha::issues::inconsistent_network_settings::title%]", - "description": "Your Zigbee adapter's network settings are inconsistent with the most recent network backup. This usually happens if another Zigbee integration (e.g. Zigbee2MQTT or deCONZ) has overwritten them.\n\n{diff}\n\nIf you did not intentionally change your network settings, restore from the most recent backup: your devices will not work otherwise.", - "menu_options": { - "use_new_settings": "Keep the new settings", - "restore_old_settings": "Restore backup (recommended)" - }, - "menu_option_descriptions": { - "use_new_settings": "This will keep the new settings written to the stick. Only choose this option if you have intentionally changed settings.", - "restore_old_settings": "This will restore your network settings back to the last working state." - } - } - } - } + "trigger_type": { + "device_dropped": "Device dropped", + "device_flipped": "Device flipped \"{subtype}\"", + "device_knocked": "Device knocked \"{subtype}\"", + "device_offline": "Device offline", + "device_rotated": "Device rotated \"{subtype}\"", + "device_shaken": "Device shaken", + "device_slid": "Device slid \"{subtype}\"", + "device_tilted": "Device tilted", + "remote_button_alt_double_press": "\"{subtype}\" double clicked (Alternate mode)", + "remote_button_alt_long_press": "\"{subtype}\" continuously pressed (Alternate mode)", + "remote_button_alt_long_release": "\"{subtype}\" released after long press (Alternate mode)", + "remote_button_alt_quadruple_press": "\"{subtype}\" quadruple clicked (Alternate mode)", + "remote_button_alt_quintuple_press": "\"{subtype}\" quintuple clicked (Alternate mode)", + "remote_button_alt_short_press": "\"{subtype}\" pressed (Alternate mode)", + "remote_button_alt_short_release": "\"{subtype}\" released (Alternate mode)", + "remote_button_alt_triple_press": "\"{subtype}\" triple clicked (Alternate mode)", + "remote_button_double_press": "\"{subtype}\" double clicked", + "remote_button_long_press": "\"{subtype}\" continuously pressed", + "remote_button_long_release": "\"{subtype}\" released after long press", + "remote_button_quadruple_press": "\"{subtype}\" quadruple clicked", + "remote_button_quintuple_press": "\"{subtype}\" quintuple clicked", + "remote_button_short_press": "\"{subtype}\" pressed", + "remote_button_short_release": "\"{subtype}\" released", + "remote_button_triple_press": "\"{subtype}\" triple clicked" } }, "entity": { @@ -621,72 +222,24 @@ "binary_input": { "name": "Binary input" }, - "frost_lock": { - "name": "Frost lock" - }, - "replace_filter": { - "name": "Replace filter" + "calibrated": { + "name": "Calibrated" }, "consumer_connected": { "name": "Consumer connected" }, - "valve_alarm": { - "name": "Valve alarm" - }, - "calibrated": { - "name": "Calibrated" + "error_or_battery_low": { + "name": "Error or battery low" }, "external_sensor": { "name": "External sensor" }, - "linkage_alarm_state": { - "name": "Linkage alarm state" - }, - "ias_zone": { - "name": "IAS zone" - }, - "hand_open": { - "name": "Opened by hand" - }, - "mounting_mode_active": { - "name": "Mounting mode active" - }, - "heat_required": { - "name": "Heat required" - }, - "preheat_status": { - "name": "Pre-heat status" - }, - "open_window_detection_status": { - "name": "Open window detection status" - }, - "window_detection": { - "name": "Open window detection" - }, - "silence_alarm": { - "name": "Silence alarm" - }, - "preheat_active": { - "name": "Preheat active" - }, "fault_alarm": { "name": "Fault alarm" }, - "led_indicator": { - "name": "LED indicator" - }, - "error_or_battery_low": { - "name": "Error or battery low" - }, "flow_switch": { "name": "Flow switch" }, - "water_leak": { - "name": "Water leak" - }, - "water_supply": { - "name": "Water supply" - }, "frient_in_1": { "name": "IN1" }, @@ -698,35 +251,83 @@ }, "frient_in_4": { "name": "IN4" + }, + "frost_lock": { + "name": "Frost lock" + }, + "hand_open": { + "name": "Opened by hand" + }, + "heat_required": { + "name": "Heat required" + }, + "ias_zone": { + "name": "IAS zone" + }, + "led_indicator": { + "name": "LED indicator" + }, + "linkage_alarm_state": { + "name": "Linkage alarm state" + }, + "mounting_mode_active": { + "name": "Mounting mode active" + }, + "open_window_detection_status": { + "name": "Open window detection status" + }, + "preheat_active": { + "name": "Preheat active" + }, + "preheat_status": { + "name": "Pre-heat status" + }, + "replace_filter": { + "name": "Replace filter" + }, + "silence_alarm": { + "name": "Silence alarm" + }, + "valve_alarm": { + "name": "Valve alarm" + }, + "water_leak": { + "name": "Water leak" + }, + "water_supply": { + "name": "Water supply" + }, + "window_detection": { + "name": "Open window detection" } }, "button": { - "reset_frost_lock": { - "name": "Frost lock reset" - }, - "reset_no_presence_status": { - "name": "Presence status reset" + "calibrate_valve": { + "name": "Calibrate valve" }, "feed": { "name": "Feed" }, - "self_test": { - "name": "Self-test" - }, - "reset_summation_delivered": { - "name": "Reset summation delivered" - }, - "restart_device": { - "name": "Restart device" - }, "frost_lock_reset": { "name": "Frost lock reset" }, "reset_alarm": { "name": "Reset alarm" }, - "calibrate_valve": { - "name": "Calibrate valve" + "reset_frost_lock": { + "name": "Frost lock reset" + }, + "reset_no_presence_status": { + "name": "Presence status reset" + }, + "reset_summation_delivered": { + "name": "Reset summation delivered" + }, + "restart_device": { + "name": "Restart device" + }, + "self_test": { + "name": "Self-test" } }, "climate": { @@ -738,11 +339,11 @@ "cover": { "name": "[%key:component::cover::title%]" }, - "shade": { - "name": "[%key:component::cover::entity_component::shade::name%]" - }, "keen_vent": { "name": "Keen vent" + }, + "shade": { + "name": "[%key:component::cover::entity_component::shade::name%]" } }, "fan": { @@ -782,74 +383,89 @@ } }, "number": { - "number": { - "name": "[%key:component::number::title%]" + "alarm_duration": { + "name": "Alarm duration" }, - "detection_interval": { - "name": "Detection interval" + "alarm_humidity_max": { + "name": "Alarm humidity max" }, - "on_level": { - "name": "On level" + "alarm_humidity_min": { + "name": "Alarm humidity min" }, - "on_off_transition_time": { - "name": "On/Off transition time" + "alarm_temperature_max": { + "name": "Alarm temperature max" }, - "on_transition_time": { - "name": "On transition time" + "alarm_temperature_min": { + "name": "Alarm temperature min" }, - "off_transition_time": { - "name": "Off transition time" + "ambient_sensor_correction": { + "name": "Ambient sensor correction" }, - "default_move_rate": { - "name": "Default move rate" + "antifrost_temperature": { + "name": "Antifrost temperature" }, - "start_up_current_level": { - "name": "Start-up current level" + "approach_distance": { + "name": "Approach distance" }, - "start_up_color_temperature": { - "name": "Start-up color temperature" + "auto_off_timer": { + "name": "Automatic switch shutoff timer" }, - "timer_duration": { - "name": "Timer duration" + "away_preset_temperature": { + "name": "Away preset temperature" }, - "filter_life_time": { - "name": "Filter life time" + "block_time": { + "name": "Block time" }, - "transmit_power": { - "name": "Transmit power" + "boost_amount": { + "name": "Boost amount" }, - "dimming_speed_up_remote": { - "name": "Remote dimming up speed" + "boost_time": { + "name": "Boost time" + }, + "breath_detection_max": { + "name": "Breath detection max" + }, + "breath_detection_min": { + "name": "Breath detection min" + }, + "breath_sensitivity": { + "name": "Breath sensitivity" }, "button_delay": { "name": "Button delay" }, - "dimming_speed_up_local": { - "name": "Local dimming up speed" + "calibration_rotation_run_time_down": { + "name": "Calibration rotation run time down" }, - "ramp_rate_off_to_on_local": { - "name": "Local ramp rate off to on" + "calibration_rotation_run_time_up": { + "name": "Calibration rotation run time up" }, - "ramp_rate_off_to_on_remote": { - "name": "Remote ramp rate off to on" + "calibration_vertical_run_time_down": { + "name": "Calibration vertical run time down" }, - "dimming_speed_down_remote": { - "name": "Remote dimming down speed" + "calibration_vertical_run_time_up": { + "name": "Calibration vertical run time up" }, - "dimming_speed_down_local": { - "name": "Local dimming down speed" + "closing_duration": { + "name": "Closing duration" }, - "ramp_rate_on_to_off_local": { - "name": "Local ramp rate on to off" + "comfort_humidity_max": { + "name": "Comfort humidity max" }, - "ramp_rate_on_to_off_remote": { - "name": "Remote ramp rate on to off" + "comfort_humidity_min": { + "name": "Comfort humidity min" }, - "minimum_level": { - "name": "Minimum load dimming level" + "comfort_temperature": { + "name": "Comfort temperature" }, - "maximum_level": { - "name": "Maximum load dimming level" + "comfort_temperature_max": { + "name": "Comfort temperature max" + }, + "comfort_temperature_min": { + "name": "Comfort temperature min" + }, + "deadzone_temperature": { + "name": "Deadzone temperature" }, "default_level_local": { "name": "Local default dimming level" @@ -857,110 +473,35 @@ "default_level_remote": { "name": "Remote default dimming level" }, - "state_after_power_restored": { - "name": "Start-up default dimming level" + "default_move_rate": { + "name": "Default move rate" }, - "auto_off_timer": { - "name": "Automatic switch shutoff timer" + "detection_delay": { + "name": "Detection delay" }, - "load_level_indicator_timeout": { - "name": "Load level indicator timeout" + "detection_distance_max": { + "name": "Maximum range" }, - "led_color_when_on": { - "name": "Default all LED on color" + "detection_distance_min": { + "name": "Minimum range" }, - "led_color_when_off": { - "name": "Default all LED off color" + "detection_interval": { + "name": "Detection interval" }, - "led_intensity_when_on": { - "name": "Default all LED on intensity" + "dimming_speed_down_local": { + "name": "Local dimming down speed" }, - "led_intensity_when_off": { - "name": "Default all LED off intensity" + "dimming_speed_down_remote": { + "name": "Remote dimming down speed" }, - "double_tap_up_level": { - "name": "Double tap up level" + "dimming_speed_up_local": { + "name": "Local dimming up speed" }, - "double_tap_down_level": { - "name": "Double tap down level" + "dimming_speed_up_remote": { + "name": "Remote dimming up speed" }, - "serving_size": { - "name": "Serving to dispense" - }, - "portion_weight": { - "name": "Portion weight" - }, - "away_preset_temperature": { - "name": "Away preset temperature" - }, - "quick_start_time": { - "name": "Quick start time" - }, - "local_temperature_calibration": { - "name": "Local temperature offset" - }, - "presence_detection_timeout": { - "name": "Presence detection timeout" - }, - "max_heat_setpoint_limit": { - "name": "Max heat setpoint limit" - }, - "min_heat_setpoint_limit": { - "name": "Min heat setpoint limit" - }, - "exercise_trigger_time": { - "name": "Exercise start time" - }, - "external_temperature_sensor": { - "name": "External temperature sensor" - }, - "load_room_mean": { - "name": "Load room mean" - }, - "regulation_setpoint_offset": { - "name": "Regulation setpoint offset" - }, - "irrigation_cycles": { - "name": "Irrigation cycles" - }, - "irrigation_target": { - "name": "Irrigation target" - }, - "irrigation_interval": { - "name": "Irrigation interval" - }, - "valve_countdown_1": { - "name": "Irrigation time 1" - }, - "valve_countdown_2": { - "name": "Irrigation time 2" - }, - "on_led_intensity": { - "name": "On LED intensity" - }, - "off_led_intensity": { - "name": "Off LED intensity" - }, - "frost_protection_temperature": { - "name": "Frost protection temperature" - }, - "valve_opening_degree": { - "name": "Valve opening degree" - }, - "valve_closing_degree": { - "name": "Valve closing degree" - }, - "siren_time": { - "name": "Siren time" - }, - "timer_time_left": { - "name": "Timer time left" - }, - "approach_distance": { - "name": "Approach distance" - }, - "fixed_load_demand": { - "name": "Fixed load demand" + "display_activity_timeout": { + "name": "Display activity timeout" }, "display_brightness": { "name": "Display brightness" @@ -968,8 +509,218 @@ "display_inactive_brightness": { "name": "Display inactive brightness" }, - "display_activity_timeout": { - "name": "Display activity timeout" + "display_on_time": { + "name": "Display on-time" + }, + "double_tap_down_level": { + "name": "Double tap down level" + }, + "double_tap_up_level": { + "name": "Double tap up level" + }, + "down_movement": { + "name": "Down movement" + }, + "eco_temperature": { + "name": "Eco temperature" + }, + "entry_distance_indentation": { + "name": "Entry distance indentation" + }, + "entry_sensitivity": { + "name": "Entry sensitivity" + }, + "exercise_trigger_time": { + "name": "Exercise start time" + }, + "external_sensor_correction": { + "name": "External sensor correction" + }, + "external_temperature_sensor": { + "name": "External temperature sensor" + }, + "external_temperature_sensor_value": { + "name": "External temperature sensor value" + }, + "fading_time": { + "name": "Fading time" + }, + "fallback_timeout": { + "name": "Fallback timeout" + }, + "filter_life_time": { + "name": "Filter life time" + }, + "fixed_load_demand": { + "name": "Fixed load demand" + }, + "frost_protection_temperature": { + "name": "Frost protection temperature" + }, + "hold_delay_time": { + "name": "Hold delay time" + }, + "holiday_temperature": { + "name": "Holiday temperature" + }, + "humidity_offset": { + "name": "Humidity offset" + }, + "humidity_report_interval": { + "name": "Humidity report interval" + }, + "humidity_sensitivity": { + "name": "Humidity sensitivity" + }, + "hush_duration": { + "name": "Hush duration" + }, + "illuminance_interval": { + "name": "Illuminance interval" + }, + "illuminance_threshold": { + "name": "Illuminance threshold" + }, + "impulse_mode_duration": { + "name": "Impulse mode duration" + }, + "installation_height": { + "name": "Height from sensor to tank bottom" + }, + "interval_time": { + "name": "Interval time" + }, + "irrigation_cycles": { + "name": "Irrigation cycles" + }, + "irrigation_interval": { + "name": "Irrigation interval" + }, + "irrigation_target": { + "name": "Irrigation target" + }, + "large_motion_detection_distance": { + "name": "Motion detection distance" + }, + "large_motion_detection_sensitivity": { + "name": "Motion detection sensitivity" + }, + "led_color_when_off": { + "name": "Default all LED off color" + }, + "led_color_when_on": { + "name": "Default all LED on color" + }, + "led_intensity_when_off": { + "name": "Default all LED off intensity" + }, + "led_intensity_when_on": { + "name": "Default all LED on intensity" + }, + "lift_drive_down_time": { + "name": "Lift drive down time" + }, + "lift_drive_up_time": { + "name": "Lift drive up time" + }, + "liquid_depth_max": { + "name": "Height from sensor to liquid level" + }, + "load_level_indicator_timeout": { + "name": "Load level indicator timeout" + }, + "load_room_mean": { + "name": "Load room mean" + }, + "local_temperature_calibration": { + "name": "Local temperature offset" + }, + "long_press_duration": { + "name": "Long press duration" + }, + "max_brightness": { + "name": "Maximum brightness" + }, + "max_heat_setpoint_limit": { + "name": "Max heat setpoint limit" + }, + "max_set": { + "name": "Liquid max percentage" + }, + "max_temperature": { + "name": "Max temperature" + }, + "maximum_level": { + "name": "Maximum load dimming level" + }, + "measurement_interval": { + "name": "Measurement interval" + }, + "medium_motion_detection_distance": { + "name": "Medium motion detection distance" + }, + "medium_motion_detection_sensitivity": { + "name": "Medium motion detection sensitivity" + }, + "min_brightness": { + "name": "Minimum brightness" + }, + "min_heat_setpoint_limit": { + "name": "Min heat setpoint limit" + }, + "min_temperature": { + "name": "Min temperature" + }, + "mini_set": { + "name": "Liquid minimal percentage" + }, + "minimum_level": { + "name": "Minimum load dimming level" + }, + "motion_detection_sensitivity": { + "name": "Motion detection sensitivity" + }, + "motion_sensitivity": { + "name": "Motion sensitivity" + }, + "motionless_detection": { + "name": "Motionless detection" + }, + "motionless_sensitivity": { + "name": "Motionless detection sensitivity" + }, + "motor_start_delay": { + "name": "Motor start delay" + }, + "move_sensitivity": { + "name": "Motion sensitivity" + }, + "number": { + "name": "[%key:component::number::title%]" + }, + "off_led_intensity": { + "name": "Off LED intensity" + }, + "off_transition_time": { + "name": "Off transition time" + }, + "on_led_intensity": { + "name": "On LED intensity" + }, + "on_level": { + "name": "On level" + }, + "on_off_transition_time": { + "name": "On/Off transition time" + }, + "on_time": { + "name": "On time" + }, + "on_transition_time": { + "name": "On transition time" + }, + "open_window_detection_guard_period": { + "name": "Open window detection guard period" }, "open_window_detection_threshold": { "name": "Open window detection threshold" @@ -977,29 +728,17 @@ "open_window_event_duration": { "name": "Open window event duration" }, - "open_window_detection_guard_period": { - "name": "Open window detection guard period" + "opening_duration": { + "name": "Opening duration" }, - "fallback_timeout": { - "name": "Fallback timeout" + "output_time": { + "name": "Output time" }, - "boost_amount": { - "name": "Boost amount" + "portion_weight": { + "name": "Portion weight" }, - "ambient_sensor_correction": { - "name": "Ambient sensor correction" - }, - "external_sensor_correction": { - "name": "External sensor correction" - }, - "move_sensitivity": { - "name": "Motion sensitivity" - }, - "detection_distance_min": { - "name": "Minimum range" - }, - "detection_distance_max": { - "name": "Maximum range" + "presence_detection_timeout": { + "name": "Presence detection timeout" }, "presence_sensitivity": { "name": "Presence sensitivity" @@ -1007,68 +746,53 @@ "presence_timeout": { "name": "Fade time" }, + "quantitative_watering": { + "name": "Quantitative watering" + }, + "quick_start_time": { + "name": "Quick start time" + }, + "radar_sensitivity": { + "name": "Radar sensitivity" + }, + "ramp_rate_off_to_on_local": { + "name": "Local ramp rate off to on" + }, + "ramp_rate_off_to_on_remote": { + "name": "Remote ramp rate off to on" + }, + "ramp_rate_on_to_off_local": { + "name": "Local ramp rate on to off" + }, + "ramp_rate_on_to_off_remote": { + "name": "Remote ramp rate on to off" + }, + "regulation_setpoint_offset": { + "name": "Regulation setpoint offset" + }, "regulator_set_point": { "name": "Regulator setpoint" }, - "detection_delay": { - "name": "Detection delay" + "reporting_interval": { + "name": "Reporting interval" }, - "fading_time": { - "name": "Fading time" + "sensitivity": { + "name": "Sensitivity" }, - "temperature_offset": { - "name": "Temperature offset" + "serving_size": { + "name": "Serving to dispense" }, - "humidity_offset": { - "name": "Humidity offset" + "shutdown_timer": { + "name": "Shutdown timer" }, - "comfort_temperature_min": { - "name": "Comfort temperature min" + "siren_time": { + "name": "Siren time" }, - "comfort_temperature_max": { - "name": "Comfort temperature max" + "small_motion_detection_distance": { + "name": "Small motion detection distance" }, - "comfort_humidity_min": { - "name": "Comfort humidity min" - }, - "comfort_humidity_max": { - "name": "Comfort humidity max" - }, - "measurement_interval": { - "name": "Measurement interval" - }, - "on_time": { - "name": "On time" - }, - "alarm_duration": { - "name": "Alarm duration" - }, - "max_set": { - "name": "Liquid max percentage" - }, - "mini_set": { - "name": "Liquid minimal percentage" - }, - "installation_height": { - "name": "Height from sensor to tank bottom" - }, - "liquid_depth_max": { - "name": "Height from sensor to liquid level" - }, - "interval_time": { - "name": "Interval time" - }, - "target_distance": { - "name": "Target distance" - }, - "hold_delay_time": { - "name": "Hold delay time" - }, - "breath_detection_max": { - "name": "Breath detection max" - }, - "breath_detection_min": { - "name": "Breath detection min" + "small_motion_detection_sensitivity": { + "name": "Small motion detection sensitivity" }, "small_move_detection_max": { "name": "Small move detection max" @@ -1079,179 +803,41 @@ "small_move_sensitivity": { "name": "Small move sensitivity" }, - "breath_sensitivity": { - "name": "Breath sensitivity" + "sound_volume": { + "name": "Sound volume" }, - "entry_sensitivity": { - "name": "Entry sensitivity" + "start_up_color_temperature": { + "name": "Start-up color temperature" }, - "entry_distance_indentation": { - "name": "Entry distance indentation" + "start_up_current_level": { + "name": "Start-up current level" }, - "illuminance_threshold": { - "name": "Illuminance threshold" - }, - "block_time": { - "name": "Block time" - }, - "motion_sensitivity": { - "name": "Motion sensitivity" - }, - "radar_sensitivity": { - "name": "Radar sensitivity" - }, - "motionless_detection": { - "name": "Motionless detection" - }, - "motionless_sensitivity": { - "name": "Motionless detection sensitivity" - }, - "output_time": { - "name": "Output time" - }, - "illuminance_interval": { - "name": "Illuminance interval" - }, - "temperature_report_interval": { - "name": "Temperature report interval" - }, - "humidity_report_interval": { - "name": "Humidity report interval" - }, - "alarm_temperature_max": { - "name": "Alarm temperature max" - }, - "alarm_temperature_min": { - "name": "Alarm temperature min" - }, - "temperature_sensitivity": { - "name": "Temperature sensitivity" - }, - "alarm_humidity_max": { - "name": "Alarm humidity max" - }, - "alarm_humidity_min": { - "name": "Alarm humidity min" - }, - "humidity_sensitivity": { - "name": "Humidity sensitivity" - }, - "deadzone_temperature": { - "name": "Deadzone temperature" - }, - "min_temperature": { - "name": "Min temperature" - }, - "max_temperature": { - "name": "Max temperature" - }, - "valve_countdown": { - "name": "Irrigation time" - }, - "quantitative_watering": { - "name": "Quantitative watering" - }, - "valve_duration": { - "name": "Irrigation duration" - }, - "down_movement": { - "name": "Down movement" - }, - "sustain_time": { - "name": "Sustain time" - }, - "up_movement": { - "name": "Up movement" - }, - "large_motion_detection_sensitivity": { - "name": "Motion detection sensitivity" - }, - "large_motion_detection_distance": { - "name": "Motion detection distance" - }, - "medium_motion_detection_distance": { - "name": "Medium motion detection distance" - }, - "medium_motion_detection_sensitivity": { - "name": "Medium motion detection sensitivity" - }, - "small_motion_detection_distance": { - "name": "Small motion detection distance" - }, - "small_motion_detection_sensitivity": { - "name": "Small motion detection sensitivity" - }, - "static_detection_sensitivity": { - "name": "Static detection sensitivity" + "state_after_power_restored": { + "name": "Start-up default dimming level" }, "static_detection_distance": { "name": "Static detection distance" }, - "motion_detection_sensitivity": { - "name": "Motion detection sensitivity" + "static_detection_sensitivity": { + "name": "Static detection sensitivity" }, - "holiday_temperature": { - "name": "Holiday temperature" + "sustain_time": { + "name": "Sustain time" }, - "boost_time": { - "name": "Boost time" - }, - "antifrost_temperature": { - "name": "Antifrost temperature" - }, - "eco_temperature": { - "name": "Eco temperature" - }, - "comfort_temperature": { - "name": "Comfort temperature" - }, - "valve_state_auto_shutdown": { - "name": "Valve state auto-shutdown" - }, - "shutdown_timer": { - "name": "Shutdown timer" - }, - "calibration_vertical_run_time_up": { - "name": "Calibration vertical run time up" - }, - "calibration_vertical_run_time_down": { - "name": "Calibration vertical run time down" - }, - "calibration_rotation_run_time_up": { - "name": "Calibration rotation run time up" - }, - "calibration_rotation_run_time_down": { - "name": "Calibration rotation run time down" - }, - "impulse_mode_duration": { - "name": "Impulse mode duration" - }, - "water_duration": { - "name": "Water duration" - }, - "water_interval": { - "name": "Water interval" - }, - "hush_duration": { - "name": "Hush duration" + "target_distance": { + "name": "Target distance" }, "temperature_control_accuracy": { "name": "Temperature control accuracy" }, - "external_temperature_sensor_value": { - "name": "External temperature sensor value" + "temperature_offset": { + "name": "Temperature offset" }, - "update_frequency": { - "name": "Update frequency" + "temperature_report_interval": { + "name": "Temperature report interval" }, - "sound_volume": { - "name": "Sound volume" - }, - "lift_drive_up_time": { - "name": "Lift drive up time" - }, - "lift_drive_down_time": { - "name": "Lift drive down time" + "temperature_sensitivity": { + "name": "Temperature sensitivity" }, "tilt_open_close_and_step_time": { "name": "Tilt open close and step time" @@ -1259,256 +845,58 @@ "tilt_position_percentage_after_move_to_level": { "name": "Tilt position percentage after move to level" }, - "display_on_time": { - "name": "Display on-time" + "timer_duration": { + "name": "Timer duration" }, - "closing_duration": { - "name": "Closing duration" + "timer_time_left": { + "name": "Timer time left" }, - "opening_duration": { - "name": "Opening duration" + "transmit_power": { + "name": "Transmit power" }, - "long_press_duration": { - "name": "Long press duration" + "up_movement": { + "name": "Up movement" }, - "motor_start_delay": { - "name": "Motor start delay" + "update_frequency": { + "name": "Update frequency" }, - "max_brightness": { - "name": "Maximum brightness" + "valve_closing_degree": { + "name": "Valve closing degree" }, - "min_brightness": { - "name": "Minimum brightness" + "valve_countdown": { + "name": "Irrigation time" }, - "reporting_interval": { - "name": "Reporting interval" + "valve_countdown_1": { + "name": "Irrigation time 1" }, - "sensitivity": { - "name": "Sensitivity" + "valve_countdown_2": { + "name": "Irrigation time 2" + }, + "valve_duration": { + "name": "Irrigation duration" + }, + "valve_opening_degree": { + "name": "Valve opening degree" + }, + "valve_state_auto_shutdown": { + "name": "Valve state auto-shutdown" + }, + "water_duration": { + "name": "Water duration" + }, + "water_interval": { + "name": "Water interval" } }, "select": { - "default_siren_tone": { - "name": "Default siren tone" - }, - "default_siren_level": { - "name": "Default siren level" - }, - "default_strobe_level": { - "name": "Default strobe level" - }, - "default_strobe": { - "name": "Default strobe" - }, - "start_up_on_off": { - "name": "Start-up behavior" - }, - "power_on_state": { - "name": "Power on state" - }, - "backlight_mode": { - "name": "Backlight mode" - }, - "motion_sensitivity": { - "name": "Motion sensitivity" - }, - "monitoring_mode": { - "name": "Monitoring mode" - }, - "approach_distance": { - "name": "Approach distance" - }, - "window_covering_mode": { - "name": "Curtain mode" - }, - "output_mode": { - "name": "Output mode" - }, - "switch_type": { - "name": "Switch type" - }, - "led_scaling_mode": { - "name": "LED scaling mode" - }, - "smart_fan_led_display_levels": { - "name": "Smart fan LED display levels" - }, - "increased_non_neutral_output": { - "name": "Increased non-neutral output" - }, - "leading_or_trailing_edge": { - "name": "Dimming mode" - }, - "feeding_mode": { - "name": "Mode" - }, - "preset": { - "name": "Preset" - }, - "detection_distance": { - "name": "Detection distance" - }, - "switch_mode": { - "name": "Switch mode" - }, - "decoupled_mode": { - "name": "Decoupled mode" - }, - "detection_sensitivity": { - "name": "Detection sensitivity" - }, - "keypad_lockout": { - "name": "Keypad lockout" - }, - "exercise_day_of_week": { - "name": "Exercise day of the week" - }, - "valve_orientation": { - "name": "Valve orientation" - }, "adaptation_run_command": { "name": "Adaptation run command" }, - "viewing_direction": { - "name": "Viewing direction" - }, - "setpoint_response_time": { - "name": "Setpoint response time" - }, - "irrigation_mode": { - "name": "Irrigation mode" - }, - "weather_delay": { - "name": "Weather delay" - }, - "on_led_color": { - "name": "On LED color" - }, - "off_led_color": { - "name": "Off LED color" - }, - "external_trigger_mode": { - "name": "External trigger mode" - }, - "local_temperature_source": { - "name": "Local temperature source" - }, - "control_type": { - "name": "Control type" - }, - "thermostat_application": { - "name": "Thermostat application" - }, - "heating_fuel": { - "name": "Heating fuel" - }, - "heat_transfer_medium": { - "name": "Heat transfer medium" - }, - "heating_emitter_type": { - "name": "Heating emitter type" - }, - "external_temperature_sensor_type": { - "name": "External temperature sensor type" - }, - "preset_mode": { - "name": "Preset mode" - }, - "sensor_mode": { - "name": "Sensor mode" - }, - "thermostat_mode": { - "name": "Thermostat mode" - }, - "regulator_period": { - "name": "Regulator period" - }, - "click_mode": { - "name": "Click mode" - }, - "operation_mode": { - "name": "Operation mode" - }, - "device_mode": { - "name": "Device mode" - }, - "pilot_wire_mode": { - "name": "Pilot wire mode" - }, - "alarm_ringtone": { - "name": "Alarm ringtone" - }, - "liquid_state": { - "name": "Liquid state" - }, - "breaker_mode": { - "name": "Breaker mode" - }, - "breaker_status": { - "name": "Breaker status" - }, - "status_indication": { - "name": "Status indication" - }, - "breaker_polarity": { - "name": "Breaker polarity" - }, - "work_mode": { - "name": "Work mode" - }, - "presence_sensitivity": { - "name": "Presence sensitivity" - }, - "fading_time": { - "name": "Fading time" - }, - "display_unit": { - "name": "Display unit" - }, "alarm_mode": { "name": "Alarm mode" }, - "alarm_volume": { - "name": "Alarm volume" - }, - "working_day": { - "name": "Working day" - }, - "eco_mode": { - "name": "Eco mode" - }, - "mode": { - "name": "Mode" - }, - "reverse": { - "name": "Reverse" - }, - "motion_state": { - "name": "Motion state" - }, - "motion_detection_mode": { - "name": "Motion detection mode" - }, - "screen_orientation": { - "name": "Screen orientation" - }, - "motor_thrust": { - "name": "Motor thrust" - }, - "display_brightness": { - "name": "Display brightness" - }, - "display_orientation": { - "name": "Display orientation" - }, - "hysteresis_mode": { - "name": "Hysteresis mode" - }, - "speed": { - "name": "Speed" - }, - "led_brightness": { - "name": "LED brightness" + "alarm_ringtone": { + "name": "Alarm ringtone" }, "alarm_sound_level": { "name": "Alarm sound level" @@ -1516,167 +904,254 @@ "alarm_sound_mode": { "name": "Alarm sound mode" }, - "external_switch_type": { - "name": "External switch type" + "alarm_volume": { + "name": "Alarm volume" }, - "switch_indication": { - "name": "Switch indication" + "approach_distance": { + "name": "Approach distance" }, - "switch_actions": { - "name": "Switch actions" + "backlight_mode": { + "name": "Backlight mode" }, - "ctrl_sequence_of_oper": { - "name": "Control sequence" + "breaker_mode": { + "name": "Breaker mode" }, - "displayed_temperature": { - "name": "Displayed temperature" + "breaker_polarity": { + "name": "Breaker polarity" + }, + "breaker_status": { + "name": "Breaker status" }, "calibration_mode": { "name": "Calibration mode" }, + "click_mode": { + "name": "Click mode" + }, + "control_type": { + "name": "Control type" + }, + "ctrl_sequence_of_oper": { + "name": "Control sequence" + }, + "decoupled_mode": { + "name": "Decoupled mode" + }, + "default_siren_level": { + "name": "Default siren level" + }, + "default_siren_tone": { + "name": "Default siren tone" + }, + "default_strobe": { + "name": "Default strobe" + }, + "default_strobe_level": { + "name": "Default strobe level" + }, + "detection_distance": { + "name": "Detection distance" + }, + "detection_sensitivity": { + "name": "Detection sensitivity" + }, + "device_mode": { + "name": "Device mode" + }, + "display_brightness": { + "name": "Display brightness" + }, + "display_orientation": { + "name": "Display orientation" + }, + "display_unit": { + "name": "Display unit" + }, + "displayed_temperature": { + "name": "Displayed temperature" + }, + "eco_mode": { + "name": "Eco mode" + }, + "exercise_day_of_week": { + "name": "Exercise day of the week" + }, + "external_switch_type": { + "name": "External switch type" + }, + "external_temperature_sensor_type": { + "name": "External temperature sensor type" + }, + "external_trigger_mode": { + "name": "External trigger mode" + }, + "fading_time": { + "name": "Fading time" + }, + "feeding_mode": { + "name": "Mode" + }, + "heat_transfer_medium": { + "name": "Heat transfer medium" + }, + "heating_emitter_type": { + "name": "Heating emitter type" + }, + "heating_fuel": { + "name": "Heating fuel" + }, + "hysteresis_mode": { + "name": "Hysteresis mode" + }, + "increased_non_neutral_output": { + "name": "Increased non-neutral output" + }, + "irrigation_mode": { + "name": "Irrigation mode" + }, + "keypad_lockout": { + "name": "Keypad lockout" + }, + "leading_or_trailing_edge": { + "name": "Dimming mode" + }, + "led_brightness": { + "name": "LED brightness" + }, + "led_scaling_mode": { + "name": "LED scaling mode" + }, + "liquid_state": { + "name": "Liquid state" + }, + "local_temperature_source": { + "name": "Local temperature source" + }, + "mode": { + "name": "Mode" + }, "mode_switch": { "name": "Mode switch" }, + "monitoring_mode": { + "name": "Monitoring mode" + }, + "motion_detection_mode": { + "name": "Motion detection mode" + }, + "motion_sensitivity": { + "name": "Motion sensitivity" + }, + "motion_state": { + "name": "Motion state" + }, + "motor_thrust": { + "name": "Motor thrust" + }, + "off_led_color": { + "name": "Off LED color" + }, + "on_led_color": { + "name": "On LED color" + }, + "operation_mode": { + "name": "Operation mode" + }, + "output_mode": { + "name": "Output mode" + }, "phase": { "name": "Phase" + }, + "pilot_wire_mode": { + "name": "Pilot wire mode" + }, + "power_on_state": { + "name": "Power on state" + }, + "presence_sensitivity": { + "name": "Presence sensitivity" + }, + "preset": { + "name": "Preset" + }, + "preset_mode": { + "name": "Preset mode" + }, + "regulator_period": { + "name": "Regulator period" + }, + "reverse": { + "name": "Reverse" + }, + "screen_orientation": { + "name": "Screen orientation" + }, + "sensor_mode": { + "name": "Sensor mode" + }, + "setpoint_response_time": { + "name": "Setpoint response time" + }, + "smart_fan_led_display_levels": { + "name": "Smart fan LED display levels" + }, + "speed": { + "name": "Speed" + }, + "start_up_on_off": { + "name": "Start-up behavior" + }, + "status_indication": { + "name": "Status indication" + }, + "switch_actions": { + "name": "Switch actions" + }, + "switch_indication": { + "name": "Switch indication" + }, + "switch_mode": { + "name": "Switch mode" + }, + "switch_type": { + "name": "Switch type" + }, + "thermostat_application": { + "name": "Thermostat application" + }, + "thermostat_mode": { + "name": "Thermostat mode" + }, + "valve_orientation": { + "name": "Valve orientation" + }, + "viewing_direction": { + "name": "Viewing direction" + }, + "weather_delay": { + "name": "Weather delay" + }, + "window_covering_mode": { + "name": "Curtain mode" + }, + "work_mode": { + "name": "Work mode" + }, + "working_day": { + "name": "Working day" } }, "sensor": { + "ac_frequency": { + "name": "AC frequency" + }, "active_power_ph_b": { "name": "Power phase B" }, "active_power_ph_c": { "name": "Power phase C" }, - "analog_input": { - "name": "Analog input" - }, - "ac_frequency": { - "name": "AC frequency" - }, - "soil_moisture": { - "name": "Soil moisture" - }, - "leaf_wetness": { - "name": "Leaf wetness" - }, - "instantaneous_demand": { - "name": "Instantaneous demand" - }, - "power_factor_ph_b": { - "name": "Power factor phase B" - }, - "power_factor_ph_c": { - "name": "Power factor phase C" - }, - "rms_current_ph_b": { - "name": "Current phase B" - }, - "rms_current_ph_c": { - "name": "Current phase C" - }, - "rms_voltage_ph_b": { - "name": "Voltage phase B" - }, - "rms_voltage_ph_c": { - "name": "Voltage phase C" - }, - "summation_delivered": { - "name": "Summation delivered" - }, - "tier1_summation_delivered": { - "name": "Tier 1 summation delivered" - }, - "tier2_summation_delivered": { - "name": "Tier 2 summation delivered" - }, - "tier3_summation_delivered": { - "name": "Tier 3 summation delivered" - }, - "tier4_summation_delivered": { - "name": "Tier 4 summation delivered" - }, - "tier5_summation_delivered": { - "name": "Tier 5 summation delivered" - }, - "tier6_summation_delivered": { - "name": "Tier 6 summation delivered" - }, - "total_active_power": { - "name": "Total power" - }, - "summation_received": { - "name": "Summation received" - }, - "device_temperature": { - "name": "Device temperature" - }, - "internal_temp_monitor": { - "name": "Internal temperature" - }, - "overheated": { - "name": "Overheat protection" - }, - "formaldehyde": { - "name": "Formaldehyde concentration" - }, - "hvac_action": { - "name": "HVAC action" - }, - "rssi": { - "name": "RSSI" - }, - "lqi": { - "name": "LQI" - }, - "timer_time_left": { - "name": "Time left" - }, - "device_run_time": { - "name": "Device run time" - }, - "filter_run_time": { - "name": "Filter run time" - }, - "last_feeding_source": { - "name": "Last feeding source" - }, - "last_feeding_size": { - "name": "Last feeding size" - }, - "portions_dispensed_today": { - "name": "Portions dispensed today" - }, - "weight_dispensed_today": { - "name": "Weight dispensed today" - }, - "smoke_density": { - "name": "Smoke density" - }, - "last_illumination_state": { - "name": "Last illumination state" - }, - "pi_heating_demand": { - "name": "Pi heating demand" - }, - "setpoint_change_source": { - "name": "Setpoint change source" - }, - "power_source": { - "name": "Power source" - }, - "window_covering_type": { - "name": "Window covering type" - }, - "hooks_state": { - "name": "Hooks state" - }, - "open_window_detected": { - "name": "Open window detected" - }, - "load_estimate": { - "name": "Load estimate" - }, "adaptation_run_status": { "name": "Adaptation run status", "state": { @@ -1695,99 +1170,33 @@ } } }, - "preheat_time": { - "name": "Pre-heat time" + "alarm_state": { + "name": "Alarm state" }, - "software_error": { - "name": "Software error", - "state": { - "nothing": "Good", - "something": "[%key:common::state::error%]" - }, - "state_attributes": { - "top_pcb_sensor_error": { - "name": "Top PCB sensor error" - }, - "side_pcb_sensor_error": { - "name": "Side PCB sensor error" - }, - "non_volatile_memory_error": { - "name": "Non-volatile memory error" - }, - "unknown_hw_error": { - "name": "Unknown HW error" - }, - "motor_error": { - "name": "Motor error" - }, - "invalid_internal_communication": { - "name": "Invalid internal communication" - }, - "invalid_clock_information": { - "name": "Invalid clock information" - }, - "radio_communication_error": { - "name": "Radio communication error" - }, - "encoder_jammed": { - "name": "Encoder jammed" - }, - "low_battery": { - "name": "Low battery" - }, - "critical_low_battery": { - "name": "Critical low battery" - } - } + "analog_input": { + "name": "Analog input" }, - "motor_stepcount": { - "name": "Motor stepcount" + "average_light_intensity_20mins": { + "name": "Average light intensity last 20 min" }, - "irrigation_duration": { - "name": "Last irrigation duration" - }, - "irrigation_start_time": { - "name": "Irrigation start time" - }, - "irrigation_end_time": { - "name": "Irrigation end time" - }, - "irrigation_duration_1": { - "name": "Irrigation duration 1" - }, - "irriation_duration_2": { - "name": "Irrigation duration 2" - }, - "valve_status_1": { - "name": "Status 1" - }, - "valve_status_2": { - "name": "Status 2" - }, - "timer_state": { - "name": "Timer state" - }, - "last_valve_open_duration": { - "name": "Last valve open duration" - }, - "motion_distance": { - "name": "Motion distance" + "brightness_level": { + "name": "Brightness level" }, "control_status": { "name": "Control status" }, + "device_run_time": { + "name": "Device run time" + }, + "device_status": { + "name": "Device status" + }, + "device_temperature": { + "name": "Device temperature" + }, "distance": { "name": "Target distance" }, - "local_temperature_floor": { - "name": "Floor temperature" - }, - "self_test": { - "name": "Self-test result" - }, - "voc_index": { - "name": "VOC index" - }, "energy_ph_a": { "name": "Energy phase A" }, @@ -1809,102 +1218,50 @@ "energy_produced_ph_c": { "name": "Energy produced phase C" }, - "total_power_factor": { - "name": "Total power factor" - }, - "self_test_result": { - "name": "Self-test result" - }, - "lower_explosive_limit": { - "name": "% Lower explosive limit" - }, - "liquid_depth": { - "name": "Liquid depth" - }, - "liquid_level_percent": { - "name": "Liquid level ratio" - }, - "target_distance": { - "name": "Target distance" - }, - "human_motion_state": { - "name": "Human motion state" - }, - "temperature_alarm": { - "name": "Temperature alarm" - }, - "humidity_alarm": { - "name": "Humidity alarm" - }, - "alarm_state": { - "name": "Alarm state" - }, - "power_type": { - "name": "Power type" - }, - "valve_position": { - "name": "Valve position" - }, - "time_left": { - "name": "Time left" - }, - "valve_status": { - "name": "Valve status" - }, - "valve_duration": { - "name": "Irrigation duration" - }, - "smart_irrigation": { - "name": "Smart irrigation" - }, - "surplus_flow": { - "name": "Surplus flow" - }, - "single_watering_duration": { - "name": "Single watering duration" - }, - "single_watering_amount": { - "name": "Single watering amount" - }, "error_status": { "name": "Error status" }, - "brightness_level": { - "name": "Brightness level" - }, - "average_light_intensity_20mins": { - "name": "Average light intensity last 20 min" - }, - "todays_max_light_intensity": { - "name": "Today's max light intensity" - }, "fault_code": { "name": "Fault code" }, - "water_flow": { - "name": "Water flow" + "filter_run_time": { + "name": "Filter run time" }, - "remaining_watering_time": { - "name": "Remaining watering time" + "formaldehyde": { + "name": "Formaldehyde concentration" }, - "last_watering_duration": { - "name": "Last watering duration" + "hooks_state": { + "name": "Hooks state" }, - "device_status": { - "name": "Device status" + "human_motion_state": { + "name": "Human motion state" }, - "lifetime": { - "name": "Lifetime" + "humidity_alarm": { + "name": "Humidity alarm" }, - "last_action_source": { - "name": "Last action source", - "state": { - "zigbee": "Zigbee", - "keypad": "Keypad", - "fingerprint": "Fingerprint", - "rfid": "RFID", - "self": "Self" - } + "hvac_action": { + "name": "HVAC action" + }, + "instantaneous_demand": { + "name": "Instantaneous demand" + }, + "internal_temp_monitor": { + "name": "Internal temperature" + }, + "irriation_duration_2": { + "name": "Irrigation duration 2" + }, + "irrigation_duration": { + "name": "Last irrigation duration" + }, + "irrigation_duration_1": { + "name": "Irrigation duration 1" + }, + "irrigation_end_time": { + "name": "Irrigation end time" + }, + "irrigation_start_time": { + "name": "Irrigation start time" }, "last_action": { "name": "Last action", @@ -1913,247 +1270,350 @@ "unlock": "[%key:common::state::unlocked%]" } }, + "last_action_source": { + "name": "Last action source", + "state": { + "fingerprint": "Fingerprint", + "keypad": "Keypad", + "rfid": "RFID", + "self": "Self", + "zigbee": "Zigbee" + } + }, "last_action_user": { "name": "Last action user" }, + "last_feeding_size": { + "name": "Last feeding size" + }, + "last_feeding_source": { + "name": "Last feeding source" + }, + "last_illumination_state": { + "name": "Last illumination state" + }, "last_pin_code": { "name": "Last PIN code" }, + "last_valve_open_duration": { + "name": "Last valve open duration" + }, + "last_watering_duration": { + "name": "Last watering duration" + }, + "leaf_wetness": { + "name": "Leaf wetness" + }, + "lifetime": { + "name": "Lifetime" + }, + "liquid_depth": { + "name": "Liquid depth" + }, + "liquid_level_percent": { + "name": "Liquid level ratio" + }, + "load_estimate": { + "name": "Load estimate" + }, + "local_temperature_floor": { + "name": "Floor temperature" + }, + "lower_explosive_limit": { + "name": "% Lower explosive limit" + }, + "lqi": { + "name": "LQI" + }, + "motion_distance": { + "name": "Motion distance" + }, + "motor_state": { + "name": "Motor state" + }, + "motor_stepcount": { + "name": "Motor stepcount" + }, + "open_window_detected": { + "name": "Open window detected" + }, "opening": { "name": "Opening" }, "operating_mode": { "name": "Operating mode" }, - "valve_adapt_status": { - "name": "Valve adaptation status" + "overheated": { + "name": "Overheat protection" }, - "motor_state": { - "name": "Motor state" - } - }, - "switch": { - "switch": { - "name": "[%key:component::switch::title%]" + "pi_heating_demand": { + "name": "Pi heating demand" }, - "window_detection_function": { - "name": "Invert window detection" + "portions_dispensed_today": { + "name": "Portions dispensed today" }, - "trigger_indicator": { - "name": "LED trigger indicator" + "power_factor_ph_b": { + "name": "Power factor phase B" }, - "power_outage_memory": { - "name": "Power outage memory" + "power_factor_ph_c": { + "name": "Power factor phase C" }, - "child_lock": { - "name": "Child lock" + "power_source": { + "name": "Power source" }, - "disable_led": { - "name": "Disable LED" + "power_type": { + "name": "Power type" }, - "invert_switch": { - "name": "Invert switch" + "preheat_time": { + "name": "Pre-heat time" }, - "inverted": { - "name": "Inverted" + "remaining_watering_time": { + "name": "Remaining watering time" }, - "hooks_locked": { - "name": "Hooks locked" + "rms_current_ph_b": { + "name": "Current phase B" }, - "smart_bulb_mode": { - "name": "Smart bulb mode" + "rms_current_ph_c": { + "name": "Current phase C" }, - "smart_fan_mode": { - "name": "Smart fan mode" + "rms_voltage_ph_b": { + "name": "Voltage phase B" }, - "double_tap_up_enabled": { - "name": "Double tap up enabled" + "rms_voltage_ph_c": { + "name": "Voltage phase C" }, - "double_tap_down_enabled": { - "name": "Double tap down enabled" + "rssi": { + "name": "RSSI" }, - "aux_switch_scenes": { - "name": "Aux switch scenes" + "self_test": { + "name": "Self-test result" }, - "binding_off_to_on_sync_level": { - "name": "Binding off to on sync level" + "self_test_result": { + "name": "Self-test result" }, - "local_protection": { - "name": "Local protection" + "setpoint_change_source": { + "name": "Setpoint change source" }, - "one_led_mode": { - "name": "Only 1 LED mode" + "single_watering_amount": { + "name": "Single watering amount" }, - "firmware_progress_led": { - "name": "Firmware progress LED" + "single_watering_duration": { + "name": "Single watering duration" }, - "relay_click_in_on_off_mode": { - "name": "Disable relay click in on off mode" + "smart_irrigation": { + "name": "Smart irrigation" }, - "disable_clear_notifications_double_tap": { - "name": "Disable config 2x tap to clear notifications" + "smoke_density": { + "name": "Smoke density" }, - "led_indicator": { - "name": "LED indicator" + "software_error": { + "name": "Software error", + "state": { + "nothing": "Good", + "something": "[%key:common::state::error%]" + }, + "state_attributes": { + "critical_low_battery": { + "name": "Critical low battery" + }, + "encoder_jammed": { + "name": "Encoder jammed" + }, + "invalid_clock_information": { + "name": "Invalid clock information" + }, + "invalid_internal_communication": { + "name": "Invalid internal communication" + }, + "low_battery": { + "name": "Low battery" + }, + "motor_error": { + "name": "Motor error" + }, + "non_volatile_memory_error": { + "name": "Non-volatile memory error" + }, + "radio_communication_error": { + "name": "Radio communication error" + }, + "side_pcb_sensor_error": { + "name": "Side PCB sensor error" + }, + "top_pcb_sensor_error": { + "name": "Top PCB sensor error" + }, + "unknown_hw_error": { + "name": "Unknown HW error" + } + } }, - "window_detection": { - "name": "Window detection" + "soil_moisture": { + "name": "Soil moisture" }, - "valve_detection": { - "name": "Valve detection" + "summation_delivered": { + "name": "Summation delivered" }, - "heartbeat_indicator": { - "name": "Heartbeat indicator" + "summation_received": { + "name": "Summation received" }, - "linkage_alarm": { - "name": "Linkage alarm" + "surplus_flow": { + "name": "Surplus flow" }, - "buzzer_manual_mute": { - "name": "Buzzer manual mute" - }, - "buzzer_manual_alarm": { - "name": "Buzzer manual alarm" - }, - "external_window_sensor": { - "name": "External window sensor" - }, - "use_internal_window_detection": { - "name": "Use internal window detection" - }, - "mounting_mode": { - "name": "Mounting mode" - }, - "prioritize_external_temperature_sensor": { - "name": "Prioritize external temperature sensor" - }, - "heat_available": { - "name": "Heat available" - }, - "use_load_balancing": { - "name": "Use load balancing" - }, - "adaptation_run_enabled": { - "name": "Adaptation run enabled" - }, - "valve_on_off_1": { - "name": "Valve 1" - }, - "valve_on_off_2": { - "name": "Valve 2" - }, - "double_up_full": { - "name": "Double tap on - full" - }, - "open_window": { - "name": "Open window" - }, - "turbo_mode": { - "name": "Turbo mode" - }, - "detach_relay": { - "name": "Detach relay" - }, - "enable_siren": { - "name": "Enable siren" - }, - "find_switch": { - "name": "Distance switch" - }, - "display_enabled": { - "name": "Display enabled" - }, - "show_smiley": { - "name": "Show smiley" - }, - "on_only_when_dark": { - "name": "On only when dark" - }, - "mute_siren": { - "name": "Mute siren" - }, - "self_test_switch": { - "name": "Self-test" - }, - "output_switch": { - "name": "Output switch" - }, - "siren_on": { - "name": "Siren on" - }, - "enable_tamper_alarm": { - "name": "Enable tamper alarm" + "target_distance": { + "name": "Target distance" }, "temperature_alarm": { "name": "Temperature alarm" }, - "humidity_alarm": { - "name": "Humidity alarm" + "tier1_summation_delivered": { + "name": "Tier 1 summation delivered" }, - "silence_alarm": { - "name": "Silence alarm" + "tier2_summation_delivered": { + "name": "Tier 2 summation delivered" }, - "frost_protection": { - "name": "Frost protection" + "tier3_summation_delivered": { + "name": "Tier 3 summation delivered" }, - "factory_reset": { - "name": "Factory reset" + "tier4_summation_delivered": { + "name": "Tier 4 summation delivered" }, - "away_mode": { - "name": "Away mode" + "tier5_summation_delivered": { + "name": "Tier 5 summation delivered" }, - "schedule_enable": { - "name": "Schedule enable" + "tier6_summation_delivered": { + "name": "Tier 6 summation delivered" }, - "scale_protection": { - "name": "Scale protection" + "time_left": { + "name": "Time left" }, - "frost_lock": { - "name": "Frost lock" + "timer_state": { + "name": "Timer state" }, - "switch_enabled": { - "name": "Switch enabled" + "timer_time_left": { + "name": "Time left" }, - "total_flow_reset_switch": { - "name": "Total flow reset switch" + "todays_max_light_intensity": { + "name": "Today's max light intensity" }, - "touch_control": { - "name": "Touch control" + "total_active_power": { + "name": "Total power" }, - "sound_enabled": { - "name": "Sound enabled" + "total_power_factor": { + "name": "Total power factor" }, - "invert_relay": { - "name": "Invert relay" + "valve_adapt_status": { + "name": "Valve adaptation status" }, - "boost_heating": { - "name": "Boost heating" + "valve_duration": { + "name": "Irrigation duration" }, - "holiday_mode": { - "name": "Holiday mode" + "valve_position": { + "name": "Valve position" }, - "heating_stop": { - "name": "Heating stop" + "valve_status": { + "name": "Valve status" }, - "schedule_mode": { - "name": "Schedule mode" + "valve_status_1": { + "name": "Status 1" + }, + "valve_status_2": { + "name": "Status 2" + }, + "voc_index": { + "name": "VOC index" + }, + "water_flow": { + "name": "Water flow" + }, + "weight_dispensed_today": { + "name": "Weight dispensed today" + }, + "window_covering_type": { + "name": "Window covering type" + } + }, + "switch": { + "adaptation_run_enabled": { + "name": "Adaptation run enabled" }, "auto_clean": { "name": "Autoclean" }, - "test_mode": { - "name": "Test mode" - }, - "external_temperature_sensor": { - "name": "External temperature sensor" - }, "auto_relock": { "name": "Autorelock" }, + "aux_switch_scenes": { + "name": "Aux switch scenes" + }, + "away_mode": { + "name": "Away mode" + }, + "binding_off_to_on_sync_level": { + "name": "Binding off to on sync level" + }, + "boost_heating": { + "name": "Boost heating" + }, + "buzzer_manual_alarm": { + "name": "Buzzer manual alarm" + }, + "buzzer_manual_mute": { + "name": "Buzzer manual mute" + }, + "child_lock": { + "name": "Child lock" + }, + "detach_relay": { + "name": "Detach relay" + }, + "dimmer_mode": { + "name": "Dimmer mode" + }, + "disable_clear_notifications_double_tap": { + "name": "Disable config 2x tap to clear notifications" + }, + "disable_led": { + "name": "Disable LED" + }, + "display_enabled": { + "name": "Display enabled" + }, "distance_tracking": { "name": "Distance tracking" }, - "water_shortage_auto_close": { - "name": "Water shortage auto-close" + "double_tap_down_enabled": { + "name": "Double tap down enabled" + }, + "double_tap_up_enabled": { + "name": "Double tap up enabled" + }, + "double_up_full": { + "name": "Double tap on - full" + }, + "enable_siren": { + "name": "Enable siren" + }, + "enable_tamper_alarm": { + "name": "Enable tamper alarm" + }, + "external_temperature_sensor": { + "name": "External temperature sensor" + }, + "external_window_sensor": { + "name": "External window sensor" + }, + "factory_reset": { + "name": "Factory reset" + }, + "find_switch": { + "name": "Distance switch" + }, + "firmware_progress_led": { + "name": "Firmware progress LED" + }, + "flip_indicator_light": { + "name": "Flip indicator light" }, "frient_com_1": { "name": "COM 1" @@ -2161,8 +1621,128 @@ "frient_com_2": { "name": "COM 2" }, - "window_open": { - "name": "Window open" + "frost_lock": { + "name": "Frost lock" + }, + "frost_protection": { + "name": "Frost protection" + }, + "heartbeat_indicator": { + "name": "Heartbeat indicator" + }, + "heat_available": { + "name": "Heat available" + }, + "heating_stop": { + "name": "Heating stop" + }, + "holiday_mode": { + "name": "Holiday mode" + }, + "hooks_locked": { + "name": "Hooks locked" + }, + "humidity_alarm": { + "name": "Humidity alarm" + }, + "invert_relay": { + "name": "Invert relay" + }, + "invert_switch": { + "name": "Invert switch" + }, + "inverted": { + "name": "Inverted" + }, + "led_indicator": { + "name": "LED indicator" + }, + "linkage_alarm": { + "name": "Linkage alarm" + }, + "local_protection": { + "name": "Local protection" + }, + "mounting_mode": { + "name": "Mounting mode" + }, + "mute_siren": { + "name": "Mute siren" + }, + "on_only_when_dark": { + "name": "On only when dark" + }, + "one_led_mode": { + "name": "Only 1 LED mode" + }, + "open_window": { + "name": "Open window" + }, + "output_switch": { + "name": "Output switch" + }, + "power_outage_memory": { + "name": "Power outage memory" + }, + "prioritize_external_temperature_sensor": { + "name": "Prioritize external temperature sensor" + }, + "relay_click_in_on_off_mode": { + "name": "Disable relay click in on off mode" + }, + "scale_protection": { + "name": "Scale protection" + }, + "schedule_enable": { + "name": "Schedule enable" + }, + "schedule_mode": { + "name": "Schedule mode" + }, + "self_test_switch": { + "name": "Self-test" + }, + "show_smiley": { + "name": "Show smiley" + }, + "silence_alarm": { + "name": "Silence alarm" + }, + "siren_on": { + "name": "Siren on" + }, + "smart_bulb_mode": { + "name": "Smart bulb mode" + }, + "smart_fan_mode": { + "name": "Smart fan mode" + }, + "sound_enabled": { + "name": "Sound enabled" + }, + "switch": { + "name": "[%key:component::switch::title%]" + }, + "switch_enabled": { + "name": "Switch enabled" + }, + "temperature_alarm": { + "name": "Temperature alarm" + }, + "test_mode": { + "name": "Test mode" + }, + "total_flow_reset_switch": { + "name": "Total flow reset switch" + }, + "touch_control": { + "name": "Touch control" + }, + "trigger_indicator": { + "name": "LED trigger indicator" + }, + "turbo_mode": { + "name": "Turbo mode" }, "turn_on_led_when_off": { "name": "Turn on LED when off" @@ -2170,12 +1750,432 @@ "turn_on_led_when_on": { "name": "Turn on LED when on" }, - "dimmer_mode": { - "name": "Dimmer mode" + "use_internal_window_detection": { + "name": "Use internal window detection" }, - "flip_indicator_light": { - "name": "Flip indicator light" + "use_load_balancing": { + "name": "Use load balancing" + }, + "valve_detection": { + "name": "Valve detection" + }, + "valve_on_off_1": { + "name": "Valve 1" + }, + "valve_on_off_2": { + "name": "Valve 2" + }, + "water_shortage_auto_close": { + "name": "Water shortage auto-close" + }, + "window_detection": { + "name": "Window detection" + }, + "window_detection_function": { + "name": "Invert window detection" + }, + "window_open": { + "name": "Window open" } } + }, + "issues": { + "inconsistent_network_settings": { + "fix_flow": { + "step": { + "init": { + "description": "Your Zigbee adapter's network settings are inconsistent with the most recent network backup. This usually happens if another Zigbee integration (e.g. Zigbee2MQTT or deCONZ) has overwritten them.\n\n{diff}\n\nIf you did not intentionally change your network settings, restore from the most recent backup: your devices will not work otherwise.", + "menu_option_descriptions": { + "restore_old_settings": "This will restore your network settings back to the last working state.", + "use_new_settings": "This will keep the new settings written to the stick. Only choose this option if you have intentionally changed settings." + }, + "menu_options": { + "restore_old_settings": "Restore backup (recommended)", + "use_new_settings": "Keep the new settings" + }, + "title": "[%key:component::zha::issues::inconsistent_network_settings::title%]" + } + } + }, + "title": "Zigbee network settings have changed" + }, + "wrong_silabs_firmware_installed_nabucasa": { + "description": "Your Zigbee adapter was previously used with multiprotocol (Zigbee and Thread) and still has multiprotocol firmware installed: ({firmware_type}).\n\nTo run your adapter exclusively with ZHA, you need to install the Zigbee firmware:\n - Go to Settings > System > Hardware, select the device and select Configure.\n - Select the 'Migrate Zigbee to a new adapter' option and follow the instructions.", + "title": "Zigbee adapter with multiprotocol firmware detected" + }, + "wrong_silabs_firmware_installed_other": { + "description": "Your Zigbee adapter was previously used with multiprotocol (Zigbee and Thread) and still has multiprotocol firmware installed: ({firmware_type}).\n\nTo run your adapter exclusively with ZHA, you need to install Zigbee firmware. Follow your Zigbee adapter manufacturer's instructions for how to do this.", + "title": "[%key:component::zha::issues::wrong_silabs_firmware_installed_nabucasa::title%]" + } + }, + "options": { + "abort": { + "cannot_resolve_path": "[%key:component::zha::config::abort::cannot_resolve_path%]", + "cannot_restore_backup": "[%key:component::zha::config::abort::cannot_restore_backup%]", + "cannot_restore_backup_no_ieee_confirm": "[%key:component::zha::config::abort::cannot_restore_backup_no_ieee_confirm%]", + "not_zha_device": "[%key:component::zha::config::abort::not_zha_device%]", + "reconfigure_successful": "[%key:component::zha::config::abort::reconfigure_successful%]", + "usb_probe_failed": "[%key:component::zha::config::abort::usb_probe_failed%]", + "wrong_firmware_installed": "[%key:component::zha::config::abort::wrong_firmware_installed%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "invalid_backup_json": "[%key:component::zha::config::error::invalid_backup_json%]" + }, + "flow_title": "[%key:component::zha::config::flow_title%]", + "step": { + "choose_automatic_backup": { + "data": { + "choose_automatic_backup": "[%key:component::zha::config::step::choose_automatic_backup::data::choose_automatic_backup%]" + }, + "description": "[%key:component::zha::config::step::choose_automatic_backup::description%]", + "title": "[%key:component::zha::config::step::choose_automatic_backup::title%]" + }, + "choose_formation_strategy": { + "description": "[%key:component::zha::config::step::choose_formation_strategy::description%]", + "menu_option_descriptions": { + "choose_automatic_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::choose_automatic_backup%]", + "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", + "form_new_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::form_new_network%]", + "reuse_settings": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::reuse_settings%]", + "upload_manual_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_option_descriptions::upload_manual_backup%]" + }, + "menu_options": { + "choose_automatic_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::choose_automatic_backup%]", + "form_initial_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::form_initial_network%]", + "form_new_network": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::form_new_network%]", + "reuse_settings": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::reuse_settings%]", + "upload_manual_backup": "[%key:component::zha::config::step::choose_formation_strategy::menu_options::upload_manual_backup%]" + }, + "title": "[%key:component::zha::config::step::choose_formation_strategy::title%]" + }, + "choose_migration_strategy": { + "description": "[%key:component::zha::config::step::choose_migration_strategy::description%]", + "menu_option_descriptions": { + "migration_strategy_advanced": "[%key:component::zha::config::step::choose_migration_strategy::menu_option_descriptions::migration_strategy_advanced%]", + "migration_strategy_recommended": "[%key:component::zha::config::step::choose_migration_strategy::menu_option_descriptions::migration_strategy_recommended%]" + }, + "menu_options": { + "migration_strategy_advanced": "[%key:component::zha::config::step::choose_migration_strategy::menu_options::migration_strategy_advanced%]", + "migration_strategy_recommended": "[%key:component::zha::config::step::choose_migration_strategy::menu_options::migration_strategy_recommended%]" + }, + "title": "[%key:component::zha::config::step::choose_migration_strategy::title%]" + }, + "choose_serial_port": { + "data": { + "path": "[%key:component::zha::config::step::choose_serial_port::data::path%]" + }, + "description": "[%key:component::zha::config::step::choose_serial_port::description%]", + "title": "[%key:component::zha::config::step::choose_serial_port::title%]" + }, + "init": { + "description": "A backup will be performed and ZHA will be stopped. Do you wish to continue?", + "title": "Reconfigure ZHA" + }, + "intent_migrate": { + "description": "Before plugging in your new adapter, your old adapter needs to be reset. An automatic backup will be performed. If you are using a combined Z-Wave and Zigbee adapter like the HUSBZB-1, this will only reset the Zigbee portion.\n\n*Note: if you are migrating from a **ConBee/RaspBee**, make sure it is running firmware `0x26720700` or newer! Otherwise, some devices may not be controllable after migrating until they are power cycled.*\n\nDo you wish to continue?", + "title": "[%key:component::zha::options::step::prompt_migrate_or_reconfigure::menu_options::intent_migrate%]" + }, + "manual_pick_radio_type": { + "data": { + "radio_type": "[%key:component::zha::config::step::manual_pick_radio_type::data::radio_type%]" + }, + "description": "[%key:component::zha::config::step::manual_pick_radio_type::description%]", + "title": "[%key:component::zha::config::step::manual_pick_radio_type::data::radio_type%]" + }, + "manual_port_config": { + "data": { + "baudrate": "[%key:component::zha::config::step::manual_port_config::data::baudrate%]", + "flow_control": "[%key:component::zha::config::step::manual_port_config::data::flow_control%]", + "path": "[%key:component::zha::config::step::manual_port_config::data::path%]" + }, + "description": "[%key:component::zha::config::step::manual_port_config::description%]", + "title": "[%key:component::zha::config::step::manual_port_config::title%]" + }, + "maybe_confirm_ezsp_restore": { + "data": { + "overwrite_coordinator_ieee": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::data::overwrite_coordinator_ieee%]" + }, + "description": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::description%]", + "title": "[%key:component::zha::config::step::maybe_confirm_ezsp_restore::title%]" + }, + "prompt_migrate_or_reconfigure": { + "description": "Are you migrating to a new adapter or re-configuring the current adapter?", + "menu_option_descriptions": { + "intent_migrate": "This will help you migrate your Zigbee network from your old adapter to a new one.", + "intent_reconfigure": "This will let you change the serial port for your current Zigbee adapter." + }, + "menu_options": { + "intent_migrate": "Migrate to a new adapter", + "intent_reconfigure": "Re-configure the current adapter" + }, + "title": "Migrate or re-configure" + }, + "upload_manual_backup": { + "data": { + "uploaded_backup_file": "[%key:component::zha::config::step::upload_manual_backup::data::uploaded_backup_file%]" + }, + "description": "[%key:component::zha::config::step::upload_manual_backup::description%]", + "title": "[%key:component::zha::config::step::upload_manual_backup::title%]" + }, + "verify_radio": { + "description": "[%key:component::zha::config::step::verify_radio::description%]", + "title": "[%key:component::zha::config::step::verify_radio::title%]" + } + } + }, + "services": { + "clear_lock_user_code": { + "description": "Clears a user code from a lock.", + "fields": { + "code_slot": { + "description": "Code slot to clear code from.", + "name": "Code slot" + } + }, + "name": "Clear lock user" + }, + "disable_lock_user_code": { + "description": "Disables a user code on a lock.", + "fields": { + "code_slot": { + "description": "Code slot to disable.", + "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]" + } + }, + "name": "Disable lock user" + }, + "enable_lock_user_code": { + "description": "Enables a user code on a lock.", + "fields": { + "code_slot": { + "description": "Code slot to enable.", + "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]" + } + }, + "name": "Enable lock user" + }, + "issue_zigbee_cluster_command": { + "description": "Issues a command on the specified cluster on the specified entity.", + "fields": { + "args": { + "description": "Arguments to pass to the command.", + "name": "Args" + }, + "cluster_id": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::description%]", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::name%]" + }, + "cluster_type": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::description%]", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::name%]" + }, + "command": { + "description": "ID of the command to execute.", + "name": "Command" + }, + "command_type": { + "description": "Type of the command to execute.", + "name": "Command Type" + }, + "endpoint_id": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::endpoint_id::description%]", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::endpoint_id::name%]" + }, + "ieee": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + }, + "manufacturer": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]" + }, + "params": { + "description": "Parameters to pass to the command.", + "name": "Params" + } + }, + "name": "Issue Zigbee cluster command" + }, + "issue_zigbee_group_command": { + "description": "Issues a command on the specified cluster on the specified group.", + "fields": { + "args": { + "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::args::description%]", + "name": "Args" + }, + "cluster_id": { + "description": "ZCL cluster to send command to.", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::name%]" + }, + "cluster_type": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::description%]", + "name": "Cluster type" + }, + "command": { + "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::command::description%]", + "name": "Command" + }, + "group": { + "description": "Hexadecimal address of the group.", + "name": "Group" + }, + "manufacturer": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]" + } + }, + "name": "Issue Zigbee group command" + }, + "permit": { + "description": "Allows nodes to join the Zigbee network.", + "fields": { + "duration": { + "description": "Time to permit joins.", + "name": "Duration" + }, + "ieee": { + "description": "IEEE address of the node permitting new joins.", + "name": "IEEE" + }, + "install_code": { + "description": "Install code of the joining device (must be combined with the 'Source IEEE' field).", + "name": "Install code" + }, + "qr_code": { + "description": "Provides both the IEEE address and the install code of the joining device (different between vendors).", + "name": "QR code" + }, + "source_ieee": { + "description": "IEEE address of the joining device (must be combined with the 'Install code' field).", + "name": "Source IEEE" + } + }, + "name": "Permit" + }, + "reconfigure_device": { + "description": "Reconfigures a ZHA device (heal device). Use this if you are having issues with the device. If the device in question is a battery-powered device, ensure it is awake and accepting commands when you use this action.", + "fields": { + "ieee": { + "description": "IEEE address of the device to reconfigure.", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + } + }, + "name": "Reconfigure device" + }, + "remove": { + "description": "Removes a node from the Zigbee network.", + "fields": { + "ieee": { + "description": "IEEE address of the node to remove.", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + } + }, + "name": "Remove" + }, + "set_lock_user_code": { + "description": "Sets a user code on a lock.", + "fields": { + "code_slot": { + "description": "Code slot to set the code in.", + "name": "[%key:component::zha::services::clear_lock_user_code::fields::code_slot::name%]" + }, + "user_code": { + "description": "Code to set.", + "name": "Code" + } + }, + "name": "Set lock user code" + }, + "set_zigbee_cluster_attribute": { + "description": "Sets an attribute value for the specified cluster on the specified entity.", + "fields": { + "attribute": { + "description": "ID of the attribute to set.", + "name": "Attribute" + }, + "cluster_id": { + "description": "ZCL cluster to retrieve attributes for.", + "name": "Cluster ID" + }, + "cluster_type": { + "description": "Type of the cluster.", + "name": "Cluster type" + }, + "endpoint_id": { + "description": "Endpoint ID for the cluster.", + "name": "Endpoint ID" + }, + "ieee": { + "description": "IEEE address for the device.", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + }, + "manufacturer": { + "description": "Manufacturer code. Use a value of \"-1\" to force no code to be set.", + "name": "Manufacturer" + }, + "value": { + "description": "Value to write to the attribute.", + "name": "Value" + } + }, + "name": "Set Zigbee cluster attribute" + }, + "warning_device_squawk": { + "description": "This action uses the WD capabilities to emit a quick audible/visible pulse called a \"squawk\". The squawk command has no effect if the WD is currently active (warning in progress).", + "fields": { + "ieee": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + }, + "level": { + "description": "The squawk level field is used as a 2-bit enumeration, and determines the intensity of audible squawk sound as shown in Table 8-26 of the ZCL spec - Squawk Level Field Values.", + "name": "Level" + }, + "mode": { + "description": "The Squawk Mode field is used as a 4-bit enumeration, and can have one of the values shown in Table 8-24 of the ZCL spec - Squawk Mode Field. The exact operation of each mode (how the WD “squawks”) is implementation specific.", + "name": "[%key:common::config_flow::data::mode%]" + }, + "strobe": { + "description": "The strobe field is used as a Boolean, and determines if the visual indication is also required in addition to the audible squawk, as shown in Table 8-25 of the ZCL spec - Strobe Bit.", + "name": "Strobe" + } + }, + "name": "Warning device squawk" + }, + "warning_device_warn": { + "description": "This action starts the operation of the warning device. The warning device alerts the surrounding area by audible (siren) and visual (strobe) signals.", + "fields": { + "duration": { + "description": "Requested duration of warning, in seconds (16 bit). If both Strobe and Warning Mode are \"0\" this field is ignored.", + "name": "Duration" + }, + "duty_cycle": { + "description": "Indicates the length of the flash cycle. This allows you to vary the flash duration for different alarm types (e.g., fire, police, burglar). The valid range is 0-100 in increments of 10. All other values must be rounded to the nearest valid value. Strobe calculates a duty cycle over a duration of one second. The ON state must precede the OFF state. For example, if the Strobe Duty Cycle field specifies “40,”, then the strobe flashes ON for 4/10ths of a second and then turns OFF for 6/10ths of a second.", + "name": "Duty cycle" + }, + "ieee": { + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]", + "name": "[%key:component::zha::services::permit::fields::ieee::name%]" + }, + "intensity": { + "description": "Indicates the intensity of the strobe as shown in Table 8-23 of the ZCL spec. This attribute is designed to vary the output of the strobe (i.e., brightness) and not its frequency, which is detailed in section 8.4.2.3.1.6 of the ZCL spec.", + "name": "Intensity" + }, + "level": { + "description": "The Siren Level field is used as a 2-bit enumeration, and indicates the intensity of audible squawk sound as shown in Table 8-22 of the ZCL spec.", + "name": "Level" + }, + "mode": { + "description": "The Warning Mode field is used as a 4-bit enumeration, can have one of the values 0-6 defined below in table 8-20 of the ZCL spec. The exact behavior of the warning device in each mode is according to the relevant security standards.", + "name": "[%key:common::config_flow::data::mode%]" + }, + "strobe": { + "description": "The Strobe field is used as a 2-bit enumeration, and determines if the visual indication is required in addition to the audible siren, as indicated in Table 8-21 of the ZCL spec. \"0\" means no strobe, \"1\" means strobe. If the strobe field is “1” and the Warning Mode is “0” (“Stop”), then only the strobe is activated.", + "name": "[%key:component::zha::services::warning_device_squawk::fields::strobe::name%]" + } + }, + "name": "Warning device starts alert" + } } } diff --git a/homeassistant/components/zimi/strings.json b/homeassistant/components/zimi/strings.json index e1c7944b25a..27c6b31371c 100644 --- a/homeassistant/components/zimi/strings.json +++ b/homeassistant/components/zimi/strings.json @@ -1,13 +1,29 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, + "error": { + "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", + "connection_refused": "Connection refused", + "invalid_host": "[%key:common::config_flow::error::invalid_host%]", + "timeout": "[%key:common::config_flow::error::timeout_connect%]", + "unknown": "[%key:common::config_flow::error::unknown%]" + }, "step": { - "user": { - "title": "Zimi - Discover device(s)", - "description": "Discover and auto-configure Zimi Cloud Connect device." + "manual": { + "data": { + "host": "[%key:common::config_flow::data::host%]", + "port": "[%key:common::config_flow::data::port%]" + }, + "data_description": { + "host": "[%key:component::zimi::config::step::selection::data_description::host%]", + "port": "[%key:component::zimi::config::step::selection::data_description::port%]" + }, + "description": "Enter details of your Zimi Cloud Connect device.", + "title": "Zimi - Configure device" }, "selection": { - "title": "Zimi - Select device", - "description": "Select Zimi Cloud Connect device to configure.", "data": { "host": "[%key:common::config_flow::data::host%]", "port": "[%key:common::config_flow::data::port%]", @@ -17,30 +33,14 @@ "host": "Mandatory - ZCC IP address.", "port": "Mandatory - ZCC port number (default=5003).", "selected_host_and_port": "Selected ZCC IP address and port number" - } - }, - "manual": { - "title": "Zimi - Configure device", - "description": "Enter details of your Zimi Cloud Connect device.", - "data": { - "host": "[%key:common::config_flow::data::host%]", - "port": "[%key:common::config_flow::data::port%]" }, - "data_description": { - "host": "[%key:component::zimi::config::step::selection::data_description::host%]", - "port": "[%key:component::zimi::config::step::selection::data_description::port%]" - } + "description": "Select Zimi Cloud Connect device to configure.", + "title": "Zimi - Select device" + }, + "user": { + "description": "Discover and auto-configure Zimi Cloud Connect device.", + "title": "Zimi - Discover device(s)" } - }, - "error": { - "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "timeout": "[%key:common::config_flow::error::timeout_connect%]", - "invalid_host": "[%key:common::config_flow::error::invalid_host%]", - "connection_refused": "Connection refused" - }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" } }, "entity": { diff --git a/homeassistant/components/zodiac/icons.json b/homeassistant/components/zodiac/icons.json index 2bb2f614f85..eeb514711da 100644 --- a/homeassistant/components/zodiac/icons.json +++ b/homeassistant/components/zodiac/icons.json @@ -4,17 +4,17 @@ "sign": { "default": "mdi:zodiac-aries", "state": { - "taurus": "mdi:zodiac-taurus", - "gemini": "mdi:zodiac-gemini", - "cancer": "mdi:zodiac-cancer", - "leo": "mdi:zodiac-leo", - "virgo": "mdi:zodiac-virgo", - "libra": "mdi:zodiac-libra", - "scorpio": "mdi:zodiac-scorpio", - "sagittarius": "mdi:zodiac-sagittarius", - "capricorn": "mdi:zodiac-capricorn", "aquarius": "mdi:zodiac-aquarius", - "pisces": "mdi:zodiac-pisces" + "cancer": "mdi:zodiac-cancer", + "capricorn": "mdi:zodiac-capricorn", + "gemini": "mdi:zodiac-gemini", + "leo": "mdi:zodiac-leo", + "libra": "mdi:zodiac-libra", + "pisces": "mdi:zodiac-pisces", + "sagittarius": "mdi:zodiac-sagittarius", + "scorpio": "mdi:zodiac-scorpio", + "taurus": "mdi:zodiac-taurus", + "virgo": "mdi:zodiac-virgo" } } } diff --git a/homeassistant/components/zodiac/strings.json b/homeassistant/components/zodiac/strings.json index b4eacef7435..2c534cef989 100644 --- a/homeassistant/components/zodiac/strings.json +++ b/homeassistant/components/zodiac/strings.json @@ -1,13 +1,12 @@ { - "title": "Zodiac", "config": { + "abort": { + "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" + }, "step": { "user": { "description": "[%key:common::config_flow::description::confirm_setup%]" } - }, - "abort": { - "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, "entity": { @@ -29,5 +28,6 @@ } } } - } + }, + "title": "Zodiac" } diff --git a/homeassistant/components/zone/strings.json b/homeassistant/components/zone/strings.json index a17059c5eab..42183a65dea 100644 --- a/homeassistant/components/zone/strings.json +++ b/homeassistant/components/zone/strings.json @@ -1,8 +1,8 @@ { "services": { "reload": { - "name": "[%key:common::action::reload%]", - "description": "Reloads zones from the YAML-configuration." + "description": "Reloads zones from the YAML-configuration.", + "name": "[%key:common::action::reload%]" } } } diff --git a/homeassistant/components/zoneminder/strings.json b/homeassistant/components/zoneminder/strings.json index 34e8b845472..dd51f3398f0 100644 --- a/homeassistant/components/zoneminder/strings.json +++ b/homeassistant/components/zoneminder/strings.json @@ -1,14 +1,14 @@ { "services": { "set_run_state": { - "name": "Set run state", "description": "Sets the ZoneMinder run state.", "fields": { "name": { - "name": "[%key:common::config_flow::data::name%]", - "description": "The string name of the ZoneMinder run state to set as active." + "description": "The string name of the ZoneMinder run state to set as active.", + "name": "[%key:common::config_flow::data::name%]" } - } + }, + "name": "Set run state" } } } diff --git a/homeassistant/components/zwave_js/manifest.json b/homeassistant/components/zwave_js/manifest.json index 153e8e6a7fe..ea755427b0e 100644 --- a/homeassistant/components/zwave_js/manifest.json +++ b/homeassistant/components/zwave_js/manifest.json @@ -12,22 +12,22 @@ "requirements": ["pyserial==3.5", "zwave-js-server-python==0.67.1"], "usb": [ { - "vid": "0658", + "known_devices": ["Aeotec Z-Stick Gen5+", "Z-WaveMe UZB"], "pid": "0200", - "known_devices": ["Aeotec Z-Stick Gen5+", "Z-WaveMe UZB"] + "vid": "0658" }, { - "vid": "10C4", - "pid": "8A2A", "description": "*z-wave*", - "known_devices": ["Nortek HUSBZB-1"] + "known_devices": ["Nortek HUSBZB-1"], + "pid": "8A2A", + "vid": "10C4" }, { - "vid": "303A", - "pid": "4001", "description": "*nabu casa zwa-2*", + "known_devices": ["Nabu Casa Connect ZWA-2"], "manufacturer": "nabu casa", - "known_devices": ["Nabu Casa Connect ZWA-2"] + "pid": "4001", + "vid": "303A" } ], "zeroconf": ["_zwave-js-server._tcp.local."] diff --git a/homeassistant/components/zwave_js/strings.json b/homeassistant/components/zwave_js/strings.json index 46cb9fa5073..cc8186779b1 100644 --- a/homeassistant/components/zwave_js/strings.json +++ b/homeassistant/components/zwave_js/strings.json @@ -17,12 +17,12 @@ "discovery_requires_supervisor": "Discovery requires the Home Assistant Supervisor.", "migration_low_sdk_version": "The SDK version of the old adapter is lower than {ok_sdk_version}. This means it's not possible to migrate the non-volatile memory (NVM) of the old adapter to another adapter.\n\nCheck the documentation on the manufacturer support pages of the old adapter, if it's possible to upgrade the firmware of the old adapter to a version that is built with SDK version {ok_sdk_version} or higher.", "migration_successful": "Migration successful.", + "not_hassio": "ESPHome discovery requires Home Assistant to configure the Z-Wave add-on.", "not_zwave_device": "Discovered device is not a Z-Wave device.", "not_zwave_js_addon": "Discovered add-on is not the official Z-Wave add-on.", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "reset_failed": "Failed to reset adapter.", - "usb_ports_failed": "Failed to get USB devices.", - "not_hassio": "ESPHome discovery requires Home Assistant to configure the Z-Wave add-on." + "usb_ports_failed": "Failed to get USB devices." }, "error": { "addon_start_failed": "Failed to start the Z-Wave add-on. Check the configuration.", @@ -32,37 +32,18 @@ }, "flow_title": "{name}", "progress": { - "install_addon": "Installation can take several minutes", - "start_addon": "Starting add-on", "backup_nvm": "Please wait while the network backup completes", - "restore_nvm": "Please wait while the network restore completes" + "install_addon": "Installation can take several minutes", + "restore_nvm": "Please wait while the network restore completes", + "start_addon": "Starting add-on" }, "step": { - "configure_addon_user": { + "choose_serial_port": { "data": { - "socket_path": "Socket device path", + "socket_path": "[%key:component::zwave_js::config::step::configure_addon_user::data::socket_path%]", "usb_path": "[%key:common::config_flow::data::usb_path%]" }, - "description": "Select your Z-Wave adapter", - "title": "Enter the Z-Wave add-on configuration" - }, - "network_type": { - "data": { - "network_type": "Is your network new or does it already exist?" - }, - "title": "Z-Wave network" - }, - "configure_security_keys": { - "data": { - "lr_s2_access_control_key": "Long Range S2 Access Control Key", - "lr_s2_authenticated_key": "Long Range S2 Authenticated Key", - "s0_legacy_key": "S0 Key (Legacy)", - "s2_access_control_key": "S2 Access Control Key", - "s2_authenticated_key": "S2 Authenticated Key", - "s2_unauthenticated_key": "S2 Unauthenticated Key" - }, - "description": "Enter the security keys for your existing Z-Wave network", - "title": "Security keys" + "title": "Select your Z-Wave device" }, "configure_addon_reconfigure": { "data": { @@ -78,29 +59,71 @@ "description": "[%key:component::zwave_js::config::step::configure_addon_user::description%]", "title": "[%key:component::zwave_js::config::step::configure_addon_user::title%]" }, + "configure_addon_user": { + "data": { + "socket_path": "Socket device path", + "usb_path": "[%key:common::config_flow::data::usb_path%]" + }, + "description": "Select your Z-Wave adapter", + "title": "Enter the Z-Wave add-on configuration" + }, + "configure_security_keys": { + "data": { + "lr_s2_access_control_key": "Long Range S2 Access Control Key", + "lr_s2_authenticated_key": "Long Range S2 Authenticated Key", + "s0_legacy_key": "S0 Key (Legacy)", + "s2_access_control_key": "S2 Access Control Key", + "s2_authenticated_key": "S2 Authenticated Key", + "s2_unauthenticated_key": "S2 Unauthenticated Key" + }, + "description": "Enter the security keys for your existing Z-Wave network", + "title": "Security keys" + }, + "confirm_usb_migration": { + "description": "You are about to migrate your Z-Wave network from the old adapter to the new adapter {usb_title}. This will take a backup of the network from the old adapter and restore the network to the new adapter.\n\nPress Submit to continue with the migration.", + "title": "Migrate to a new adapter" + }, "hassio_confirm": { "description": "Do you want to set up the Z-Wave integration with the Z-Wave add-on?" }, "install_addon": { "title": "Installing add-on" }, + "installation_type": { + "description": "In a few steps, we're going to set up your adapter. Home Assistant can automatically install and configure the recommended Z-Wave setup, or you can customize it.", + "menu_options": { + "intent_custom": "Custom installation", + "intent_recommended": "Recommended installation" + }, + "title": "Set up Z-Wave" + }, + "instruct_unplug": { + "description": "Backup saved to \"{file_path}\"\n\nYour old adapter has not been reset. You should now unplug it to prevent it from interfering with the new adapter.\n\nPlease make sure your new adapter is plugged in before continuing.", + "title": "Unplug your old adapter" + }, "manual": { - "description": "The Z-Wave integration requires a running Z-Wave Server. If you don't already have that set up, please read the [instructions]({server_instructions}) in our documentation.\n\nWhen you have a Z-Wave Server running, enter its URL below to allow the integration to connect.", "data": { "url": "[%key:common::config_flow::data::url%]" }, "data_description": { "url": "The URL of the Z-Wave Server WebSocket API, e.g. {example_server_url}" - } + }, + "description": "The Z-Wave integration requires a running Z-Wave Server. If you don't already have that set up, please read the [instructions]({server_instructions}) in our documentation.\n\nWhen you have a Z-Wave Server running, enter its URL below to allow the integration to connect." }, "manual_reconfigure": { - "description": "[%key:component::zwave_js::config::step::manual::description%]", "data": { "url": "[%key:common::config_flow::data::url%]" }, "data_description": { "url": "[%key:component::zwave_js::config::step::manual::data_description::url%]" - } + }, + "description": "[%key:component::zwave_js::config::step::manual::description%]" + }, + "network_type": { + "data": { + "network_type": "Is your network new or does it already exist?" + }, + "title": "Z-Wave network" }, "on_supervisor": { "data": { @@ -116,62 +139,39 @@ "description": "[%key:component::zwave_js::config::step::on_supervisor::description%]", "title": "[%key:component::zwave_js::config::step::on_supervisor::title%]" }, + "reconfigure": { + "description": "Are you migrating to a new adapter or re-configuring the current adapter?", + "menu_option_descriptions": { + "intent_migrate": "This will move your Z-Wave network to a new adapter.", + "intent_reconfigure": "This will let you change the adapter configuration." + }, + "menu_options": { + "intent_migrate": "Migrate to a new adapter", + "intent_reconfigure": "Re-configure the current adapter" + }, + "title": "Migrate or re-configure" + }, + "restore_failed": { + "description": "Your Z-Wave network could not be restored to the new adapter. This means that your Z-Wave devices are not connected to Home Assistant.\n\nThe backup is saved to ”{file_path}”\n\n'<'a href=\"{file_url}\" download=\"{file_name}\"'>'Download backup file'<'/a'>'", + "submit": "Try again", + "title": "Restoring unsuccessful" + }, "rf_region": { - "title": "Z-Wave region", - "description": "Select the RF region for your Z-Wave network.", "data": { "rf_region": "RF region" }, "data_description": { "rf_region": "The radio frequency region for your Z-Wave network. This must match the region of your Z-Wave devices." - } + }, + "description": "Select the RF region for your Z-Wave network.", + "title": "Z-Wave region" }, "start_addon": { "title": "Configuring add-on" }, - "confirm_usb_migration": { - "description": "You are about to migrate your Z-Wave network from the old adapter to the new adapter {usb_title}. This will take a backup of the network from the old adapter and restore the network to the new adapter.\n\nPress Submit to continue with the migration.", - "title": "Migrate to a new adapter" - }, "zeroconf_confirm": { "description": "Do you want to add the Z-Wave Server with home ID {home_id} found at {url} to Home Assistant?", "title": "Discovered Z-Wave Server" - }, - "reconfigure": { - "title": "Migrate or re-configure", - "description": "Are you migrating to a new adapter or re-configuring the current adapter?", - "menu_options": { - "intent_migrate": "Migrate to a new adapter", - "intent_reconfigure": "Re-configure the current adapter" - }, - "menu_option_descriptions": { - "intent_migrate": "This will move your Z-Wave network to a new adapter.", - "intent_reconfigure": "This will let you change the adapter configuration." - } - }, - "instruct_unplug": { - "title": "Unplug your old adapter", - "description": "Backup saved to \"{file_path}\"\n\nYour old adapter has not been reset. You should now unplug it to prevent it from interfering with the new adapter.\n\nPlease make sure your new adapter is plugged in before continuing." - }, - "restore_failed": { - "title": "Restoring unsuccessful", - "description": "Your Z-Wave network could not be restored to the new adapter. This means that your Z-Wave devices are not connected to Home Assistant.\n\nThe backup is saved to ”{file_path}”\n\n'<'a href=\"{file_url}\" download=\"{file_name}\"'>'Download backup file'<'/a'>'", - "submit": "Try again" - }, - "choose_serial_port": { - "data": { - "socket_path": "[%key:component::zwave_js::config::step::configure_addon_user::data::socket_path%]", - "usb_path": "[%key:common::config_flow::data::usb_path%]" - }, - "title": "Select your Z-Wave device" - }, - "installation_type": { - "title": "Set up Z-Wave", - "description": "In a few steps, we're going to set up your adapter. Home Assistant can automatically install and configure the recommended Z-Wave setup, or you can customize it.", - "menu_options": { - "intent_recommended": "Recommended installation", - "intent_custom": "Custom installation" - } } } }, @@ -190,16 +190,6 @@ "node_status": "Node status", "value": "Current value of a Z-Wave Value" }, - "trigger_type": { - "event.notification.entry_control": "Sent an Entry Control notification", - "event.notification.notification": "Sent a notification", - "event.value_notification.basic": "Basic CC event on {subtype}", - "event.value_notification.central_scene": "Central Scene action on {subtype}", - "event.value_notification.scene_activation": "Scene Activation on {subtype}", - "state.node_status": "Node status changed", - "zwave_js.value_updated.config_parameter": "Value change on config parameter {subtype}", - "zwave_js.value_updated.value": "Value change on a Z-Wave Value" - }, "extra_fields": { "code_slot": "Code slot", "command_class": "Command class", @@ -220,6 +210,16 @@ "usercode": "Usercode", "value": "Value", "wait_for_result": "Wait for result" + }, + "trigger_type": { + "event.notification.entry_control": "Sent an Entry Control notification", + "event.notification.notification": "Sent a notification", + "event.value_notification.basic": "Basic CC event on {subtype}", + "event.value_notification.central_scene": "Central Scene action on {subtype}", + "event.value_notification.scene_activation": "Scene Activation on {subtype}", + "state.node_status": "Node status changed", + "zwave_js.value_updated.config_parameter": "Value change on config parameter {subtype}", + "zwave_js.value_updated.value": "Value change on a Z-Wave Value" } }, "entity": { @@ -327,6 +327,14 @@ "title": "An unknown adapter was detected" } }, + "selector": { + "network_type": { + "options": { + "existing": "It already exists", + "new": "It's new" + } + } + }, "services": { "bulk_set_partial_config_parameters": { "description": "Allows for bulk setting partial parameters. Useful when multiple partial parameters have to be set at the same time.", @@ -664,13 +672,5 @@ }, "name": "Set a value (advanced)" } - }, - "selector": { - "network_type": { - "options": { - "new": "It's new", - "existing": "It already exists" - } - } } } diff --git a/homeassistant/components/zwave_me/manifest.json b/homeassistant/components/zwave_me/manifest.json index e687f992afc..1549bbce6b5 100644 --- a/homeassistant/components/zwave_me/manifest.json +++ b/homeassistant/components/zwave_me/manifest.json @@ -9,8 +9,8 @@ "requirements": ["zwave-me-ws==0.4.3", "url-normalize==2.2.1"], "zeroconf": [ { - "type": "_hap._tcp.local.", - "name": "*z.wave-me*" + "name": "*z.wave-me*", + "type": "_hap._tcp.local." } ] } diff --git a/homeassistant/components/zwave_me/strings.json b/homeassistant/components/zwave_me/strings.json index 9bc0d2b8ab7..3b7e1033c09 100644 --- a/homeassistant/components/zwave_me/strings.json +++ b/homeassistant/components/zwave_me/strings.json @@ -1,20 +1,20 @@ { "config": { - "step": { - "user": { - "description": "Input IP address with port and access token of Z-Way server. To get the token go to the Z-Way user interface Smart Home UI > Menu > Settings > Users > Administrator > API token.\n\nExample of connecting to Z-Way running as an add-on:\nURL: {add_on_url}\nToken: {local_token}\n\nExample of connecting to Z-Way in the local network:\nURL: {local_url}\nToken: {local_token}\n\nExample of connecting to Z-Way via remote access find.z-wave.me:\nURL: {find_url}\nToken: {find_token}\n\nExample of connecting to Z-Way with a static public IP address:\nURL: {remote_url}\nToken: {local_token}\n\nWhen connecting via find.z-wave.me you need to use a token with a global scope (log in to Z-Way via find.z-wave.me for this).", - "data": { - "url": "[%key:common::config_flow::data::url%]", - "token": "[%key:common::config_flow::data::api_token%]" - } - } + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "no_valid_uuid_set": "[%key:component::zwave_me::config::error::no_valid_uuid_set%]" }, "error": { "no_valid_uuid_set": "No valid UUID set" }, - "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_valid_uuid_set": "[%key:component::zwave_me::config::error::no_valid_uuid_set%]" + "step": { + "user": { + "data": { + "token": "[%key:common::config_flow::data::api_token%]", + "url": "[%key:common::config_flow::data::url%]" + }, + "description": "Input IP address with port and access token of Z-Way server. To get the token go to the Z-Way user interface Smart Home UI > Menu > Settings > Users > Administrator > API token.\n\nExample of connecting to Z-Way running as an add-on:\nURL: {add_on_url}\nToken: {local_token}\n\nExample of connecting to Z-Way in the local network:\nURL: {local_url}\nToken: {local_token}\n\nExample of connecting to Z-Way via remote access find.z-wave.me:\nURL: {find_url}\nToken: {find_token}\n\nExample of connecting to Z-Way with a static public IP address:\nURL: {remote_url}\nToken: {local_token}\n\nWhen connecting via find.z-wave.me you need to use a token with a global scope (log in to Z-Way via find.z-wave.me for this)." + } } } } diff --git a/homeassistant/strings.json b/homeassistant/strings.json index dbd8b789e27..4e16b707771 100644 --- a/homeassistant/strings.json +++ b/homeassistant/strings.json @@ -52,8 +52,8 @@ "elevation": "Elevation", "email": "Email", "host": "Host", - "ip": "IP address", "implementation": "Application credentials", + "ip": "IP address", "language": "Language", "latitude": "Latitude", "llm_hass_api": "Control Home Assistant", @@ -157,13 +157,13 @@ "yes": "Yes" }, "time": { - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", "friday": "Friday", + "monday": "Monday", "saturday": "Saturday", - "sunday": "Sunday" + "sunday": "Sunday", + "thursday": "Thursday", + "tuesday": "Tuesday", + "wednesday": "Wednesday" } } }