homeassistant 2025.9.0b2__py3-none-any.whl → 2025.9.0b4__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/ai_task/translations/pl.json +28 -0
- homeassistant/components/airgradient/translations/lt.json +2 -1
- homeassistant/components/aladdin_connect/translations/he.json +28 -0
- homeassistant/components/alexa_devices/translations/cs.json +50 -0
- homeassistant/components/alexa_devices/translations/ga.json +47 -0
- homeassistant/components/alexa_devices/translations/lt.json +47 -0
- homeassistant/components/alexa_devices/translations/nl.json +17 -0
- homeassistant/components/alexa_devices/translations/pt.json +50 -0
- homeassistant/components/alexa_devices/translations/sk.json +50 -0
- homeassistant/components/alexa_devices/translations/zh-Hans.json +40 -0
- homeassistant/components/august/translations/he.json +25 -1
- homeassistant/components/bang_olufsen/translations/lt.json +4 -0
- homeassistant/components/bayesian/strings.json +1 -1
- homeassistant/components/bayesian/translations/he.json +96 -0
- homeassistant/components/bayesian/translations/lt.json +23 -4
- homeassistant/components/bayesian/translations/sv.json +7 -0
- homeassistant/components/binary_sensor/translations/sv.json +1 -1
- homeassistant/components/bosch_alarm/translations/lt.json +3 -0
- homeassistant/components/bsblan/climate.py +4 -0
- homeassistant/components/bsblan/config_flow.py +1 -1
- homeassistant/components/bsblan/sensor.py +23 -3
- homeassistant/components/bsblan/water_heater.py +22 -2
- homeassistant/components/button/translations/lt.json +1 -0
- homeassistant/components/devolo_home_network/translations/lt.json +4 -0
- homeassistant/components/dominos/translations/lt.json +2 -0
- homeassistant/components/dsmr/translations/lt.json +2 -1
- homeassistant/components/dsmr_reader/translations/ga.json +3 -0
- homeassistant/components/dsmr_reader/translations/lt.json +1 -0
- homeassistant/components/elkm1/translations/ga.json +18 -0
- homeassistant/components/energy/translations/ga.json +6 -1
- homeassistant/components/energyzero/translations/ga.json +25 -0
- homeassistant/components/environment_canada/translations/ga.json +5 -0
- homeassistant/components/escea/translations/ga.json +5 -0
- homeassistant/components/fireservicerota/translations/ga.json +17 -0
- homeassistant/components/flux_led/translations/ga.json +12 -1
- homeassistant/components/forked_daapd/translations/ga.json +32 -1
- homeassistant/components/foscam/translations/ga.json +10 -0
- homeassistant/components/fritz/translations/lt.json +3 -0
- homeassistant/components/fritzbox/translations/lt.json +3 -1
- homeassistant/components/fritzbox_callmonitor/translations/ga.json +1 -0
- homeassistant/components/fritzbox_callmonitor/translations/lt.json +2 -1
- homeassistant/components/fronius/translations/ga.json +15 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/frontier_silicon/translations/ga.json +7 -1
- homeassistant/components/fully_kiosk/translations/ga.json +17 -1
- homeassistant/components/google_travel_time/translations/lt.json +3 -2
- homeassistant/components/govee_light_local/__init__.py +6 -1
- homeassistant/components/govee_light_local/config_flow.py +7 -12
- homeassistant/components/govee_light_local/coordinator.py +2 -3
- homeassistant/components/habitica/translations/lt.json +2 -1
- homeassistant/components/hassio/translations/he.json +4 -0
- homeassistant/components/hassio/translations/lt.json +25 -0
- homeassistant/components/homekit/__init__.py +2 -3
- homeassistant/components/homekit/services.yaml +7 -3
- homeassistant/components/homekit/strings.json +7 -1
- homeassistant/components/homekit/translations/cs.json +7 -1
- homeassistant/components/homekit/translations/de.json +6 -0
- homeassistant/components/homekit/translations/el.json +0 -1
- homeassistant/components/homekit/translations/en-GB.json +7 -1
- homeassistant/components/homekit/translations/en.json +7 -1
- homeassistant/components/homekit/translations/es.json +0 -1
- homeassistant/components/homekit/translations/et.json +7 -1
- homeassistant/components/homekit/translations/ga.json +0 -1
- homeassistant/components/homekit/translations/he.json +7 -0
- homeassistant/components/homekit/translations/hu.json +0 -1
- homeassistant/components/homekit/translations/it.json +6 -0
- homeassistant/components/homekit/translations/ja.json +0 -1
- homeassistant/components/homekit/translations/lt.json +7 -1
- homeassistant/components/homekit/translations/nl.json +5 -0
- homeassistant/components/homekit/translations/pt.json +6 -0
- homeassistant/components/homekit/translations/ru.json +0 -1
- homeassistant/components/homekit/translations/sk.json +6 -0
- homeassistant/components/homekit/translations/sv.json +0 -1
- homeassistant/components/homekit/translations/tr.json +0 -1
- homeassistant/components/homekit/translations/vi.json +0 -1
- homeassistant/components/homekit/translations/zh-Hans.json +7 -1
- homeassistant/components/homekit/translations/zh-Hant.json +6 -0
- homeassistant/components/hue/translations/ar.json +0 -5
- homeassistant/components/hue/translations/bg.json +0 -1
- homeassistant/components/hue/translations/ca.json +0 -1
- homeassistant/components/hue/translations/cs.json +1 -1
- homeassistant/components/hue/translations/cy.json +0 -1
- homeassistant/components/hue/translations/da.json +0 -1
- homeassistant/components/hue/translations/de.json +1 -1
- homeassistant/components/hue/translations/el.json +1 -1
- homeassistant/components/hue/translations/en-GB.json +1 -1
- homeassistant/components/hue/translations/en.json +1 -1
- homeassistant/components/hue/translations/es-419.json +0 -1
- homeassistant/components/hue/translations/es.json +0 -1
- homeassistant/components/hue/translations/et.json +1 -1
- homeassistant/components/hue/translations/fi.json +0 -1
- homeassistant/components/hue/translations/fr.json +0 -1
- homeassistant/components/hue/translations/ga.json +0 -1
- homeassistant/components/hue/translations/he.json +0 -1
- homeassistant/components/hue/translations/hu.json +0 -1
- homeassistant/components/hue/translations/id.json +0 -1
- homeassistant/components/hue/translations/it.json +0 -1
- homeassistant/components/hue/translations/ja.json +0 -1
- homeassistant/components/hue/translations/ko.json +0 -1
- homeassistant/components/hue/translations/lb.json +0 -1
- homeassistant/components/hue/translations/lt.json +1 -1
- homeassistant/components/hue/translations/nb.json +0 -1
- homeassistant/components/hue/translations/nl.json +1 -1
- homeassistant/components/hue/translations/nn.json +0 -1
- homeassistant/components/hue/translations/pl.json +0 -1
- homeassistant/components/hue/translations/pt-BR.json +0 -1
- homeassistant/components/hue/translations/pt.json +1 -1
- homeassistant/components/hue/translations/ro.json +0 -1
- homeassistant/components/hue/translations/ru.json +0 -1
- homeassistant/components/hue/translations/sk.json +1 -1
- homeassistant/components/hue/translations/sl.json +0 -1
- homeassistant/components/hue/translations/sv.json +0 -1
- homeassistant/components/hue/translations/tr.json +0 -1
- homeassistant/components/hue/translations/uk.json +0 -1
- homeassistant/components/hue/translations/vi.json +0 -1
- homeassistant/components/hue/translations/zh-Hans.json +1 -1
- homeassistant/components/hue/translations/zh-Hant.json +1 -1
- homeassistant/components/hue/v2/group.py +67 -12
- homeassistant/components/husqvarna_automower_ble/config_flow.py +24 -11
- homeassistant/components/husqvarna_automower_ble/manifest.json +1 -1
- homeassistant/components/husqvarna_automower_ble/translations/he.json +4 -0
- homeassistant/components/hydrawise/translations/lt.json +2 -1
- homeassistant/components/imeon_inverter/const.py +1 -1
- homeassistant/components/imeon_inverter/translations/cs.json +1 -0
- homeassistant/components/imeon_inverter/translations/de.json +1 -0
- homeassistant/components/imeon_inverter/translations/el.json +5 -0
- homeassistant/components/imeon_inverter/translations/en-GB.json +1 -0
- homeassistant/components/imeon_inverter/translations/et.json +1 -0
- homeassistant/components/imeon_inverter/translations/it.json +5 -0
- homeassistant/components/imeon_inverter/translations/lt.json +13 -0
- homeassistant/components/imeon_inverter/translations/pt.json +1 -0
- homeassistant/components/imeon_inverter/translations/sk.json +1 -0
- homeassistant/components/imeon_inverter/translations/zh-Hans.json +1 -0
- homeassistant/components/imeon_inverter/translations/zh-Hant.json +1 -0
- homeassistant/components/insteon/translations/lt.json +6 -2
- homeassistant/components/iskra/manifest.json +1 -1
- homeassistant/components/lcn/translations/lt.json +2 -0
- homeassistant/components/leaone/translations/lt.json +2 -1
- homeassistant/components/lg_thinq/translations/lt.json +4 -0
- homeassistant/components/lifx/translations/de.json +6 -6
- homeassistant/components/luftdaten/translations/lt.json +7 -0
- homeassistant/components/matter/translations/he.json +48 -0
- homeassistant/components/matter/translations/lt.json +3 -0
- homeassistant/components/mealie/manifest.json +1 -1
- homeassistant/components/media_player/translations/he.json +6 -1
- homeassistant/components/miele/climate.py +20 -10
- homeassistant/components/miele/translations/lt.json +3 -0
- homeassistant/components/mqtt/translations/fr.json +1 -0
- homeassistant/components/mqtt/translations/he.json +38 -0
- homeassistant/components/mqtt/translations/lt.json +8 -2
- homeassistant/components/mqtt/translations/sv.json +1 -1
- homeassistant/components/music_assistant/media_browser.py +8 -8
- homeassistant/components/music_assistant/translations/lt.json +2 -1
- homeassistant/components/niko_home_control/translations/he.json +7 -1
- homeassistant/components/onkyo/config_flow.py +1 -1
- homeassistant/components/openweathermap/translations/lt.json +2 -1
- homeassistant/components/opower/translations/lt.json +1 -0
- homeassistant/components/pooldose/entity.py +1 -4
- homeassistant/components/pooldose/manifest.json +1 -1
- homeassistant/components/pooldose/quality_scale.yaml +13 -27
- homeassistant/components/pooldose/translations/he.json +48 -0
- homeassistant/components/qnap/translations/lt.json +1 -0
- homeassistant/components/random/translations/lt.json +1 -1
- homeassistant/components/random/translations/sv.json +1 -1
- homeassistant/components/risco/translations/lt.json +8 -0
- homeassistant/components/scrape/translations/lt.json +2 -1
- homeassistant/components/sensibo/translations/lt.json +5 -0
- homeassistant/components/sensor/translations/lt.json +5 -0
- homeassistant/components/smartthings/translations/he.json +13 -0
- homeassistant/components/somfy_mylink/translations/he.json +5 -0
- homeassistant/components/somfy_mylink/translations/lt.json +4 -2
- homeassistant/components/sql/translations/lt.json +2 -1
- homeassistant/components/switchbot/translations/lt.json +3 -1
- homeassistant/components/tellduslive/translations/lt.json +4 -0
- homeassistant/components/template/translations/he.json +149 -0
- homeassistant/components/template/translations/lt.json +40 -10
- homeassistant/components/template/translations/sv.json +1 -1
- homeassistant/components/teslemetry/translations/lt.json +1 -0
- homeassistant/components/tuya/translations/lt.json +5 -2
- homeassistant/components/unifiprotect/translations/lt.json +3 -0
- homeassistant/components/uptimerobot/coordinator.py +4 -1
- homeassistant/components/uptimerobot/quality_scale.yaml +1 -3
- homeassistant/components/volvo/manifest.json +1 -1
- homeassistant/components/volvo/translations/he.json +3 -0
- homeassistant/components/waze_travel_time/translations/lt.json +8 -0
- homeassistant/components/waze_travel_time/translations/nl.json +3 -0
- homeassistant/components/whois/translations/lt.json +1 -0
- homeassistant/components/xiaomi_ble/translations/lt.json +2 -1
- homeassistant/components/yalexs_ble/translations/cs.json +16 -1
- homeassistant/components/yalexs_ble/translations/el.json +11 -0
- homeassistant/components/yalexs_ble/translations/et.json +16 -1
- homeassistant/components/yalexs_ble/translations/lt.json +16 -1
- homeassistant/components/yalexs_ble/translations/pt.json +16 -1
- homeassistant/components/yalexs_ble/translations/sk.json +16 -1
- homeassistant/components/yalexs_ble/translations/zh-Hans.json +16 -1
- homeassistant/components/zwave_js/translations/lt.json +2 -0
- homeassistant/const.py +1 -1
- homeassistant/generated/config_flows.py +0 -1
- homeassistant/generated/integrations.json +0 -6
- homeassistant/helpers/device_registry.py +15 -9
- homeassistant/helpers/entity_registry.py +29 -19
- homeassistant/package_constraints.txt +1 -1
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/METADATA +1 -1
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/RECORD +209 -250
- homeassistant/components/vulcan/__init__.py +0 -48
- homeassistant/components/vulcan/calendar.py +0 -176
- homeassistant/components/vulcan/config_flow.py +0 -327
- homeassistant/components/vulcan/const.py +0 -3
- homeassistant/components/vulcan/fetch_data.py +0 -98
- homeassistant/components/vulcan/manifest.json +0 -9
- homeassistant/components/vulcan/register.py +0 -12
- homeassistant/components/vulcan/strings.json +0 -62
- homeassistant/components/vulcan/translations/bg.json +0 -37
- homeassistant/components/vulcan/translations/ca.json +0 -59
- homeassistant/components/vulcan/translations/cs.json +0 -62
- homeassistant/components/vulcan/translations/de.json +0 -62
- homeassistant/components/vulcan/translations/el.json +0 -61
- homeassistant/components/vulcan/translations/en-GB.json +0 -62
- homeassistant/components/vulcan/translations/en.json +0 -62
- homeassistant/components/vulcan/translations/es.json +0 -62
- homeassistant/components/vulcan/translations/et.json +0 -62
- homeassistant/components/vulcan/translations/fi.json +0 -59
- homeassistant/components/vulcan/translations/fr.json +0 -61
- homeassistant/components/vulcan/translations/ga.json +0 -9
- homeassistant/components/vulcan/translations/gl.json +0 -7
- homeassistant/components/vulcan/translations/he.json +0 -29
- homeassistant/components/vulcan/translations/hu.json +0 -62
- homeassistant/components/vulcan/translations/id.json +0 -59
- homeassistant/components/vulcan/translations/it.json +0 -60
- homeassistant/components/vulcan/translations/ja.json +0 -62
- homeassistant/components/vulcan/translations/ko.json +0 -59
- homeassistant/components/vulcan/translations/lt.json +0 -62
- homeassistant/components/vulcan/translations/mk.json +0 -11
- homeassistant/components/vulcan/translations/nb.json +0 -59
- homeassistant/components/vulcan/translations/nl.json +0 -60
- homeassistant/components/vulcan/translations/pl.json +0 -57
- homeassistant/components/vulcan/translations/pt-BR.json +0 -58
- homeassistant/components/vulcan/translations/pt.json +0 -62
- homeassistant/components/vulcan/translations/ro.json +0 -45
- homeassistant/components/vulcan/translations/ru.json +0 -62
- homeassistant/components/vulcan/translations/sk.json +0 -62
- homeassistant/components/vulcan/translations/sl.json +0 -21
- homeassistant/components/vulcan/translations/sv.json +0 -62
- homeassistant/components/vulcan/translations/tr.json +0 -62
- homeassistant/components/vulcan/translations/uk.json +0 -52
- homeassistant/components/vulcan/translations/vi.json +0 -15
- homeassistant/components/vulcan/translations/zh-Hans.json +0 -62
- homeassistant/components/vulcan/translations/zh-Hant.json +0 -62
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/WHEEL +0 -0
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/top_level.txt +0 -0
|
@@ -79,7 +79,13 @@
|
|
|
79
79
|
"name": "\u91cd\u7f6e\u914d\u4ef6"
|
|
80
80
|
},
|
|
81
81
|
"unpair": {
|
|
82
|
-
"description": "\u5f3a\u5236\u79fb\u9664\u914d\u4ef6\u7684\u6240\u6709\u914d\u5bf9\uff0c\u4ee5\u4fbf\
|
|
82
|
+
"description": "\u5f3a\u5236\u79fb\u9664\u914d\u4ef6\u7684\u6240\u6709\u914d\u5bf9\uff0c\u4ee5\u4fbf\u91cd\u65b0\u914d\u5bf9\u3002\u5982\u679c\u914d\u4ef6\u4e0d\u518d\u54cd\u5e94\uff0c\u5e76\u4e14\u60a8\u4e0d\u60f3\u5220\u9664\u5e76\u91cd\u65b0\u6dfb\u52a0\u6761\u76ee\uff0c\u8bf7\u4f7f\u7528\u6b64\u64cd\u4f5c\u3002\u623f\u95f4\u4f4d\u7f6e\u548c\u914d\u4ef6\u504f\u597d\u8bbe\u7f6e\u5c06\u4f1a\u4e22\u5931\u3002",
|
|
83
|
+
"fields": {
|
|
84
|
+
"device_id": {
|
|
85
|
+
"description": "\u8981\u53d6\u6d88\u914d\u5bf9\u7684\u8bbe\u5907\u3002",
|
|
86
|
+
"name": "\u8bbe\u5907"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
83
89
|
"name": "\u53d6\u6d88\u914d\u5bf9\u914d\u4ef6\u6216\u6865\u63a5\u5668"
|
|
84
90
|
}
|
|
85
91
|
}
|
|
@@ -80,6 +80,12 @@
|
|
|
80
80
|
},
|
|
81
81
|
"unpair": {
|
|
82
82
|
"description": "\u5f37\u5236\u79fb\u9664\u914d\u4ef6\u6240\u6709\u914d\u5c0d\u3001\u4ee5\u5141\u8a31\u91cd\u65b0\u914d\u5c0d\u3002\u5047\u5982\u914d\u4ef6\u5931\u53bb\u56de\u61c9\uff0c\u4e26\u4e14\u5e0c\u671b\u907f\u514d\u522a\u9664\u5f8c\u91cd\u65b0\u65b0\u589e\u689d\u76ee\uff0c\u53ef\u4f7f\u7528\u6b64\u52d5\u4f5c\u3002\u623f\u9593\u5206\u914d\u8207\u914d\u4ef6\u504f\u597d\u8a2d\u5b9a\u5c07\u6703\u907a\u5931\u3002",
|
|
83
|
+
"fields": {
|
|
84
|
+
"device_id": {
|
|
85
|
+
"description": "\u8981\u53d6\u6d88\u914d\u5c0d\u7684\u88dd\u7f6e\u3002",
|
|
86
|
+
"name": "\u88dd\u7f6e"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
83
89
|
"name": "\u89e3\u9664\u914d\u4ef6\u6216\u6a4b\u63a5\u5668\u914d\u5c0d"
|
|
84
90
|
}
|
|
85
91
|
}
|
|
@@ -10,11 +10,6 @@
|
|
|
10
10
|
"error": {
|
|
11
11
|
"linking": "\u062d\u062f\u062b \u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639",
|
|
12
12
|
"register_failed": "\u0641\u0634\u0644 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649"
|
|
13
|
-
},
|
|
14
|
-
"step": {
|
|
15
|
-
"link": {
|
|
16
|
-
"description": "\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u0632\u0631 \u0627\u0644\u0645\u0648\u062c\u0648\u062f \u0639\u0644\u0649 \u0627\u0644\u062c\u0633\u0631 \u0644\u062a\u0633\u062c\u064a\u0644 Philips Hue \u0645\u0639 Home Assistant. \n\n ! [\u0645\u0648\u0642\u0639 \u0627\u0644\u0632\u0631 \u0639\u0644\u0649 \u0627\u0644\u062c\u0633\u0631] (/static/images/config_philips_hue.jpg)"
|
|
17
|
-
}
|
|
18
13
|
}
|
|
19
14
|
}
|
|
20
15
|
}
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"title": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043c\u043e\u0441\u0442 Hue"
|
|
23
23
|
},
|
|
24
24
|
"link": {
|
|
25
|
-
"description": "\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u0430\u0442\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u044f, \u0437\u0430 \u0434\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u0442\u0435 Philips Hue \u0441 Home Assistant. \n\n",
|
|
26
25
|
"title": "\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0445\u044a\u0431"
|
|
27
26
|
},
|
|
28
27
|
"manual": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"title": "Tria de l'enlla\u00e7 Hue"
|
|
24
24
|
},
|
|
25
25
|
"link": {
|
|
26
|
-
"description": "Prem el bot\u00f3 de l'enlla\u00e7 per registrar Philips Hue amb Home Assistant. \n\n ",
|
|
27
26
|
"title": "Vincular concentrador"
|
|
28
27
|
},
|
|
29
28
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Vybrat most Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Stiskn\u011bte tla\u010d\u00edtko na mostu
|
|
29
|
+
"description": "Stiskn\u011bte tla\u010d\u00edtko na mostu pro registraci Philips Hue do Home Assistanta.",
|
|
30
30
|
"title": "P\u0159ipojit Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "V\u00e6lg Hue-bro"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Tryk p\u00e5 knappen p\u00e5 broen for at registrere Philips Hue med Home Assistant. \n\n ",
|
|
30
29
|
"title": "Forbind Hub"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "W\u00e4hle eine Hue-Bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Dr\u00fccke die Taste auf der Bridge, um Philips Hue mit Home Assistant zu verkn\u00fcpfen
|
|
29
|
+
"description": "Dr\u00fccke die Taste auf der Bridge, um Philips Hue mit Home Assistant zu verkn\u00fcpfen.",
|
|
30
30
|
"title": "Hub verbinden"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u03c3\u03c4\u03bf bridge \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03c7\u03c9\u03c1\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf Philips Hue \u03bc\u03b5 \u03c4\u03bf Home Assistant.
|
|
29
|
+
"description": "\u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u03c3\u03c4\u03bf bridge \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03c7\u03c9\u03c1\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf Philips Hue \u03bc\u03b5 \u03c4\u03bf Home Assistant.",
|
|
30
30
|
"title": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Pick Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Press the button on the bridge to register Philips Hue with Home Assistant
|
|
29
|
+
"description": "Press the button on the bridge to register Philips Hue with Home Assistant.",
|
|
30
30
|
"title": "Link Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Pick Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Press the button on the bridge to register Philips Hue with Home Assistant
|
|
29
|
+
"description": "Press the button on the bridge to register Philips Hue with Home Assistant.",
|
|
30
30
|
"title": "Link Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"title": "Seleccione el puente Hue"
|
|
15
15
|
},
|
|
16
16
|
"link": {
|
|
17
|
-
"description": "Presione el bot\u00f3n en el puente para registrar Philips Hue con Home Assistant. \n\n",
|
|
18
17
|
"title": "Enlazar Hub"
|
|
19
18
|
}
|
|
20
19
|
}
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Elige la pasarela Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Presiona el bot\u00f3n en la pasarela para registrar Philips Hue con Home Assistant. \n\n",
|
|
30
29
|
"title": "Vincular concentrador"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Vali Hue sild"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Vajuta silla nuppu, et registreerida Philips Hue Home Assistant abil.
|
|
29
|
+
"description": "Vajuta silla nuppu, et registreerida Philips Hue Home Assistant abil.",
|
|
30
30
|
"title": "\u00dchenda jaotusseade"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Valitse Hue-silta"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Paina hue sillan painiketta rekister\u00f6id\u00e4ksesi Philips Hue Home Assistantiin.\n\n",
|
|
30
29
|
"title": "Link Hub"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Choisissez le pont Philips Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Appuyez sur le bouton du pont pour lier Philips Hue avec Home Assistant. \n\n ",
|
|
30
29
|
"title": "Hub de liaison"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Droichead Pick Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Br\u00faigh an cnaipe ar an droichead chun Philips Hue a chl\u00e1r\u00fa le Home Assistant.\n\n",
|
|
30
29
|
"title": "Mol Nasc"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"title": "\u05d1\u05d7\u05e8 \u05de\u05d2\u05e9\u05e8"
|
|
23
23
|
},
|
|
24
24
|
"link": {
|
|
25
|
-
"description": "\u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05db\u05e4\u05ea\u05d5\u05e8 \u05e2\u05dc \u05d4\u05de\u05d2\u05e9\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d7\u05d1\u05e8 \u05d1\u05d9\u05df \u05d0\u05ea Philips Hue \u05e2\u05dd Home Assistant. \n\n",
|
|
26
25
|
"title": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05dc\u05e8\u05db\u05d6\u05ea"
|
|
27
26
|
},
|
|
28
27
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Hue h\u00edd v\u00e1laszt\u00e1sa"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Nyomja meg a h\u00eddon tal\u00e1lhat\u00f3 gombot a Philips Hue Home Assistant szolg\u00e1ltat\u00e1ssal t\u00f6rt\u00e9n\u0151 regisztr\u00e1l\u00e1s\u00e1hoz.\n\n! [A gomb helye a h\u00eddon] (/statikus/k\u00e9pek/config_philips_hue.jpg)",
|
|
30
29
|
"title": "Kapcsol\u00f3d\u00e1s a h\u00eddhoz"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Pilih bridge Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Tekan tombol di bridge untuk mendaftarkan Philips Hue dengan Home Assistant.\n\n",
|
|
30
29
|
"title": "Tautkan Hub"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Seleziona il bridge Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Premi il pulsante sul bridge per registrare Philips Hue con Home Assistant\n\n",
|
|
30
29
|
"title": "Collega Hub"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Hue \u30d6\u30ea\u30c3\u30b8\u3092\u30d4\u30c3\u30af\u30a2\u30c3\u30d7"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\u30d6\u30ea\u30c3\u30b8\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001Philips Hue\u304cHome Assistant\u306b\u767b\u9332\u3055\u308c\u307e\u3059\u3002\n\n",
|
|
30
29
|
"title": "\u30ea\u30f3\u30af\u30cf\u30d6"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Hue \ube0c\ub9ac\uc9c0 \uc120\ud0dd\ud558\uae30"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\ube0c\ub9ac\uc9c0\uc758 \ubc84\ud2bc\uc744 \ub20c\ub7ec \ud544\ub9bd\uc2a4 Hue\ub97c Home Assistant\uc5d0 \ub4f1\ub85d\ud558\uc138\uc694.\n\n",
|
|
30
29
|
"title": "\ud5c8\ube0c \uc5f0\uacb0\ud558\uae30"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"title": "Hue Bridge auswielen"
|
|
23
23
|
},
|
|
24
24
|
"link": {
|
|
25
|
-
"description": "Dr\u00e9ckt de Kn\u00e4ppchen un der Bridge fir den Philips Hue mam Home Assistant ze registr\u00e9ieren.\n\n",
|
|
26
25
|
"title": "Hub verbannen"
|
|
27
26
|
},
|
|
28
27
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Pasirinkite \u201eHue\u201c tilt\u0105"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Paspauskite
|
|
29
|
+
"description": "Paspauskite mygtuk\u0105 ant tiltelio, kad u\u017eregistruotum\u0117te Philips Hue su Home Assistant.",
|
|
30
30
|
"title": "\u201eLink Hub\u201c"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"title": "Velg Hue Bridge"
|
|
24
24
|
},
|
|
25
25
|
"link": {
|
|
26
|
-
"description": "Trykk p\u00e5 knappen p\u00e5 Bridgen for \u00e5 registrere Philips Hue med Home Assistant. \n\n ",
|
|
27
26
|
"title": ""
|
|
28
27
|
},
|
|
29
28
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Kies Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Druk op de knop van de bridge om Philips Hue te registreren met Home Assistant.
|
|
29
|
+
"description": "Druk op de knop van de bridge om Philips Hue te registreren met Home Assistant.",
|
|
30
30
|
"title": "Link Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"title": "Vel Hue bru"
|
|
14
14
|
},
|
|
15
15
|
"link": {
|
|
16
|
-
"description": "Trykk p\u00e5 knappen p\u00e5 brua, for \u00e5 registrere Philips Hue med Home Assistant.\n\n",
|
|
17
16
|
"title": "Link Hub"
|
|
18
17
|
}
|
|
19
18
|
}
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"title": "Wybierz mostek Hue"
|
|
24
24
|
},
|
|
25
25
|
"link": {
|
|
26
|
-
"description": "Naci\u015bnij przycisk na mostku, aby zarejestrowa\u0107 Philips Hue w Home Assistant.\n\n",
|
|
27
26
|
"title": "Hub Link"
|
|
28
27
|
},
|
|
29
28
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Escolha a ponte Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Pressione o bot\u00e3o na ponte para registrar o Philips Hue com o Home Assistant. \n\n ",
|
|
30
29
|
"title": "Hub de links"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "
|
|
29
|
+
"description": "Prima o bot\u00e3o na ponte para registar o Philips Hue no Home Assistant.",
|
|
30
30
|
"title": "Link Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"title": "Alege un bridge Hue"
|
|
23
23
|
},
|
|
24
24
|
"link": {
|
|
25
|
-
"description": "Apas\u0103 butonul de pe bridge pentru a \u00eenregistra Philips Hue cu Home Assistant. \n\n",
|
|
26
25
|
"title": "Leag\u0103 hub"
|
|
27
26
|
},
|
|
28
27
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u043b\u044e\u0437 Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0448\u043b\u044e\u0437\u0435 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 Philips Hue \u0432 Home Assistant.\n\n",
|
|
30
29
|
"title": "Philips Hue"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "Vyberte Hue bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "
|
|
29
|
+
"description": "Stla\u010den\u00edm tla\u010didla na most\u00edku zaregistrujte zariadenie Philips Hue v aplik\u00e1cii Home Assistant.",
|
|
30
30
|
"title": "Link Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"title": "Izberite Hue most"
|
|
24
24
|
},
|
|
25
25
|
"link": {
|
|
26
|
-
"description": "Pritisnite gumb na mostu, da registrirate Philips Hue s Home Assistantom. \n\n",
|
|
27
26
|
"title": "Link Hub"
|
|
28
27
|
},
|
|
29
28
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "V\u00e4lj Hue-brygga"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Tryck p\u00e5 knappen p\u00e5 bryggan f\u00f6r att registrera Philips Hue med Home Assistant. \n\n",
|
|
30
29
|
"title": "L\u00e4nka hub"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Hue k\u00f6pr\u00fcs\u00fcn\u00fc se\u00e7in"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Philips Hue'yu Home Assistant'a kaydetmek i\u00e7in k\u00f6pr\u00fcdeki d\u00fc\u011fmeye bas\u0131n. \n\n ",
|
|
30
29
|
"title": "Ba\u011flant\u0131 Merkezi"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"title": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0448\u043b\u044e\u0437 Hue"
|
|
24
24
|
},
|
|
25
25
|
"link": {
|
|
26
|
-
"description": "\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0448\u043b\u044e\u0437\u0456 \u0434\u043b\u044f \u0440\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u0457 Philips Hue \u0432 Home Assistant. \n\n![\u0420\u043e\u0437\u0442\u0430\u0448\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0448\u043b\u044e\u0437\u0456] (/static/images/config_philips_hue.jpg)",
|
|
27
26
|
"title": "Philips Hue"
|
|
28
27
|
},
|
|
29
28
|
"manual": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"title": "Ch\u1ecdn c\u1ea7u Hue"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "Nh\u1ea5n n\u00fat tr\u00ean c\u1ea7u \u0111\u1ec3 \u0111\u0103ng k\u00fd Philips Hue v\u1edbi Home Assistant. \n\n",
|
|
30
29
|
"title": "Li\u00ean k\u1ebft tr\u1ea1m trung chuy\u1ec3n"
|
|
31
30
|
},
|
|
32
31
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "\u9009\u62e9 Hue \u6865\u63a5\u5668"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\u8bf7\u6309\u4e0b\u6865\u63a5\u5668\u4e0a\u7684\u6309\u94ae\uff0c\u5728 Home Assistant \u4e0a\u6ce8\u518c
|
|
29
|
+
"description": "\u8bf7\u6309\u4e0b\u6865\u63a5\u5668\u4e0a\u7684\u6309\u94ae\uff0c\u5728 Home Assistant \u4e0a\u6ce8\u518c Philips Hue \u3002",
|
|
30
30
|
"title": "\u8fde\u63a5 Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"title": "\u9078\u64c7 Hue Bridge"
|
|
27
27
|
},
|
|
28
28
|
"link": {
|
|
29
|
-
"description": "\u6309\u4e0b Bridge \u4e0a\u7684\u6309\u9215\uff0c\u4ee5\u5c07 Philips Hue \u8a3b\u518a\u81f3 Home Assistant\u3002
|
|
29
|
+
"description": "\u6309\u4e0b Bridge \u4e0a\u7684\u6309\u9215\uff0c\u4ee5\u5c07 Philips Hue \u8a3b\u518a\u81f3 Home Assistant\u3002",
|
|
30
30
|
"title": "\u9023\u7d50 Hub"
|
|
31
31
|
},
|
|
32
32
|
"manual": {
|
|
@@ -226,15 +226,26 @@ class GroupedHueLight(HueBaseEntity, LightEntity):
|
|
|
226
226
|
lights_with_color_support = 0
|
|
227
227
|
lights_with_color_temp_support = 0
|
|
228
228
|
lights_with_dimming_support = 0
|
|
229
|
+
lights_on_with_dimming_support = 0
|
|
229
230
|
total_brightness = 0
|
|
230
231
|
all_lights = self.controller.get_lights(self.resource.id)
|
|
231
232
|
lights_in_colortemp_mode = 0
|
|
233
|
+
lights_in_xy_mode = 0
|
|
232
234
|
lights_in_dynamic_mode = 0
|
|
235
|
+
# accumulate color values
|
|
236
|
+
xy_total_x = 0.0
|
|
237
|
+
xy_total_y = 0.0
|
|
238
|
+
xy_count = 0
|
|
239
|
+
temp_total = 0.0
|
|
240
|
+
|
|
233
241
|
# loop through all lights to find capabilities
|
|
234
242
|
for light in all_lights:
|
|
243
|
+
# reset per-light colortemp on flag
|
|
244
|
+
light_in_colortemp_mode = False
|
|
245
|
+
# check if light has color temperature
|
|
235
246
|
if color_temp := light.color_temperature:
|
|
236
247
|
lights_with_color_temp_support += 1
|
|
237
|
-
#
|
|
248
|
+
# default to mired values from the last capable light
|
|
238
249
|
self._attr_color_temp_kelvin = (
|
|
239
250
|
color_util.color_temperature_mired_to_kelvin(color_temp.mirek)
|
|
240
251
|
if color_temp.mirek
|
|
@@ -250,15 +261,39 @@ class GroupedHueLight(HueBaseEntity, LightEntity):
|
|
|
250
261
|
color_temp.mirek_schema.mirek_minimum
|
|
251
262
|
)
|
|
252
263
|
)
|
|
253
|
-
|
|
264
|
+
# counters for color mode vote and average temp
|
|
265
|
+
if (
|
|
266
|
+
light.on.on
|
|
267
|
+
and color_temp.mirek is not None
|
|
268
|
+
and color_temp.mirek_valid
|
|
269
|
+
):
|
|
254
270
|
lights_in_colortemp_mode += 1
|
|
271
|
+
light_in_colortemp_mode = True
|
|
272
|
+
temp_total += color_util.color_temperature_mired_to_kelvin(
|
|
273
|
+
color_temp.mirek
|
|
274
|
+
)
|
|
275
|
+
# check if light has color xy
|
|
255
276
|
if color := light.color:
|
|
256
277
|
lights_with_color_support += 1
|
|
257
|
-
#
|
|
278
|
+
# default to xy values from the last capable light
|
|
258
279
|
self._attr_xy_color = (color.xy.x, color.xy.y)
|
|
280
|
+
# counters for color mode vote and average xy color
|
|
281
|
+
if light.on.on:
|
|
282
|
+
xy_total_x += color.xy.x
|
|
283
|
+
xy_total_y += color.xy.y
|
|
284
|
+
xy_count += 1
|
|
285
|
+
# only count for colour mode vote if
|
|
286
|
+
# this light is not in colortemp mode
|
|
287
|
+
if not light_in_colortemp_mode:
|
|
288
|
+
lights_in_xy_mode += 1
|
|
289
|
+
# check if light has dimming
|
|
259
290
|
if dimming := light.dimming:
|
|
260
291
|
lights_with_dimming_support += 1
|
|
261
|
-
|
|
292
|
+
# accumulate brightness values
|
|
293
|
+
if light.on.on:
|
|
294
|
+
total_brightness += dimming.brightness
|
|
295
|
+
lights_on_with_dimming_support += 1
|
|
296
|
+
# check if light is in dynamic mode
|
|
262
297
|
if (
|
|
263
298
|
light.dynamics
|
|
264
299
|
and light.dynamics.status == DynamicStatus.DYNAMIC_PALETTE
|
|
@@ -266,10 +301,11 @@ class GroupedHueLight(HueBaseEntity, LightEntity):
|
|
|
266
301
|
lights_in_dynamic_mode += 1
|
|
267
302
|
|
|
268
303
|
# this is a bit hacky because light groups may contain lights
|
|
269
|
-
# of different capabilities
|
|
270
|
-
# if any of the lights support it
|
|
304
|
+
# of different capabilities
|
|
271
305
|
# this means that the state is derived from only some of the lights
|
|
272
306
|
# and will never be 100% accurate but it will be close
|
|
307
|
+
|
|
308
|
+
# assign group color support modes based on light capabilities
|
|
273
309
|
if lights_with_color_support > 0:
|
|
274
310
|
supported_color_modes.add(ColorMode.XY)
|
|
275
311
|
if lights_with_color_temp_support > 0:
|
|
@@ -278,19 +314,38 @@ class GroupedHueLight(HueBaseEntity, LightEntity):
|
|
|
278
314
|
if len(supported_color_modes) == 0:
|
|
279
315
|
# only add color mode brightness if no color variants
|
|
280
316
|
supported_color_modes.add(ColorMode.BRIGHTNESS)
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
317
|
+
# as we have brightness support, set group brightness values
|
|
318
|
+
if lights_on_with_dimming_support > 0:
|
|
319
|
+
self._brightness_pct = total_brightness / lights_on_with_dimming_support
|
|
320
|
+
self._attr_brightness = round(
|
|
321
|
+
((total_brightness / lights_on_with_dimming_support) / 100) * 255
|
|
322
|
+
)
|
|
285
323
|
else:
|
|
286
324
|
supported_color_modes.add(ColorMode.ONOFF)
|
|
287
325
|
self._dynamic_mode_active = lights_in_dynamic_mode > 0
|
|
288
326
|
self._attr_supported_color_modes = supported_color_modes
|
|
289
|
-
#
|
|
290
|
-
if
|
|
327
|
+
# set the group color values if there are any color lights on
|
|
328
|
+
if xy_count > 0:
|
|
329
|
+
self._attr_xy_color = (
|
|
330
|
+
round(xy_total_x / xy_count, 5),
|
|
331
|
+
round(xy_total_y / xy_count, 5),
|
|
332
|
+
)
|
|
333
|
+
if lights_in_colortemp_mode > 0:
|
|
334
|
+
avg_temp = temp_total / lights_in_colortemp_mode
|
|
335
|
+
self._attr_color_temp_kelvin = round(avg_temp)
|
|
336
|
+
# pick a winner for the current color mode based on the majority of on lights
|
|
337
|
+
# if there is no winner pick the highest mode from group capabilities
|
|
338
|
+
if lights_in_xy_mode > 0 and lights_in_xy_mode >= lights_in_colortemp_mode:
|
|
339
|
+
self._attr_color_mode = ColorMode.XY
|
|
340
|
+
elif (
|
|
341
|
+
lights_in_colortemp_mode > 0
|
|
342
|
+
and lights_in_colortemp_mode > lights_in_xy_mode
|
|
343
|
+
):
|
|
291
344
|
self._attr_color_mode = ColorMode.COLOR_TEMP
|
|
292
345
|
elif lights_with_color_support > 0:
|
|
293
346
|
self._attr_color_mode = ColorMode.XY
|
|
347
|
+
elif lights_with_color_temp_support > 0:
|
|
348
|
+
self._attr_color_mode = ColorMode.COLOR_TEMP
|
|
294
349
|
elif lights_with_dimming_support > 0:
|
|
295
350
|
self._attr_color_mode = ColorMode.BRIGHTNESS
|
|
296
351
|
else:
|
|
@@ -10,6 +10,8 @@ from automower_ble.mower import Mower
|
|
|
10
10
|
from automower_ble.protocol import ResponseResult
|
|
11
11
|
from bleak import BleakError
|
|
12
12
|
from bleak_retry_connector import get_device
|
|
13
|
+
from gardena_bluetooth.const import ScanService
|
|
14
|
+
from gardena_bluetooth.parse import ManufacturerData, ProductType
|
|
13
15
|
import voluptuous as vol
|
|
14
16
|
|
|
15
17
|
from homeassistant.components import bluetooth
|
|
@@ -22,20 +24,31 @@ from .const import DOMAIN, LOGGER
|
|
|
22
24
|
|
|
23
25
|
def _is_supported(discovery_info: BluetoothServiceInfo):
|
|
24
26
|
"""Check if device is supported."""
|
|
27
|
+
if ScanService not in discovery_info.service_uuids:
|
|
28
|
+
LOGGER.debug(
|
|
29
|
+
"Unsupported device, missing service %s: %s", ScanService, discovery_info
|
|
30
|
+
)
|
|
31
|
+
return False
|
|
25
32
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
if not (data := discovery_info.manufacturer_data.get(ManufacturerData.company)):
|
|
34
|
+
LOGGER.debug(
|
|
35
|
+
"Unsupported device, missing manufacturer data %s: %s",
|
|
36
|
+
ManufacturerData.company,
|
|
37
|
+
discovery_info,
|
|
38
|
+
)
|
|
39
|
+
return False
|
|
31
40
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
service == "98bd0001-0b0e-421a-84e5-ddbf75dc6de4"
|
|
35
|
-
for service in discovery_info.service_uuids
|
|
36
|
-
)
|
|
41
|
+
manufacturer_data = ManufacturerData.decode(data)
|
|
42
|
+
product_type = ProductType.from_manufacturer_data(manufacturer_data)
|
|
37
43
|
|
|
38
|
-
|
|
44
|
+
# Some mowers only expose the serial number in the manufacturer data
|
|
45
|
+
# and not the product type, so we allow None here as well.
|
|
46
|
+
if product_type not in (ProductType.MOWER, None):
|
|
47
|
+
LOGGER.debug("Unsupported device: %s (%s)", manufacturer_data, discovery_info)
|
|
48
|
+
return False
|
|
49
|
+
|
|
50
|
+
LOGGER.debug("Supported device: %s", manufacturer_data)
|
|
51
|
+
return True
|
|
39
52
|
|
|
40
53
|
|
|
41
54
|
def _pin_valid(pin: str) -> bool:
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
"dependencies": ["bluetooth_adapters"],
|
|
13
13
|
"documentation": "https://www.home-assistant.io/integrations/husqvarna_automower_ble",
|
|
14
14
|
"iot_class": "local_polling",
|
|
15
|
-
"requirements": ["automower-ble==0.2.7"]
|
|
15
|
+
"requirements": ["automower-ble==0.2.7", "gardena-bluetooth==1.6.0"]
|
|
16
16
|
}
|