homeassistant 2025.12.0b8__py3-none-any.whl → 2025.12.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/airobot/translations/he.json +25 -0
- homeassistant/components/airobot/translations/pt.json +5 -1
- homeassistant/components/alarm_control_panel/translations/cs.json +18 -6
- homeassistant/components/alarm_control_panel/translations/he.json +86 -1
- homeassistant/components/alarm_control_panel/translations/pt.json +21 -7
- homeassistant/components/alarm_control_panel/translations/zh-Hans.json +4 -2
- homeassistant/components/alert/translations/he.json +1 -1
- homeassistant/components/anglian_water/config_flow.py +4 -18
- homeassistant/components/anglian_water/manifest.json +1 -0
- homeassistant/components/anglian_water/translations/he.json +20 -0
- homeassistant/components/anglian_water/translations/pt.json +2 -1
- homeassistant/components/anglian_water/translations/sv.json +8 -2
- homeassistant/components/anova/translations/he.json +1 -1
- homeassistant/components/anthropic/translations/he.json +31 -0
- homeassistant/components/apcupsd/translations/sk.json +5 -5
- homeassistant/components/aprilaire/translations/he.json +4 -4
- homeassistant/components/assist_satellite/translations/cs.json +12 -4
- homeassistant/components/assist_satellite/translations/he.json +55 -2
- homeassistant/components/assist_satellite/translations/pt.json +12 -4
- homeassistant/components/assist_satellite/translations/zh-Hans.json +4 -2
- homeassistant/components/automation/translations/cs.json +8 -0
- homeassistant/components/automation/translations/pt.json +8 -0
- homeassistant/components/automation/translations/sr-Latn.json +1 -1
- homeassistant/components/backup/translations/he.json +1 -1
- homeassistant/components/bang_olufsen/translations/he.json +901 -0
- homeassistant/components/bayesian/translations/sk.json +3 -3
- homeassistant/components/binary_sensor/translations/cs.json +36 -1
- homeassistant/components/binary_sensor/translations/et.json +4 -0
- homeassistant/components/binary_sensor/translations/ga.json +36 -1
- homeassistant/components/binary_sensor/translations/he.json +36 -1
- homeassistant/components/binary_sensor/translations/pt.json +36 -1
- homeassistant/components/binary_sensor/translations/ru.json +36 -1
- homeassistant/components/binary_sensor/translations/sv.json +23 -1
- homeassistant/components/binary_sensor/translations/zh-Hans.json +29 -1
- homeassistant/components/blebox/translations/sr-Latn.json +1 -0
- homeassistant/components/bsblan/translations/sr-Latn.json +4 -0
- homeassistant/components/camera/translations/he.json +1 -1
- homeassistant/components/climate/translations/cs.json +15 -5
- homeassistant/components/climate/translations/he.json +65 -2
- homeassistant/components/climate/translations/pt.json +15 -5
- homeassistant/components/climate/translations/ru.json +21 -11
- homeassistant/components/cloud/entity.py +1 -1
- homeassistant/components/cloud/manifest.json +1 -1
- homeassistant/components/cloud/translations/he.json +7 -0
- homeassistant/components/deluge/translations/he.json +1 -1
- homeassistant/components/derivative/translations/he.json +5 -0
- homeassistant/components/doorbird/device.py +11 -7
- homeassistant/components/duckdns/translations/he.json +10 -0
- homeassistant/components/duckdns/translations/ru.json +12 -0
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/ecovacs/translations/he.json +1 -1
- homeassistant/components/energyid/translations/he.json +11 -0
- homeassistant/components/energyid/translations/sv.json +2 -1
- homeassistant/components/enphase_envoy/translations/he.json +1 -1
- homeassistant/components/esphome/translations/he.json +1 -0
- homeassistant/components/essent/translations/he.json +9 -0
- homeassistant/components/essent/translations/nl.json +32 -0
- homeassistant/components/evohome/manifest.json +1 -1
- homeassistant/components/fan/translations/cs.json +6 -2
- homeassistant/components/fan/translations/he.json +34 -1
- homeassistant/components/fan/translations/nl.json +6 -1
- homeassistant/components/fan/translations/pt.json +6 -2
- homeassistant/components/fan/translations/ru.json +37 -1
- homeassistant/components/forked_daapd/translations/sr-Latn.json +8 -0
- homeassistant/components/fritzbox_callmonitor/translations/he.json +1 -1
- homeassistant/components/fronius/translations/he.json +1 -1
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/frontend/translations/cs.json +2 -2
- homeassistant/components/frontend/translations/de.json +2 -2
- homeassistant/components/frontend/translations/he.json +8 -0
- homeassistant/components/google_air_quality/strings.json +7 -2
- homeassistant/components/google_air_quality/translations/bg.json +3 -2
- homeassistant/components/google_air_quality/translations/cs.json +7 -2
- homeassistant/components/google_air_quality/translations/de.json +7 -2
- homeassistant/components/google_air_quality/translations/el.json +3 -2
- homeassistant/components/google_air_quality/translations/en-GB.json +7 -2
- homeassistant/components/google_air_quality/translations/en.json +7 -2
- homeassistant/components/google_air_quality/translations/es.json +7 -2
- homeassistant/components/google_air_quality/translations/et.json +7 -2
- homeassistant/components/google_air_quality/translations/fr.json +14 -0
- homeassistant/components/google_air_quality/translations/ga.json +7 -2
- homeassistant/components/google_air_quality/translations/he.json +239 -0
- homeassistant/components/google_air_quality/translations/lt.json +0 -9
- homeassistant/components/google_air_quality/translations/nl.json +42 -2
- homeassistant/components/google_air_quality/translations/pt.json +7 -2
- homeassistant/components/google_air_quality/translations/ru.json +2 -9
- homeassistant/components/google_air_quality/translations/sk.json +7 -2
- homeassistant/components/google_air_quality/translations/sv.json +11 -4
- homeassistant/components/google_air_quality/translations/tr.json +0 -9
- homeassistant/components/google_air_quality/translations/zh-Hans.json +7 -4
- homeassistant/components/google_air_quality/translations/zh-Hant.json +7 -2
- homeassistant/components/google_assistant/translations/sr-Latn.json +1 -1
- homeassistant/components/google_generative_ai_conversation/__init__.py +1 -0
- homeassistant/components/google_generative_ai_conversation/const.py +1 -1
- homeassistant/components/google_generative_ai_conversation/strings.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/bg.json +0 -3
- homeassistant/components/google_generative_ai_conversation/translations/cs.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/de.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/el.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/en-GB.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/en.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/es.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/et.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/fr.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/ga.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/he.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/hu.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/lt.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/nl.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/pt-BR.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/pt.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/ru.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/sk.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/sl.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/sv.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/tr.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/uk.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/zh-Hans.json +0 -1
- homeassistant/components/google_generative_ai_conversation/translations/zh-Hant.json +0 -1
- homeassistant/components/google_photos/services.py +1 -0
- homeassistant/components/google_photos/strings.json +1 -1
- homeassistant/components/google_photos/translations/bg.json +0 -1
- homeassistant/components/google_photos/translations/ca.json +0 -1
- homeassistant/components/google_photos/translations/cs.json +1 -1
- homeassistant/components/google_photos/translations/de.json +1 -1
- homeassistant/components/google_photos/translations/el.json +0 -1
- homeassistant/components/google_photos/translations/en-GB.json +1 -1
- homeassistant/components/google_photos/translations/en.json +1 -1
- homeassistant/components/google_photos/translations/es.json +1 -1
- homeassistant/components/google_photos/translations/et.json +1 -1
- homeassistant/components/google_photos/translations/fr.json +0 -1
- homeassistant/components/google_photos/translations/ga.json +0 -1
- homeassistant/components/google_photos/translations/he.json +0 -1
- homeassistant/components/google_photos/translations/hu.json +0 -1
- homeassistant/components/google_photos/translations/id.json +0 -1
- homeassistant/components/google_photos/translations/it.json +0 -1
- homeassistant/components/google_photos/translations/ja.json +0 -1
- homeassistant/components/google_photos/translations/lt.json +0 -1
- homeassistant/components/google_photos/translations/nl.json +0 -1
- homeassistant/components/google_photos/translations/pt-BR.json +0 -1
- homeassistant/components/google_photos/translations/pt.json +1 -1
- homeassistant/components/google_photos/translations/ru.json +0 -1
- homeassistant/components/google_photos/translations/sk.json +0 -1
- homeassistant/components/google_photos/translations/sv.json +0 -1
- homeassistant/components/google_photos/translations/tr.json +0 -1
- homeassistant/components/google_photos/translations/uk.json +0 -1
- homeassistant/components/google_photos/translations/zh-Hans.json +0 -1
- homeassistant/components/google_photos/translations/zh-Hant.json +0 -1
- homeassistant/components/google_weather/translations/he.json +102 -0
- homeassistant/components/hanna/translations/he.json +20 -0
- homeassistant/components/hassio/translations/cs.json +1 -0
- homeassistant/components/hassio/translations/et.json +1 -0
- homeassistant/components/hassio/translations/pt.json +1 -0
- homeassistant/components/home_connect/translations/de.json +2 -2
- homeassistant/components/home_connect/translations/he.json +3 -0
- homeassistant/components/homekit_controller/translations/he.json +1 -1
- homeassistant/components/hue_ble/translations/he.json +11 -0
- homeassistant/components/hue_ble/translations/nl.json +3 -0
- homeassistant/components/hue_ble/translations/pt.json +2 -1
- homeassistant/components/hue_ble/translations/sv.json +8 -0
- homeassistant/components/humidifier/translations/he.json +1 -1
- homeassistant/components/integration/translations/pl.json +1 -1
- homeassistant/components/ipp/translations/he.json +1 -1
- homeassistant/components/iron_os/translations/he.json +1 -1
- homeassistant/components/kitchen_sink/translations/cs.json +2 -2
- homeassistant/components/kitchen_sink/translations/de.json +4 -4
- homeassistant/components/kitchen_sink/translations/el.json +5 -0
- homeassistant/components/kitchen_sink/translations/en-GB.json +2 -2
- homeassistant/components/kitchen_sink/translations/en.json +2 -2
- homeassistant/components/kitchen_sink/translations/es.json +2 -2
- homeassistant/components/kitchen_sink/translations/et.json +1 -1
- homeassistant/components/kitchen_sink/translations/ga.json +0 -2
- homeassistant/components/kitchen_sink/translations/it.json +0 -2
- homeassistant/components/kitchen_sink/translations/lt.json +0 -2
- homeassistant/components/kitchen_sink/translations/nl.json +4 -0
- homeassistant/components/kitchen_sink/translations/pt.json +2 -2
- homeassistant/components/kitchen_sink/translations/sk.json +2 -2
- homeassistant/components/kitchen_sink/translations/tr.json +0 -2
- homeassistant/components/kitchen_sink/translations/zh-Hans.json +0 -2
- homeassistant/components/labs/__init__.py +2 -54
- homeassistant/components/labs/helpers.py +63 -0
- homeassistant/components/labs/websocket_api.py +51 -0
- homeassistant/components/lametric/services.py +1 -0
- homeassistant/components/lametric/strings.json +1 -1
- homeassistant/components/lametric/translations/ca.json +0 -3
- homeassistant/components/lametric/translations/cs.json +1 -1
- homeassistant/components/lametric/translations/de.json +1 -1
- homeassistant/components/lametric/translations/el.json +0 -1
- homeassistant/components/lametric/translations/en-GB.json +1 -1
- homeassistant/components/lametric/translations/en.json +1 -1
- homeassistant/components/lametric/translations/es.json +1 -1
- homeassistant/components/lametric/translations/et.json +0 -1
- homeassistant/components/lametric/translations/fi.json +0 -3
- homeassistant/components/lametric/translations/ga.json +0 -1
- homeassistant/components/lametric/translations/gl.json +0 -3
- homeassistant/components/lametric/translations/hu.json +0 -1
- homeassistant/components/lametric/translations/it.json +0 -3
- homeassistant/components/lametric/translations/ja.json +0 -1
- homeassistant/components/lametric/translations/ko.json +0 -3
- homeassistant/components/lametric/translations/lt.json +0 -1
- homeassistant/components/lametric/translations/nl.json +0 -3
- homeassistant/components/lametric/translations/pt-BR.json +0 -3
- homeassistant/components/lametric/translations/pt.json +0 -1
- homeassistant/components/lametric/translations/ru.json +0 -1
- homeassistant/components/lametric/translations/sk.json +0 -1
- homeassistant/components/lametric/translations/sv.json +0 -1
- homeassistant/components/lametric/translations/tr.json +0 -1
- homeassistant/components/lametric/translations/vi.json +0 -3
- homeassistant/components/lametric/translations/zh-Hans.json +0 -1
- homeassistant/components/lametric/translations/zh-Hant.json +0 -1
- homeassistant/components/lawn_mower/translations/cs.json +12 -4
- homeassistant/components/lawn_mower/translations/he.json +38 -0
- homeassistant/components/lawn_mower/translations/pt.json +20 -12
- homeassistant/components/lawn_mower/translations/ru.json +56 -1
- homeassistant/components/light/translations/cs.json +6 -2
- homeassistant/components/light/translations/he.json +69 -2
- homeassistant/components/light/translations/nl.json +6 -1
- homeassistant/components/light/translations/pt.json +6 -2
- homeassistant/components/light/translations/ru.json +15 -11
- homeassistant/components/matter/translations/he.json +56 -2
- homeassistant/components/media_player/translations/cs.json +3 -1
- homeassistant/components/media_player/translations/he.json +27 -4
- homeassistant/components/media_player/translations/pt.json +3 -1
- homeassistant/components/media_player/translations/ru.json +24 -1
- homeassistant/components/miele/translations/ga.json +1 -0
- homeassistant/components/miele/translations/he.json +4 -1
- homeassistant/components/miele/translations/it.json +15 -1
- homeassistant/components/miele/translations/pt.json +1 -0
- homeassistant/components/miele/translations/zh-Hans.json +1 -0
- homeassistant/components/mqtt/translations/cs.json +3 -1
- homeassistant/components/mqtt/translations/he.json +35 -1
- homeassistant/components/mqtt/translations/pt.json +3 -1
- homeassistant/components/music_assistant/translations/he.json +8 -1
- homeassistant/components/myuplink/translations/he.json +5 -0
- homeassistant/components/neato/translations/he.json +5 -0
- homeassistant/components/netatmo/translations/he.json +5 -0
- homeassistant/components/niko_home_control/translations/he.json +3 -1
- homeassistant/components/nina/translations/he.json +12 -1
- homeassistant/components/ntfy/translations/cs.json +1 -1
- homeassistant/components/ntfy/translations/de.json +1 -1
- homeassistant/components/ntfy/translations/el.json +0 -3
- homeassistant/components/ntfy/translations/en-GB.json +1 -1
- homeassistant/components/ntfy/translations/en.json +1 -1
- homeassistant/components/ntfy/translations/es.json +1 -1
- homeassistant/components/ntfy/translations/et.json +1 -1
- homeassistant/components/ntfy/translations/lt.json +0 -1
- homeassistant/components/ntfy/translations/pt.json +1 -1
- homeassistant/components/ntfy/translations/ru.json +0 -1
- homeassistant/components/ntfy/translations/sk.json +1 -1
- homeassistant/components/ntfy/translations/sv.json +0 -1
- homeassistant/components/ntfy/translations/tr.json +0 -1
- homeassistant/components/ntfy/translations/zh-Hans.json +0 -1
- homeassistant/components/ntfy/translations/zh-Hant.json +1 -1
- homeassistant/components/onedrive/services.py +1 -0
- homeassistant/components/onedrive/strings.json +1 -1
- homeassistant/components/onedrive/translations/cs.json +1 -1
- homeassistant/components/onedrive/translations/de.json +1 -1
- homeassistant/components/onedrive/translations/el.json +0 -1
- homeassistant/components/onedrive/translations/en-GB.json +1 -1
- homeassistant/components/onedrive/translations/en.json +1 -1
- homeassistant/components/onedrive/translations/es.json +1 -1
- homeassistant/components/onedrive/translations/et.json +1 -1
- homeassistant/components/onedrive/translations/ga.json +0 -1
- homeassistant/components/onedrive/translations/he.json +3 -1
- homeassistant/components/onedrive/translations/hu.json +0 -1
- homeassistant/components/onedrive/translations/it.json +0 -1
- homeassistant/components/onedrive/translations/ja.json +0 -1
- homeassistant/components/onedrive/translations/lt.json +0 -1
- homeassistant/components/onedrive/translations/nl.json +0 -1
- homeassistant/components/onedrive/translations/pt.json +1 -1
- homeassistant/components/onedrive/translations/ru.json +0 -1
- homeassistant/components/onedrive/translations/sk.json +0 -1
- homeassistant/components/onedrive/translations/sl.json +0 -1
- homeassistant/components/onedrive/translations/sv.json +0 -1
- homeassistant/components/onedrive/translations/tr.json +0 -1
- homeassistant/components/onedrive/translations/zh-Hans.json +0 -1
- homeassistant/components/onedrive/translations/zh-Hant.json +0 -1
- homeassistant/components/oralb/manifest.json +1 -1
- homeassistant/components/oralb/translations/he.json +1 -1
- homeassistant/components/pilight/__init__.py +13 -1
- homeassistant/components/pilight/strings.json +1 -1
- homeassistant/components/pilight/translations/cs.json +1 -1
- homeassistant/components/pilight/translations/de.json +1 -1
- homeassistant/components/pilight/translations/el.json +0 -1
- homeassistant/components/pilight/translations/en-GB.json +1 -1
- homeassistant/components/pilight/translations/en.json +1 -1
- homeassistant/components/pilight/translations/es.json +1 -1
- homeassistant/components/pilight/translations/et.json +1 -1
- homeassistant/components/pilight/translations/fi.json +0 -1
- homeassistant/components/pilight/translations/ga.json +0 -1
- homeassistant/components/pilight/translations/hu.json +0 -1
- homeassistant/components/pilight/translations/it.json +0 -1
- homeassistant/components/pilight/translations/ja.json +0 -1
- homeassistant/components/pilight/translations/ko.json +0 -1
- homeassistant/components/pilight/translations/lt.json +0 -1
- homeassistant/components/pilight/translations/pt.json +1 -1
- homeassistant/components/pilight/translations/ru.json +0 -1
- homeassistant/components/pilight/translations/sk.json +1 -1
- homeassistant/components/pilight/translations/sv.json +0 -1
- homeassistant/components/pilight/translations/tr.json +0 -1
- homeassistant/components/pilight/translations/zh-Hans.json +0 -1
- homeassistant/components/pilight/translations/zh-Hant.json +1 -1
- homeassistant/components/playstation_network/coordinator.py +14 -7
- homeassistant/components/plugwise/translations/he.json +26 -0
- homeassistant/components/plugwise/translations/ru.json +12 -0
- homeassistant/components/point/translations/he.json +5 -0
- homeassistant/components/pooldose/translations/he.json +11 -0
- homeassistant/components/prusalink/translations/he.json +1 -1
- homeassistant/components/qbittorrent/translations/he.json +1 -1
- homeassistant/components/rainmachine/__init__.py +13 -2
- homeassistant/components/rainmachine/strings.json +1 -1
- homeassistant/components/rainmachine/translations/cs.json +1 -1
- homeassistant/components/rainmachine/translations/de.json +1 -1
- homeassistant/components/rainmachine/translations/en-GB.json +1 -1
- homeassistant/components/rainmachine/translations/en.json +1 -1
- homeassistant/components/rainmachine/translations/es.json +1 -1
- homeassistant/components/rainmachine/translations/et.json +1 -1
- homeassistant/components/rainmachine/translations/lt.json +0 -1
- homeassistant/components/rainmachine/translations/pt.json +1 -1
- homeassistant/components/rainmachine/translations/ru.json +1 -0
- homeassistant/components/rainmachine/translations/sk.json +1 -1
- homeassistant/components/rainmachine/translations/zh-Hans.json +0 -1
- homeassistant/components/rainmachine/translations/zh-Hant.json +1 -1
- homeassistant/components/reolink/host.py +4 -0
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/strings.json +2 -2
- homeassistant/components/reolink/translations/ca.json +0 -2
- homeassistant/components/reolink/translations/cs.json +2 -2
- homeassistant/components/reolink/translations/de.json +2 -2
- homeassistant/components/reolink/translations/el.json +0 -2
- homeassistant/components/reolink/translations/en-GB.json +2 -2
- homeassistant/components/reolink/translations/en.json +2 -2
- homeassistant/components/reolink/translations/es.json +0 -2
- homeassistant/components/reolink/translations/et.json +2 -2
- homeassistant/components/reolink/translations/fi.json +0 -2
- homeassistant/components/reolink/translations/fr.json +0 -2
- homeassistant/components/reolink/translations/ga.json +0 -2
- homeassistant/components/reolink/translations/hr.json +0 -5
- homeassistant/components/reolink/translations/hu.json +0 -2
- homeassistant/components/reolink/translations/id.json +0 -2
- homeassistant/components/reolink/translations/it.json +0 -2
- homeassistant/components/reolink/translations/ja.json +0 -2
- homeassistant/components/reolink/translations/ko.json +0 -2
- homeassistant/components/reolink/translations/lt.json +0 -2
- homeassistant/components/reolink/translations/nb.json +0 -1
- homeassistant/components/reolink/translations/nl.json +0 -2
- homeassistant/components/reolink/translations/pl.json +0 -1
- homeassistant/components/reolink/translations/pt-BR.json +0 -2
- homeassistant/components/reolink/translations/pt.json +2 -2
- homeassistant/components/reolink/translations/ro.json +0 -2
- homeassistant/components/reolink/translations/ru.json +0 -2
- homeassistant/components/reolink/translations/sk.json +2 -2
- homeassistant/components/reolink/translations/sv.json +0 -2
- homeassistant/components/reolink/translations/tr.json +0 -2
- homeassistant/components/reolink/translations/uk.json +0 -2
- homeassistant/components/reolink/translations/zh-Hans.json +0 -2
- homeassistant/components/reolink/translations/zh-Hant.json +2 -2
- homeassistant/components/rituals_perfume_genie/__init__.py +47 -7
- homeassistant/components/rituals_perfume_genie/config_flow.py +79 -32
- homeassistant/components/rituals_perfume_genie/const.py +1 -0
- homeassistant/components/rituals_perfume_genie/coordinator.py +39 -4
- homeassistant/components/rituals_perfume_genie/manifest.json +2 -2
- homeassistant/components/rituals_perfume_genie/strings.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/bg.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/ca.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/cs.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/da.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/de.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/el.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/en-GB.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/en.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/es.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/et.json +7 -1
- homeassistant/components/rituals_perfume_genie/translations/fi.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/fr.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/ga.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/he.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/hu.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/id.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/it.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/ja.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/ko.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/lt.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/lv.json +0 -5
- homeassistant/components/rituals_perfume_genie/translations/nb.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/nl.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/pl.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/pt-BR.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/pt.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/ro.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/ru.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/sk.json +8 -1
- homeassistant/components/rituals_perfume_genie/translations/sl.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/sv.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/tr.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/uk.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/zh-Hans.json +0 -3
- homeassistant/components/rituals_perfume_genie/translations/zh-Hant.json +0 -3
- homeassistant/components/roborock/__init__.py +20 -1
- homeassistant/components/roborock/manifest.json +1 -1
- homeassistant/components/roborock/translations/he.json +1 -1
- homeassistant/components/saunum/translations/he.json +31 -0
- homeassistant/components/scene/translations/cs.json +3 -3
- homeassistant/components/senz/translations/he.json +11 -1
- homeassistant/components/sfr_box/translations/he.json +1 -1
- homeassistant/components/sharkiq/manifest.json +1 -1
- homeassistant/components/shelly/button.py +11 -2
- homeassistant/components/shelly/translations/ga.json +8 -0
- homeassistant/components/shelly/translations/he.json +132 -0
- homeassistant/components/sleep_as_android/translations/es.json +3 -0
- homeassistant/components/smartthings/translations/he.json +19 -1
- homeassistant/components/spotify/translations/he.json +5 -0
- homeassistant/components/starlink/coordinator.py +0 -1
- homeassistant/components/starlink/sensor.py +6 -3
- homeassistant/components/switchbot/translations/he.json +12 -0
- homeassistant/components/telegram_bot/__init__.py +3 -0
- homeassistant/components/telegram_bot/config_flow.py +9 -5
- homeassistant/components/telegram_bot/strings.json +9 -9
- homeassistant/components/telegram_bot/translations/bg.json +0 -7
- homeassistant/components/telegram_bot/translations/ca.json +0 -12
- homeassistant/components/telegram_bot/translations/cs.json +15 -15
- homeassistant/components/telegram_bot/translations/de.json +15 -15
- homeassistant/components/telegram_bot/translations/el.json +0 -18
- homeassistant/components/telegram_bot/translations/en-GB.json +15 -15
- homeassistant/components/telegram_bot/translations/en.json +15 -15
- homeassistant/components/telegram_bot/translations/es.json +2 -15
- homeassistant/components/telegram_bot/translations/et.json +15 -15
- homeassistant/components/telegram_bot/translations/fi.json +0 -12
- homeassistant/components/telegram_bot/translations/ga.json +0 -19
- homeassistant/components/telegram_bot/translations/gl.json +0 -3
- homeassistant/components/telegram_bot/translations/he.json +0 -12
- homeassistant/components/telegram_bot/translations/hu.json +0 -18
- homeassistant/components/telegram_bot/translations/it.json +0 -18
- homeassistant/components/telegram_bot/translations/ja.json +0 -18
- homeassistant/components/telegram_bot/translations/ko.json +0 -12
- homeassistant/components/telegram_bot/translations/lt.json +0 -19
- homeassistant/components/telegram_bot/translations/mk.json +0 -1
- homeassistant/components/telegram_bot/translations/nb.json +0 -12
- homeassistant/components/telegram_bot/translations/nl.json +0 -18
- homeassistant/components/telegram_bot/translations/pt.json +15 -15
- homeassistant/components/telegram_bot/translations/ru.json +13 -19
- homeassistant/components/telegram_bot/translations/sk.json +15 -15
- homeassistant/components/telegram_bot/translations/sr-Latn.json +0 -12
- homeassistant/components/telegram_bot/translations/sv.json +0 -19
- homeassistant/components/telegram_bot/translations/tr.json +0 -13
- homeassistant/components/telegram_bot/translations/zh-Hans.json +0 -19
- homeassistant/components/telegram_bot/translations/zh-Hant.json +13 -19
- homeassistant/components/template/helpers.py +20 -10
- homeassistant/components/template/light.py +12 -18
- homeassistant/components/template/strings.json +1 -1
- homeassistant/components/template/translations/cs.json +1 -1
- homeassistant/components/template/translations/de.json +1 -1
- homeassistant/components/template/translations/el.json +0 -1
- homeassistant/components/template/translations/en-GB.json +1 -1
- homeassistant/components/template/translations/en.json +1 -1
- homeassistant/components/template/translations/es.json +0 -1
- homeassistant/components/template/translations/et.json +1 -1
- homeassistant/components/template/translations/ga.json +0 -1
- homeassistant/components/template/translations/he.json +3 -0
- homeassistant/components/template/translations/it.json +0 -1
- homeassistant/components/template/translations/lt.json +0 -1
- homeassistant/components/template/translations/pl.json +0 -1
- homeassistant/components/template/translations/pt.json +1 -1
- homeassistant/components/template/translations/sk.json +1 -1
- homeassistant/components/template/translations/sr-Latn.json +0 -1
- homeassistant/components/template/translations/tr.json +0 -1
- homeassistant/components/template/translations/zh-Hans.json +0 -1
- homeassistant/components/template/translations/zh-Hant.json +0 -1
- homeassistant/components/tesla_fleet/translations/he.json +5 -0
- homeassistant/components/teslemetry/services.py +3 -0
- homeassistant/components/teslemetry/strings.json +1 -1
- homeassistant/components/teslemetry/translations/bg.json +0 -1
- homeassistant/components/teslemetry/translations/cs.json +1 -1
- homeassistant/components/teslemetry/translations/de.json +1 -1
- homeassistant/components/teslemetry/translations/el.json +0 -1
- homeassistant/components/teslemetry/translations/en-GB.json +1 -1
- homeassistant/components/teslemetry/translations/en.json +1 -1
- homeassistant/components/teslemetry/translations/es.json +1 -1
- homeassistant/components/teslemetry/translations/et.json +1 -1
- homeassistant/components/teslemetry/translations/ga.json +0 -1
- homeassistant/components/teslemetry/translations/he.json +2 -2
- homeassistant/components/teslemetry/translations/hr.json +0 -1
- homeassistant/components/teslemetry/translations/hu.json +0 -1
- homeassistant/components/teslemetry/translations/ja.json +0 -1
- homeassistant/components/teslemetry/translations/lt.json +0 -1
- homeassistant/components/teslemetry/translations/pt.json +1 -1
- homeassistant/components/teslemetry/translations/ru.json +1 -1
- homeassistant/components/teslemetry/translations/sk.json +1 -1
- homeassistant/components/teslemetry/translations/sv.json +0 -1
- homeassistant/components/teslemetry/translations/tr.json +0 -1
- homeassistant/components/teslemetry/translations/zh-Hans.json +0 -1
- homeassistant/components/teslemetry/translations/zh-Hant.json +1 -1
- homeassistant/components/text/translations/cs.json +7 -1
- homeassistant/components/text/translations/he.json +7 -1
- homeassistant/components/text/translations/pt.json +7 -1
- homeassistant/components/text/translations/ru.json +7 -1
- homeassistant/components/timer/translations/he.json +1 -1
- homeassistant/components/toon/translations/he.json +5 -0
- homeassistant/components/transmission/translations/he.json +1 -1
- homeassistant/components/tuya/climate.py +12 -0
- homeassistant/components/tuya/translations/he.json +10 -0
- homeassistant/components/twitch/translations/he.json +5 -0
- homeassistant/components/unifiprotect/manifest.json +1 -1
- homeassistant/components/unifiprotect/translations/pt.json +10 -0
- homeassistant/components/unifiprotect/translations/zh-Hans.json +2 -1
- homeassistant/components/vacuum/translations/cs.json +12 -4
- homeassistant/components/vacuum/translations/he.json +57 -2
- homeassistant/components/vacuum/translations/pt.json +12 -4
- homeassistant/components/vacuum/translations/ru.json +20 -12
- homeassistant/components/vacuum/translations/sv.json +14 -0
- homeassistant/components/venstar/translations/he.json +1 -1
- homeassistant/components/vesync/binary_sensor.py +1 -1
- homeassistant/components/vicare/translations/he.json +10 -0
- homeassistant/components/victron_ble/translations/he.json +17 -0
- homeassistant/components/volvo/translations/he.json +6 -1
- homeassistant/components/weheat/translations/he.json +5 -0
- homeassistant/components/withings/translations/he.json +5 -0
- homeassistant/components/wled/translations/cs.json +10 -2
- homeassistant/components/wled/translations/et.json +10 -2
- homeassistant/components/wled/translations/ga.json +10 -2
- homeassistant/components/wled/translations/he.json +8 -2
- homeassistant/components/wled/translations/pt.json +10 -2
- homeassistant/components/wled/translations/ru.json +10 -2
- homeassistant/components/wled/translations/zh-Hans.json +10 -2
- homeassistant/components/xbox/browse_media.py +3 -1
- homeassistant/components/xbox/entity.py +10 -6
- homeassistant/components/xbox/media_source.py +2 -1
- homeassistant/components/xbox/sensor.py +3 -2
- homeassistant/components/xbox/translations/de.json +1 -1
- homeassistant/components/xbox/translations/he.json +10 -1
- homeassistant/components/xiaomi_aqara/config_flow.py +19 -3
- homeassistant/components/xiaomi_aqara/strings.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/ca.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/cs.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/da.json +0 -4
- homeassistant/components/xiaomi_aqara/translations/de.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/el.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/en-GB.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/en.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/es.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/et.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/fi.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/fr.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/ga.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/gl.json +1 -2
- homeassistant/components/xiaomi_aqara/translations/he.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/hu.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/id.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/it.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/ja.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/ko.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/lb.json +1 -2
- homeassistant/components/xiaomi_aqara/translations/lt.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/nb.json +0 -1
- homeassistant/components/xiaomi_aqara/translations/nl.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/pl.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/pt-BR.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/pt.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/ro.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/ru.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/sk.json +2 -2
- homeassistant/components/xiaomi_aqara/translations/sl.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/sr-Latn.json +6 -0
- homeassistant/components/xiaomi_aqara/translations/sv.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/tr.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/uk.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/vi.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/zh-Hans.json +0 -2
- homeassistant/components/xiaomi_aqara/translations/zh-Hant.json +2 -2
- homeassistant/components/yeelight/light.py +9 -1
- homeassistant/components/yeelight/strings.json +2 -2
- homeassistant/components/yeelight/translations/cs.json +3 -3
- homeassistant/components/yeelight/translations/de.json +3 -3
- homeassistant/components/yeelight/translations/el.json +0 -3
- homeassistant/components/yeelight/translations/en-GB.json +3 -3
- homeassistant/components/yeelight/translations/en.json +3 -3
- homeassistant/components/yeelight/translations/es.json +3 -3
- homeassistant/components/yeelight/translations/et.json +3 -3
- homeassistant/components/yeelight/translations/fi.json +0 -2
- homeassistant/components/yeelight/translations/fr.json +0 -3
- homeassistant/components/yeelight/translations/ga.json +0 -3
- homeassistant/components/yeelight/translations/gl.json +0 -2
- homeassistant/components/yeelight/translations/he.json +0 -3
- homeassistant/components/yeelight/translations/hu.json +0 -3
- homeassistant/components/yeelight/translations/it.json +0 -2
- homeassistant/components/yeelight/translations/ja.json +0 -3
- homeassistant/components/yeelight/translations/ko.json +0 -2
- homeassistant/components/yeelight/translations/lt.json +0 -3
- homeassistant/components/yeelight/translations/pt.json +3 -3
- homeassistant/components/yeelight/translations/ru.json +0 -3
- homeassistant/components/yeelight/translations/sk.json +3 -3
- homeassistant/components/yeelight/translations/sv.json +0 -3
- homeassistant/components/yeelight/translations/tr.json +0 -3
- homeassistant/components/yeelight/translations/vi.json +0 -2
- homeassistant/components/yeelight/translations/zh-Hans.json +0 -3
- homeassistant/components/yeelight/translations/zh-Hant.json +3 -3
- homeassistant/components/yolink/translations/he.json +5 -0
- homeassistant/components/youtube/translations/he.json +5 -0
- homeassistant/components/zha/config_flow.py +7 -0
- homeassistant/components/zha/strings.json +5 -3
- homeassistant/components/zha/translations/cs.json +6 -4
- homeassistant/components/zha/translations/de.json +6 -4
- homeassistant/components/zha/translations/el.json +0 -8
- homeassistant/components/zha/translations/en-GB.json +6 -4
- homeassistant/components/zha/translations/en.json +6 -4
- homeassistant/components/zha/translations/es.json +6 -4
- homeassistant/components/zha/translations/et.json +6 -4
- homeassistant/components/zha/translations/fr.json +0 -3
- homeassistant/components/zha/translations/ga.json +2 -0
- homeassistant/components/zha/translations/he.json +1 -1
- homeassistant/components/zha/translations/hu.json +0 -3
- homeassistant/components/zha/translations/lt.json +0 -8
- homeassistant/components/zha/translations/nl.json +8 -0
- homeassistant/components/zha/translations/pt.json +6 -4
- homeassistant/components/zha/translations/ru.json +46 -8
- homeassistant/components/zha/translations/sk.json +6 -4
- homeassistant/components/zha/translations/sv.json +2 -0
- homeassistant/components/zha/translations/zh-Hans.json +2 -8
- homeassistant/components/zha/translations/zh-Hant.json +2 -8
- homeassistant/components/zwave_js/services.py +3 -0
- homeassistant/components/zwave_js/strings.json +2 -2
- homeassistant/components/zwave_js/translations/cs.json +2 -2
- homeassistant/components/zwave_js/translations/de.json +2 -2
- homeassistant/components/zwave_js/translations/el.json +0 -2
- homeassistant/components/zwave_js/translations/en-GB.json +2 -2
- homeassistant/components/zwave_js/translations/en.json +2 -2
- homeassistant/components/zwave_js/translations/es.json +2 -2
- homeassistant/components/zwave_js/translations/et.json +2 -2
- homeassistant/components/zwave_js/translations/ga.json +0 -2
- homeassistant/components/zwave_js/translations/hu.json +0 -2
- homeassistant/components/zwave_js/translations/ja.json +0 -2
- homeassistant/components/zwave_js/translations/lt.json +0 -2
- homeassistant/components/zwave_js/translations/pt.json +2 -2
- homeassistant/components/zwave_js/translations/ru.json +0 -2
- homeassistant/components/zwave_js/translations/sk.json +2 -2
- homeassistant/components/zwave_js/translations/sv.json +0 -2
- homeassistant/components/zwave_js/translations/tr.json +0 -2
- homeassistant/components/zwave_js/translations/vi.json +0 -2
- homeassistant/components/zwave_js/translations/zh-Hans.json +0 -2
- homeassistant/components/zwave_js/translations/zh-Hant.json +2 -2
- homeassistant/const.py +1 -1
- homeassistant/loader.py +6 -0
- homeassistant/package_constraints.txt +2 -2
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/METADATA +2 -2
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/RECORD +650 -635
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/WHEEL +0 -0
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.12.0b8.dist-info → homeassistant-2025.12.1.dist-info}/top_level.txt +0 -0
|
@@ -7,11 +7,10 @@ in the Home Assistant Labs UI for users to enable or disable.
|
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
|
-
from collections.abc import Callable
|
|
11
10
|
import logging
|
|
12
11
|
|
|
13
12
|
from homeassistant.const import EVENT_LABS_UPDATED
|
|
14
|
-
from homeassistant.core import
|
|
13
|
+
from homeassistant.core import HomeAssistant
|
|
15
14
|
from homeassistant.generated.labs import LABS_PREVIEW_FEATURES
|
|
16
15
|
from homeassistant.helpers import config_validation as cv
|
|
17
16
|
from homeassistant.helpers.storage import Store
|
|
@@ -19,6 +18,7 @@ from homeassistant.helpers.typing import ConfigType
|
|
|
19
18
|
from homeassistant.loader import async_get_custom_components
|
|
20
19
|
|
|
21
20
|
from .const import DOMAIN, LABS_DATA, STORAGE_KEY, STORAGE_VERSION
|
|
21
|
+
from .helpers import async_is_preview_feature_enabled, async_listen
|
|
22
22
|
from .models import (
|
|
23
23
|
EventLabsUpdatedData,
|
|
24
24
|
LabPreviewFeature,
|
|
@@ -135,55 +135,3 @@ async def _async_scan_all_preview_features(
|
|
|
135
135
|
|
|
136
136
|
_LOGGER.debug("Loaded %d total lab preview features", len(preview_features))
|
|
137
137
|
return preview_features
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
@callback
|
|
141
|
-
def async_is_preview_feature_enabled(
|
|
142
|
-
hass: HomeAssistant, domain: str, preview_feature: str
|
|
143
|
-
) -> bool:
|
|
144
|
-
"""Check if a lab preview feature is enabled.
|
|
145
|
-
|
|
146
|
-
Args:
|
|
147
|
-
hass: HomeAssistant instance
|
|
148
|
-
domain: Integration domain
|
|
149
|
-
preview_feature: Preview feature name
|
|
150
|
-
|
|
151
|
-
Returns:
|
|
152
|
-
True if the preview feature is enabled, False otherwise
|
|
153
|
-
"""
|
|
154
|
-
if LABS_DATA not in hass.data:
|
|
155
|
-
return False
|
|
156
|
-
|
|
157
|
-
labs_data = hass.data[LABS_DATA]
|
|
158
|
-
return (domain, preview_feature) in labs_data.data.preview_feature_status
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
@callback
|
|
162
|
-
def async_listen(
|
|
163
|
-
hass: HomeAssistant,
|
|
164
|
-
domain: str,
|
|
165
|
-
preview_feature: str,
|
|
166
|
-
listener: Callable[[], None],
|
|
167
|
-
) -> Callable[[], None]:
|
|
168
|
-
"""Listen for changes to a specific preview feature.
|
|
169
|
-
|
|
170
|
-
Args:
|
|
171
|
-
hass: HomeAssistant instance
|
|
172
|
-
domain: Integration domain
|
|
173
|
-
preview_feature: Preview feature name
|
|
174
|
-
listener: Callback to invoke when the preview feature is toggled
|
|
175
|
-
|
|
176
|
-
Returns:
|
|
177
|
-
Callable to unsubscribe from the listener
|
|
178
|
-
"""
|
|
179
|
-
|
|
180
|
-
@callback
|
|
181
|
-
def _async_feature_updated(event: Event[EventLabsUpdatedData]) -> None:
|
|
182
|
-
"""Handle labs feature update event."""
|
|
183
|
-
if (
|
|
184
|
-
event.data["domain"] == domain
|
|
185
|
-
and event.data["preview_feature"] == preview_feature
|
|
186
|
-
):
|
|
187
|
-
listener()
|
|
188
|
-
|
|
189
|
-
return hass.bus.async_listen(EVENT_LABS_UPDATED, _async_feature_updated)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""Helper functions for the Home Assistant Labs integration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Callable
|
|
6
|
+
|
|
7
|
+
from homeassistant.const import EVENT_LABS_UPDATED
|
|
8
|
+
from homeassistant.core import Event, HomeAssistant, callback
|
|
9
|
+
|
|
10
|
+
from .const import LABS_DATA
|
|
11
|
+
from .models import EventLabsUpdatedData
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@callback
|
|
15
|
+
def async_is_preview_feature_enabled(
|
|
16
|
+
hass: HomeAssistant, domain: str, preview_feature: str
|
|
17
|
+
) -> bool:
|
|
18
|
+
"""Check if a lab preview feature is enabled.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
hass: HomeAssistant instance
|
|
22
|
+
domain: Integration domain
|
|
23
|
+
preview_feature: Preview feature name
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
True if the preview feature is enabled, False otherwise
|
|
27
|
+
"""
|
|
28
|
+
if LABS_DATA not in hass.data:
|
|
29
|
+
return False
|
|
30
|
+
|
|
31
|
+
labs_data = hass.data[LABS_DATA]
|
|
32
|
+
return (domain, preview_feature) in labs_data.data.preview_feature_status
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@callback
|
|
36
|
+
def async_listen(
|
|
37
|
+
hass: HomeAssistant,
|
|
38
|
+
domain: str,
|
|
39
|
+
preview_feature: str,
|
|
40
|
+
listener: Callable[[], None],
|
|
41
|
+
) -> Callable[[], None]:
|
|
42
|
+
"""Listen for changes to a specific preview feature.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
hass: HomeAssistant instance
|
|
46
|
+
domain: Integration domain
|
|
47
|
+
preview_feature: Preview feature name
|
|
48
|
+
listener: Callback to invoke when the preview feature is toggled
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
Callable to unsubscribe from the listener
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
@callback
|
|
55
|
+
def _async_feature_updated(event: Event[EventLabsUpdatedData]) -> None:
|
|
56
|
+
"""Handle labs feature update event."""
|
|
57
|
+
if (
|
|
58
|
+
event.data["domain"] == domain
|
|
59
|
+
and event.data["preview_feature"] == preview_feature
|
|
60
|
+
):
|
|
61
|
+
listener()
|
|
62
|
+
|
|
63
|
+
return hass.bus.async_listen(EVENT_LABS_UPDATED, _async_feature_updated)
|
|
@@ -12,6 +12,7 @@ from homeassistant.const import EVENT_LABS_UPDATED
|
|
|
12
12
|
from homeassistant.core import HomeAssistant, callback
|
|
13
13
|
|
|
14
14
|
from .const import LABS_DATA
|
|
15
|
+
from .helpers import async_is_preview_feature_enabled, async_listen
|
|
15
16
|
from .models import EventLabsUpdatedData
|
|
16
17
|
|
|
17
18
|
|
|
@@ -20,6 +21,7 @@ def async_setup(hass: HomeAssistant) -> None:
|
|
|
20
21
|
"""Set up the number websocket API."""
|
|
21
22
|
websocket_api.async_register_command(hass, websocket_list_preview_features)
|
|
22
23
|
websocket_api.async_register_command(hass, websocket_update_preview_feature)
|
|
24
|
+
websocket_api.async_register_command(hass, websocket_subscribe_feature)
|
|
23
25
|
|
|
24
26
|
|
|
25
27
|
@callback
|
|
@@ -108,3 +110,52 @@ async def websocket_update_preview_feature(
|
|
|
108
110
|
hass.bus.async_fire(EVENT_LABS_UPDATED, event_data)
|
|
109
111
|
|
|
110
112
|
connection.send_result(msg["id"])
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@callback
|
|
116
|
+
@websocket_api.websocket_command(
|
|
117
|
+
{
|
|
118
|
+
vol.Required("type"): "labs/subscribe",
|
|
119
|
+
vol.Required("domain"): str,
|
|
120
|
+
vol.Required("preview_feature"): str,
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
def websocket_subscribe_feature(
|
|
124
|
+
hass: HomeAssistant,
|
|
125
|
+
connection: websocket_api.ActiveConnection,
|
|
126
|
+
msg: dict[str, Any],
|
|
127
|
+
) -> None:
|
|
128
|
+
"""Subscribe to a specific lab preview feature updates."""
|
|
129
|
+
domain = msg["domain"]
|
|
130
|
+
preview_feature_key = msg["preview_feature"]
|
|
131
|
+
labs_data = hass.data[LABS_DATA]
|
|
132
|
+
|
|
133
|
+
preview_feature_id = f"{domain}.{preview_feature_key}"
|
|
134
|
+
|
|
135
|
+
if preview_feature_id not in labs_data.preview_features:
|
|
136
|
+
connection.send_error(
|
|
137
|
+
msg["id"],
|
|
138
|
+
websocket_api.ERR_NOT_FOUND,
|
|
139
|
+
f"Preview feature {preview_feature_id} not found",
|
|
140
|
+
)
|
|
141
|
+
return
|
|
142
|
+
|
|
143
|
+
preview_feature = labs_data.preview_features[preview_feature_id]
|
|
144
|
+
|
|
145
|
+
@callback
|
|
146
|
+
def send_event() -> None:
|
|
147
|
+
"""Send feature state to client."""
|
|
148
|
+
enabled = async_is_preview_feature_enabled(hass, domain, preview_feature_key)
|
|
149
|
+
connection.send_message(
|
|
150
|
+
websocket_api.event_message(
|
|
151
|
+
msg["id"],
|
|
152
|
+
preview_feature.to_dict(enabled=enabled),
|
|
153
|
+
)
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
connection.subscriptions[msg["id"]] = async_listen(
|
|
157
|
+
hass, domain, preview_feature_key, send_event
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
connection.send_result(msg["id"])
|
|
161
|
+
send_event()
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"name": "[%key:common::config_flow::data::device%]"
|
|
212
212
|
},
|
|
213
213
|
"icon": {
|
|
214
|
-
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at:
|
|
214
|
+
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at: {icons_url}.",
|
|
215
215
|
"name": "Icon ID"
|
|
216
216
|
},
|
|
217
217
|
"icon_type": {
|
|
@@ -190,9 +190,6 @@
|
|
|
190
190
|
"description": "Dispositiu LaMetric on mostrar el missatge.",
|
|
191
191
|
"name": "Dispositiu"
|
|
192
192
|
},
|
|
193
|
-
"icon": {
|
|
194
|
-
"description": "N\u00famero d'identificaci\u00f3 de la icona o animaci\u00f3 a mostrar. Pots trobar la llista de totes les icones i els IDs a: https://developer.lametric.com/icons."
|
|
195
|
-
},
|
|
196
193
|
"icon_type": {
|
|
197
194
|
"description": "Tipus d'icona a mostrar. Indica la naturalesa de la notificaci\u00f3.",
|
|
198
195
|
"name": "Tipus d'icona"
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
"name": "Za\u0159\u00edzen\u00ed"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "ID \u010d\u00edslo ikony nebo animace, kter\u00e1 se m\u00e1 zobrazit. Seznam v\u0161ech ikon a jejich ID naleznete na:
|
|
213
|
+
"description": "ID \u010d\u00edslo ikony nebo animace, kter\u00e1 se m\u00e1 zobrazit. Seznam v\u0161ech ikon a jejich ID naleznete na: {icons_url}.",
|
|
214
214
|
"name": "ID ikony"
|
|
215
215
|
},
|
|
216
216
|
"icon_type": {
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
"name": "Ger\u00e4t"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "Die ID-Nummer des anzuzeigenden Symbols oder der Animation. Eine Liste aller Symbole und ihrer IDs findest du unter:
|
|
213
|
+
"description": "Die ID-Nummer des anzuzeigenden Symbols oder der Animation. Eine Liste aller Symbole und ihrer IDs findest du unter: {icons_url}.",
|
|
214
214
|
"name": "Symbol-ID"
|
|
215
215
|
},
|
|
216
216
|
"icon_type": {
|
|
@@ -206,7 +206,6 @@
|
|
|
206
206
|
"name": "\u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae"
|
|
207
207
|
},
|
|
208
208
|
"icon": {
|
|
209
|
-
"description": "\u039f \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 ID \u03c4\u03bf\u03c5 \u03b5\u03b9\u03ba\u03bf\u03bd\u03b9\u03b4\u03af\u03bf\u03c5 \u03ae \u03c4\u03bf\u03c5 \u03ba\u03b9\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af. \u039f \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2 \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b5\u03b9\u03ba\u03bf\u03bd\u03b9\u03b4\u03af\u03c9\u03bd \u03ba\u03b1\u03b9 \u03c4\u03c9\u03bd ID \u03c4\u03bf\u03c5\u03c2 \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7: https://developer.lametric.com/icons.",
|
|
210
209
|
"name": "ID \u03b5\u03b9\u03ba\u03bf\u03bd\u03b9\u03b4\u03af\u03bf\u03c5"
|
|
211
210
|
},
|
|
212
211
|
"icon_type": {
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
"name": "Device"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at:
|
|
213
|
+
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at: {icons_url}.",
|
|
214
214
|
"name": "Icon ID"
|
|
215
215
|
},
|
|
216
216
|
"icon_type": {
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"name": "Device"
|
|
212
212
|
},
|
|
213
213
|
"icon": {
|
|
214
|
-
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at:
|
|
214
|
+
"description": "The ID number of the icon or animation to display. List of all icons and their IDs can be found at: {icons_url}.",
|
|
215
215
|
"name": "Icon ID"
|
|
216
216
|
},
|
|
217
217
|
"icon_type": {
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
"name": "Dispositivo"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "El n\u00famero de ID del icono o
|
|
213
|
+
"description": "El n\u00famero de ID del icono o animaci\u00f3n que se mostrar\u00e1. La lista de todos los iconos y sus identificaciones se encuentra en: {icons_url}.",
|
|
214
214
|
"name": "ID de icono"
|
|
215
215
|
},
|
|
216
216
|
"icon_type": {
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "Seade"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "Kuvatava ikooni v\u00f5i animatsiooni ID-number. K\u00f5igi ikoonide ja nende ID-de loendi leiab aadressilt: https://developer.lametric.com/icons.",
|
|
214
213
|
"name": "Ikooni ID"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -181,9 +181,6 @@
|
|
|
181
181
|
"description": "LaMetric-laite, jolla viesti n\u00e4ytet\u00e4\u00e4n.",
|
|
182
182
|
"name": "Laite"
|
|
183
183
|
},
|
|
184
|
-
"icon": {
|
|
185
|
-
"description": "N\u00e4ytett\u00e4v\u00e4n kuvakkeen tai animaation tunnusnumero. Luettelo kaikista kuvakkeista ja niiden tunnuksista l\u00f6ytyy osoitteesta: https://developer.lametric.com/icons."
|
|
186
|
-
},
|
|
187
184
|
"icon_type": {
|
|
188
185
|
"description": "N\u00e4ytett\u00e4v\u00e4n kuvakkeen tyyppi, joka ilmaisee ilmoituksen luonteen.",
|
|
189
186
|
"name": "Kuvakkeen tyyppi"
|
|
@@ -206,7 +206,6 @@
|
|
|
206
206
|
"name": "Gl\u00e9as"
|
|
207
207
|
},
|
|
208
208
|
"icon": {
|
|
209
|
-
"description": "Uimhir aitheantais an deilbh\u00edn n\u00f3 an bheochana at\u00e1 le taispe\u00e1int. Is f\u00e9idir liosta de na deilbh\u00edn\u00ed uile agus a n-aitheantais a fh\u00e1il ag: https://developer.lametric.com/icons.",
|
|
210
209
|
"name": "Aitheantas Deilbh\u00edn"
|
|
211
210
|
},
|
|
212
211
|
"icon_type": {
|
|
@@ -92,9 +92,6 @@
|
|
|
92
92
|
"description": "O dispositivo LaMetric para mostrar a mensaxe.",
|
|
93
93
|
"name": "Dispositivo"
|
|
94
94
|
},
|
|
95
|
-
"icon": {
|
|
96
|
-
"description": "O n\u00famero de ID da icona ou a animaci\u00f3n a mostrar. A lista de todas as iconas e os seus IDs p\u00f3dese atopar en: https://developer.lametric.com/icons."
|
|
97
|
-
},
|
|
98
95
|
"message": {
|
|
99
96
|
"description": "A mensaxe a mostrar.",
|
|
100
97
|
"name": "Mensaxe"
|
|
@@ -208,7 +208,6 @@
|
|
|
208
208
|
"name": "Eszk\u00f6z"
|
|
209
209
|
},
|
|
210
210
|
"icon": {
|
|
211
|
-
"description": "Az ikon vagy anim\u00e1ci\u00f3 azonos\u00edt\u00f3sz\u00e1ma, amelyet meg kell jelen\u00edteni. Az \u00f6sszes ikon \u00e9s azonos\u00edt\u00f3ik list\u00e1ja megtal\u00e1lhat\u00f3 itt: https://developer.lametric.com/icons.",
|
|
212
211
|
"name": "Ikon azonos\u00edt\u00f3"
|
|
213
212
|
},
|
|
214
213
|
"icon_type": {
|
|
@@ -202,9 +202,6 @@
|
|
|
202
202
|
"description": "Il dispositivo LaMetric su cui visualizzare il messaggio.",
|
|
203
203
|
"name": "Dispositivo"
|
|
204
204
|
},
|
|
205
|
-
"icon": {
|
|
206
|
-
"description": "Il numero ID dell'icona o dell'animazione da visualizzare. L'elenco di tutte le icone e dei relativi ID \u00e8 disponibile all'indirizzo: https://developer.lametric.com/icons."
|
|
207
|
-
},
|
|
208
205
|
"icon_type": {
|
|
209
206
|
"description": "Il tipo di icona da visualizzare, che indica la natura della notifica.",
|
|
210
207
|
"name": "Tipo di icona"
|
|
@@ -201,7 +201,6 @@
|
|
|
201
201
|
"name": "\u30c7\u30d0\u30a4\u30b9"
|
|
202
202
|
},
|
|
203
203
|
"icon": {
|
|
204
|
-
"description": "\u8868\u793a\u3059\u308b\u30a2\u30a4\u30b3\u30f3\u307e\u305f\u306f\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u306e ID \u756a\u53f7\u3002\u3059\u3079\u3066\u306e\u30a2\u30a4\u30b3\u30f3\u3068\u305d\u306e ID \u306e\u30ea\u30b9\u30c8\u306f\u3001https://developer.lametric.com/icons \u3067\u3054\u89a7\u3044\u305f\u3060\u3051\u307e\u3059\u3002",
|
|
205
204
|
"name": "\u30a2\u30a4\u30b3\u30f3ID"
|
|
206
205
|
},
|
|
207
206
|
"icon_type": {
|
|
@@ -181,9 +181,6 @@
|
|
|
181
181
|
"description": "\uba54\uc2dc\uc9c0\ub97c \ud45c\uc2dc\ud560 LaMetric \uae30\uae30",
|
|
182
182
|
"name": "\uae30\uae30"
|
|
183
183
|
},
|
|
184
|
-
"icon": {
|
|
185
|
-
"description": "\ud45c\uc2dc\ud560 \uc544\uc774\ucf58 \ub610\ub294 \uc560\ub2c8\uba54\uc774\uc158\uc758 ID \ubc88\ud638\uc785\ub2c8\ub2e4. \ubaa8\ub4e0 \uc544\uc774\ucf58 \ubc0f \ud574\ub2f9 ID \ubaa9\ub85d\uc740 https://developer.lametric.com/icons \uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
|
|
186
|
-
},
|
|
187
184
|
"icon_type": {
|
|
188
185
|
"description": "\uc54c\ub9bc\uc758 \ud2b9\uc131\uc744 \ub098\ud0c0\ub0b4\ub294 \ud45c\uc2dc\ud560 \uc544\uc774\ucf58 \uc720\ud615",
|
|
189
186
|
"name": "\uc544\uc774\ucf58 \uc720\ud615"
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "Prietaisas"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "Rodomos piktogramos arba animacijos ID numeris. Vis\u0173 piktogram\u0173 ir j\u0173 ID s\u0105ra\u0161\u0105 galite rasti adresu https://developer.lametric.com/icons.",
|
|
214
213
|
"name": "Piktogramos ID"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -199,9 +199,6 @@
|
|
|
199
199
|
"device_id": {
|
|
200
200
|
"description": "Het LaMetric-apparaat waarop het bericht moet worden weergegeven."
|
|
201
201
|
},
|
|
202
|
-
"icon": {
|
|
203
|
-
"description": "Het ID-nummer van het pictogram of de animatie om weer te geven. Een lijst van alle pictogrammen en hun ID's is te vinden op: https://developer.lametric.com/icons."
|
|
204
|
-
},
|
|
205
202
|
"icon_type": {
|
|
206
203
|
"description": "Het type pictogram dat wordt weergegeven dat de aard van de melding aangeeft.",
|
|
207
204
|
"name": "Type pictogram"
|
|
@@ -184,9 +184,6 @@
|
|
|
184
184
|
"device_id": {
|
|
185
185
|
"description": "O dispositivo LaMetric no qual exibir a mensagem."
|
|
186
186
|
},
|
|
187
|
-
"icon": {
|
|
188
|
-
"description": "O n\u00famero de ID do \u00edcone ou anima\u00e7\u00e3o a ser exibida. A lista de todos os \u00edcones e seus IDs pode ser encontrada em: https://developer.lametric.com/icons."
|
|
189
|
-
},
|
|
190
187
|
"icon_type": {
|
|
191
188
|
"description": "O tipo de \u00edcone a ser exibido, indicando a natureza da notifica\u00e7\u00e3o.",
|
|
192
189
|
"name": "Tipo de \u00edcone"
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "Dispositivo"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "O n\u00famero de identifica\u00e7\u00e3o do \u00edcone ou anima\u00e7\u00e3o a apresentar. A lista de todos os \u00edcones e respetivos IDs pode ser consultada em: https://developer.lametric.com/icons.",
|
|
214
213
|
"name": "ID do \u00edcone"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -209,7 +209,6 @@
|
|
|
209
209
|
"name": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
|
|
210
210
|
},
|
|
211
211
|
"icon": {
|
|
212
|
-
"description": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0438\u043a\u043e\u043d\u043a\u0438 \u0438\u043b\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u0438\u0445 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: https://developer.lametric.com/icons.",
|
|
213
212
|
"name": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u043a\u043e\u043d\u043a\u0438"
|
|
214
213
|
},
|
|
215
214
|
"icon_type": {
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "Zariadenie"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "Identifika\u010dn\u00e9 \u010d\u00edslo ikony alebo anim\u00e1cie, ktor\u00e1 sa m\u00e1 zobrazi\u0165. Zoznam v\u0161etk\u00fdch ikon a ich ID n\u00e1jdete na adrese: https://developer.lametric.com/icons.",
|
|
214
213
|
"name": "ID ikony"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -209,7 +209,6 @@
|
|
|
209
209
|
"name": "Enhet"
|
|
210
210
|
},
|
|
211
211
|
"icon": {
|
|
212
|
-
"description": "ID-numret f\u00f6r den ikon eller animation som ska visas. En lista \u00f6ver alla ikoner och deras ID-nummer finns p\u00e5: https://developer.lametric.com/icons.",
|
|
213
212
|
"name": "Ikon-ID"
|
|
214
213
|
},
|
|
215
214
|
"icon_type": {
|
|
@@ -201,7 +201,6 @@
|
|
|
201
201
|
"name": "Cihaz"
|
|
202
202
|
},
|
|
203
203
|
"icon": {
|
|
204
|
-
"description": "G\u00f6r\u00fcnt\u00fclenecek simge veya animasyonun kimlik numaras\u0131. T\u00fcm simgelerin ve kimliklerinin listesi \u015fu adreste bulunabilir: https://developer.lametric.com/icons.",
|
|
205
204
|
"name": "Simge Kimli\u011fi"
|
|
206
205
|
},
|
|
207
206
|
"icon_type": {
|
|
@@ -181,9 +181,6 @@
|
|
|
181
181
|
"description": "Thi\u1ebft b\u1ecb LaMetric \u0111\u1ec3 hi\u1ec3n th\u1ecb th\u00f4ng b\u00e1o.",
|
|
182
182
|
"name": "Thi\u1ebft b\u1ecb"
|
|
183
183
|
},
|
|
184
|
-
"icon": {
|
|
185
|
-
"description": "S\u1ed1 ID c\u1ee7a bi\u1ec3u t\u01b0\u1ee3ng ho\u1eb7c h\u00ecnh \u1ea3nh \u0111\u1ed9ng s\u1ebd hi\u1ec3n th\u1ecb. B\u1ea1n c\u00f3 th\u1ec3 t\u00ecm th\u1ea5y danh s\u00e1ch t\u1ea5t c\u1ea3 c\u00e1c bi\u1ec3u t\u01b0\u1ee3ng v\u00e0 ID c\u1ee7a ch\u00fang t\u1ea1i: https://developer.lametric.com/icons."
|
|
186
|
-
},
|
|
187
184
|
"icon_type": {
|
|
188
185
|
"description": "Lo\u1ea1i bi\u1ec3u t\u01b0\u1ee3ng hi\u1ec3n th\u1ecb, cho bi\u1ebft t\u00ednh ch\u1ea5t c\u1ee7a th\u00f4ng b\u00e1o.",
|
|
189
186
|
"name": "Lo\u1ea1i bi\u1ec3u t\u01b0\u1ee3ng"
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "\u8bbe\u5907"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "\u8981\u663e\u793a\u7684\u56fe\u6807\u6216\u52a8\u753b\u7684\u7f16\u53f7\u3002\u6240\u6709\u56fe\u6807\u53ca\u5176\u7f16\u53f7\u7684\u5217\u8868\u53ef\u5728\u4ee5\u4e0b\u4f4d\u7f6e\u627e\u5230\uff1ahttps://developer.lametric.com/icons \u3002",
|
|
214
213
|
"name": "\u56fe\u6807\u6807\u8bc6\u7b26"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -210,7 +210,6 @@
|
|
|
210
210
|
"name": "\u88dd\u7f6e"
|
|
211
211
|
},
|
|
212
212
|
"icon": {
|
|
213
|
-
"description": "\u6240\u8981\u986f\u793a\u7684\u5716\u793a\u6216\u52d5\u756b ID \u865f\u78bc\u3002\u6240\u6709\u5716\u793a\u53ca\u5176 ID \u5217\u8868\u53ef\u4ee5\u65bc\u4e0b\u65b9\u4f4d\u5740\u627e\u5230\uff1ahttps://developer.lametric.com/icons.",
|
|
214
213
|
"name": "\u5716\u793a ID"
|
|
215
214
|
},
|
|
216
215
|
"icon_type": {
|
|
@@ -41,36 +41,44 @@
|
|
|
41
41
|
"title": "Seka\u010dka na tr\u00e1vu",
|
|
42
42
|
"triggers": {
|
|
43
43
|
"docked": {
|
|
44
|
+
"description": "Spust\u00ed se pot\u00e9, co se jedna nebo v\u00edce seka\u010dek na tr\u00e1vu vr\u00e1t\u00ed do doku.",
|
|
44
45
|
"fields": {
|
|
45
46
|
"behavior": {
|
|
46
47
|
"description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch seka\u010dek na tr\u00e1vu p\u0159i spu\u0161t\u011bn\u00ed.",
|
|
47
48
|
"name": "Chov\u00e1n\u00ed"
|
|
48
49
|
}
|
|
49
|
-
}
|
|
50
|
+
},
|
|
51
|
+
"name": "Seka\u010dka na tr\u00e1vu se vr\u00e1tila do doku"
|
|
50
52
|
},
|
|
51
53
|
"errored": {
|
|
54
|
+
"description": "Spust\u00ed se pot\u00e9, co u jedn\u00e9 nebo v\u00edce seka\u010dek na tr\u00e1vu dojde k chyb\u011b.",
|
|
52
55
|
"fields": {
|
|
53
56
|
"behavior": {
|
|
54
57
|
"description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch seka\u010dek na tr\u00e1vu p\u0159i spu\u0161t\u011bn\u00ed.",
|
|
55
58
|
"name": "Chov\u00e1n\u00ed"
|
|
56
59
|
}
|
|
57
|
-
}
|
|
60
|
+
},
|
|
61
|
+
"name": "P\u0159i chyb\u011b seka\u010dky"
|
|
58
62
|
},
|
|
59
63
|
"paused_mowing": {
|
|
64
|
+
"description": "Spou\u0161t\u00ed se pot\u00e9, co jedna nebo v\u00edce seka\u010dek na tr\u00e1vu pozastav\u00ed sek\u00e1n\u00ed.",
|
|
60
65
|
"fields": {
|
|
61
66
|
"behavior": {
|
|
62
67
|
"description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch seka\u010dek na tr\u00e1vu p\u0159i spu\u0161t\u011bn\u00ed.",
|
|
63
68
|
"name": "Chov\u00e1n\u00ed"
|
|
64
69
|
}
|
|
65
|
-
}
|
|
70
|
+
},
|
|
71
|
+
"name": "Seka\u010dka na tr\u00e1vu pozastavila sek\u00e1n\u00ed"
|
|
66
72
|
},
|
|
67
73
|
"started_mowing": {
|
|
74
|
+
"description": "Spust\u00ed se pot\u00e9, co jedna nebo v\u00edce seka\u010dek na tr\u00e1vu za\u010dnou sekat.",
|
|
68
75
|
"fields": {
|
|
69
76
|
"behavior": {
|
|
70
77
|
"description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch seka\u010dek na tr\u00e1vu p\u0159i spu\u0161t\u011bn\u00ed.",
|
|
71
78
|
"name": "Chov\u00e1n\u00ed"
|
|
72
79
|
}
|
|
73
|
-
}
|
|
80
|
+
},
|
|
81
|
+
"name": "Seka\u010dka na tr\u00e1vu za\u010dala sekat"
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
84
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
+
"common": {
|
|
3
|
+
"trigger_behavior_description": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea \u05de\u05db\u05e1\u05d7\u05d5\u05ea \u05d4\u05d3\u05e9\u05d0 \u05d4\u05de\u05d9\u05d5\u05e2\u05d3\u05d5\u05ea \u05dc\u05d4\u05e4\u05e2\u05dc\u05d4.",
|
|
4
|
+
"trigger_behavior_name": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea"
|
|
5
|
+
},
|
|
2
6
|
"entity_component": {
|
|
3
7
|
"_": {
|
|
4
8
|
"state": {
|
|
@@ -7,5 +11,39 @@
|
|
|
7
11
|
"returning": "\u05d7\u05d5\u05d6\u05e8"
|
|
8
12
|
}
|
|
9
13
|
}
|
|
14
|
+
},
|
|
15
|
+
"triggers": {
|
|
16
|
+
"docked": {
|
|
17
|
+
"fields": {
|
|
18
|
+
"behavior": {
|
|
19
|
+
"description": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea \u05de\u05db\u05e1\u05d7\u05d5\u05ea \u05d4\u05d3\u05e9\u05d0 \u05d4\u05de\u05d9\u05d5\u05e2\u05d3\u05d5\u05ea \u05dc\u05d4\u05e4\u05e2\u05dc\u05d4.",
|
|
20
|
+
"name": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"errored": {
|
|
25
|
+
"fields": {
|
|
26
|
+
"behavior": {
|
|
27
|
+
"description": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea \u05de\u05db\u05e1\u05d7\u05d5\u05ea \u05d4\u05d3\u05e9\u05d0 \u05d4\u05de\u05d9\u05d5\u05e2\u05d3\u05d5\u05ea \u05dc\u05d4\u05e4\u05e2\u05dc\u05d4.",
|
|
28
|
+
"name": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"paused_mowing": {
|
|
33
|
+
"fields": {
|
|
34
|
+
"behavior": {
|
|
35
|
+
"description": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea \u05de\u05db\u05e1\u05d7\u05d5\u05ea \u05d4\u05d3\u05e9\u05d0 \u05d4\u05de\u05d9\u05d5\u05e2\u05d3\u05d5\u05ea \u05dc\u05d4\u05e4\u05e2\u05dc\u05d4.",
|
|
36
|
+
"name": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"started_mowing": {
|
|
41
|
+
"fields": {
|
|
42
|
+
"behavior": {
|
|
43
|
+
"description": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea \u05de\u05db\u05e1\u05d7\u05d5\u05ea \u05d4\u05d3\u05e9\u05d0 \u05d4\u05de\u05d9\u05d5\u05e2\u05d3\u05d5\u05ea \u05dc\u05d4\u05e4\u05e2\u05dc\u05d4.",
|
|
44
|
+
"name": "\u05d4\u05ea\u05e0\u05d4\u05d2\u05d5\u05ea"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
10
48
|
}
|
|
11
49
|
}
|