homeassistant 2025.7.0b8__py3-none-any.whl → 2025.7.1__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/acaia/translations/ga.json +36 -0
- homeassistant/components/ai_task/translations/ga.json +22 -1
- homeassistant/components/ai_task/translations/nl.json +3 -0
- homeassistant/components/airgradient/translations/it.json +3 -3
- homeassistant/components/airzone/translations/it.json +1 -1
- homeassistant/components/airzone_cloud/translations/ga.json +6 -0
- homeassistant/components/airzone_cloud/translations/it.json +2 -2
- homeassistant/components/alarm_control_panel/translations/ga.json +7 -0
- homeassistant/components/alarmdecoder/translations/ga.json +11 -0
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/translations/cs.json +2 -1
- homeassistant/components/alexa_devices/translations/de.json +2 -1
- homeassistant/components/alexa_devices/translations/el.json +2 -1
- homeassistant/components/alexa_devices/translations/es.json +2 -1
- homeassistant/components/alexa_devices/translations/et.json +2 -1
- homeassistant/components/alexa_devices/translations/ga.json +26 -0
- homeassistant/components/alexa_devices/translations/he.json +1 -0
- homeassistant/components/alexa_devices/translations/ja.json +32 -0
- homeassistant/components/alexa_devices/translations/lt.json +29 -2
- homeassistant/components/alexa_devices/translations/mk.json +8 -0
- homeassistant/components/alexa_devices/translations/pt.json +2 -1
- homeassistant/components/alexa_devices/translations/sk.json +2 -1
- homeassistant/components/alexa_devices/translations/zh-Hans.json +2 -1
- homeassistant/components/alexa_devices/translations/zh-Hant.json +2 -1
- homeassistant/components/altruist/translations/ga.json +41 -0
- homeassistant/components/altruist/translations/he.json +18 -0
- homeassistant/components/altruist/translations/ja.json +2 -1
- homeassistant/components/amberelectric/translations/ga.json +11 -0
- homeassistant/components/analytics_insights/translations/ga.json +42 -0
- homeassistant/components/androidtv/translations/ga.json +11 -0
- homeassistant/components/androidtv_remote/translations/cs.json +1 -1
- homeassistant/components/androidtv_remote/translations/de.json +1 -1
- homeassistant/components/androidtv_remote/translations/el.json +1 -2
- homeassistant/components/androidtv_remote/translations/en-GB.json +1 -2
- homeassistant/components/androidtv_remote/translations/en.json +1 -1
- homeassistant/components/androidtv_remote/translations/es.json +1 -1
- homeassistant/components/androidtv_remote/translations/et.json +1 -1
- homeassistant/components/androidtv_remote/translations/fi.json +0 -9
- homeassistant/components/androidtv_remote/translations/fr.json +1 -2
- homeassistant/components/androidtv_remote/translations/gl.json +0 -9
- homeassistant/components/androidtv_remote/translations/he.json +1 -2
- homeassistant/components/androidtv_remote/translations/hu.json +1 -2
- homeassistant/components/androidtv_remote/translations/id.json +0 -9
- homeassistant/components/androidtv_remote/translations/it.json +0 -9
- homeassistant/components/androidtv_remote/translations/ja.json +1 -2
- homeassistant/components/androidtv_remote/translations/ko.json +0 -5
- homeassistant/components/androidtv_remote/translations/lt.json +1 -1
- homeassistant/components/androidtv_remote/translations/lv.json +0 -9
- homeassistant/components/androidtv_remote/translations/nl.json +1 -2
- homeassistant/components/androidtv_remote/translations/pt.json +1 -2
- homeassistant/components/androidtv_remote/translations/ru.json +1 -2
- homeassistant/components/androidtv_remote/translations/sk.json +1 -1
- homeassistant/components/androidtv_remote/translations/sl.json +1 -2
- homeassistant/components/androidtv_remote/translations/sv.json +1 -2
- homeassistant/components/androidtv_remote/translations/tr.json +1 -2
- homeassistant/components/androidtv_remote/translations/zh-Hans.json +1 -1
- homeassistant/components/androidtv_remote/translations/zh-Hant.json +1 -1
- homeassistant/components/anthropic/translations/he.json +19 -0
- homeassistant/components/anthropic/translations/ja.json +21 -0
- homeassistant/components/aosmith/translations/nb.json +2 -1
- homeassistant/components/aprilaire/translations/it.json +14 -14
- homeassistant/components/apsystems/translations/ga.json +7 -0
- homeassistant/components/aseko_pool_live/translations/ga.json +25 -0
- homeassistant/components/assist_pipeline/translations/ga.json +14 -0
- homeassistant/components/assist_satellite/translations/ga.json +31 -2
- homeassistant/components/assist_satellite/translations/nl.json +7 -0
- homeassistant/components/asuswrt/translations/ga.json +24 -0
- homeassistant/components/august/translations/ga.json +11 -0
- homeassistant/components/aurora/translations/ga.json +11 -0
- homeassistant/components/autarco/translations/ga.json +37 -0
- homeassistant/components/automation/translations/it.json +2 -2
- homeassistant/components/axis/translations/ga.json +14 -0
- homeassistant/components/azure_devops/translations/ga.json +10 -0
- homeassistant/components/azure_event_hub/translations/ga.json +12 -0
- homeassistant/components/bang_olufsen/translations/el.json +24 -1
- homeassistant/components/bang_olufsen/translations/ga.json +92 -0
- homeassistant/components/binary_sensor/translations/he.json +1 -1
- homeassistant/components/binary_sensor/translations/it.json +4 -4
- homeassistant/components/blink/translations/ga.json +11 -0
- homeassistant/components/bmw_connected_drive/translations/el.json +5 -1
- homeassistant/components/bmw_connected_drive/translations/ga.json +56 -0
- homeassistant/components/bond/translations/el.json +11 -0
- homeassistant/components/bring/translations/el.json +1 -0
- homeassistant/components/bring/translations/ga.json +53 -0
- homeassistant/components/brother/translations/ga.json +53 -0
- homeassistant/components/bsblan/translations/ga.json +20 -0
- homeassistant/components/calendar/translations/ca.json +1 -1
- homeassistant/components/calendar/translations/it.json +2 -2
- homeassistant/components/cambridge_audio/translations/ga.json +60 -0
- homeassistant/components/cambridge_audio/translations/it.json +2 -2
- homeassistant/components/camera/translations/ga.json +15 -0
- homeassistant/components/climate/translations/ga.json +39 -0
- homeassistant/components/climate/translations/it.json +9 -9
- homeassistant/components/climate/translations/ja.json +3 -0
- homeassistant/components/cloud/manifest.json +1 -1
- homeassistant/components/cloudflare/translations/es.json +1 -1
- homeassistant/components/comelit/translations/it.json +3 -0
- homeassistant/components/cookidoo/translations/ga.json +47 -1
- homeassistant/components/deluge/translations/ga.json +12 -0
- homeassistant/components/demo/translations/ga.json +2 -1
- homeassistant/components/demo/translations/it.json +3 -3
- homeassistant/components/derivative/translations/ga.json +6 -0
- homeassistant/components/devolo_home_control/translations/ga.json +37 -0
- homeassistant/components/devolo_home_control/translations/he.json +6 -0
- homeassistant/components/devolo_home_control/translations/lt.json +10 -0
- homeassistant/components/devolo_home_network/translations/ga.json +13 -0
- homeassistant/components/discovergy/translations/ga.json +3 -0
- homeassistant/components/ecobee/translations/ga.json +40 -0
- homeassistant/components/ecoforest/translations/it.json +2 -2
- homeassistant/components/econet/translations/ga.json +15 -0
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/eheimdigital/translations/ga.json +21 -0
- homeassistant/components/elevenlabs/translations/ga.json +30 -0
- homeassistant/components/elkm1/translations/ga.json +1 -0
- homeassistant/components/emoncms/translations/el.json +3 -0
- homeassistant/components/emoncms/translations/ga.json +95 -0
- homeassistant/components/energy/translations/ga.json +8 -0
- homeassistant/components/enphase_envoy/__init__.py +1 -0
- homeassistant/components/enphase_envoy/manifest.json +1 -1
- homeassistant/components/enphase_envoy/translations/cs.json +1 -0
- homeassistant/components/enphase_envoy/translations/el.json +1 -0
- homeassistant/components/enphase_envoy/translations/et.json +1 -0
- homeassistant/components/enphase_envoy/translations/ga.json +111 -1
- homeassistant/components/enphase_envoy/translations/he.json +1 -0
- homeassistant/components/enphase_envoy/translations/lt.json +1 -0
- homeassistant/components/enphase_envoy/translations/nl.json +2 -1
- homeassistant/components/enphase_envoy/translations/pt.json +1 -0
- homeassistant/components/eq3btsmart/translations/ga.json +50 -0
- homeassistant/components/esphome/translations/ga.json +26 -0
- homeassistant/components/ezviz/translations/ga.json +16 -0
- homeassistant/components/ezviz/translations/lt.json +10 -0
- homeassistant/components/fan/translations/it.json +2 -2
- homeassistant/components/feedreader/translations/ga.json +9 -0
- homeassistant/components/fibaro/translations/ga.json +19 -0
- homeassistant/components/file/translations/fr.json +3 -2
- homeassistant/components/filesize/translations/ga.json +9 -0
- homeassistant/components/filter/translations/ga.json +2 -1
- homeassistant/components/filter/translations/ja.json +30 -0
- homeassistant/components/fitbit/translations/ga.json +78 -0
- homeassistant/components/fjaraskupan/translations/ga.json +16 -0
- homeassistant/components/flexit_bacnet/translations/el.json +9 -0
- homeassistant/components/flipr/translations/ga.json +3 -1
- homeassistant/components/foscam/translations/el.json +8 -0
- homeassistant/components/fritz/translations/ga.json +8 -1
- homeassistant/components/fritzbox/translations/ga.json +10 -0
- homeassistant/components/fritzbox_callmonitor/translations/ga.json +13 -0
- homeassistant/components/fronius/translations/ga.json +25 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/fujitsu_fglair/translations/ga.json +18 -0
- homeassistant/components/fully_kiosk/translations/ga.json +25 -0
- homeassistant/components/fyta/translations/ga.json +27 -0
- homeassistant/components/fyta/translations/ja.json +8 -0
- homeassistant/components/garages_amsterdam/translations/ga.json +33 -0
- homeassistant/components/generic/translations/ga.json +10 -0
- homeassistant/components/generic_thermostat/translations/ga.json +22 -0
- homeassistant/components/github/translations/ga.json +24 -0
- homeassistant/components/go2rtc/translations/ga.json +8 -0
- homeassistant/components/google/translations/ca.json +1 -1
- homeassistant/components/google/translations/ga.json +3 -0
- homeassistant/components/google_assistant/translations/de.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/cs.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/de.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/el.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/en-GB.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/en.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/es.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/et.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/he.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/hu.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/id.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/it.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/ja.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/lt.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/nl.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/pt.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/ru.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/sk.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/sl.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/sv.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/tr.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/uk.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/zh-Hans.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/zh-Hant.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/ga.json +52 -0
- homeassistant/components/google_generative_ai_conversation/translations/he.json +30 -0
- homeassistant/components/google_generative_ai_conversation/translations/lt.json +28 -0
- homeassistant/components/google_photos/translations/ga.json +22 -0
- homeassistant/components/google_travel_time/translations/it.json +7 -0
- homeassistant/components/group/translations/he.json +1 -1
- homeassistant/components/group/translations/it.json +2 -2
- homeassistant/components/habitica/translations/el.json +6 -0
- homeassistant/components/habitica/translations/es.json +5 -5
- homeassistant/components/habitica/translations/ga.json +373 -10
- homeassistant/components/hassio/ingress.py +6 -2
- homeassistant/components/hassio/translations/ga.json +17 -0
- homeassistant/components/heos/translations/ga.json +4 -0
- homeassistant/components/heos/translations/it.json +1 -0
- homeassistant/components/history_stats/translations/el.json +2 -1
- homeassistant/components/history_stats/translations/ga.json +3 -0
- homeassistant/components/hive/translations/it.json +3 -3
- homeassistant/components/holiday/translations/ga.json +55 -0
- homeassistant/components/home_connect/translations/ga.json +439 -32
- homeassistant/components/home_connect/translations/it.json +47 -44
- homeassistant/components/home_connect/translations/ja.json +3 -0
- homeassistant/components/homeassistant/translations/ga.json +22 -0
- homeassistant/components/homeassistant/translations/it.json +24 -0
- homeassistant/components/homeassistant/translations/ja.json +17 -2
- homeassistant/components/homeassistant_hardware/translations/cs.json +2 -0
- homeassistant/components/homeassistant_hardware/translations/el.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/et.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/fr.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/ga.json +5 -0
- homeassistant/components/homeassistant_hardware/translations/he.json +4 -0
- homeassistant/components/homeassistant_hardware/translations/lt.json +2 -0
- homeassistant/components/homeassistant_hardware/translations/mk.json +3 -0
- homeassistant/components/homeassistant_hardware/translations/pt.json +1 -0
- homeassistant/components/homeassistant_sky_connect/translations/cs.json +4 -0
- homeassistant/components/homeassistant_sky_connect/translations/el.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/et.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/fr.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/ga.json +10 -0
- homeassistant/components/homeassistant_sky_connect/translations/he.json +3 -0
- homeassistant/components/homeassistant_sky_connect/translations/lt.json +4 -0
- homeassistant/components/homeassistant_sky_connect/translations/pt.json +2 -0
- homeassistant/components/homeassistant_yellow/translations/cs.json +3 -0
- homeassistant/components/homeassistant_yellow/translations/el.json +1 -0
- homeassistant/components/homeassistant_yellow/translations/et.json +1 -0
- homeassistant/components/homeassistant_yellow/translations/fr.json +1 -0
- homeassistant/components/homeassistant_yellow/translations/ga.json +5 -0
- homeassistant/components/homeassistant_yellow/translations/he.json +1 -0
- homeassistant/components/homeassistant_yellow/translations/lt.json +3 -0
- homeassistant/components/homeassistant_yellow/translations/pt.json +1 -0
- homeassistant/components/homee/translations/it.json +1 -1
- homeassistant/components/homee/translations/ja.json +26 -0
- homeassistant/components/homewizard/translations/ga.json +14 -1
- homeassistant/components/http/ban.py +1 -1
- homeassistant/components/http/translations/ga.json +8 -0
- homeassistant/components/humidifier/translations/ga.json +7 -0
- homeassistant/components/humidifier/translations/it.json +3 -3
- homeassistant/components/husqvarna_automower/translations/ga.json +35 -0
- homeassistant/components/husqvarna_automower/translations/it.json +1 -1
- homeassistant/components/husqvarna_automower_ble/translations/ga.json +18 -0
- homeassistant/components/idasen_desk/translations/ga.json +11 -0
- homeassistant/components/image/translations/ga.json +14 -0
- homeassistant/components/imap/translations/ga.json +50 -0
- homeassistant/components/immich/translations/he.json +5 -0
- homeassistant/components/immich/translations/nl.json +5 -0
- homeassistant/components/incomfort/translations/it.json +1 -1
- homeassistant/components/input_boolean/translations/it.json +2 -2
- homeassistant/components/input_select/translations/el.json +1 -0
- homeassistant/components/insteon/translations/el.json +1 -0
- homeassistant/components/intellifire/translations/ga.json +12 -0
- homeassistant/components/iron_os/translations/ga.json +121 -1
- homeassistant/components/iron_os/translations/it.json +5 -5
- homeassistant/components/iskra/translations/ga.json +42 -0
- homeassistant/components/ista_ecotrend/translations/de.json +1 -1
- homeassistant/components/ista_ecotrend/translations/ga.json +24 -0
- homeassistant/components/ituran/translations/ga.json +57 -0
- homeassistant/components/jellyfin/translations/ga.json +10 -0
- homeassistant/components/juicenet/translations/ga.json +8 -0
- homeassistant/components/jvc_projector/translations/it.json +1 -1
- homeassistant/components/keenetic_ndms2/translations/ga.json +7 -0
- homeassistant/components/keenetic_ndms2/translations/he.json +5 -0
- homeassistant/components/kitchen_sink/translations/ga.json +13 -0
- homeassistant/components/knx/translations/ga.json +17 -0
- homeassistant/components/lamarzocco/translations/el.json +1 -0
- homeassistant/components/lamarzocco/translations/ga.json +70 -0
- homeassistant/components/lametric/translations/ga.json +8 -0
- homeassistant/components/lcn/translations/cs.json +1 -1
- homeassistant/components/lcn/translations/de.json +1 -1
- homeassistant/components/lcn/translations/el.json +1 -1
- homeassistant/components/lcn/translations/en-GB.json +1 -1
- homeassistant/components/lcn/translations/en.json +1 -1
- homeassistant/components/lcn/translations/es.json +1 -1
- homeassistant/components/lcn/translations/et.json +1 -1
- homeassistant/components/lcn/translations/ga.json +143 -0
- homeassistant/components/lcn/translations/hu.json +0 -3
- homeassistant/components/lcn/translations/ja.json +0 -3
- homeassistant/components/lcn/translations/lt.json +1 -1
- homeassistant/components/lcn/translations/pt-BR.json +0 -3
- homeassistant/components/lcn/translations/pt.json +1 -1
- homeassistant/components/lcn/translations/ru.json +0 -3
- homeassistant/components/lcn/translations/sk.json +1 -1
- homeassistant/components/lcn/translations/sv.json +0 -3
- homeassistant/components/lcn/translations/tr.json +0 -3
- homeassistant/components/lcn/translations/zh-Hans.json +1 -1
- homeassistant/components/lcn/translations/zh-Hant.json +1 -1
- homeassistant/components/lektrico/translations/ga.json +76 -1
- homeassistant/components/lg_thinq/translations/cs.json +3 -1
- homeassistant/components/lg_thinq/translations/el.json +15 -1
- homeassistant/components/lg_thinq/translations/et.json +3 -1
- homeassistant/components/lg_thinq/translations/ga.json +818 -15
- homeassistant/components/lg_thinq/translations/he.json +3 -1
- homeassistant/components/lg_thinq/translations/it.json +16 -16
- homeassistant/components/lg_thinq/translations/lt.json +3 -1
- homeassistant/components/lg_thinq/translations/pt.json +3 -1
- homeassistant/components/lidarr/translations/ga.json +9 -0
- homeassistant/components/light/translations/it.json +3 -3
- homeassistant/components/linkplay/translations/ga.json +24 -0
- homeassistant/components/litterrobot/translations/cs.json +1 -0
- homeassistant/components/litterrobot/translations/el.json +1 -0
- homeassistant/components/litterrobot/translations/et.json +1 -0
- homeassistant/components/litterrobot/translations/ga.json +2 -1
- homeassistant/components/litterrobot/translations/he.json +1 -0
- homeassistant/components/litterrobot/translations/it.json +1 -1
- homeassistant/components/litterrobot/translations/ja.json +4 -0
- homeassistant/components/litterrobot/translations/lt.json +1 -0
- homeassistant/components/litterrobot/translations/pt.json +1 -0
- homeassistant/components/litterrobot/translations/sensor.it.json +1 -1
- homeassistant/components/litterrobot/translations/sk.json +1 -0
- homeassistant/components/local_calendar/translations/ga.json +25 -0
- homeassistant/components/local_file/translations/ga.json +38 -0
- homeassistant/components/lock/translations/he.json +1 -1
- homeassistant/components/lutron_caseta/translations/it.json +2 -2
- homeassistant/components/lyric/translations/it.json +3 -0
- homeassistant/components/lyric/translations/ja.json +6 -0
- homeassistant/components/madvr/translations/ga.json +7 -0
- homeassistant/components/mastodon/translations/el.json +2 -1
- homeassistant/components/mastodon/translations/ga.json +24 -0
- homeassistant/components/matter/translations/ga.json +67 -1
- homeassistant/components/matter/translations/he.json +32 -0
- homeassistant/components/matter/translations/it.json +4 -4
- homeassistant/components/matter/translations/ja.json +3 -0
- homeassistant/components/mealie/translations/ga.json +47 -4
- homeassistant/components/meater/translations/he.json +46 -1
- homeassistant/components/meater/translations/ja.json +10 -1
- homeassistant/components/media_player/translations/el.json +13 -1
- homeassistant/components/media_player/translations/it.json +6 -6
- homeassistant/components/melcloud/translations/ga.json +13 -0
- homeassistant/components/miele/translations/ga.json +24 -1
- homeassistant/components/miele/translations/he.json +9 -0
- homeassistant/components/miele/translations/it.json +5 -2
- homeassistant/components/miele/translations/ja.json +12 -1
- homeassistant/components/miele/translations/sk.json +1 -0
- homeassistant/components/modbus/translations/el.json +1 -0
- homeassistant/components/mold_indicator/translations/ga.json +36 -0
- homeassistant/components/monarch_money/translations/ga.json +18 -0
- homeassistant/components/motionmount/translations/ga.json +3 -0
- homeassistant/components/mqtt/translations/bg.json +10 -0
- homeassistant/components/mqtt/translations/cs.json +11 -0
- homeassistant/components/mqtt/translations/de.json +2 -2
- homeassistant/components/mqtt/translations/ga.json +39 -1
- homeassistant/components/mqtt/translations/he.json +37 -0
- homeassistant/components/mqtt/translations/it.json +9 -2
- homeassistant/components/mqtt/translations/lt.json +37 -0
- homeassistant/components/mqtt/translations/mk.json +9 -0
- homeassistant/components/mqtt/translations/nl.json +1 -1
- homeassistant/components/mqtt/translations/pt.json +11 -0
- homeassistant/components/music_assistant/manifest.json +1 -1
- homeassistant/components/music_assistant/media_player.py +0 -2
- homeassistant/components/music_assistant/translations/ga.json +116 -1
- homeassistant/components/myuplink/translations/de.json +1 -1
- homeassistant/components/myuplink/translations/ga.json +30 -0
- homeassistant/components/nam/translations/ga.json +7 -0
- homeassistant/components/nasweb/translations/el.json +12 -1
- homeassistant/components/nasweb/translations/ga.json +39 -0
- homeassistant/components/ness_alarm/translations/el.json +4 -0
- homeassistant/components/nest/translations/ga.json +21 -0
- homeassistant/components/nest/translations/ja.json +3 -0
- homeassistant/components/netatmo/translations/ga.json +3 -1
- homeassistant/components/nextdns/translations/ga.json +49 -0
- homeassistant/components/nice_go/translations/ga.json +38 -0
- homeassistant/components/niko_home_control/translations/ga.json +12 -0
- homeassistant/components/nordpool/coordinator.py +3 -0
- homeassistant/components/nordpool/translations/ga.json +132 -0
- homeassistant/components/ntfy/translations/ga.json +82 -0
- homeassistant/components/ntfy/translations/he.json +43 -1
- homeassistant/components/ntfy/translations/ja.json +30 -0
- homeassistant/components/number/translations/ga.json +6 -0
- homeassistant/components/nut/translations/it.json +1 -1
- homeassistant/components/nyt_games/translations/ga.json +45 -0
- homeassistant/components/ohme/translations/ga.json +33 -1
- homeassistant/components/ollama/__init__.py +30 -4
- homeassistant/components/ollama/config_flow.py +164 -135
- homeassistant/components/ollama/conversation.py +8 -243
- homeassistant/components/ollama/entity.py +261 -0
- homeassistant/components/ollama/strings.json +12 -10
- homeassistant/components/ollama/translations/bg.json +3 -1
- homeassistant/components/ollama/translations/ca.json +0 -10
- homeassistant/components/ollama/translations/cs.json +12 -10
- homeassistant/components/ollama/translations/de.json +12 -10
- homeassistant/components/ollama/translations/el.json +12 -10
- homeassistant/components/ollama/translations/en-GB.json +0 -10
- homeassistant/components/ollama/translations/en.json +12 -10
- homeassistant/components/ollama/translations/es.json +12 -10
- homeassistant/components/ollama/translations/et.json +12 -10
- homeassistant/components/ollama/translations/fi.json +0 -7
- homeassistant/components/ollama/translations/fr.json +12 -10
- homeassistant/components/ollama/translations/ga.json +8 -1
- homeassistant/components/ollama/translations/he.json +21 -0
- homeassistant/components/ollama/translations/hu.json +1 -10
- homeassistant/components/ollama/translations/it.json +1 -8
- homeassistant/components/ollama/translations/ja.json +11 -10
- homeassistant/components/ollama/translations/lt.json +12 -10
- homeassistant/components/ollama/translations/pt-BR.json +0 -3
- homeassistant/components/ollama/translations/pt.json +12 -10
- homeassistant/components/ollama/translations/ru.json +1 -10
- homeassistant/components/ollama/translations/sk.json +12 -10
- homeassistant/components/ollama/translations/sv.json +1 -10
- homeassistant/components/ollama/translations/tr.json +0 -10
- homeassistant/components/ollama/translations/zh-Hans.json +12 -10
- homeassistant/components/ollama/translations/zh-Hant.json +12 -10
- homeassistant/components/onewire/translations/ga.json +5 -0
- homeassistant/components/onkyo/translations/ga.json +31 -4
- homeassistant/components/openai_conversation/translations/ga.json +49 -0
- homeassistant/components/openai_conversation/translations/he.json +25 -0
- homeassistant/components/openai_conversation/translations/ja.json +11 -0
- homeassistant/components/opentherm_gw/translations/bg.json +3 -0
- homeassistant/components/opentherm_gw/translations/cs.json +3 -0
- homeassistant/components/opentherm_gw/translations/el.json +6 -0
- homeassistant/components/opentherm_gw/translations/et.json +3 -0
- homeassistant/components/opentherm_gw/translations/fr.json +3 -0
- homeassistant/components/opentherm_gw/translations/ga.json +39 -0
- homeassistant/components/opentherm_gw/translations/lt.json +3 -0
- homeassistant/components/opentherm_gw/translations/mk.json +7 -0
- homeassistant/components/opentherm_gw/translations/pt.json +3 -0
- homeassistant/components/osoenergy/translations/ga.json +125 -0
- homeassistant/components/osoenergy/translations/it.json +2 -2
- homeassistant/components/otbr/translations/el.json +3 -0
- homeassistant/components/otbr/translations/ga.json +7 -0
- homeassistant/components/overkiz/translations/cs.json +1 -0
- homeassistant/components/overkiz/translations/de.json +1 -1
- homeassistant/components/overkiz/translations/el.json +1 -0
- homeassistant/components/overkiz/translations/et.json +1 -0
- homeassistant/components/overkiz/translations/he.json +1 -0
- homeassistant/components/overkiz/translations/lt.json +1 -0
- homeassistant/components/overkiz/translations/pt.json +1 -0
- homeassistant/components/ovo_energy/translations/ga.json +10 -0
- homeassistant/components/p1_monitor/translations/ga.json +11 -0
- homeassistant/components/palazzetti/translations/ga.json +95 -1
- homeassistant/components/palazzetti/translations/it.json +1 -1
- homeassistant/components/paperless_ngx/translations/he.json +9 -2
- homeassistant/components/paperless_ngx/translations/ja.json +49 -0
- homeassistant/components/peblar/translations/ga.json +34 -5
- homeassistant/components/pegel_online/translations/cs.json +2 -1
- homeassistant/components/pegel_online/translations/ga.json +7 -0
- homeassistant/components/pegel_online/translations/lt.json +2 -1
- homeassistant/components/pegel_online/translations/pt.json +2 -1
- homeassistant/components/permobil/translations/ga.json +11 -0
- homeassistant/components/philips_js/translations/ga.json +7 -0
- homeassistant/components/pi_hole/translations/ga.json +30 -0
- homeassistant/components/playstation_network/translations/el.json +1 -1
- homeassistant/components/playstation_network/translations/en.json +1 -1
- homeassistant/components/playstation_network/translations/et.json +1 -1
- homeassistant/components/playstation_network/translations/ga.json +34 -3
- homeassistant/components/playstation_network/translations/he.json +21 -0
- homeassistant/components/playstation_network/translations/hu.json +0 -3
- homeassistant/components/playstation_network/translations/ja.json +29 -0
- homeassistant/components/playstation_network/translations/lt.json +29 -0
- homeassistant/components/playstation_network/translations/mk.json +0 -3
- homeassistant/components/playstation_network/translations/nl.json +0 -3
- homeassistant/components/playstation_network/translations/pl.json +0 -3
- homeassistant/components/playstation_network/translations/sk.json +1 -1
- homeassistant/components/playstation_network/translations/sl.json +73 -0
- homeassistant/components/playstation_network/translations/sv.json +0 -3
- homeassistant/components/playstation_network/translations/zh-Hant.json +1 -1
- homeassistant/components/plugwise/translations/ga.json +18 -0
- homeassistant/components/plugwise/translations/it.json +3 -3
- homeassistant/components/point/translations/ga.json +6 -0
- homeassistant/components/powerfox/translations/ga.json +43 -0
- homeassistant/components/proximity/translations/cs.json +25 -1
- homeassistant/components/proximity/translations/el.json +25 -1
- homeassistant/components/proximity/translations/fr.json +24 -1
- homeassistant/components/proximity/translations/lt.json +25 -1
- homeassistant/components/proximity/translations/nl.json +3 -0
- homeassistant/components/proximity/translations/pt.json +25 -1
- homeassistant/components/qbittorrent/translations/ga.json +12 -0
- homeassistant/components/qnap_qsw/translations/ga.json +9 -0
- homeassistant/components/rainbird/translations/ga.json +26 -0
- homeassistant/components/random/translations/ga.json +4 -1
- homeassistant/components/remote/translations/it.json +2 -2
- homeassistant/components/remote_calendar/client.py +12 -0
- homeassistant/components/remote_calendar/config_flow.py +9 -3
- homeassistant/components/remote_calendar/coordinator.py +11 -4
- homeassistant/components/remote_calendar/strings.json +5 -1
- homeassistant/components/remote_calendar/translations/cs.json +6 -2
- homeassistant/components/remote_calendar/translations/de.json +6 -2
- homeassistant/components/remote_calendar/translations/en-GB.json +0 -3
- homeassistant/components/remote_calendar/translations/en.json +6 -2
- homeassistant/components/remote_calendar/translations/es.json +6 -2
- homeassistant/components/remote_calendar/translations/et.json +6 -2
- homeassistant/components/remote_calendar/translations/fi.json +0 -3
- homeassistant/components/remote_calendar/translations/fr.json +0 -3
- homeassistant/components/remote_calendar/translations/ga.json +2 -2
- homeassistant/components/remote_calendar/translations/he.json +0 -3
- homeassistant/components/remote_calendar/translations/hu.json +0 -3
- homeassistant/components/remote_calendar/translations/lt.json +6 -2
- homeassistant/components/remote_calendar/translations/nl.json +0 -3
- homeassistant/components/remote_calendar/translations/pt.json +0 -3
- homeassistant/components/remote_calendar/translations/ru.json +0 -3
- homeassistant/components/remote_calendar/translations/sk.json +6 -2
- homeassistant/components/remote_calendar/translations/sl.json +0 -3
- homeassistant/components/remote_calendar/translations/sv.json +0 -3
- homeassistant/components/remote_calendar/translations/tr.json +0 -3
- homeassistant/components/remote_calendar/translations/zh-Hans.json +6 -2
- homeassistant/components/remote_calendar/translations/zh-Hant.json +6 -2
- homeassistant/components/renault/translations/ga.json +40 -0
- homeassistant/components/renson/translations/it.json +4 -4
- homeassistant/components/reolink/translations/el.json +3 -0
- homeassistant/components/reolink/translations/ga.json +69 -0
- homeassistant/components/reolink/translations/it.json +15 -12
- homeassistant/components/reolink/translations/ja.json +6 -0
- homeassistant/components/rfxtrx/translations/it.json +2 -2
- homeassistant/components/ring/translations/ga.json +49 -1
- homeassistant/components/roborock/translations/ga.json +3 -0
- homeassistant/components/roborock/translations/it.json +2 -2
- homeassistant/components/roku/translations/ga.json +19 -0
- homeassistant/components/roomba/translations/ga.json +9 -0
- homeassistant/components/russound_rio/translations/el.json +8 -0
- homeassistant/components/russound_rio/translations/ga.json +45 -0
- homeassistant/components/russound_rio/translations/nl.json +7 -0
- homeassistant/components/sabnzbd/translations/de.json +1 -1
- homeassistant/components/sabnzbd/translations/ga.json +29 -0
- homeassistant/components/samsungtv/config_flow.py +15 -10
- homeassistant/components/schedule/translations/it.json +2 -2
- homeassistant/components/schlage/translations/ga.json +13 -1
- homeassistant/components/scrape/translations/ga.json +6 -0
- homeassistant/components/scrape/translations/it.json +1 -0
- homeassistant/components/screenlogic/translations/ga.json +12 -1
- homeassistant/components/script/translations/it.json +2 -2
- homeassistant/components/sense/translations/ga.json +21 -0
- homeassistant/components/sensibo/translations/el.json +9 -1
- homeassistant/components/sensibo/translations/it.json +28 -28
- homeassistant/components/sensibo/translations/pt-BR.json +4 -1
- homeassistant/components/sensibo/translations/sv.json +3 -3
- homeassistant/components/sensor/translations/ga.json +16 -0
- homeassistant/components/sensor/translations/it.json +3 -2
- homeassistant/components/sensoterra/translations/ga.json +22 -0
- homeassistant/components/seventeentrack/translations/ga.json +13 -0
- homeassistant/components/shelly/__init__.py +8 -1
- homeassistant/components/shelly/const.py +3 -0
- homeassistant/components/shelly/repairs.py +87 -4
- homeassistant/components/shelly/strings.json +14 -0
- homeassistant/components/shelly/translations/bg.json +7 -0
- homeassistant/components/shelly/translations/cs.json +14 -0
- homeassistant/components/shelly/translations/de.json +14 -0
- homeassistant/components/shelly/translations/el.json +14 -0
- homeassistant/components/shelly/translations/en.json +14 -0
- homeassistant/components/shelly/translations/es.json +14 -0
- homeassistant/components/shelly/translations/et.json +14 -0
- homeassistant/components/shelly/translations/fr.json +7 -0
- homeassistant/components/shelly/translations/ga.json +19 -1
- homeassistant/components/shelly/translations/he.json +7 -0
- homeassistant/components/shelly/translations/ja.json +14 -0
- homeassistant/components/shelly/translations/lt.json +14 -0
- homeassistant/components/shelly/translations/pt.json +14 -0
- homeassistant/components/shelly/translations/sk.json +14 -0
- homeassistant/components/shelly/translations/zh-Hans.json +14 -0
- homeassistant/components/shelly/translations/zh-Hant.json +14 -0
- homeassistant/components/siren/translations/it.json +2 -2
- homeassistant/components/sky_remote/translations/ga.json +12 -0
- homeassistant/components/sleepiq/translations/it.json +1 -1
- homeassistant/components/slide_local/translations/ga.json +45 -0
- homeassistant/components/sma/config_flow.py +30 -1
- homeassistant/components/smarla/translations/it.json +9 -0
- homeassistant/components/smarla/translations/ja.json +24 -0
- homeassistant/components/smartthings/translations/ga.json +3 -0
- homeassistant/components/smartthings/translations/he.json +19 -0
- homeassistant/components/smartthings/translations/it.json +9 -9
- homeassistant/components/smartthings/translations/ja.json +5 -0
- homeassistant/components/smarty/translations/el.json +5 -0
- homeassistant/components/smarty/translations/ga.json +54 -0
- homeassistant/components/smhi/translations/ga.json +9 -0
- homeassistant/components/smlight/translations/el.json +2 -1
- homeassistant/components/smlight/translations/ga.json +90 -0
- homeassistant/components/snips/translations/el.json +1 -0
- homeassistant/components/solarlog/translations/ga.json +50 -0
- homeassistant/components/sonos/translations/ga.json +9 -0
- homeassistant/components/sonos/translations/lt.json +9 -0
- homeassistant/components/spider/translations/ga.json +8 -0
- homeassistant/components/sql/translations/it.json +1 -0
- homeassistant/components/squeezebox/translations/ga.json +40 -0
- homeassistant/components/squeezebox/translations/it.json +5 -0
- homeassistant/components/squeezebox/translations/ja.json +8 -0
- homeassistant/components/starline/translations/ga.json +8 -0
- homeassistant/components/starlink/translations/ga.json +12 -0
- homeassistant/components/statistics/translations/ga.json +3 -0
- homeassistant/components/stookwijzer/translations/ga.json +34 -0
- homeassistant/components/subaru/translations/cs.json +2 -0
- homeassistant/components/subaru/translations/ga.json +7 -0
- homeassistant/components/subaru/translations/lt.json +2 -0
- homeassistant/components/subaru/translations/mk.json +12 -0
- homeassistant/components/suez_water/translations/ga.json +24 -0
- homeassistant/components/sun/translations/ja.json +6 -0
- homeassistant/components/swiss_public_transport/translations/ga.json +36 -2
- homeassistant/components/switch/translations/it.json +6 -6
- homeassistant/components/switchbot/translations/cs.json +1 -0
- homeassistant/components/switchbot/translations/el.json +1 -0
- homeassistant/components/switchbot/translations/et.json +1 -0
- homeassistant/components/switchbot/translations/ga.json +38 -2
- homeassistant/components/switchbot/translations/he.json +22 -0
- homeassistant/components/switchbot/translations/it.json +1 -0
- homeassistant/components/switchbot/translations/lt.json +54 -0
- homeassistant/components/switchbot/translations/nl.json +1 -0
- homeassistant/components/switchbot/translations/pt.json +1 -0
- homeassistant/components/switchbot/translations/sk.json +1 -0
- homeassistant/components/switchbot/translations/zh-Hant.json +1 -0
- homeassistant/components/switcher_kis/translations/ga.json +14 -2
- homeassistant/components/system_bridge/translations/ga.json +7 -0
- homeassistant/components/tami4/translations/ga.json +9 -0
- homeassistant/components/tedee/translations/ga.json +33 -0
- homeassistant/components/telegram_bot/bot.py +3 -3
- homeassistant/components/telegram_bot/config_flow.py +0 -2
- homeassistant/components/telegram_bot/services.yaml +5 -0
- homeassistant/components/telegram_bot/translations/bg.json +10 -0
- homeassistant/components/telegram_bot/translations/es.json +1 -1
- homeassistant/components/telegram_bot/translations/ga.json +28 -0
- homeassistant/components/telegram_bot/translations/he.json +24 -1
- homeassistant/components/telegram_bot/translations/it.json +13 -0
- homeassistant/components/telegram_bot/translations/ja.json +103 -2
- homeassistant/components/telegram_bot/translations/lt.json +30 -0
- homeassistant/components/telegram_bot/translations/mk.json +5 -0
- homeassistant/components/template/translations/ga.json +50 -0
- homeassistant/components/template/translations/it.json +1 -0
- homeassistant/components/tesla_fleet/translations/cs.json +3 -0
- homeassistant/components/tesla_fleet/translations/el.json +3 -0
- homeassistant/components/tesla_fleet/translations/et.json +3 -0
- homeassistant/components/tesla_fleet/translations/ga.json +122 -0
- homeassistant/components/tesla_fleet/translations/he.json +4 -0
- homeassistant/components/tesla_fleet/translations/it.json +8 -8
- homeassistant/components/tesla_fleet/translations/ja.json +2 -0
- homeassistant/components/tesla_fleet/translations/lt.json +3 -0
- homeassistant/components/tesla_fleet/translations/mk.json +3 -0
- homeassistant/components/tesla_fleet/translations/nl.json +3 -0
- homeassistant/components/tesla_fleet/translations/pt.json +3 -0
- homeassistant/components/teslemetry/translations/ga.json +106 -0
- homeassistant/components/teslemetry/translations/he.json +3 -0
- homeassistant/components/teslemetry/translations/it.json +16 -16
- homeassistant/components/tessie/translations/ga.json +5 -0
- homeassistant/components/tessie/translations/it.json +9 -9
- homeassistant/components/thermopro/manifest.json +1 -1
- homeassistant/components/thermopro/translations/cs.json +7 -0
- homeassistant/components/thermopro/translations/lt.json +7 -0
- homeassistant/components/thermopro/translations/pt.json +7 -0
- homeassistant/components/tibber/translations/ga.json +7 -0
- homeassistant/components/tilt_pi/translations/ga.json +18 -0
- homeassistant/components/tilt_pi/translations/he.json +21 -0
- homeassistant/components/timer/translations/ga.json +3 -0
- homeassistant/components/totalconnect/translations/ga.json +44 -0
- homeassistant/components/tplink/translations/ga.json +15 -0
- homeassistant/components/tplink_omada/translations/ga.json +25 -1
- homeassistant/components/tradfri/translations/ga.json +7 -0
- homeassistant/components/transmission/translations/ga.json +31 -0
- homeassistant/components/trend/translations/ga.json +3 -0
- homeassistant/components/triggercmd/translations/ga.json +7 -0
- homeassistant/components/tuya/translations/ga.json +8 -0
- homeassistant/components/tuya/translations/it.json +20 -7
- homeassistant/components/tuya/translations/ja.json +6 -0
- homeassistant/components/tuya/translations/select.it.json +5 -5
- homeassistant/components/twentemilieu/translations/ga.json +13 -0
- homeassistant/components/twinkly/translations/it.json +1 -1
- homeassistant/components/twitch/translations/ga.json +44 -0
- homeassistant/components/unifi/manifest.json +1 -1
- homeassistant/components/unifi/translations/ga.json +13 -0
- homeassistant/components/unifiprotect/config_flow.py +1 -1
- homeassistant/components/unifiprotect/translations/ga.json +23 -0
- homeassistant/components/uptimerobot/translations/it.json +5 -0
- homeassistant/components/uptimerobot/translations/ja.json +5 -0
- homeassistant/components/utility_meter/translations/ga.json +7 -0
- homeassistant/components/vacuum/translations/it.json +2 -2
- homeassistant/components/vallox/translations/ga.json +25 -0
- homeassistant/components/vegehub/translations/bg.json +1 -3
- homeassistant/components/vegehub/translations/cs.json +2 -2
- homeassistant/components/vegehub/translations/de.json +2 -2
- homeassistant/components/vegehub/translations/el.json +1 -3
- homeassistant/components/vegehub/translations/en-GB.json +8 -0
- homeassistant/components/vegehub/translations/en.json +2 -2
- homeassistant/components/vegehub/translations/es.json +2 -2
- homeassistant/components/vegehub/translations/et.json +2 -2
- homeassistant/components/vegehub/translations/ga.json +39 -0
- homeassistant/components/vegehub/translations/he.json +16 -0
- homeassistant/components/vegehub/translations/hu.json +1 -3
- homeassistant/components/vegehub/translations/ja.json +1 -3
- homeassistant/components/vegehub/translations/lt.json +2 -2
- homeassistant/components/vegehub/translations/pt.json +2 -2
- homeassistant/components/vegehub/translations/ru.json +0 -3
- homeassistant/components/vegehub/translations/sk.json +2 -2
- homeassistant/components/vegehub/translations/sv.json +1 -3
- homeassistant/components/vegehub/translations/zh-Hans.json +2 -2
- homeassistant/components/vegehub/translations/zh-Hant.json +2 -2
- homeassistant/components/velbus/translations/ga.json +3 -0
- homeassistant/components/venstar/manifest.json +1 -1
- homeassistant/components/vesync/translations/ga.json +4 -1
- homeassistant/components/vesync/translations/it.json +2 -2
- homeassistant/components/vicare/translations/ga.json +35 -0
- homeassistant/components/voip/translations/ga.json +12 -0
- homeassistant/components/wallbox/translations/ga.json +3 -0
- homeassistant/components/wallbox/translations/it.json +1 -1
- homeassistant/components/water_heater/translations/ga.json +3 -0
- homeassistant/components/water_heater/translations/it.json +3 -3
- homeassistant/components/watergate/translations/ga.json +10 -0
- homeassistant/components/waze_travel_time/translations/ga.json +14 -0
- homeassistant/components/weatherflow_cloud/translations/es.json +2 -2
- homeassistant/components/weatherflow_cloud/translations/ga.json +1 -0
- homeassistant/components/webdav/translations/cs.json +1 -0
- homeassistant/components/webdav/translations/el.json +1 -0
- homeassistant/components/webdav/translations/et.json +1 -0
- homeassistant/components/webdav/translations/fr.json +1 -0
- homeassistant/components/webdav/translations/ga.json +1 -0
- homeassistant/components/webdav/translations/lt.json +1 -0
- homeassistant/components/webdav/translations/mk.json +7 -0
- homeassistant/components/webdav/translations/pt.json +1 -0
- homeassistant/components/weheat/translations/ga.json +62 -0
- homeassistant/components/whirlpool/translations/cs.json +1 -0
- homeassistant/components/whirlpool/translations/el.json +1 -0
- homeassistant/components/whirlpool/translations/et.json +1 -0
- homeassistant/components/whirlpool/translations/he.json +2 -1
- homeassistant/components/whirlpool/translations/lt.json +1 -0
- homeassistant/components/whirlpool/translations/pt.json +1 -0
- homeassistant/components/withings/translations/ga.json +3 -0
- homeassistant/components/withings/translations/it.json +3 -0
- homeassistant/components/withings/translations/ja.json +6 -0
- homeassistant/components/wled/translations/it.json +2 -2
- homeassistant/components/wmspro/translations/ga.json +12 -0
- homeassistant/components/wolflink/translations/it.json +2 -2
- homeassistant/components/workday/translations/ga.json +7 -0
- homeassistant/components/wyoming/translations/it.json +1 -1
- homeassistant/components/xbox/translations/ja.json +6 -0
- homeassistant/components/xiaomi_ble/translations/ga.json +21 -0
- homeassistant/components/xiaomi_miio/translations/es.json +1 -1
- homeassistant/components/xiaomi_miio/translations/ga.json +105 -0
- homeassistant/components/xiaomi_miio/translations/he.json +29 -6
- homeassistant/components/xiaomi_miio/translations/it.json +1 -1
- homeassistant/components/yale/translations/ja.json +6 -0
- homeassistant/components/yale_smart_alarm/translations/el.json +2 -1
- homeassistant/components/yale_smart_alarm/translations/ga.json +11 -0
- homeassistant/components/yale_smart_alarm/translations/it.json +1 -1
- homeassistant/components/yamaha_musiccast/translations/it.json +1 -1
- homeassistant/components/yeelight/translations/it.json +1 -1
- homeassistant/components/yolink/translations/it.json +1 -1
- homeassistant/components/yolink/translations/ja.json +6 -0
- homeassistant/components/youtube/translations/ga.json +14 -0
- homeassistant/components/zha/manifest.json +1 -1
- homeassistant/components/zha/translations/ga.json +165 -0
- homeassistant/components/zha/translations/he.json +13 -0
- homeassistant/components/zha/translations/it.json +10 -2
- homeassistant/components/zha/translations/ja.json +25 -2
- homeassistant/components/zha/translations/lt.json +50 -0
- homeassistant/components/zwave_js/strings.json +11 -11
- homeassistant/components/zwave_js/translations/bg.json +6 -20
- homeassistant/components/zwave_js/translations/ca.json +0 -6
- homeassistant/components/zwave_js/translations/cs.json +37 -4
- homeassistant/components/zwave_js/translations/de.json +13 -13
- homeassistant/components/zwave_js/translations/el.json +11 -15
- homeassistant/components/zwave_js/translations/en-GB.json +11 -15
- homeassistant/components/zwave_js/translations/en.json +13 -13
- homeassistant/components/zwave_js/translations/es.json +12 -12
- homeassistant/components/zwave_js/translations/et.json +12 -12
- homeassistant/components/zwave_js/translations/fi.json +0 -15
- homeassistant/components/zwave_js/translations/ga.json +23 -20
- homeassistant/components/zwave_js/translations/hu.json +0 -27
- homeassistant/components/zwave_js/translations/id.json +0 -4
- homeassistant/components/zwave_js/translations/it.json +1 -5
- homeassistant/components/zwave_js/translations/ja.json +0 -4
- homeassistant/components/zwave_js/translations/ko.json +0 -4
- homeassistant/components/zwave_js/translations/lt.json +44 -11
- homeassistant/components/zwave_js/translations/mk.json +16 -7
- homeassistant/components/zwave_js/translations/pt.json +43 -15
- homeassistant/components/zwave_js/translations/ru.json +0 -25
- homeassistant/components/zwave_js/translations/sk.json +13 -13
- homeassistant/components/zwave_js/translations/sv.json +0 -27
- homeassistant/components/zwave_js/translations/tr.json +0 -17
- homeassistant/components/zwave_js/translations/vi.json +0 -4
- homeassistant/components/zwave_js/translations/zh-Hans.json +12 -12
- homeassistant/components/zwave_js/translations/zh-Hant.json +12 -12
- homeassistant/components/zwave_me/translations/de.json +1 -1
- homeassistant/const.py +1 -1
- homeassistant/package_constraints.txt +2 -2
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/METADATA +2 -2
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/RECORD +775 -655
- homeassistant/components/zwave_js/translations/sq.json +0 -7
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/WHEEL +0 -0
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.7.0b8.dist-info → homeassistant-2025.7.1.dist-info}/top_level.txt +0 -0
|
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import logging
|
|
7
|
+
from types import MappingProxyType
|
|
7
8
|
|
|
8
9
|
import httpx
|
|
9
10
|
import ollama
|
|
@@ -92,8 +93,12 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
|
|
|
92
93
|
|
|
93
94
|
for entry in entries:
|
|
94
95
|
use_existing = False
|
|
96
|
+
# Create subentry with model from entry.data and options from entry.options
|
|
97
|
+
subentry_data = entry.options.copy()
|
|
98
|
+
subentry_data[CONF_MODEL] = entry.data[CONF_MODEL]
|
|
99
|
+
|
|
95
100
|
subentry = ConfigSubentry(
|
|
96
|
-
data=
|
|
101
|
+
data=MappingProxyType(subentry_data),
|
|
97
102
|
subentry_type="conversation",
|
|
98
103
|
title=entry.title,
|
|
99
104
|
unique_id=None,
|
|
@@ -146,9 +151,11 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
|
|
|
146
151
|
hass.config_entries.async_update_entry(
|
|
147
152
|
entry,
|
|
148
153
|
title=DEFAULT_NAME,
|
|
154
|
+
# Update parent entry to only keep URL, remove model
|
|
155
|
+
data={CONF_URL: entry.data[CONF_URL]},
|
|
149
156
|
options={},
|
|
150
|
-
version=
|
|
151
|
-
minor_version=
|
|
157
|
+
version=3,
|
|
158
|
+
minor_version=1,
|
|
152
159
|
)
|
|
153
160
|
|
|
154
161
|
|
|
@@ -156,7 +163,7 @@ async def async_migrate_entry(hass: HomeAssistant, entry: OllamaConfigEntry) ->
|
|
|
156
163
|
"""Migrate entry."""
|
|
157
164
|
_LOGGER.debug("Migrating from version %s:%s", entry.version, entry.minor_version)
|
|
158
165
|
|
|
159
|
-
if entry.version >
|
|
166
|
+
if entry.version > 3:
|
|
160
167
|
# This means the user has downgraded from a future version
|
|
161
168
|
return False
|
|
162
169
|
|
|
@@ -174,6 +181,25 @@ async def async_migrate_entry(hass: HomeAssistant, entry: OllamaConfigEntry) ->
|
|
|
174
181
|
|
|
175
182
|
hass.config_entries.async_update_entry(entry, minor_version=2)
|
|
176
183
|
|
|
184
|
+
if entry.version == 2 and entry.minor_version == 2:
|
|
185
|
+
# Update subentries to include the model
|
|
186
|
+
for subentry in entry.subentries.values():
|
|
187
|
+
if subentry.subentry_type == "conversation":
|
|
188
|
+
updated_data = dict(subentry.data)
|
|
189
|
+
updated_data[CONF_MODEL] = entry.data[CONF_MODEL]
|
|
190
|
+
|
|
191
|
+
hass.config_entries.async_update_subentry(
|
|
192
|
+
entry, subentry, data=MappingProxyType(updated_data)
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
# Update main entry to remove model and bump version
|
|
196
|
+
hass.config_entries.async_update_entry(
|
|
197
|
+
entry,
|
|
198
|
+
data={CONF_URL: entry.data[CONF_URL]},
|
|
199
|
+
version=3,
|
|
200
|
+
minor_version=1,
|
|
201
|
+
)
|
|
202
|
+
|
|
177
203
|
_LOGGER.debug(
|
|
178
204
|
"Migration to version %s:%s successful", entry.version, entry.minor_version
|
|
179
205
|
)
|
|
@@ -22,7 +22,7 @@ from homeassistant.config_entries import (
|
|
|
22
22
|
)
|
|
23
23
|
from homeassistant.const import CONF_LLM_HASS_API, CONF_NAME, CONF_URL
|
|
24
24
|
from homeassistant.core import HomeAssistant, callback
|
|
25
|
-
from homeassistant.helpers import llm
|
|
25
|
+
from homeassistant.helpers import config_validation as cv, llm
|
|
26
26
|
from homeassistant.helpers.selector import (
|
|
27
27
|
BooleanSelector,
|
|
28
28
|
NumberSelector,
|
|
@@ -38,6 +38,7 @@ from homeassistant.helpers.selector import (
|
|
|
38
38
|
)
|
|
39
39
|
from homeassistant.util.ssl import get_default_context
|
|
40
40
|
|
|
41
|
+
from . import OllamaConfigEntry
|
|
41
42
|
from .const import (
|
|
42
43
|
CONF_KEEP_ALIVE,
|
|
43
44
|
CONF_MAX_HISTORY,
|
|
@@ -72,43 +73,43 @@ STEP_USER_DATA_SCHEMA = vol.Schema(
|
|
|
72
73
|
class OllamaConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
73
74
|
"""Handle a config flow for Ollama."""
|
|
74
75
|
|
|
75
|
-
VERSION =
|
|
76
|
-
MINOR_VERSION =
|
|
76
|
+
VERSION = 3
|
|
77
|
+
MINOR_VERSION = 1
|
|
77
78
|
|
|
78
79
|
def __init__(self) -> None:
|
|
79
80
|
"""Initialize config flow."""
|
|
80
81
|
self.url: str | None = None
|
|
81
|
-
self.model: str | None = None
|
|
82
|
-
self.client: ollama.AsyncClient | None = None
|
|
83
|
-
self.download_task: asyncio.Task | None = None
|
|
84
82
|
|
|
85
83
|
async def async_step_user(
|
|
86
84
|
self, user_input: dict[str, Any] | None = None
|
|
87
85
|
) -> ConfigFlowResult:
|
|
88
86
|
"""Handle the initial step."""
|
|
89
|
-
|
|
90
|
-
self.url = user_input.get(CONF_URL, self.url)
|
|
91
|
-
self.model = user_input.get(CONF_MODEL, self.model)
|
|
92
|
-
|
|
93
|
-
if self.url is None:
|
|
87
|
+
if user_input is None:
|
|
94
88
|
return self.async_show_form(
|
|
95
|
-
step_id="user", data_schema=STEP_USER_DATA_SCHEMA
|
|
89
|
+
step_id="user", data_schema=STEP_USER_DATA_SCHEMA
|
|
96
90
|
)
|
|
97
91
|
|
|
98
92
|
errors = {}
|
|
93
|
+
url = user_input[CONF_URL]
|
|
99
94
|
|
|
100
|
-
self._async_abort_entries_match({CONF_URL:
|
|
95
|
+
self._async_abort_entries_match({CONF_URL: url})
|
|
101
96
|
|
|
102
97
|
try:
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
url = cv.url(url)
|
|
99
|
+
except vol.Invalid:
|
|
100
|
+
errors["base"] = "invalid_url"
|
|
101
|
+
return self.async_show_form(
|
|
102
|
+
step_id="user",
|
|
103
|
+
data_schema=self.add_suggested_values_to_schema(
|
|
104
|
+
STEP_USER_DATA_SCHEMA, user_input
|
|
105
|
+
),
|
|
106
|
+
errors=errors,
|
|
105
107
|
)
|
|
106
|
-
async with asyncio.timeout(DEFAULT_TIMEOUT):
|
|
107
|
-
response = await self.client.list()
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
try:
|
|
110
|
+
client = ollama.AsyncClient(host=url, verify=get_default_context())
|
|
111
|
+
async with asyncio.timeout(DEFAULT_TIMEOUT):
|
|
112
|
+
await client.list()
|
|
112
113
|
except (TimeoutError, httpx.ConnectError):
|
|
113
114
|
errors["base"] = "cannot_connect"
|
|
114
115
|
except Exception:
|
|
@@ -117,10 +118,69 @@ class OllamaConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
117
118
|
|
|
118
119
|
if errors:
|
|
119
120
|
return self.async_show_form(
|
|
120
|
-
step_id="user",
|
|
121
|
+
step_id="user",
|
|
122
|
+
data_schema=self.add_suggested_values_to_schema(
|
|
123
|
+
STEP_USER_DATA_SCHEMA, user_input
|
|
124
|
+
),
|
|
125
|
+
errors=errors,
|
|
121
126
|
)
|
|
122
127
|
|
|
123
|
-
|
|
128
|
+
return self.async_create_entry(
|
|
129
|
+
title=url,
|
|
130
|
+
data={CONF_URL: url},
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
@classmethod
|
|
134
|
+
@callback
|
|
135
|
+
def async_get_supported_subentry_types(
|
|
136
|
+
cls, config_entry: ConfigEntry
|
|
137
|
+
) -> dict[str, type[ConfigSubentryFlow]]:
|
|
138
|
+
"""Return subentries supported by this integration."""
|
|
139
|
+
return {"conversation": ConversationSubentryFlowHandler}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class ConversationSubentryFlowHandler(ConfigSubentryFlow):
|
|
143
|
+
"""Flow for managing conversation subentries."""
|
|
144
|
+
|
|
145
|
+
def __init__(self) -> None:
|
|
146
|
+
"""Initialize the subentry flow."""
|
|
147
|
+
super().__init__()
|
|
148
|
+
self._name: str | None = None
|
|
149
|
+
self._model: str | None = None
|
|
150
|
+
self.download_task: asyncio.Task | None = None
|
|
151
|
+
self._config_data: dict[str, Any] | None = None
|
|
152
|
+
|
|
153
|
+
@property
|
|
154
|
+
def _is_new(self) -> bool:
|
|
155
|
+
"""Return if this is a new subentry."""
|
|
156
|
+
return self.source == "user"
|
|
157
|
+
|
|
158
|
+
@property
|
|
159
|
+
def _client(self) -> ollama.AsyncClient:
|
|
160
|
+
"""Return the Ollama client."""
|
|
161
|
+
entry: OllamaConfigEntry = self._get_entry()
|
|
162
|
+
return entry.runtime_data
|
|
163
|
+
|
|
164
|
+
async def async_step_set_options(
|
|
165
|
+
self, user_input: dict[str, Any] | None = None
|
|
166
|
+
) -> SubentryFlowResult:
|
|
167
|
+
"""Handle model selection and configuration step."""
|
|
168
|
+
if self._get_entry().state != ConfigEntryState.LOADED:
|
|
169
|
+
return self.async_abort(reason="entry_not_loaded")
|
|
170
|
+
|
|
171
|
+
if user_input is None:
|
|
172
|
+
# Get available models from Ollama server
|
|
173
|
+
try:
|
|
174
|
+
async with asyncio.timeout(DEFAULT_TIMEOUT):
|
|
175
|
+
response = await self._client.list()
|
|
176
|
+
|
|
177
|
+
downloaded_models: set[str] = {
|
|
178
|
+
model_info["model"] for model_info in response.get("models", [])
|
|
179
|
+
}
|
|
180
|
+
except (TimeoutError, httpx.ConnectError, httpx.HTTPError):
|
|
181
|
+
_LOGGER.exception("Failed to get models from Ollama server")
|
|
182
|
+
return self.async_abort(reason="cannot_connect")
|
|
183
|
+
|
|
124
184
|
# Show models that have been downloaded first, followed by all known
|
|
125
185
|
# models (only latest tags).
|
|
126
186
|
models_to_list = [
|
|
@@ -131,52 +191,69 @@ class OllamaConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
131
191
|
for m in sorted(MODEL_NAMES)
|
|
132
192
|
if m not in downloaded_models
|
|
133
193
|
]
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
SelectSelectorConfig(options=models_to_list, custom_value=True)
|
|
140
|
-
),
|
|
141
|
-
}
|
|
142
|
-
)
|
|
194
|
+
|
|
195
|
+
if self._is_new:
|
|
196
|
+
options = {}
|
|
197
|
+
else:
|
|
198
|
+
options = self._get_reconfigure_subentry().data.copy()
|
|
143
199
|
|
|
144
200
|
return self.async_show_form(
|
|
145
|
-
step_id="
|
|
146
|
-
data_schema=
|
|
201
|
+
step_id="set_options",
|
|
202
|
+
data_schema=vol.Schema(
|
|
203
|
+
ollama_config_option_schema(
|
|
204
|
+
self.hass, self._is_new, options, models_to_list
|
|
205
|
+
)
|
|
206
|
+
),
|
|
147
207
|
)
|
|
148
208
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
209
|
+
self._model = user_input[CONF_MODEL]
|
|
210
|
+
if self._is_new:
|
|
211
|
+
self._name = user_input.pop(CONF_NAME)
|
|
152
212
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
213
|
+
# Check if model needs to be downloaded
|
|
214
|
+
try:
|
|
215
|
+
async with asyncio.timeout(DEFAULT_TIMEOUT):
|
|
216
|
+
response = await self._client.list()
|
|
217
|
+
|
|
218
|
+
currently_downloaded_models: set[str] = {
|
|
219
|
+
model_info["model"] for model_info in response.get("models", [])
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if self._model not in currently_downloaded_models:
|
|
223
|
+
# Store the user input to use after download
|
|
224
|
+
self._config_data = user_input
|
|
225
|
+
# Ollama server needs to download model first
|
|
226
|
+
return await self.async_step_download()
|
|
227
|
+
except Exception:
|
|
228
|
+
_LOGGER.exception("Failed to check model availability")
|
|
229
|
+
return self.async_abort(reason="cannot_connect")
|
|
230
|
+
|
|
231
|
+
# Model is already downloaded, create/update the entry
|
|
232
|
+
if self._is_new:
|
|
233
|
+
return self.async_create_entry(
|
|
234
|
+
title=self._name,
|
|
235
|
+
data=user_input,
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
return self.async_update_and_abort(
|
|
239
|
+
self._get_entry(),
|
|
240
|
+
self._get_reconfigure_subentry(),
|
|
241
|
+
data=user_input,
|
|
164
242
|
)
|
|
165
243
|
|
|
166
244
|
async def async_step_download(
|
|
167
245
|
self, user_input: dict[str, Any] | None = None
|
|
168
|
-
) ->
|
|
246
|
+
) -> SubentryFlowResult:
|
|
169
247
|
"""Step to wait for Ollama server to download a model."""
|
|
170
|
-
assert self.
|
|
171
|
-
assert self.client is not None
|
|
248
|
+
assert self._model is not None
|
|
172
249
|
|
|
173
250
|
if self.download_task is None:
|
|
174
251
|
# Tell Ollama server to pull the model.
|
|
175
252
|
# The task will block until the model and metadata are fully
|
|
176
253
|
# downloaded.
|
|
177
254
|
self.download_task = self.hass.async_create_background_task(
|
|
178
|
-
self.
|
|
179
|
-
f"Downloading {self.
|
|
255
|
+
self._client.pull(self._model),
|
|
256
|
+
f"Downloading {self._model}",
|
|
180
257
|
)
|
|
181
258
|
|
|
182
259
|
if self.download_task.done():
|
|
@@ -192,80 +269,28 @@ class OllamaConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
192
269
|
progress_task=self.download_task,
|
|
193
270
|
)
|
|
194
271
|
|
|
195
|
-
async def async_step_finish(
|
|
196
|
-
self, user_input: dict[str, Any] | None = None
|
|
197
|
-
) -> ConfigFlowResult:
|
|
198
|
-
"""Step after model downloading has succeeded."""
|
|
199
|
-
assert self.url is not None
|
|
200
|
-
assert self.model is not None
|
|
201
|
-
|
|
202
|
-
return self.async_create_entry(
|
|
203
|
-
title=_get_title(self.model),
|
|
204
|
-
data={CONF_URL: self.url, CONF_MODEL: self.model},
|
|
205
|
-
subentries=[
|
|
206
|
-
{
|
|
207
|
-
"subentry_type": "conversation",
|
|
208
|
-
"data": {},
|
|
209
|
-
"title": _get_title(self.model),
|
|
210
|
-
"unique_id": None,
|
|
211
|
-
}
|
|
212
|
-
],
|
|
213
|
-
)
|
|
214
|
-
|
|
215
272
|
async def async_step_failed(
|
|
216
273
|
self, user_input: dict[str, Any] | None = None
|
|
217
|
-
) ->
|
|
274
|
+
) -> SubentryFlowResult:
|
|
218
275
|
"""Step after model downloading has failed."""
|
|
219
276
|
return self.async_abort(reason="download_failed")
|
|
220
277
|
|
|
221
|
-
|
|
222
|
-
@callback
|
|
223
|
-
def async_get_supported_subentry_types(
|
|
224
|
-
cls, config_entry: ConfigEntry
|
|
225
|
-
) -> dict[str, type[ConfigSubentryFlow]]:
|
|
226
|
-
"""Return subentries supported by this integration."""
|
|
227
|
-
return {"conversation": ConversationSubentryFlowHandler}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
class ConversationSubentryFlowHandler(ConfigSubentryFlow):
|
|
231
|
-
"""Flow for managing conversation subentries."""
|
|
232
|
-
|
|
233
|
-
@property
|
|
234
|
-
def _is_new(self) -> bool:
|
|
235
|
-
"""Return if this is a new subentry."""
|
|
236
|
-
return self.source == "user"
|
|
237
|
-
|
|
238
|
-
async def async_step_set_options(
|
|
278
|
+
async def async_step_finish(
|
|
239
279
|
self, user_input: dict[str, Any] | None = None
|
|
240
280
|
) -> SubentryFlowResult:
|
|
241
|
-
"""
|
|
242
|
-
|
|
243
|
-
if self._get_entry().state != ConfigEntryState.LOADED:
|
|
244
|
-
return self.async_abort(reason="entry_not_loaded")
|
|
245
|
-
|
|
246
|
-
errors: dict[str, str] = {}
|
|
247
|
-
|
|
248
|
-
if user_input is None:
|
|
249
|
-
if self._is_new:
|
|
250
|
-
options = {}
|
|
251
|
-
else:
|
|
252
|
-
options = self._get_reconfigure_subentry().data.copy()
|
|
281
|
+
"""Step after model downloading has succeeded."""
|
|
282
|
+
assert self._config_data is not None
|
|
253
283
|
|
|
254
|
-
|
|
284
|
+
# Model download completed, create/update the entry with stored config
|
|
285
|
+
if self._is_new:
|
|
255
286
|
return self.async_create_entry(
|
|
256
|
-
title=
|
|
257
|
-
data=
|
|
287
|
+
title=self._name,
|
|
288
|
+
data=self._config_data,
|
|
258
289
|
)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
data=user_input,
|
|
264
|
-
)
|
|
265
|
-
|
|
266
|
-
schema = ollama_config_option_schema(self.hass, self._is_new, options)
|
|
267
|
-
return self.async_show_form(
|
|
268
|
-
step_id="set_options", data_schema=vol.Schema(schema), errors=errors
|
|
290
|
+
return self.async_update_and_abort(
|
|
291
|
+
self._get_entry(),
|
|
292
|
+
self._get_reconfigure_subentry(),
|
|
293
|
+
data=self._config_data,
|
|
269
294
|
)
|
|
270
295
|
|
|
271
296
|
async_step_user = async_step_set_options
|
|
@@ -273,19 +298,14 @@ class ConversationSubentryFlowHandler(ConfigSubentryFlow):
|
|
|
273
298
|
|
|
274
299
|
|
|
275
300
|
def ollama_config_option_schema(
|
|
276
|
-
hass: HomeAssistant,
|
|
301
|
+
hass: HomeAssistant,
|
|
302
|
+
is_new: bool,
|
|
303
|
+
options: Mapping[str, Any],
|
|
304
|
+
models_to_list: list[SelectOptionDict],
|
|
277
305
|
) -> dict:
|
|
278
306
|
"""Ollama options schema."""
|
|
279
|
-
hass_apis: list[SelectOptionDict] = [
|
|
280
|
-
SelectOptionDict(
|
|
281
|
-
label=api.name,
|
|
282
|
-
value=api.id,
|
|
283
|
-
)
|
|
284
|
-
for api in llm.async_get_apis(hass)
|
|
285
|
-
]
|
|
286
|
-
|
|
287
307
|
if is_new:
|
|
288
|
-
schema: dict
|
|
308
|
+
schema: dict = {
|
|
289
309
|
vol.Required(CONF_NAME, default="Ollama Conversation"): str,
|
|
290
310
|
}
|
|
291
311
|
else:
|
|
@@ -293,6 +313,12 @@ def ollama_config_option_schema(
|
|
|
293
313
|
|
|
294
314
|
schema.update(
|
|
295
315
|
{
|
|
316
|
+
vol.Required(
|
|
317
|
+
CONF_MODEL,
|
|
318
|
+
description={"suggested_value": options.get(CONF_MODEL, DEFAULT_MODEL)},
|
|
319
|
+
): SelectSelector(
|
|
320
|
+
SelectSelectorConfig(options=models_to_list, custom_value=True)
|
|
321
|
+
),
|
|
296
322
|
vol.Optional(
|
|
297
323
|
CONF_PROMPT,
|
|
298
324
|
description={
|
|
@@ -304,7 +330,18 @@ def ollama_config_option_schema(
|
|
|
304
330
|
vol.Optional(
|
|
305
331
|
CONF_LLM_HASS_API,
|
|
306
332
|
description={"suggested_value": options.get(CONF_LLM_HASS_API)},
|
|
307
|
-
): SelectSelector(
|
|
333
|
+
): SelectSelector(
|
|
334
|
+
SelectSelectorConfig(
|
|
335
|
+
options=[
|
|
336
|
+
SelectOptionDict(
|
|
337
|
+
label=api.name,
|
|
338
|
+
value=api.id,
|
|
339
|
+
)
|
|
340
|
+
for api in llm.async_get_apis(hass)
|
|
341
|
+
],
|
|
342
|
+
multiple=True,
|
|
343
|
+
)
|
|
344
|
+
),
|
|
308
345
|
vol.Optional(
|
|
309
346
|
CONF_NUM_CTX,
|
|
310
347
|
description={
|
|
@@ -350,11 +387,3 @@ def ollama_config_option_schema(
|
|
|
350
387
|
)
|
|
351
388
|
|
|
352
389
|
return schema
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
def _get_title(model: str) -> str:
|
|
356
|
-
"""Get title for config entry."""
|
|
357
|
-
if model.endswith(":latest"):
|
|
358
|
-
model = model.split(":", maxsplit=1)[0]
|
|
359
|
-
|
|
360
|
-
return model
|