homeassistant 2025.9.0b0__py3-none-any.whl → 2025.9.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant/components/accuweather/translations/sensor.sr-Latn.json +9 -0
- homeassistant/components/accuweather/translations/sensor.sr.json +9 -0
- homeassistant/components/accuweather/translations/sr-Latn.json +101 -0
- homeassistant/components/accuweather/translations/sr.json +101 -0
- homeassistant/components/ai_task/services.yaml +0 -1
- homeassistant/components/ai_task/translations/cs.json +25 -3
- homeassistant/components/ai_task/translations/el.json +22 -0
- homeassistant/components/ai_task/translations/fr.json +22 -0
- homeassistant/components/ai_task/translations/lt.json +22 -0
- homeassistant/components/ai_task/translations/pt.json +22 -0
- homeassistant/components/ai_task/translations/ru.json +22 -0
- homeassistant/components/ai_task/translations/sk.json +1 -1
- homeassistant/components/airgradient/translations/pt.json +1 -0
- homeassistant/components/airgradient/translations/ru.json +1 -0
- homeassistant/components/airos/manifest.json +1 -1
- homeassistant/components/airos/translations/lt.json +23 -1
- homeassistant/components/aladdin_connect/manifest.json +1 -1
- homeassistant/components/aladdin_connect/translations/ca.json +28 -0
- homeassistant/components/aladdin_connect/translations/cs.json +30 -1
- homeassistant/components/aladdin_connect/translations/el.json +30 -1
- homeassistant/components/aladdin_connect/translations/et.json +30 -1
- homeassistant/components/aladdin_connect/translations/fr.json +10 -0
- homeassistant/components/aladdin_connect/translations/ga.json +30 -1
- homeassistant/components/aladdin_connect/translations/lt.json +30 -1
- homeassistant/components/aladdin_connect/translations/nl.json +28 -0
- homeassistant/components/aladdin_connect/translations/pt.json +30 -1
- homeassistant/components/aladdin_connect/translations/ru.json +30 -1
- homeassistant/components/aladdin_connect/translations/sk.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hans.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hant.json +30 -1
- homeassistant/components/alarm_control_panel/translations/cs.json +3 -3
- homeassistant/components/alexa_devices/__init__.py +1 -1
- homeassistant/components/alexa_devices/const.py +9 -9
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/sensor.py +3 -0
- homeassistant/components/alexa_devices/services.py +3 -8
- homeassistant/components/alexa_devices/services.yaml +41 -476
- homeassistant/components/alexa_devices/strings.json +42 -469
- homeassistant/components/alexa_devices/translations/bg.json +0 -8
- homeassistant/components/alexa_devices/translations/cs.json +0 -477
- homeassistant/components/alexa_devices/translations/de.json +42 -469
- homeassistant/components/alexa_devices/translations/en-GB.json +1 -475
- homeassistant/components/alexa_devices/translations/en.json +42 -469
- homeassistant/components/alexa_devices/translations/es.json +0 -307
- homeassistant/components/alexa_devices/translations/et.json +42 -469
- homeassistant/components/alexa_devices/translations/fr.json +0 -9
- homeassistant/components/alexa_devices/translations/ga.json +0 -477
- homeassistant/components/alexa_devices/translations/lt.json +27 -293
- homeassistant/components/alexa_devices/translations/nl.json +0 -15
- homeassistant/components/alexa_devices/translations/pt.json +11 -477
- homeassistant/components/alexa_devices/translations/sk.json +0 -477
- homeassistant/components/alexa_devices/translations/sv.json +0 -8
- homeassistant/components/alexa_devices/translations/zh-Hans.json +0 -387
- homeassistant/components/alexa_devices/translations/zh-Hant.json +42 -469
- homeassistant/components/anthemav/translations/lt.json +2 -1
- homeassistant/components/asuswrt/bridge.py +18 -2
- homeassistant/components/asuswrt/manifest.json +1 -1
- homeassistant/components/august/translations/lt.json +26 -1
- homeassistant/components/august/translations/pt.json +26 -1
- homeassistant/components/backup/manager.py +2 -1
- homeassistant/components/backup/translations/de.json +1 -1
- homeassistant/components/bayesian/strings.json +1 -1
- homeassistant/components/bayesian/translations/cs.json +1 -1
- homeassistant/components/bayesian/translations/de.json +17 -17
- homeassistant/components/bayesian/translations/el.json +102 -0
- homeassistant/components/bayesian/translations/en-GB.json +1 -1
- homeassistant/components/bayesian/translations/en.json +3 -3
- homeassistant/components/bayesian/translations/et.json +1 -1
- homeassistant/components/bayesian/translations/fr.json +41 -0
- homeassistant/components/bayesian/translations/ga.json +48 -6
- homeassistant/components/bayesian/translations/lt.json +218 -0
- homeassistant/components/bayesian/translations/pl.json +7 -0
- homeassistant/components/bayesian/translations/pt.json +257 -0
- homeassistant/components/bayesian/translations/ru.json +257 -0
- homeassistant/components/bayesian/translations/sk.json +5 -5
- homeassistant/components/bayesian/translations/sv.json +11 -0
- homeassistant/components/bayesian/translations/zh-Hans.json +1 -1
- homeassistant/components/bayesian/translations/zh-Hant.json +1 -1
- homeassistant/components/bluetooth/__init__.py +1 -1
- homeassistant/components/bluetooth/manifest.json +3 -3
- homeassistant/components/braviatv/entity.py +10 -4
- homeassistant/components/bring/translations/sk.json +1 -1
- homeassistant/components/buienradar/translations/sr-Latn.json +128 -0
- homeassistant/components/buienradar/translations/sr.json +128 -0
- homeassistant/components/button/translations/ru.json +1 -1
- homeassistant/components/camera/translations/ru.json +2 -2
- homeassistant/components/conversation/manifest.json +1 -1
- homeassistant/components/cover/translations/mk.json +13 -5
- homeassistant/components/cover/translations/pl.json +1 -1
- homeassistant/components/deconz/translations/ga.json +19 -1
- homeassistant/components/device_tracker/translations/ga.json +9 -0
- homeassistant/components/devolo_home_control/translations/lt.json +3 -0
- homeassistant/components/devolo_home_network/translations/lt.json +3 -1
- homeassistant/components/devolo_home_network/translations/ru.json +3 -0
- homeassistant/components/dominos/translations/ru.json +2 -0
- homeassistant/components/downloader/translations/sk.json +1 -1
- homeassistant/components/dsmr/translations/ga.json +8 -0
- homeassistant/components/dsmr_reader/translations/ga.json +34 -0
- homeassistant/components/dwd_weather_warnings/translations/sk.json +1 -1
- homeassistant/components/ecobee/translations/ga.json +20 -1
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/efergy/translations/ga.json +6 -0
- homeassistant/components/elkm1/translations/ga.json +6 -1
- homeassistant/components/emoncms/translations/lt.json +8 -0
- homeassistant/components/enphase_envoy/translations/lt.json +6 -0
- homeassistant/components/environment_canada/translations/sr-Latn.json +9 -0
- homeassistant/components/environment_canada/translations/sr.json +9 -0
- homeassistant/components/eq3btsmart/manifest.json +1 -1
- homeassistant/components/esphome/manifest.json +2 -2
- homeassistant/components/esphome/translations/ga.json +29 -4
- homeassistant/components/esphome/translations/sk.json +1 -1
- homeassistant/components/fan/translations/ga.json +25 -1
- homeassistant/components/filesize/translations/ga.json +12 -0
- homeassistant/components/fireservicerota/translations/ga.json +3 -1
- homeassistant/components/flo/translations/ga.json +16 -0
- homeassistant/components/flume/translations/ga.json +1 -0
- homeassistant/components/flux_led/translations/ga.json +78 -1
- homeassistant/components/flux_led/translations/sk.json +1 -1
- homeassistant/components/foscam/translations/ga.json +13 -0
- homeassistant/components/foscam/translations/lt.json +3 -0
- homeassistant/components/fritz/translations/ga.json +49 -6
- homeassistant/components/fritz/translations/ru.json +3 -0
- homeassistant/components/fritzbox/translations/ca.json +1 -3
- homeassistant/components/fritzbox/translations/cs.json +2 -2
- homeassistant/components/fritzbox/translations/de.json +3 -3
- homeassistant/components/fritzbox/translations/el.json +2 -2
- homeassistant/components/fritzbox/translations/en-GB.json +2 -2
- homeassistant/components/fritzbox/translations/en.json +2 -2
- homeassistant/components/fritzbox/translations/es-419.json +0 -6
- homeassistant/components/fritzbox/translations/es.json +1 -3
- homeassistant/components/fritzbox/translations/et.json +2 -2
- homeassistant/components/fritzbox/translations/fi.json +1 -3
- homeassistant/components/fritzbox/translations/fr.json +1 -3
- homeassistant/components/fritzbox/translations/ga.json +0 -1
- homeassistant/components/fritzbox/translations/hu.json +1 -3
- homeassistant/components/fritzbox/translations/id.json +1 -3
- homeassistant/components/fritzbox/translations/it.json +1 -3
- homeassistant/components/fritzbox/translations/ja.json +1 -3
- homeassistant/components/fritzbox/translations/ko.json +1 -3
- homeassistant/components/fritzbox/translations/lb.json +2 -4
- homeassistant/components/fritzbox/translations/lt.json +1 -3
- homeassistant/components/fritzbox/translations/nb.json +1 -3
- homeassistant/components/fritzbox/translations/nl.json +1 -3
- homeassistant/components/fritzbox/translations/pl.json +1 -3
- homeassistant/components/fritzbox/translations/pt-BR.json +1 -3
- homeassistant/components/fritzbox/translations/pt.json +2 -2
- homeassistant/components/fritzbox/translations/ro.json +1 -3
- homeassistant/components/fritzbox/translations/ru.json +2 -2
- homeassistant/components/fritzbox/translations/sk.json +2 -2
- homeassistant/components/fritzbox/translations/sl.json +1 -3
- homeassistant/components/fritzbox/translations/sv.json +1 -3
- homeassistant/components/fritzbox/translations/tr.json +1 -3
- homeassistant/components/fritzbox/translations/uk.json +1 -3
- homeassistant/components/fritzbox/translations/vi.json +2 -4
- homeassistant/components/fritzbox/translations/zh-Hans.json +2 -2
- homeassistant/components/fritzbox/translations/zh-Hant.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/ca.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/cs.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/de.json +3 -3
- homeassistant/components/fritzbox_callmonitor/translations/el.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/en-GB.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/en.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/es-419.json +0 -3
- homeassistant/components/fritzbox_callmonitor/translations/es.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/et.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/fi.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/fr.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ga.json +16 -0
- homeassistant/components/fritzbox_callmonitor/translations/hu.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/id.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/it.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ja.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ko.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/lt.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/nb.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/nl.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pl.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pt-BR.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pt.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/ro.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ru.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/sk.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/sv.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/tr.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/uk.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/zh-Hans.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/zh-Hant.json +2 -2
- homeassistant/components/fronius/translations/ga.json +69 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/fully_kiosk/translations/fr.json +5 -0
- homeassistant/components/fully_kiosk/translations/ga.json +26 -0
- homeassistant/components/fully_kiosk/translations/lt.json +3 -0
- homeassistant/components/fully_kiosk/translations/pt.json +3 -0
- homeassistant/components/fyta/translations/fr.json +3 -0
- homeassistant/components/fyta/translations/ga.json +1 -0
- homeassistant/components/fyta/translations/lt.json +64 -2
- homeassistant/components/fyta/translations/pt.json +64 -2
- homeassistant/components/generic/translations/ga.json +36 -0
- homeassistant/components/geofency/translations/ga.json +18 -0
- homeassistant/components/geonetnz_quakes/translations/ga.json +4 -0
- homeassistant/components/gios/translations/ga.json +2 -0
- homeassistant/components/github/translations/ga.json +23 -0
- homeassistant/components/glances/translations/ga.json +10 -0
- homeassistant/components/goalzero/translations/ga.json +3 -0
- homeassistant/components/goalzero/translations/lt.json +3 -0
- homeassistant/components/goodwe/translations/ga.json +16 -0
- homeassistant/components/google/translations/ga.json +7 -0
- homeassistant/components/google_assistant_sdk/translations/sk.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/cs.json +3 -3
- homeassistant/components/google_generative_ai_conversation/translations/lt.json +5 -0
- homeassistant/components/google_generative_ai_conversation/translations/sk.json +1 -1
- homeassistant/components/google_mail/translations/ga.json +24 -2
- homeassistant/components/google_mail/translations/sk.json +1 -1
- homeassistant/components/google_photos/translations/sk.json +1 -1
- homeassistant/components/google_sheets/translations/ga.json +6 -0
- homeassistant/components/google_sheets/translations/sk.json +1 -1
- homeassistant/components/google_tasks/translations/sk.json +1 -1
- homeassistant/components/govee_ble/translations/ga.json +18 -0
- homeassistant/components/govee_light_local/__init__.py +16 -3
- homeassistant/components/govee_light_local/config_flow.py +28 -10
- homeassistant/components/govee_light_local/coordinator.py +39 -24
- homeassistant/components/gpslogger/translations/ga.json +1 -0
- homeassistant/components/group/translations/ga.json +31 -2
- homeassistant/components/growatt_server/translations/ga.json +127 -0
- homeassistant/components/habitica/translations/cs.json +3 -3
- homeassistant/components/habitica/translations/ga.json +7 -2
- homeassistant/components/harmony/translations/ga.json +32 -2
- homeassistant/components/hassio/translations/ga.json +51 -1
- homeassistant/components/hassio/translations/lt.json +4 -0
- homeassistant/components/hassio/translations/sk.json +1 -1
- homeassistant/components/here_travel_time/translations/ga.json +11 -0
- homeassistant/components/here_travel_time/translations/lt.json +2 -1
- homeassistant/components/hisense_aehw4a1/translations/ga.json +13 -0
- homeassistant/components/history_stats/translations/ga.json +6 -0
- homeassistant/components/history_stats/translations/sk.json +3 -3
- homeassistant/components/hive/translations/ga.json +7 -0
- homeassistant/components/home_connect/translations/ga.json +5 -1
- homeassistant/components/home_connect/translations/lt.json +21 -11
- homeassistant/components/home_connect/translations/ru.json +9 -6
- homeassistant/components/home_connect/translations/sk.json +1 -1
- homeassistant/components/homeassistant_yellow/translations/ga.json +61 -2
- homeassistant/components/homekit_controller/translations/ga.json +25 -0
- homeassistant/components/homekit_controller/translations/select.mk.json +7 -0
- homeassistant/components/homematic/translations/ga.json +26 -1
- homeassistant/components/honeywell/translations/ga.json +10 -0
- homeassistant/components/huawei_lte/translations/ga.json +16 -1
- homeassistant/components/hue/translations/ga.json +19 -0
- homeassistant/components/humidifier/translations/ga.json +31 -0
- homeassistant/components/husqvarna_automower/manifest.json +1 -1
- homeassistant/components/husqvarna_automower/translations/ca.json +3 -0
- homeassistant/components/husqvarna_automower/translations/mk.json +5 -0
- homeassistant/components/husqvarna_automower_ble/translations/ca.json +35 -0
- homeassistant/components/husqvarna_automower_ble/translations/cs.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/el.json +4 -0
- homeassistant/components/husqvarna_automower_ble/translations/ga.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/lt.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/pt.json +35 -1
- homeassistant/components/hvv_departures/translations/ga.json +2 -1
- homeassistant/components/hydrawise/translations/lt.json +4 -1
- homeassistant/components/hyperion/translations/sk.json +1 -1
- homeassistant/components/iaqualink/__init__.py +10 -0
- homeassistant/components/iaqualink/entity.py +1 -0
- homeassistant/components/icloud/translations/ga.json +60 -1
- homeassistant/components/ifttt/translations/ga.json +2 -0
- homeassistant/components/imap/translations/ga.json +3 -1
- homeassistant/components/imeon_inverter/const.py +1 -0
- homeassistant/components/imeon_inverter/strings.json +1 -0
- homeassistant/components/imeon_inverter/translations/en.json +1 -0
- homeassistant/components/imeon_inverter/translations/lt.json +67 -0
- homeassistant/components/imeon_inverter/translations/pt.json +79 -0
- homeassistant/components/imeon_inverter/translations/ru.json +21 -0
- homeassistant/components/inkbird/translations/ga.json +5 -0
- homeassistant/components/input_boolean/translations/ga.json +20 -1
- homeassistant/components/input_button/translations/ga.json +16 -1
- homeassistant/components/input_datetime/translations/ga.json +37 -1
- homeassistant/components/input_number/translations/ga.json +23 -1
- homeassistant/components/insteon/translations/ga.json +6 -1
- homeassistant/components/insteon/translations/lt.json +1 -0
- homeassistant/components/insteon/translations/ru.json +1 -0
- homeassistant/components/integration/translations/ga.json +22 -2
- homeassistant/components/intellifire/translations/ga.json +15 -1
- homeassistant/components/ios/translations/ga.json +19 -0
- homeassistant/components/iotawatt/translations/ga.json +15 -0
- homeassistant/components/iperf3/translations/ga.json +2 -1
- homeassistant/components/ipma/translations/ga.json +2 -0
- homeassistant/components/iqvia/translations/ga.json +7 -0
- homeassistant/components/izone/translations/ga.json +7 -1
- homeassistant/components/jellyfin/translations/ga.json +13 -0
- homeassistant/components/justnimbus/translations/ga.json +16 -0
- homeassistant/components/jvc_projector/translations/ga.json +1 -0
- homeassistant/components/kaleidescape/translations/ga.json +3 -0
- homeassistant/components/keba/translations/lt.json +1 -0
- homeassistant/components/keba/translations/ru.json +1 -0
- homeassistant/components/kitchen_sink/translations/ga.json +3 -0
- homeassistant/components/kmtronic/translations/ga.json +22 -0
- homeassistant/components/knx/translations/ga.json +100 -2
- homeassistant/components/knx/translations/lt.json +270 -0
- homeassistant/components/knx/translations/pt.json +270 -0
- homeassistant/components/konnected/translations/ga.json +3 -1
- homeassistant/components/kostal_plenticore/translations/ga.json +7 -0
- homeassistant/components/kraken/translations/ga.json +20 -0
- homeassistant/components/kulersky/translations/ga.json +3 -0
- homeassistant/components/lacrosse_view/translations/ga.json +25 -0
- homeassistant/components/lametric/translations/ga.json +1 -0
- homeassistant/components/lametric/translations/lt.json +1 -0
- homeassistant/components/landisgyr_heat_meter/translations/ga.json +15 -0
- homeassistant/components/launch_library/translations/lt.json +7 -0
- homeassistant/components/laundrify/translations/lt.json +2 -1
- homeassistant/components/lawn_mower/translations/ga.json +6 -0
- homeassistant/components/lcn/translations/ga.json +52 -3
- homeassistant/components/lcn/translations/lt.json +2 -0
- homeassistant/components/lcn/translations/ru.json +1 -0
- homeassistant/components/leaone/translations/ru.json +2 -1
- homeassistant/components/lg_thinq/translations/el.json +3 -0
- homeassistant/components/lg_thinq/translations/ga.json +5 -0
- homeassistant/components/lg_thinq/translations/lt.json +7 -0
- homeassistant/components/lg_thinq/translations/pt.json +4 -0
- homeassistant/components/lg_thinq/translations/ru.json +5 -0
- homeassistant/components/lidarr/translations/ga.json +16 -0
- homeassistant/components/lifx/translations/ga.json +1 -0
- homeassistant/components/light/translations/ga.json +132 -1
- homeassistant/components/litterrobot/translations/ga.json +6 -0
- homeassistant/components/litterrobot/translations/sensor.ga.json +14 -1
- homeassistant/components/livisi/translations/ga.json +18 -0
- homeassistant/components/local_calendar/translations/ga.json +5 -2
- homeassistant/components/local_ip/translations/ga.json +9 -0
- homeassistant/components/lock/translations/pl.json +1 -0
- homeassistant/components/logbook/translations/ko.json +2 -1
- homeassistant/components/lookin/translations/ga.json +1 -0
- homeassistant/components/lutron_caseta/translations/ga.json +34 -1
- homeassistant/components/lyric/translations/sk.json +1 -1
- homeassistant/components/mastodon/__init__.py +13 -2
- homeassistant/components/mastodon/config_flow.py +7 -2
- homeassistant/components/mastodon/diagnostics.py +8 -3
- homeassistant/components/matter/translations/ga.json +22 -0
- homeassistant/components/matter/translations/lt.json +45 -0
- homeassistant/components/matter/translations/pt.json +27 -0
- homeassistant/components/matter/translations/sr-Latn.json +15 -0
- homeassistant/components/matter/translations/sr.json +15 -0
- homeassistant/components/meater/translations/ga.json +9 -0
- homeassistant/components/media_extractor/translations/ga.json +14 -0
- homeassistant/components/media_player/services.yaml +1 -3
- homeassistant/components/media_player/translations/cs.json +5 -0
- homeassistant/components/media_player/translations/el.json +5 -0
- homeassistant/components/media_player/translations/fr.json +3 -0
- homeassistant/components/media_player/translations/ga.json +35 -0
- homeassistant/components/media_player/translations/lt.json +6 -1
- homeassistant/components/media_player/translations/pt.json +5 -0
- homeassistant/components/media_player/translations/ru.json +5 -0
- homeassistant/components/media_player/translations/sk.json +1 -0
- homeassistant/components/media_player/translations/zh-Hans.json +1 -0
- homeassistant/components/media_player/translations/zh-Hant.json +1 -0
- homeassistant/components/met/translations/ga.json +34 -0
- homeassistant/components/met_eireann/translations/ga.json +15 -0
- homeassistant/components/meteo_france/const.py +1 -1
- homeassistant/components/metoffice/translations/sk.json +1 -1
- homeassistant/components/metoffice/translations/sr-Latn.json +1 -0
- homeassistant/components/metoffice/translations/sr.json +1 -0
- homeassistant/components/miele/translations/ga.json +2 -1
- homeassistant/components/miele/translations/lt.json +36 -0
- homeassistant/components/miele/translations/pt.json +12 -0
- homeassistant/components/miele/translations/sk.json +8 -8
- homeassistant/components/mill/translations/ga.json +35 -0
- homeassistant/components/minecraft_server/translations/ga.json +12 -0
- homeassistant/components/minio/translations/ga.json +30 -0
- homeassistant/components/mjpeg/translations/lt.json +1 -0
- homeassistant/components/modbus/entity.py +4 -1
- homeassistant/components/modbus/translations/lt.json +2 -0
- homeassistant/components/modbus/translations/ru.json +2 -0
- homeassistant/components/modbus/translations/sk.json +1 -1
- homeassistant/components/modern_forms/translations/ga.json +20 -0
- homeassistant/components/moehlenhoff_alpha2/translations/ga.json +7 -0
- homeassistant/components/moon/translations/ga.json +10 -3
- homeassistant/components/moon/translations/sensor.ga.json +14 -0
- homeassistant/components/mopeka/translations/ga.json +12 -2
- homeassistant/components/motion_blinds/translations/ga.json +3 -0
- homeassistant/components/mqtt/translations/ca.json +11 -0
- homeassistant/components/mqtt/translations/cs.json +52 -0
- homeassistant/components/mqtt/translations/el.json +19 -0
- homeassistant/components/mqtt/translations/fr.json +11 -0
- homeassistant/components/mqtt/translations/ga.json +84 -4
- homeassistant/components/mqtt/translations/lt.json +66 -1
- homeassistant/components/mqtt/translations/nl.json +68 -0
- homeassistant/components/mqtt/translations/pt.json +81 -0
- homeassistant/components/mqtt/translations/ru.json +15 -0
- homeassistant/components/mqtt/translations/sk.json +8 -8
- homeassistant/components/mqtt/translations/zh-Hans.json +1 -0
- homeassistant/components/mysensors/translations/ga.json +17 -0
- homeassistant/components/mystrom/translations/ga.json +2 -1
- homeassistant/components/nam/translations/ga.json +26 -0
- homeassistant/components/nest/translations/ga.json +44 -3
- homeassistant/components/nest/translations/lt.json +3 -0
- homeassistant/components/nest/translations/sk.json +2 -2
- homeassistant/components/netatmo/translations/ga.json +5 -1
- homeassistant/components/netatmo/translations/sr-Latn.json +16 -0
- homeassistant/components/netatmo/translations/sr.json +16 -0
- homeassistant/components/nexia/manifest.json +1 -1
- homeassistant/components/nexia/translations/ga.json +8 -0
- homeassistant/components/nextcloud/translations/ga.json +14 -0
- homeassistant/components/nextcloud/translations/mk.json +13 -0
- homeassistant/components/nextdns/translations/ga.json +107 -0
- homeassistant/components/nextdns/translations/lt.json +3 -0
- homeassistant/components/nextdns/translations/sr.json +11 -0
- homeassistant/components/nfandroidtv/translations/ga.json +13 -1
- homeassistant/components/nibe_heatpump/translations/ga.json +5 -0
- homeassistant/components/nightscout/translations/ga.json +10 -0
- homeassistant/components/niko_home_control/translations/el.json +10 -1
- homeassistant/components/niko_home_control/translations/ga.json +10 -1
- homeassistant/components/niko_home_control/translations/lt.json +10 -1
- homeassistant/components/niko_home_control/translations/pt.json +10 -1
- homeassistant/components/nina/translations/ga.json +38 -2
- homeassistant/components/nissan_leaf/translations/ga.json +7 -0
- homeassistant/components/nobo_hub/translations/ga.json +29 -0
- homeassistant/components/notify/translations/ga.json +7 -1
- homeassistant/components/notion/translations/ga.json +49 -0
- homeassistant/components/nuheat/translations/ga.json +21 -0
- homeassistant/components/number/translations/ga.json +15 -1
- homeassistant/components/nut/translations/ga.json +131 -1
- homeassistant/components/nws/translations/ga.json +11 -0
- homeassistant/components/nws/translations/sr-Latn.json +9 -0
- homeassistant/components/nws/translations/sr.json +9 -0
- homeassistant/components/nx584/translations/ga.json +13 -1
- homeassistant/components/nzbget/translations/ga.json +23 -0
- homeassistant/components/nzbget/translations/lt.json +6 -0
- homeassistant/components/nzbget/translations/ru.json +6 -0
- homeassistant/components/obihai/translations/ga.json +19 -1
- homeassistant/components/octoprint/translations/ga.json +3 -0
- homeassistant/components/ollama/translations/cs.json +3 -3
- homeassistant/components/ollama/translations/lt.json +10 -0
- homeassistant/components/oncue/translations/ru.json +8 -1
- homeassistant/components/ondilo_ico/translations/ga.json +7 -1
- homeassistant/components/onewire/translations/ga.json +57 -1
- homeassistant/components/onewire/translations/lt.json +3 -0
- homeassistant/components/onvif/binary_sensor.py +1 -1
- homeassistant/components/onvif/sensor.py +1 -1
- homeassistant/components/onvif/translations/ga.json +42 -1
- homeassistant/components/open_meteo/translations/ga.json +15 -0
- homeassistant/components/open_router/translations/cs.json +2 -2
- homeassistant/components/open_router/translations/lt.json +7 -1
- homeassistant/components/openai_conversation/translations/cs.json +3 -3
- homeassistant/components/openai_conversation/translations/ga.json +12 -0
- homeassistant/components/openai_conversation/translations/lt.json +5 -0
- homeassistant/components/openhome/translations/ga.json +7 -0
- homeassistant/components/opentherm_gw/translations/ga.json +100 -2
- homeassistant/components/openuv/translations/ga.json +33 -0
- homeassistant/components/openweathermap/translations/ga.json +32 -0
- homeassistant/components/openweathermap/translations/sr-Latn.json +16 -0
- homeassistant/components/openweathermap/translations/sr.json +16 -0
- homeassistant/components/opower/manifest.json +1 -1
- homeassistant/components/opower/translations/ga.json +11 -2
- homeassistant/components/opower/translations/lt.json +7 -1
- homeassistant/components/opower/translations/sk.json +1 -1
- homeassistant/components/overkiz/translations/ga.json +71 -3
- homeassistant/components/overkiz/translations/select.ga.json +1 -0
- homeassistant/components/overkiz/translations/sensor.ga.json +29 -1
- homeassistant/components/ovo_energy/translations/ga.json +14 -1
- homeassistant/components/p1_monitor/translations/ga.json +22 -0
- homeassistant/components/panasonic_viera/translations/ga.json +30 -0
- homeassistant/components/peco/translations/ga.json +2 -0
- homeassistant/components/pegel_online/translations/ga.json +18 -0
- homeassistant/components/person/translations/ga.json +15 -0
- homeassistant/components/pi_hole/translations/ga.json +29 -0
- homeassistant/components/picnic/translations/ga.json +41 -0
- homeassistant/components/plaato/translations/ga.json +13 -0
- homeassistant/components/plant/translations/ga.json +12 -0
- homeassistant/components/playstation_network/__init__.py +4 -1
- homeassistant/components/playstation_network/config_flow.py +4 -13
- homeassistant/components/playstation_network/coordinator.py +55 -8
- homeassistant/components/playstation_network/helpers.py +4 -1
- homeassistant/components/playstation_network/notify.py +52 -27
- homeassistant/components/playstation_network/strings.json +11 -5
- homeassistant/components/playstation_network/translations/bg.json +0 -5
- homeassistant/components/playstation_network/translations/ca.json +7 -0
- homeassistant/components/playstation_network/translations/cs.json +11 -5
- homeassistant/components/playstation_network/translations/de.json +11 -5
- homeassistant/components/playstation_network/translations/el.json +54 -0
- homeassistant/components/playstation_network/translations/en-GB.json +11 -5
- homeassistant/components/playstation_network/translations/en.json +11 -5
- homeassistant/components/playstation_network/translations/es.json +1 -13
- homeassistant/components/playstation_network/translations/et.json +11 -5
- homeassistant/components/playstation_network/translations/fr.json +1 -1
- homeassistant/components/playstation_network/translations/ga.json +6 -17
- homeassistant/components/playstation_network/translations/it.json +1 -1
- homeassistant/components/playstation_network/translations/lt.json +17 -5
- homeassistant/components/playstation_network/translations/pt.json +11 -5
- homeassistant/components/playstation_network/translations/sk.json +11 -5
- homeassistant/components/playstation_network/translations/zh-Hans.json +11 -5
- homeassistant/components/playstation_network/translations/zh-Hant.json +11 -5
- homeassistant/components/plex/translations/ga.json +40 -0
- homeassistant/components/plugwise/translations/ga.json +105 -0
- homeassistant/components/plugwise/translations/select.ga.json +17 -0
- homeassistant/components/plum_lightpad/translations/ga.json +18 -0
- homeassistant/components/point/translations/ga.json +4 -0
- homeassistant/components/pooldose/translations/ca.json +56 -0
- homeassistant/components/pooldose/translations/el.json +48 -0
- homeassistant/components/pooldose/translations/ga.json +32 -0
- homeassistant/components/pooldose/translations/lt.json +102 -0
- homeassistant/components/pooldose/translations/nl.json +7 -2
- homeassistant/components/pooldose/translations/pt.json +102 -0
- homeassistant/components/poolsense/translations/ga.json +16 -0
- homeassistant/components/powerwall/translations/ga.json +35 -0
- homeassistant/components/profiler/translations/cs.json +2 -2
- homeassistant/components/profiler/translations/ga.json +11 -0
- homeassistant/components/progettihwsw/translations/ga.json +24 -1
- homeassistant/components/prosegur/translations/ga.json +39 -0
- homeassistant/components/prusalink/translations/sensor.ga.json +7 -0
- homeassistant/components/ps4/translations/ga.json +40 -0
- homeassistant/components/pure_energie/translations/ga.json +39 -0
- homeassistant/components/purpleair/manifest.json +1 -1
- homeassistant/components/purpleair/translations/ga.json +42 -0
- homeassistant/components/pushbullet/translations/ga.json +44 -0
- homeassistant/components/pushover/translations/ga.json +28 -0
- homeassistant/components/pvoutput/translations/ga.json +46 -0
- homeassistant/components/pvpc_hourly_pricing/translations/ga.json +1 -0
- homeassistant/components/qbus/translations/lt.json +8 -0
- homeassistant/components/radarr/translations/ga.json +40 -0
- homeassistant/components/radio_browser/translations/ga.json +9 -0
- homeassistant/components/radiotherm/translations/ga.json +23 -0
- homeassistant/components/rainbird/translations/ga.json +18 -2
- homeassistant/components/rainbird/translations/lt.json +4 -0
- homeassistant/components/rainbird/translations/ru.json +4 -0
- homeassistant/components/rainmachine/translations/ga.json +99 -4
- homeassistant/components/rainmachine/translations/sr-Latn.json +55 -0
- homeassistant/components/rainmachine/translations/sr.json +55 -0
- homeassistant/components/random/translations/ga.json +1 -0
- homeassistant/components/random/translations/lt.json +1 -0
- homeassistant/components/rapt_ble/translations/ga.json +21 -0
- homeassistant/components/rdw/translations/ga.json +36 -0
- homeassistant/components/recollect_waste/translations/ga.json +38 -0
- homeassistant/components/recorder/translations/cs.json +2 -2
- homeassistant/components/recorder/translations/ga.json +11 -0
- homeassistant/components/remember_the_milk/translations/cs.json +7 -7
- homeassistant/components/renault/translations/ga.json +76 -0
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/number.py +3 -4
- homeassistant/components/reolink/select.py +0 -1
- homeassistant/components/reolink/translations/cs.json +14 -14
- homeassistant/components/reolink/translations/fr.json +3 -0
- homeassistant/components/reolink/translations/ga.json +47 -5
- homeassistant/components/reolink/translations/lt.json +9 -0
- homeassistant/components/reolink/translations/pt.json +9 -0
- homeassistant/components/rfxtrx/translations/ga.json +30 -0
- homeassistant/components/roborock/translations/sk.json +9 -9
- homeassistant/components/samsungtv/translations/lt.json +1 -0
- homeassistant/components/sensibo/translations/ga.json +4 -2
- homeassistant/components/sensibo/translations/lt.json +22 -0
- homeassistant/components/sensibo/translations/sensor.ga.json +7 -0
- homeassistant/components/sensor/translations/ga.json +3 -0
- homeassistant/components/sensor/translations/sk.json +1 -1
- homeassistant/components/shopping_list/translations/sr-Latn.json +11 -0
- homeassistant/components/shopping_list/translations/sr.json +11 -0
- homeassistant/components/sleep_as_android/translations/de.json +1 -1
- homeassistant/components/sleepiq/translations/lt.json +1 -0
- homeassistant/components/smartthings/translations/ru.json +9 -0
- homeassistant/components/snapcast/translations/sk.json +2 -2
- homeassistant/components/sonos/translations/lt.json +15 -0
- homeassistant/components/sonos/translations/pt.json +15 -0
- homeassistant/components/sun/translations/sk.json +1 -1
- homeassistant/components/switchbot_cloud/translations/lt.json +16 -0
- homeassistant/components/switchbot_cloud/translations/pt.json +16 -0
- homeassistant/components/tado/translations/sr-Latn.json +9 -0
- homeassistant/components/tado/translations/sr.json +9 -0
- homeassistant/components/tautulli/translations/sk.json +1 -1
- homeassistant/components/tellduslive/translations/ru.json +4 -0
- homeassistant/components/template/translations/el.json +50 -0
- homeassistant/components/template/translations/ga.json +1 -0
- homeassistant/components/template/translations/lt.json +196 -13
- homeassistant/components/template/translations/pl.json +140 -7
- homeassistant/components/template/translations/pt.json +149 -0
- homeassistant/components/template/translations/ru.json +8 -0
- homeassistant/components/template/translations/sk.json +6 -6
- homeassistant/components/template/translations/sv.json +31 -8
- homeassistant/components/tesla_fleet/__init__.py +0 -1
- homeassistant/components/teslemetry/translations/lt.json +4 -0
- homeassistant/components/teslemetry/translations/mk.json +5 -0
- homeassistant/components/togrill/translations/fr.json +4 -0
- homeassistant/components/togrill/translations/lt.json +49 -0
- homeassistant/components/togrill/translations/pt.json +49 -0
- homeassistant/components/tomorrowio/translations/lt.json +5 -1
- homeassistant/components/tplink/translations/lt.json +6 -2
- homeassistant/components/trafikverket_weatherstation/translations/sr-Latn.json +29 -0
- homeassistant/components/trafikverket_weatherstation/translations/sr.json +29 -0
- homeassistant/components/triggercmd/__init__.py +6 -2
- homeassistant/components/triggercmd/config_flow.py +3 -1
- homeassistant/components/triggercmd/manifest.json +1 -1
- homeassistant/components/triggercmd/switch.py +1 -0
- homeassistant/components/tts/translations/cs.json +1 -1
- homeassistant/components/tuya/translations/ga.json +8 -0
- homeassistant/components/tuya/translations/lt.json +1 -0
- homeassistant/components/tuya/translations/pl.json +1 -1
- homeassistant/components/tuya/translations/select.ga.json +4 -0
- homeassistant/components/unifiprotect/translations/ga.json +8 -0
- homeassistant/components/unifiprotect/translations/lt.json +6 -1
- homeassistant/components/vallox/translations/lt.json +5 -0
- homeassistant/components/velux/translations/cs.json +7 -0
- homeassistant/components/velux/translations/lt.json +7 -0
- homeassistant/components/velux/translations/nl.json +7 -0
- homeassistant/components/velux/translations/pt.json +7 -0
- homeassistant/components/volvo/translations/lt.json +173 -1
- homeassistant/components/volvo/translations/pt.json +137 -0
- homeassistant/components/volvo/translations/sk.json +1 -1
- homeassistant/components/wallbox/translations/sk.json +1 -1
- homeassistant/components/waze_travel_time/translations/lt.json +2 -0
- homeassistant/components/weather/translations/ga.json +3 -0
- homeassistant/components/weather/translations/sr-Latn.json +24 -7
- homeassistant/components/weather/translations/sr.json +81 -0
- homeassistant/components/weatherflow_cloud/translations/sr-Latn.json +18 -0
- homeassistant/components/weatherflow_cloud/translations/sr.json +18 -0
- homeassistant/components/webostv/translations/lt.json +11 -4
- homeassistant/components/webostv/translations/ru.json +9 -2
- homeassistant/components/websocket_api/http.py +13 -2
- homeassistant/components/withings/translations/sk.json +1 -1
- homeassistant/components/xiaomi_miio/translations/lt.json +3 -0
- homeassistant/components/yalexs_ble/__init__.py +37 -7
- homeassistant/components/yalexs_ble/config_cache.py +31 -0
- homeassistant/components/yalexs_ble/config_flow.py +80 -35
- homeassistant/components/yalexs_ble/strings.json +10 -5
- homeassistant/components/yalexs_ble/translations/bg.json +1 -7
- homeassistant/components/yalexs_ble/translations/ca.json +2 -12
- homeassistant/components/yalexs_ble/translations/cs.json +2 -12
- homeassistant/components/yalexs_ble/translations/de.json +10 -5
- homeassistant/components/yalexs_ble/translations/el.json +2 -12
- homeassistant/components/yalexs_ble/translations/en-GB.json +9 -4
- homeassistant/components/yalexs_ble/translations/en.json +10 -5
- homeassistant/components/yalexs_ble/translations/es.json +2 -12
- homeassistant/components/yalexs_ble/translations/et.json +2 -12
- homeassistant/components/yalexs_ble/translations/fi.json +2 -12
- homeassistant/components/yalexs_ble/translations/fr.json +1 -2
- homeassistant/components/yalexs_ble/translations/hu.json +2 -12
- homeassistant/components/yalexs_ble/translations/id.json +2 -12
- homeassistant/components/yalexs_ble/translations/it.json +2 -12
- homeassistant/components/yalexs_ble/translations/ja.json +2 -12
- homeassistant/components/yalexs_ble/translations/ko.json +2 -12
- homeassistant/components/yalexs_ble/translations/lt.json +2 -12
- homeassistant/components/yalexs_ble/translations/lv.json +1 -7
- homeassistant/components/yalexs_ble/translations/nb.json +2 -12
- homeassistant/components/yalexs_ble/translations/nl.json +2 -12
- homeassistant/components/yalexs_ble/translations/pl.json +2 -12
- homeassistant/components/yalexs_ble/translations/pt-BR.json +2 -12
- homeassistant/components/yalexs_ble/translations/pt.json +2 -12
- homeassistant/components/yalexs_ble/translations/ro.json +2 -12
- homeassistant/components/yalexs_ble/translations/ru.json +2 -12
- homeassistant/components/yalexs_ble/translations/sk.json +2 -12
- homeassistant/components/yalexs_ble/translations/sv.json +2 -12
- homeassistant/components/yalexs_ble/translations/tr.json +2 -12
- homeassistant/components/yalexs_ble/translations/uk.json +2 -12
- homeassistant/components/yalexs_ble/translations/vi.json +0 -9
- homeassistant/components/yalexs_ble/translations/zh-Hans.json +2 -12
- homeassistant/components/yalexs_ble/translations/zh-Hant.json +10 -5
- homeassistant/components/yolink/translations/lt.json +13 -0
- homeassistant/components/yolink/translations/pt.json +13 -0
- homeassistant/components/zha/translations/fr.json +48 -0
- homeassistant/components/zha/translations/lt.json +69 -0
- homeassistant/components/zha/translations/pl.json +3 -0
- homeassistant/components/zha/translations/pt.json +69 -0
- homeassistant/components/zha/translations/sk.json +3 -3
- homeassistant/components/zwave_js/binary_sensor.py +14 -6
- homeassistant/components/zwave_js/translations/lt.json +10 -0
- homeassistant/components/zwave_js/translations/pt.json +10 -0
- homeassistant/components/zwave_js/translations/ru.json +3 -1
- homeassistant/components/zwave_js/translations/sk.json +2 -2
- homeassistant/components/zwave_me/translations/sk.json +1 -1
- homeassistant/const.py +1 -1
- homeassistant/generated/integrations.json +6 -0
- homeassistant/helpers/device_registry.py +37 -14
- homeassistant/helpers/entity_registry.py +68 -29
- homeassistant/package_constraints.txt +9 -5
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/METADATA +1 -1
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/RECORD +674 -602
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/WHEEL +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/top_level.txt +0 -0
|
@@ -10,5 +10,27 @@
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
},
|
|
14
|
+
"entity": {
|
|
15
|
+
"sensor": {
|
|
16
|
+
"power_produced_phase_l3": {
|
|
17
|
+
"name": "C\u00e9im L3 a th\u00e1irgtear cumhachta"
|
|
18
|
+
},
|
|
19
|
+
"power_production": {
|
|
20
|
+
"name": "T\u00e1irgeadh cumhachta"
|
|
21
|
+
},
|
|
22
|
+
"pulse_count": {
|
|
23
|
+
"name": "L\u00edon na b\u00edog"
|
|
24
|
+
},
|
|
25
|
+
"voltage_phase_l1": {
|
|
26
|
+
"name": "C\u00e9im voltais L1"
|
|
27
|
+
},
|
|
28
|
+
"voltage_phase_l2": {
|
|
29
|
+
"name": "C\u00e9im voltais L2"
|
|
30
|
+
},
|
|
31
|
+
"voltage_phase_l3": {
|
|
32
|
+
"name": "C\u00e9im voltais L3"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
13
35
|
}
|
|
14
36
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "T\u00e1 an gl\u00e9as cumraithe cheana f\u00e9in",
|
|
5
|
+
"cannot_connect": "Theip ar an nascadh",
|
|
6
|
+
"unknown": "Earr\u00e1id gan choinne"
|
|
7
|
+
},
|
|
8
|
+
"error": {
|
|
9
|
+
"cannot_connect": "Theip ar an nascadh",
|
|
10
|
+
"invalid_pin_code": "Bh\u00ed an UAP a chuir t\u00fa isteach neamhbhail\u00ed"
|
|
11
|
+
},
|
|
12
|
+
"step": {
|
|
13
|
+
"pairing": {
|
|
14
|
+
"data": {
|
|
15
|
+
"pin": "C\u00f3id UAP"
|
|
16
|
+
},
|
|
17
|
+
"description": "Cuir isteach an PIN a thaispe\u00e1ntar ar do theilif\u00eds",
|
|
18
|
+
"title": "P\u00e9ire\u00e1il"
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"host": "Seoladh IP",
|
|
23
|
+
"name": "Ainm"
|
|
24
|
+
},
|
|
25
|
+
"description": "Cuir isteach seoladh IP do theilif\u00edse Panasonic Viera",
|
|
26
|
+
"title": "Socraigh do theilif\u00eds"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"config": {
|
|
3
3
|
"abort": {
|
|
4
|
+
"already_configured": "T\u00e1 an tseirbh\u00eds cumraithe cheana f\u00e9in",
|
|
4
5
|
"incompatible_meter": "N\u00edl do mh\u00e9adar comhoiri\u00fanach le seice\u00e1il m\u00e9adair chliste."
|
|
5
6
|
},
|
|
6
7
|
"error": {
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
"step": {
|
|
15
16
|
"user": {
|
|
16
17
|
"data": {
|
|
18
|
+
"county": "Contae",
|
|
17
19
|
"phone_number": "Uimhir theileaf\u00f3in"
|
|
18
20
|
},
|
|
19
21
|
"data_description": {
|
|
@@ -32,8 +32,26 @@
|
|
|
32
32
|
},
|
|
33
33
|
"entity": {
|
|
34
34
|
"sensor": {
|
|
35
|
+
"air_temperature": {
|
|
36
|
+
"name": "Teocht an aeir"
|
|
37
|
+
},
|
|
38
|
+
"clearance_height": {
|
|
39
|
+
"name": "Airde imr\u00e9itigh"
|
|
40
|
+
},
|
|
41
|
+
"oxygen_level": {
|
|
42
|
+
"name": "Leibh\u00e9al ocsaigine"
|
|
43
|
+
},
|
|
44
|
+
"water_flow": {
|
|
45
|
+
"name": "Sreabhadh toirte uisce"
|
|
46
|
+
},
|
|
35
47
|
"water_level": {
|
|
36
48
|
"name": "Leibh\u00e9al an uisce"
|
|
49
|
+
},
|
|
50
|
+
"water_speed": {
|
|
51
|
+
"name": "Luas sreafa uisce"
|
|
52
|
+
},
|
|
53
|
+
"water_temperature": {
|
|
54
|
+
"name": "Teocht an uisce"
|
|
37
55
|
}
|
|
38
56
|
}
|
|
39
57
|
},
|
|
@@ -1,39 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"entity": {
|
|
3
|
+
"binary_sensor": {
|
|
4
|
+
"status": {
|
|
5
|
+
"name": "St\u00e1das"
|
|
6
|
+
}
|
|
7
|
+
},
|
|
3
8
|
"sensor": {
|
|
4
9
|
"ads_blocked": {
|
|
5
10
|
"name": "F\u00f3gra\u00ed bloc\u00e1ilte"
|
|
6
11
|
},
|
|
7
12
|
"ads_blocked_today": {
|
|
13
|
+
"name": "F\u00f3gra\u00ed bloc\u00e1ilte inniu",
|
|
8
14
|
"unit_of_measurement": "f\u00f3gra\u00ed"
|
|
9
15
|
},
|
|
16
|
+
"ads_percentage_today": {
|
|
17
|
+
"name": "C\u00e9atad\u00e1n f\u00f3gra\u00ed bloc\u00e1ilte inniu"
|
|
18
|
+
},
|
|
10
19
|
"clients_ever_seen": {
|
|
20
|
+
"name": "Cliaint feicthe",
|
|
11
21
|
"unit_of_measurement": "cliaint"
|
|
12
22
|
},
|
|
13
23
|
"dns_queries": {
|
|
14
24
|
"name": "Fiosr\u00fach\u00e1in DNS"
|
|
15
25
|
},
|
|
16
26
|
"dns_queries_today": {
|
|
27
|
+
"name": "Fiosr\u00fach\u00e1in DNS inniu",
|
|
17
28
|
"unit_of_measurement": "fiosr\u00fach\u00e1in"
|
|
18
29
|
},
|
|
19
30
|
"domains_being_blocked": {
|
|
31
|
+
"name": "Fearainn bloc\u00e1ilte",
|
|
20
32
|
"unit_of_measurement": "fearainn"
|
|
21
33
|
},
|
|
22
34
|
"percent_ads_blocked": {
|
|
23
35
|
"name": "C\u00e9atad\u00e1n f\u00f3gra\u00ed bloc\u00e1ilte"
|
|
24
36
|
},
|
|
25
37
|
"queries_cached": {
|
|
38
|
+
"name": "Fiosr\u00fach\u00e1in DNS i dtaisce",
|
|
26
39
|
"unit_of_measurement": "fiosr\u00fach\u00e1in"
|
|
27
40
|
},
|
|
28
41
|
"queries_forwarded": {
|
|
42
|
+
"name": "Ceisteanna DNS curtha ar aghaidh",
|
|
29
43
|
"unit_of_measurement": "fiosr\u00fach\u00e1in"
|
|
30
44
|
},
|
|
31
45
|
"unique_clients": {
|
|
46
|
+
"name": "Cliant uath\u00fala DNS",
|
|
32
47
|
"unit_of_measurement": "cliaint"
|
|
33
48
|
},
|
|
34
49
|
"unique_domains": {
|
|
50
|
+
"name": "Fearainn uath\u00fala DNS",
|
|
35
51
|
"unit_of_measurement": "fearainn"
|
|
36
52
|
}
|
|
53
|
+
},
|
|
54
|
+
"update": {
|
|
55
|
+
"core_update_available": {
|
|
56
|
+
"name": "Nuashonr\u00fa cro\u00ed ar f\u00e1il"
|
|
57
|
+
},
|
|
58
|
+
"ftl_update_available": {
|
|
59
|
+
"name": "Nuashonr\u00fa FTL ar f\u00e1il"
|
|
60
|
+
},
|
|
61
|
+
"web_update_available": {
|
|
62
|
+
"name": "Nuashonr\u00fa gr\u00e9as\u00e1in ar f\u00e1il"
|
|
63
|
+
}
|
|
37
64
|
}
|
|
38
65
|
},
|
|
39
66
|
"issues": {
|
|
@@ -44,8 +71,10 @@
|
|
|
44
71
|
},
|
|
45
72
|
"services": {
|
|
46
73
|
"disable": {
|
|
74
|
+
"description": "D\u00edchumasa\u00edonn s\u00e9 Pi-hole(\u00ed) cumraithe ar feadh tamaill.",
|
|
47
75
|
"fields": {
|
|
48
76
|
"duration": {
|
|
77
|
+
"description": "An t-am ar cheart an Pi-hole a dh\u00edchumas\u00fa.",
|
|
49
78
|
"name": "Fad"
|
|
50
79
|
}
|
|
51
80
|
},
|
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "T\u00e1 an gl\u00e9as cumraithe cheana f\u00e9in",
|
|
5
|
+
"reauth_successful": "D'\u00e9irigh leis an athfh\u00edordheimhni\u00fa"
|
|
6
|
+
},
|
|
7
|
+
"error": {
|
|
8
|
+
"cannot_connect": "Theip ar an nascadh",
|
|
9
|
+
"different_account": "Ba ch\u00f3ir go mbeadh an cuntas c\u00e9anna leis an gceann a \u00fas\u00e1ideadh chun an comhth\u00e1th\u00fa a chur ar bun",
|
|
10
|
+
"invalid_auth": "F\u00edordheimhni\u00fa neamhbhail\u00ed",
|
|
11
|
+
"unknown": "Earr\u00e1id gan choinne"
|
|
12
|
+
},
|
|
13
|
+
"step": {
|
|
14
|
+
"user": {
|
|
15
|
+
"data": {
|
|
16
|
+
"country_code": "C\u00f3d t\u00edre",
|
|
17
|
+
"password": "Pasfhocal",
|
|
18
|
+
"username": "Ainm \u00fas\u00e1ideora"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
2
23
|
"entity": {
|
|
24
|
+
"sensor": {
|
|
25
|
+
"cart_items_count": {
|
|
26
|
+
"name": "L\u00edon na m\u00edreanna sa chairt"
|
|
27
|
+
},
|
|
28
|
+
"cart_total_price": {
|
|
29
|
+
"name": "Praghas ioml\u00e1n an chairt"
|
|
30
|
+
},
|
|
31
|
+
"last_order_delivery_time": {
|
|
32
|
+
"name": "Am seachadta an ordaithe dheireanaigh"
|
|
33
|
+
},
|
|
34
|
+
"last_order_max_order_time": {
|
|
35
|
+
"name": "Uasmh\u00e9id ama ordaithe an ordaithe dheireanaigh"
|
|
36
|
+
},
|
|
37
|
+
"last_order_slot_end": {
|
|
38
|
+
"name": "Deireadh sliot\u00e1n an ordaithe dheireanaigh"
|
|
39
|
+
},
|
|
40
|
+
"last_order_slot_start": {
|
|
41
|
+
"name": "T\u00fas sliot\u00e1n an ordaithe dheireanaigh"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
3
44
|
"todo": {
|
|
4
45
|
"shopping_cart": {
|
|
5
46
|
"name": "Cairt siopad\u00f3ireachta"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"options": {
|
|
3
|
+
"step": {
|
|
4
|
+
"user": {
|
|
5
|
+
"title": "Roghanna le haghaidh Plato"
|
|
6
|
+
},
|
|
7
|
+
"webhook": {
|
|
8
|
+
"description": "Eolas faoin ngr\u00e9as\u00e1n gr\u00e9as\u00e1in:\n\n- URL: `{webhook_url}`\n- Method: POST",
|
|
9
|
+
"title": "Roghanna le haghaidh Aerghlas\u00e1il Plato"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -9,6 +9,7 @@ from .const import CONF_NPSSO
|
|
|
9
9
|
from .coordinator import (
|
|
10
10
|
PlaystationNetworkConfigEntry,
|
|
11
11
|
PlaystationNetworkFriendDataCoordinator,
|
|
12
|
+
PlaystationNetworkFriendlistCoordinator,
|
|
12
13
|
PlaystationNetworkGroupsUpdateCoordinator,
|
|
13
14
|
PlaystationNetworkRuntimeData,
|
|
14
15
|
PlaystationNetworkTrophyTitlesCoordinator,
|
|
@@ -40,6 +41,8 @@ async def async_setup_entry(
|
|
|
40
41
|
groups = PlaystationNetworkGroupsUpdateCoordinator(hass, psn, entry)
|
|
41
42
|
await groups.async_config_entry_first_refresh()
|
|
42
43
|
|
|
44
|
+
friends_list = PlaystationNetworkFriendlistCoordinator(hass, psn, entry)
|
|
45
|
+
|
|
43
46
|
friends = {}
|
|
44
47
|
|
|
45
48
|
for subentry_id, subentry in entry.subentries.items():
|
|
@@ -50,7 +53,7 @@ async def async_setup_entry(
|
|
|
50
53
|
friends[subentry_id] = friend_coordinator
|
|
51
54
|
|
|
52
55
|
entry.runtime_data = PlaystationNetworkRuntimeData(
|
|
53
|
-
coordinator, trophy_titles, groups, friends
|
|
56
|
+
coordinator, trophy_titles, groups, friends, friends_list
|
|
54
57
|
)
|
|
55
58
|
|
|
56
59
|
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
|
|
@@ -10,7 +10,6 @@ from psnawp_api.core.psnawp_exceptions import (
|
|
|
10
10
|
PSNAWPInvalidTokenError,
|
|
11
11
|
PSNAWPNotFoundError,
|
|
12
12
|
)
|
|
13
|
-
from psnawp_api.models import User
|
|
14
13
|
from psnawp_api.utils.misc import parse_npsso_token
|
|
15
14
|
import voluptuous as vol
|
|
16
15
|
|
|
@@ -169,13 +168,12 @@ class PlaystationNetworkConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
169
168
|
class FriendSubentryFlowHandler(ConfigSubentryFlow):
|
|
170
169
|
"""Handle subentry flow for adding a friend."""
|
|
171
170
|
|
|
172
|
-
friends_list: dict[str, User]
|
|
173
|
-
|
|
174
171
|
async def async_step_user(
|
|
175
172
|
self, user_input: dict[str, Any] | None = None
|
|
176
173
|
) -> SubentryFlowResult:
|
|
177
174
|
"""Subentry user flow."""
|
|
178
175
|
config_entry: PlaystationNetworkConfigEntry = self._get_entry()
|
|
176
|
+
friends_list = config_entry.runtime_data.user_data.psn.friends_list
|
|
179
177
|
|
|
180
178
|
if user_input is not None:
|
|
181
179
|
config_entries = self.hass.config_entries.async_entries(DOMAIN)
|
|
@@ -190,19 +188,12 @@ class FriendSubentryFlowHandler(ConfigSubentryFlow):
|
|
|
190
188
|
return self.async_abort(reason="already_configured")
|
|
191
189
|
|
|
192
190
|
return self.async_create_entry(
|
|
193
|
-
title=
|
|
191
|
+
title=friends_list[user_input[CONF_ACCOUNT_ID]].online_id,
|
|
194
192
|
data={},
|
|
195
193
|
unique_id=user_input[CONF_ACCOUNT_ID],
|
|
196
194
|
)
|
|
197
195
|
|
|
198
|
-
|
|
199
|
-
lambda: {
|
|
200
|
-
friend.account_id: friend
|
|
201
|
-
for friend in config_entry.runtime_data.user_data.psn.user.friends_list()
|
|
202
|
-
}
|
|
203
|
-
)
|
|
204
|
-
|
|
205
|
-
if not self.friends_list:
|
|
196
|
+
if not friends_list:
|
|
206
197
|
return self.async_abort(reason="no_friends")
|
|
207
198
|
|
|
208
199
|
options = [
|
|
@@ -210,7 +201,7 @@ class FriendSubentryFlowHandler(ConfigSubentryFlow):
|
|
|
210
201
|
value=friend.account_id,
|
|
211
202
|
label=friend.online_id,
|
|
212
203
|
)
|
|
213
|
-
for friend in
|
|
204
|
+
for friend in friends_list.values()
|
|
214
205
|
]
|
|
215
206
|
|
|
216
207
|
return self.async_show_form(
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from abc import abstractmethod
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from datetime import timedelta
|
|
8
|
+
import json
|
|
8
9
|
import logging
|
|
9
10
|
from typing import TYPE_CHECKING, Any
|
|
10
11
|
|
|
@@ -21,12 +22,14 @@ from psnawp_api.models.group.group_datatypes import GroupDetails
|
|
|
21
22
|
from psnawp_api.models.trophies import TrophyTitle
|
|
22
23
|
|
|
23
24
|
from homeassistant.config_entries import ConfigEntry, ConfigSubentry
|
|
25
|
+
from homeassistant.const import CONF_NAME
|
|
24
26
|
from homeassistant.core import HomeAssistant
|
|
25
27
|
from homeassistant.exceptions import (
|
|
26
28
|
ConfigEntryAuthFailed,
|
|
27
29
|
ConfigEntryError,
|
|
28
30
|
ConfigEntryNotReady,
|
|
29
31
|
)
|
|
32
|
+
from homeassistant.helpers import issue_registry as ir
|
|
30
33
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
|
31
34
|
|
|
32
35
|
from .const import DOMAIN
|
|
@@ -45,6 +48,7 @@ class PlaystationNetworkRuntimeData:
|
|
|
45
48
|
trophy_titles: PlaystationNetworkTrophyTitlesCoordinator
|
|
46
49
|
groups: PlaystationNetworkGroupsUpdateCoordinator
|
|
47
50
|
friends: dict[str, PlaystationNetworkFriendDataCoordinator]
|
|
51
|
+
friends_list: PlaystationNetworkFriendlistCoordinator
|
|
48
52
|
|
|
49
53
|
|
|
50
54
|
class PlayStationNetworkBaseCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
|
|
@@ -134,6 +138,25 @@ class PlaystationNetworkTrophyTitlesCoordinator(
|
|
|
134
138
|
return self.psn.trophy_titles
|
|
135
139
|
|
|
136
140
|
|
|
141
|
+
class PlaystationNetworkFriendlistCoordinator(
|
|
142
|
+
PlayStationNetworkBaseCoordinator[dict[str, User]]
|
|
143
|
+
):
|
|
144
|
+
"""Friend list data update coordinator for PSN."""
|
|
145
|
+
|
|
146
|
+
_update_interval = timedelta(hours=3)
|
|
147
|
+
|
|
148
|
+
async def update_data(self) -> dict[str, User]:
|
|
149
|
+
"""Update trophy titles data."""
|
|
150
|
+
|
|
151
|
+
self.psn.friends_list = await self.hass.async_add_executor_job(
|
|
152
|
+
lambda: {
|
|
153
|
+
friend.account_id: friend for friend in self.psn.user.friends_list()
|
|
154
|
+
}
|
|
155
|
+
)
|
|
156
|
+
await self.config_entry.runtime_data.user_data.async_request_refresh()
|
|
157
|
+
return self.psn.friends_list
|
|
158
|
+
|
|
159
|
+
|
|
137
160
|
class PlaystationNetworkGroupsUpdateCoordinator(
|
|
138
161
|
PlayStationNetworkBaseCoordinator[dict[str, GroupDetails]]
|
|
139
162
|
):
|
|
@@ -143,13 +166,34 @@ class PlaystationNetworkGroupsUpdateCoordinator(
|
|
|
143
166
|
|
|
144
167
|
async def update_data(self) -> dict[str, GroupDetails]:
|
|
145
168
|
"""Update groups data."""
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
169
|
+
try:
|
|
170
|
+
return await self.hass.async_add_executor_job(
|
|
171
|
+
lambda: {
|
|
172
|
+
group_info.group_id: group_info.get_group_information()
|
|
173
|
+
for group_info in self.psn.client.get_groups()
|
|
174
|
+
if not group_info.group_id.startswith("~")
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
except PSNAWPForbiddenError as e:
|
|
178
|
+
try:
|
|
179
|
+
error = json.loads(e.args[0])
|
|
180
|
+
except json.JSONDecodeError as err:
|
|
181
|
+
raise PSNAWPServerError from err
|
|
182
|
+
ir.async_create_issue(
|
|
183
|
+
self.hass,
|
|
184
|
+
DOMAIN,
|
|
185
|
+
f"group_chat_forbidden_{self.config_entry.entry_id}",
|
|
186
|
+
is_fixable=False,
|
|
187
|
+
issue_domain=DOMAIN,
|
|
188
|
+
severity=ir.IssueSeverity.ERROR,
|
|
189
|
+
translation_key="group_chat_forbidden",
|
|
190
|
+
translation_placeholders={
|
|
191
|
+
CONF_NAME: self.config_entry.title,
|
|
192
|
+
"error_message": error["error"]["message"],
|
|
193
|
+
},
|
|
194
|
+
)
|
|
195
|
+
await self.async_shutdown()
|
|
196
|
+
return {}
|
|
153
197
|
|
|
154
198
|
|
|
155
199
|
class PlaystationNetworkFriendDataCoordinator(
|
|
@@ -178,7 +222,10 @@ class PlaystationNetworkFriendDataCoordinator(
|
|
|
178
222
|
"""Set up the coordinator."""
|
|
179
223
|
if TYPE_CHECKING:
|
|
180
224
|
assert self.subentry.unique_id
|
|
181
|
-
self.user = self.psn.
|
|
225
|
+
self.user = self.psn.friends_list.get(
|
|
226
|
+
self.subentry.unique_id
|
|
227
|
+
) or self.psn.psn.user(account_id=self.subentry.unique_id)
|
|
228
|
+
|
|
182
229
|
self.profile = self.user.profile()
|
|
183
230
|
|
|
184
231
|
async def _async_setup(self) -> None:
|
|
@@ -60,7 +60,7 @@ class PlaystationNetwork:
|
|
|
60
60
|
self.legacy_profile: dict[str, Any] | None = None
|
|
61
61
|
self.trophy_titles: list[TrophyTitle] = []
|
|
62
62
|
self._title_icon_urls: dict[str, str] = {}
|
|
63
|
-
self.friends_list: dict[str, User]
|
|
63
|
+
self.friends_list: dict[str, User] = {}
|
|
64
64
|
|
|
65
65
|
def _setup(self) -> None:
|
|
66
66
|
"""Setup PSN."""
|
|
@@ -68,6 +68,9 @@ class PlaystationNetwork:
|
|
|
68
68
|
self.client = self.psn.me()
|
|
69
69
|
self.shareable_profile_link = self.client.get_shareable_profile_link()
|
|
70
70
|
self.trophy_titles = list(self.user.trophy_titles(page_size=500))
|
|
71
|
+
self.friends_list = {
|
|
72
|
+
friend.account_id: friend for friend in self.user.friends_list()
|
|
73
|
+
}
|
|
71
74
|
|
|
72
75
|
async def async_setup(self) -> None:
|
|
73
76
|
"""Setup PSN."""
|
|
@@ -18,7 +18,7 @@ from homeassistant.components.notify import (
|
|
|
18
18
|
NotifyEntity,
|
|
19
19
|
NotifyEntityDescription,
|
|
20
20
|
)
|
|
21
|
-
from homeassistant.
|
|
21
|
+
from homeassistant.const import CONF_NAME
|
|
22
22
|
from homeassistant.core import HomeAssistant, callback
|
|
23
23
|
from homeassistant.exceptions import HomeAssistantError
|
|
24
24
|
from homeassistant.helpers import entity_registry as er
|
|
@@ -27,7 +27,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
|
|
27
27
|
from .const import DOMAIN
|
|
28
28
|
from .coordinator import (
|
|
29
29
|
PlaystationNetworkConfigEntry,
|
|
30
|
-
|
|
30
|
+
PlaystationNetworkFriendlistCoordinator,
|
|
31
31
|
PlaystationNetworkGroupsUpdateCoordinator,
|
|
32
32
|
)
|
|
33
33
|
from .entity import PlaystationNetworkServiceEntity
|
|
@@ -50,8 +50,10 @@ async def async_setup_entry(
|
|
|
50
50
|
"""Set up the notify entity platform."""
|
|
51
51
|
|
|
52
52
|
coordinator = config_entry.runtime_data.groups
|
|
53
|
+
friends_list = config_entry.runtime_data.friends_list
|
|
53
54
|
|
|
54
55
|
groups_added: set[str] = set()
|
|
56
|
+
friends_added: set[str] = set()
|
|
55
57
|
entity_registry = er.async_get(hass)
|
|
56
58
|
|
|
57
59
|
@callback
|
|
@@ -78,16 +80,32 @@ async def async_setup_entry(
|
|
|
78
80
|
coordinator.async_add_listener(add_entities)
|
|
79
81
|
add_entities()
|
|
80
82
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
@callback
|
|
84
|
+
def add_dm_entities() -> None:
|
|
85
|
+
nonlocal friends_added
|
|
86
|
+
|
|
87
|
+
new_friends = set(friends_list.psn.friends_list.keys()) - friends_added
|
|
88
|
+
if new_friends:
|
|
89
|
+
async_add_entities(
|
|
90
|
+
[
|
|
91
|
+
PlaystationNetworkDirectMessageNotifyEntity(
|
|
92
|
+
friends_list, account_id
|
|
93
|
+
)
|
|
94
|
+
for account_id in new_friends
|
|
95
|
+
],
|
|
96
|
+
)
|
|
97
|
+
friends_added |= new_friends
|
|
98
|
+
deleted_friends = friends_added - set(coordinator.psn.friends_list.keys())
|
|
99
|
+
for account_id in deleted_friends:
|
|
100
|
+
if entity_id := entity_registry.async_get_entity_id(
|
|
101
|
+
NOTIFY_DOMAIN,
|
|
102
|
+
DOMAIN,
|
|
103
|
+
f"{coordinator.config_entry.unique_id}_{account_id}_{PlaystationNetworkNotify.DIRECT_MESSAGE}",
|
|
104
|
+
):
|
|
105
|
+
entity_registry.async_remove(entity_id)
|
|
106
|
+
|
|
107
|
+
friends_list.async_add_listener(add_dm_entities)
|
|
108
|
+
add_dm_entities()
|
|
91
109
|
|
|
92
110
|
|
|
93
111
|
class PlaystationNetworkNotifyBaseEntity(PlaystationNetworkServiceEntity, NotifyEntity):
|
|
@@ -95,12 +113,17 @@ class PlaystationNetworkNotifyBaseEntity(PlaystationNetworkServiceEntity, Notify
|
|
|
95
113
|
|
|
96
114
|
group: Group | None = None
|
|
97
115
|
|
|
98
|
-
def
|
|
99
|
-
"""Send
|
|
116
|
+
def _send_message(self, message: str) -> None:
|
|
117
|
+
"""Send message."""
|
|
100
118
|
if TYPE_CHECKING:
|
|
101
119
|
assert self.group
|
|
120
|
+
self.group.send_message(message)
|
|
121
|
+
|
|
122
|
+
def send_message(self, message: str, title: str | None = None) -> None:
|
|
123
|
+
"""Send a message."""
|
|
124
|
+
|
|
102
125
|
try:
|
|
103
|
-
self.
|
|
126
|
+
self._send_message(message)
|
|
104
127
|
except PSNAWPNotFoundError as e:
|
|
105
128
|
raise HomeAssistantError(
|
|
106
129
|
translation_domain=DOMAIN,
|
|
@@ -138,7 +161,7 @@ class PlaystationNetworkNotifyEntity(PlaystationNetworkNotifyBaseEntity):
|
|
|
138
161
|
key=group_id,
|
|
139
162
|
translation_key=PlaystationNetworkNotify.GROUP_MESSAGE,
|
|
140
163
|
translation_placeholders={
|
|
141
|
-
|
|
164
|
+
CONF_NAME: group_details["groupName"]["value"]
|
|
142
165
|
or ", ".join(
|
|
143
166
|
member["onlineId"]
|
|
144
167
|
for member in group_details["members"]
|
|
@@ -153,27 +176,29 @@ class PlaystationNetworkNotifyEntity(PlaystationNetworkNotifyBaseEntity):
|
|
|
153
176
|
class PlaystationNetworkDirectMessageNotifyEntity(PlaystationNetworkNotifyBaseEntity):
|
|
154
177
|
"""Representation of a PlayStation Network notify entity for sending direct messages."""
|
|
155
178
|
|
|
156
|
-
coordinator:
|
|
179
|
+
coordinator: PlaystationNetworkFriendlistCoordinator
|
|
157
180
|
|
|
158
181
|
def __init__(
|
|
159
182
|
self,
|
|
160
|
-
coordinator:
|
|
161
|
-
|
|
183
|
+
coordinator: PlaystationNetworkFriendlistCoordinator,
|
|
184
|
+
account_id: str,
|
|
162
185
|
) -> None:
|
|
163
186
|
"""Initialize a notification entity."""
|
|
164
|
-
|
|
187
|
+
self.account_id = account_id
|
|
165
188
|
self.entity_description = NotifyEntityDescription(
|
|
166
|
-
key=PlaystationNetworkNotify.DIRECT_MESSAGE,
|
|
189
|
+
key=f"{account_id}_{PlaystationNetworkNotify.DIRECT_MESSAGE}",
|
|
167
190
|
translation_key=PlaystationNetworkNotify.DIRECT_MESSAGE,
|
|
191
|
+
translation_placeholders={
|
|
192
|
+
CONF_NAME: coordinator.psn.friends_list[account_id].online_id
|
|
193
|
+
},
|
|
194
|
+
entity_registry_enabled_default=False,
|
|
168
195
|
)
|
|
169
196
|
|
|
170
|
-
super().__init__(coordinator, self.entity_description
|
|
171
|
-
|
|
172
|
-
def send_message(self, message: str, title: str | None = None) -> None:
|
|
173
|
-
"""Send a message."""
|
|
197
|
+
super().__init__(coordinator, self.entity_description)
|
|
174
198
|
|
|
199
|
+
def _send_message(self, message: str) -> None:
|
|
175
200
|
if not self.group:
|
|
176
201
|
self.group = self.coordinator.psn.psn.group(
|
|
177
|
-
users_list=[self.coordinator.
|
|
202
|
+
users_list=[self.coordinator.psn.friends_list[self.account_id]]
|
|
178
203
|
)
|
|
179
|
-
super().
|
|
204
|
+
super()._send_message(message)
|
|
@@ -82,13 +82,13 @@
|
|
|
82
82
|
"message": "Data retrieval failed when trying to access the PlayStation Network."
|
|
83
83
|
},
|
|
84
84
|
"group_invalid": {
|
|
85
|
-
"message": "Failed to send message to group {
|
|
85
|
+
"message": "Failed to send message to group {name}. The group is invalid or does not exist."
|
|
86
86
|
},
|
|
87
87
|
"send_message_forbidden": {
|
|
88
|
-
"message": "Failed to send message to
|
|
88
|
+
"message": "Failed to send message to {name}. You are not allowed to send messages to this group or friend."
|
|
89
89
|
},
|
|
90
90
|
"send_message_failed": {
|
|
91
|
-
"message": "Failed to send message to
|
|
91
|
+
"message": "Failed to send message to {name}. Try again later."
|
|
92
92
|
},
|
|
93
93
|
"user_profile_private": {
|
|
94
94
|
"message": "Unable to retrieve data for {user}. Privacy settings restrict access to activity."
|
|
@@ -158,11 +158,17 @@
|
|
|
158
158
|
},
|
|
159
159
|
"notify": {
|
|
160
160
|
"group_message": {
|
|
161
|
-
"name": "Group: {
|
|
161
|
+
"name": "Group: {name}"
|
|
162
162
|
},
|
|
163
163
|
"direct_message": {
|
|
164
|
-
"name": "Direct message"
|
|
164
|
+
"name": "Direct message: {name}"
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
+
},
|
|
168
|
+
"issues": {
|
|
169
|
+
"group_chat_forbidden": {
|
|
170
|
+
"title": "Failed to retrieve group chats for {name}",
|
|
171
|
+
"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."
|
|
172
|
+
}
|
|
167
173
|
}
|
|
168
174
|
}
|