homeassistant 2025.9.0b0__py3-none-any.whl → 2025.9.0b1__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/cs.json +25 -3
- homeassistant/components/ai_task/translations/fr.json +22 -0
- homeassistant/components/ai_task/translations/lt.json +22 -0
- homeassistant/components/ai_task/translations/pt.json +22 -0
- homeassistant/components/ai_task/translations/sk.json +1 -1
- homeassistant/components/airgradient/translations/pt.json +1 -0
- homeassistant/components/airos/manifest.json +1 -1
- homeassistant/components/airos/translations/lt.json +18 -1
- homeassistant/components/aladdin_connect/translations/cs.json +30 -1
- homeassistant/components/aladdin_connect/translations/et.json +30 -1
- homeassistant/components/aladdin_connect/translations/fr.json +10 -0
- homeassistant/components/aladdin_connect/translations/ga.json +30 -1
- homeassistant/components/aladdin_connect/translations/lt.json +30 -1
- homeassistant/components/aladdin_connect/translations/nl.json +28 -0
- homeassistant/components/aladdin_connect/translations/pt.json +30 -1
- homeassistant/components/aladdin_connect/translations/sk.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hans.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hant.json +30 -1
- homeassistant/components/alarm_control_panel/translations/cs.json +3 -3
- homeassistant/components/alexa_devices/__init__.py +1 -1
- homeassistant/components/alexa_devices/const.py +9 -9
- homeassistant/components/alexa_devices/sensor.py +3 -0
- homeassistant/components/alexa_devices/translations/lt.json +7 -0
- homeassistant/components/alexa_devices/translations/pt.json +11 -0
- homeassistant/components/alexa_devices/translations/sk.json +20 -20
- homeassistant/components/asuswrt/manifest.json +1 -1
- homeassistant/components/august/translations/lt.json +23 -1
- homeassistant/components/august/translations/pt.json +26 -1
- homeassistant/components/backup/translations/de.json +1 -1
- homeassistant/components/bayesian/strings.json +1 -1
- homeassistant/components/bayesian/translations/cs.json +1 -1
- homeassistant/components/bayesian/translations/de.json +17 -17
- homeassistant/components/bayesian/translations/en-GB.json +1 -1
- homeassistant/components/bayesian/translations/en.json +3 -3
- homeassistant/components/bayesian/translations/et.json +1 -1
- homeassistant/components/bayesian/translations/fr.json +41 -0
- homeassistant/components/bayesian/translations/ga.json +8 -3
- homeassistant/components/bayesian/translations/lt.json +200 -0
- homeassistant/components/bayesian/translations/pl.json +7 -0
- homeassistant/components/bayesian/translations/pt.json +257 -0
- homeassistant/components/bayesian/translations/sk.json +5 -5
- homeassistant/components/bayesian/translations/zh-Hans.json +1 -1
- homeassistant/components/bayesian/translations/zh-Hant.json +1 -1
- homeassistant/components/bluetooth/manifest.json +2 -2
- homeassistant/components/bring/translations/sk.json +1 -1
- homeassistant/components/button/translations/ru.json +1 -1
- homeassistant/components/cover/translations/mk.json +13 -5
- homeassistant/components/cover/translations/pl.json +1 -1
- homeassistant/components/deconz/translations/ga.json +14 -0
- homeassistant/components/downloader/translations/sk.json +1 -1
- homeassistant/components/dsmr/translations/ga.json +8 -0
- homeassistant/components/dwd_weather_warnings/translations/sk.json +1 -1
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/enphase_envoy/translations/lt.json +6 -0
- homeassistant/components/eq3btsmart/manifest.json +1 -1
- homeassistant/components/esphome/manifest.json +2 -2
- homeassistant/components/esphome/translations/sk.json +1 -1
- homeassistant/components/flux_led/translations/sk.json +1 -1
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/fully_kiosk/translations/fr.json +5 -0
- homeassistant/components/fully_kiosk/translations/lt.json +3 -0
- homeassistant/components/fully_kiosk/translations/pt.json +3 -0
- homeassistant/components/fyta/translations/fr.json +3 -0
- homeassistant/components/fyta/translations/lt.json +64 -2
- homeassistant/components/fyta/translations/pt.json +64 -2
- homeassistant/components/google_assistant_sdk/translations/sk.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/cs.json +3 -3
- homeassistant/components/google_generative_ai_conversation/translations/sk.json +1 -1
- homeassistant/components/google_mail/translations/sk.json +1 -1
- homeassistant/components/google_photos/translations/sk.json +1 -1
- homeassistant/components/google_sheets/translations/sk.json +1 -1
- homeassistant/components/google_tasks/translations/sk.json +1 -1
- homeassistant/components/govee_light_local/__init__.py +16 -3
- homeassistant/components/govee_light_local/config_flow.py +28 -10
- homeassistant/components/govee_light_local/coordinator.py +39 -24
- homeassistant/components/habitica/translations/cs.json +3 -3
- homeassistant/components/hassio/translations/sk.json +1 -1
- homeassistant/components/history_stats/translations/sk.json +3 -3
- homeassistant/components/home_connect/translations/sk.json +1 -1
- homeassistant/components/husqvarna_automower_ble/translations/cs.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/lt.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/pt.json +35 -1
- homeassistant/components/hyperion/translations/sk.json +1 -1
- homeassistant/components/iaqualink/__init__.py +10 -0
- homeassistant/components/iaqualink/entity.py +1 -0
- homeassistant/components/imeon_inverter/translations/lt.json +54 -0
- homeassistant/components/imeon_inverter/translations/pt.json +79 -0
- homeassistant/components/knx/translations/lt.json +245 -0
- homeassistant/components/knx/translations/pt.json +270 -0
- homeassistant/components/lg_thinq/translations/lt.json +3 -0
- homeassistant/components/lg_thinq/translations/pt.json +4 -0
- homeassistant/components/lock/translations/pl.json +1 -0
- homeassistant/components/logbook/translations/ko.json +2 -1
- homeassistant/components/lyric/translations/sk.json +1 -1
- homeassistant/components/mastodon/__init__.py +13 -2
- homeassistant/components/mastodon/config_flow.py +7 -2
- homeassistant/components/mastodon/diagnostics.py +8 -3
- homeassistant/components/matter/translations/lt.json +36 -0
- homeassistant/components/matter/translations/pt.json +27 -0
- homeassistant/components/media_player/translations/cs.json +5 -0
- homeassistant/components/media_player/translations/fr.json +3 -0
- homeassistant/components/media_player/translations/lt.json +4 -0
- homeassistant/components/media_player/translations/pt.json +5 -0
- homeassistant/components/media_player/translations/sk.json +1 -0
- homeassistant/components/media_player/translations/zh-Hans.json +1 -0
- homeassistant/components/media_player/translations/zh-Hant.json +1 -0
- homeassistant/components/meteo_france/const.py +1 -1
- homeassistant/components/metoffice/translations/sk.json +1 -1
- homeassistant/components/miele/translations/lt.json +12 -0
- homeassistant/components/miele/translations/pt.json +12 -0
- homeassistant/components/miele/translations/sk.json +8 -8
- homeassistant/components/modbus/translations/sk.json +1 -1
- homeassistant/components/mqtt/translations/cs.json +52 -0
- homeassistant/components/mqtt/translations/fr.json +11 -0
- homeassistant/components/mqtt/translations/lt.json +47 -0
- homeassistant/components/mqtt/translations/nl.json +68 -0
- homeassistant/components/mqtt/translations/pt.json +81 -0
- homeassistant/components/mqtt/translations/sk.json +8 -8
- homeassistant/components/mqtt/translations/zh-Hans.json +1 -0
- homeassistant/components/nest/translations/sk.json +2 -2
- homeassistant/components/nexia/manifest.json +1 -1
- homeassistant/components/nextdns/translations/lt.json +3 -0
- homeassistant/components/niko_home_control/translations/lt.json +10 -1
- homeassistant/components/niko_home_control/translations/pt.json +10 -1
- homeassistant/components/ollama/translations/cs.json +3 -3
- homeassistant/components/onewire/translations/lt.json +3 -0
- homeassistant/components/onvif/binary_sensor.py +1 -1
- homeassistant/components/onvif/sensor.py +1 -1
- homeassistant/components/open_router/translations/cs.json +2 -2
- homeassistant/components/openai_conversation/translations/cs.json +3 -3
- homeassistant/components/opower/translations/sk.json +1 -1
- homeassistant/components/playstation_network/__init__.py +4 -1
- homeassistant/components/playstation_network/config_flow.py +4 -13
- homeassistant/components/playstation_network/coordinator.py +55 -8
- homeassistant/components/playstation_network/helpers.py +4 -1
- homeassistant/components/playstation_network/notify.py +52 -27
- homeassistant/components/playstation_network/strings.json +11 -5
- homeassistant/components/playstation_network/translations/bg.json +0 -5
- homeassistant/components/playstation_network/translations/cs.json +5 -5
- homeassistant/components/playstation_network/translations/de.json +5 -5
- homeassistant/components/playstation_network/translations/en-GB.json +5 -5
- homeassistant/components/playstation_network/translations/en.json +5 -5
- homeassistant/components/playstation_network/translations/es.json +1 -13
- homeassistant/components/playstation_network/translations/et.json +0 -17
- homeassistant/components/playstation_network/translations/fr.json +1 -1
- homeassistant/components/playstation_network/translations/ga.json +0 -17
- homeassistant/components/playstation_network/translations/it.json +1 -1
- homeassistant/components/playstation_network/translations/lt.json +0 -17
- homeassistant/components/playstation_network/translations/pt.json +5 -5
- homeassistant/components/playstation_network/translations/sk.json +0 -17
- homeassistant/components/playstation_network/translations/zh-Hans.json +0 -17
- homeassistant/components/playstation_network/translations/zh-Hant.json +5 -5
- homeassistant/components/pooldose/translations/lt.json +102 -0
- homeassistant/components/pooldose/translations/nl.json +7 -2
- homeassistant/components/pooldose/translations/pt.json +102 -0
- homeassistant/components/profiler/translations/cs.json +2 -2
- homeassistant/components/qbus/translations/lt.json +8 -0
- homeassistant/components/recorder/translations/cs.json +2 -2
- homeassistant/components/remember_the_milk/translations/cs.json +7 -7
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/number.py +3 -4
- homeassistant/components/reolink/select.py +0 -1
- homeassistant/components/reolink/translations/fr.json +3 -0
- homeassistant/components/reolink/translations/pt.json +9 -0
- homeassistant/components/roborock/translations/sk.json +9 -9
- homeassistant/components/sensor/translations/sk.json +1 -1
- homeassistant/components/sleep_as_android/translations/de.json +1 -1
- homeassistant/components/snapcast/translations/sk.json +2 -2
- homeassistant/components/sonos/translations/lt.json +12 -0
- homeassistant/components/sonos/translations/pt.json +15 -0
- homeassistant/components/sun/translations/sk.json +1 -1
- homeassistant/components/switchbot_cloud/translations/lt.json +16 -0
- homeassistant/components/switchbot_cloud/translations/pt.json +16 -0
- homeassistant/components/tautulli/translations/sk.json +1 -1
- homeassistant/components/template/translations/lt.json +102 -0
- homeassistant/components/template/translations/pl.json +140 -7
- homeassistant/components/template/translations/pt.json +149 -0
- homeassistant/components/template/translations/sk.json +6 -6
- homeassistant/components/togrill/translations/fr.json +4 -0
- homeassistant/components/togrill/translations/lt.json +30 -0
- homeassistant/components/togrill/translations/pt.json +49 -0
- homeassistant/components/tts/translations/cs.json +1 -1
- homeassistant/components/tuya/translations/pl.json +1 -1
- homeassistant/components/velux/translations/cs.json +7 -0
- homeassistant/components/velux/translations/lt.json +7 -0
- homeassistant/components/velux/translations/nl.json +7 -0
- homeassistant/components/velux/translations/pt.json +7 -0
- homeassistant/components/volvo/translations/lt.json +128 -0
- homeassistant/components/volvo/translations/pt.json +137 -0
- homeassistant/components/volvo/translations/sk.json +1 -1
- homeassistant/components/wallbox/translations/sk.json +1 -1
- homeassistant/components/withings/translations/sk.json +1 -1
- homeassistant/components/yolink/translations/pt.json +13 -0
- homeassistant/components/zha/translations/fr.json +48 -0
- homeassistant/components/zha/translations/lt.json +63 -0
- homeassistant/components/zha/translations/pl.json +3 -0
- homeassistant/components/zha/translations/pt.json +69 -0
- homeassistant/components/zha/translations/sk.json +3 -3
- homeassistant/components/zwave_js/binary_sensor.py +14 -6
- homeassistant/components/zwave_js/translations/lt.json +10 -0
- homeassistant/components/zwave_js/translations/pt.json +10 -0
- homeassistant/components/zwave_js/translations/sk.json +2 -2
- homeassistant/components/zwave_me/translations/sk.json +1 -1
- homeassistant/const.py +1 -1
- homeassistant/helpers/device_registry.py +37 -14
- homeassistant/helpers/entity_registry.py +68 -29
- homeassistant/package_constraints.txt +7 -3
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/METADATA +1 -1
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/RECORD +214 -210
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/WHEEL +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b1.dist-info}/top_level.txt +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
from collections.abc import Callable
|
|
5
|
+
from ipaddress import IPv4Address, IPv6Address
|
|
5
6
|
import logging
|
|
6
7
|
|
|
7
8
|
from govee_local_api import GoveeController, GoveeDevice
|
|
@@ -11,7 +12,6 @@ from homeassistant.core import HomeAssistant
|
|
|
11
12
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
|
12
13
|
|
|
13
14
|
from .const import (
|
|
14
|
-
CONF_DISCOVERY_INTERVAL_DEFAULT,
|
|
15
15
|
CONF_LISTENING_PORT_DEFAULT,
|
|
16
16
|
CONF_MULTICAST_ADDRESS_DEFAULT,
|
|
17
17
|
CONF_TARGET_PORT_DEFAULT,
|
|
@@ -26,10 +26,11 @@ type GoveeLocalConfigEntry = ConfigEntry[GoveeLocalApiCoordinator]
|
|
|
26
26
|
class GoveeLocalApiCoordinator(DataUpdateCoordinator[list[GoveeDevice]]):
|
|
27
27
|
"""Govee light local coordinator."""
|
|
28
28
|
|
|
29
|
-
config_entry: GoveeLocalConfigEntry
|
|
30
|
-
|
|
31
29
|
def __init__(
|
|
32
|
-
self,
|
|
30
|
+
self,
|
|
31
|
+
hass: HomeAssistant,
|
|
32
|
+
config_entry: GoveeLocalConfigEntry,
|
|
33
|
+
source_ips: list[IPv4Address | IPv6Address],
|
|
33
34
|
) -> None:
|
|
34
35
|
"""Initialize my coordinator."""
|
|
35
36
|
super().__init__(
|
|
@@ -40,32 +41,40 @@ class GoveeLocalApiCoordinator(DataUpdateCoordinator[list[GoveeDevice]]):
|
|
|
40
41
|
update_interval=SCAN_INTERVAL,
|
|
41
42
|
)
|
|
42
43
|
|
|
43
|
-
self.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
self._controllers: list[GoveeController] = [
|
|
45
|
+
GoveeController(
|
|
46
|
+
loop=hass.loop,
|
|
47
|
+
logger=_LOGGER,
|
|
48
|
+
listening_address=str(source_ip),
|
|
49
|
+
broadcast_address=CONF_MULTICAST_ADDRESS_DEFAULT,
|
|
50
|
+
broadcast_port=CONF_TARGET_PORT_DEFAULT,
|
|
51
|
+
listening_port=CONF_LISTENING_PORT_DEFAULT,
|
|
52
|
+
discovery_enabled=True,
|
|
53
|
+
discovery_interval=1,
|
|
54
|
+
update_enabled=False,
|
|
55
|
+
)
|
|
56
|
+
for source_ip in source_ips
|
|
57
|
+
]
|
|
54
58
|
|
|
55
59
|
async def start(self) -> None:
|
|
56
60
|
"""Start the Govee coordinator."""
|
|
57
|
-
|
|
58
|
-
self.
|
|
61
|
+
|
|
62
|
+
for controller in self._controllers:
|
|
63
|
+
await controller.start()
|
|
64
|
+
controller.send_update_message()
|
|
59
65
|
|
|
60
66
|
async def set_discovery_callback(
|
|
61
67
|
self, callback: Callable[[GoveeDevice, bool], bool]
|
|
62
68
|
) -> None:
|
|
63
69
|
"""Set discovery callback for automatic Govee light discovery."""
|
|
64
|
-
self._controller.set_device_discovered_callback(callback)
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
for controller in self._controllers:
|
|
72
|
+
controller.set_device_discovered_callback(callback)
|
|
73
|
+
|
|
74
|
+
def cleanup(self) -> list[asyncio.Event]:
|
|
75
|
+
"""Stop and cleanup the coordinator."""
|
|
76
|
+
|
|
77
|
+
return [controller.cleanup() for controller in self._controllers]
|
|
69
78
|
|
|
70
79
|
async def turn_on(self, device: GoveeDevice) -> None:
|
|
71
80
|
"""Turn on the light."""
|
|
@@ -96,8 +105,14 @@ class GoveeLocalApiCoordinator(DataUpdateCoordinator[list[GoveeDevice]]):
|
|
|
96
105
|
@property
|
|
97
106
|
def devices(self) -> list[GoveeDevice]:
|
|
98
107
|
"""Return a list of discovered Govee devices."""
|
|
99
|
-
|
|
108
|
+
|
|
109
|
+
devices: list[GoveeDevice] = []
|
|
110
|
+
for controller in self._controllers:
|
|
111
|
+
devices = devices + controller.devices
|
|
112
|
+
return devices
|
|
100
113
|
|
|
101
114
|
async def _async_update_data(self) -> list[GoveeDevice]:
|
|
102
|
-
self.
|
|
103
|
-
|
|
115
|
+
for controller in self._controllers:
|
|
116
|
+
controller.send_update_message()
|
|
117
|
+
|
|
118
|
+
return self.devices
|
|
@@ -498,7 +498,7 @@
|
|
|
498
498
|
"message": "Nelze aktualizovat \u00fakol. Nastaven\u00ed m\u011bs\u00ed\u010dn\u00edho opakov\u00e1n\u00ed se vztahuje jen na m\u011bs\u00ed\u010dn\u011b se opakuj\u00edc\u00ed den\u00edky."
|
|
499
499
|
},
|
|
500
500
|
"frequency_not_weekly": {
|
|
501
|
-
"message": "Nelze aktualizovat \u00fakol.
|
|
501
|
+
"message": "Nelze aktualizovat \u00fakol. Nastaven\u00ed t\u00fddenn\u00edho opakov\u00e1n\u00ed se vztahuje jen na t\u00fddenn\u00ed opakuj\u00edc\u00ed se denn\u00ed \u00fakoly."
|
|
502
502
|
},
|
|
503
503
|
"item_not_found": {
|
|
504
504
|
"message": "Nelze pou\u017e\u00edt {item}, tuto polo\u017eku nevlastn\u00edte."
|
|
@@ -663,7 +663,7 @@
|
|
|
663
663
|
"name": "Dovednost"
|
|
664
664
|
},
|
|
665
665
|
"task": {
|
|
666
|
-
"description": "N\u00e1zev (nebo ID \
|
|
666
|
+
"description": "N\u00e1zev (nebo ID \u00fakolu) \u00fakolu, na kter\u00fd se chcete pomoc\u00ed dovednosti nebo kouzla zam\u011b\u0159it.",
|
|
667
667
|
"name": "N\u00e1zev \u00fakolu"
|
|
668
668
|
}
|
|
669
669
|
},
|
|
@@ -900,7 +900,7 @@
|
|
|
900
900
|
"name": "Z\u00edskat \u00fakoly",
|
|
901
901
|
"sections": {
|
|
902
902
|
"filter": {
|
|
903
|
-
"description": "Pomoc\u00ed voliteln\u00fdch filtr\u016f m\u016f\u017eete z\u00fa\u017eit vr\u00e1cen\u00e9 \
|
|
903
|
+
"description": "Pomoc\u00ed voliteln\u00fdch filtr\u016f m\u016f\u017eete z\u00fa\u017eit vr\u00e1cen\u00e9 \u00fakoly.",
|
|
904
904
|
"name": "Volby filtru"
|
|
905
905
|
}
|
|
906
906
|
}
|
|
@@ -427,7 +427,7 @@
|
|
|
427
427
|
"board": "Board",
|
|
428
428
|
"disk_total": "Disk celkovo",
|
|
429
429
|
"disk_used": "Disk pou\u017eit\u00fd",
|
|
430
|
-
"docker_version": "Verzia
|
|
430
|
+
"docker_version": "Verzia Docker",
|
|
431
431
|
"healthy": "V poriadku",
|
|
432
432
|
"host_os": "Hostite\u013esk\u00fd opera\u010dn\u00fd syst\u00e9m",
|
|
433
433
|
"installed_addons": "Nain\u0161talovan\u00e9 doplnky",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"entity_id": "Subjekt, od ktor\u00e9ho sa z\u00edskavaj\u00fa \u0161tatistiky.",
|
|
23
23
|
"start": "Kedy za\u010da\u0165 meranie (\u010dasov\u00e1 zna\u010dka alebo d\u00e1tum). M\u00f4\u017ee to by\u0165 \u0161abl\u00f3na.",
|
|
24
24
|
"state": "Stavy, ktor\u00e9 chcete sledova\u0165 od subjektu.",
|
|
25
|
-
"type": "Typ sn\u00edma\u010da, jeden z
|
|
25
|
+
"type": "Typ sn\u00edma\u010da, jeden z 'time', 'ratio' alebo 'count'."
|
|
26
26
|
},
|
|
27
27
|
"description": "\u010eal\u0161ie podrobnosti o konfigur\u00e1cii sn\u00edma\u010da \u0161tatist\u00edk hist\u00f3rie pomocou t\u00fdchto mo\u017enost\u00ed n\u00e1jdete v dokument\u00e1cii."
|
|
28
28
|
},
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"entity_id": "Subjekt, od ktor\u00e9ho sa z\u00edskavaj\u00fa \u0161tatistiky.",
|
|
38
38
|
"name": "N\u00e1zov vytvorenej entity.",
|
|
39
39
|
"state": "Stavy, ktor\u00e9 chcete sledova\u0165 od subjektu.",
|
|
40
|
-
"type": "Typ sn\u00edma\u010da, jeden z
|
|
40
|
+
"type": "Typ sn\u00edma\u010da, jeden z 'time', 'ratio' alebo 'count'."
|
|
41
41
|
},
|
|
42
42
|
"description": "Vytvorte sn\u00edma\u010d \u0161tatist\u00edk hist\u00f3rie"
|
|
43
43
|
}
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"entity_id": "Subjekt, od ktor\u00e9ho sa z\u00edskavaj\u00fa \u0161tatistiky.",
|
|
67
67
|
"start": "Kedy za\u010da\u0165 meranie (\u010dasov\u00e1 zna\u010dka alebo d\u00e1tum). M\u00f4\u017ee to by\u0165 \u0161abl\u00f3na.",
|
|
68
68
|
"state": "Stavy, ktor\u00e9 chcete sledova\u0165 od subjektu.",
|
|
69
|
-
"type": "Typ sn\u00edma\u010da, jeden z
|
|
69
|
+
"type": "Typ sn\u00edma\u010da, jeden z 'time', 'ratio' alebo 'count'."
|
|
70
70
|
},
|
|
71
71
|
"description": "\u010eal\u0161ie podrobnosti o konfigur\u00e1cii sn\u00edma\u010da \u0161tatist\u00edk hist\u00f3rie pomocou t\u00fdchto mo\u017enost\u00ed n\u00e1jdete v dokument\u00e1cii."
|
|
72
72
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"application_credentials": {
|
|
3
|
-
"description": "Prihl\u00e1senie do slu\u017eby Home Connect si vy\u017eaduje klientske ID a tajn\u00fd k\u00f3d. Ak ich chcete z\u00edska\u0165, postupujte pod\u013ea nasleduj\u00facich krokov. 1. Nav\u0161t\u00edvte webov\u00fa lokalitu [Home Connect Developer Program]({developer_dashboard_url}) a zaregistrujte si v\u00fdvoj\u00e1rske konto.
|
|
3
|
+
"description": "Prihl\u00e1senie do slu\u017eby Home Connect si vy\u017eaduje klientske ID a tajn\u00fd k\u00f3d. Ak ich chcete z\u00edska\u0165, postupujte pod\u013ea nasleduj\u00facich krokov. 1. Nav\u0161t\u00edvte webov\u00fa lokalitu [Home Connect Developer Program]({developer_dashboard_url}) a zaregistrujte si v\u00fdvoj\u00e1rske konto. \n\n1. V procese registr\u00e1cie zadajte e-mailov\u00fa adresu svojho prihlasovacieho mena pre p\u00f4vodn\u00fa aplik\u00e1ciu Home Connect v \u010dasti **Predvolen\u00e9 pou\u017e\u00edvate\u013esk\u00e9 konto Home Connect na testovanie**. \n1. Zadajte svoje prihlasovacie meno. Prejdite na str\u00e1nku [Aplik\u00e1cie]({applications_url}) a vyberte polo\u017eku [Registrova\u0165 aplik\u00e1ciu]({register_application_url}) a nastavte polia na nasleduj\u00face hodnoty:\n* **ID aplik\u00e1cie**: Home Assistant (alebo ak\u00fdko\u013evek in\u00fd n\u00e1zov, ktor\u00fd d\u00e1va zmysel) * **Plynulos\u0165 overovania**: \n* **Prietok udelenia autoriza\u010dn\u00e9ho k\u00f3du \n* **Presmerovanie URI**: `{redirect_url}` \n\nV podrobnostiach novovytvorenej aplik\u00e1cie n\u00e1jdete **Identifik\u00e1tor klienta** a **Tajomstvo klienta**."
|
|
4
4
|
},
|
|
5
5
|
"common": {
|
|
6
6
|
"confirmed": "Potvrden\u00e9",
|
|
@@ -4,15 +4,49 @@
|
|
|
4
4
|
"already_configured": "Za\u0159\u00edzen\u00ed je ji\u017e nastaveno",
|
|
5
5
|
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
|
|
6
6
|
"no_devices_found": "Ujist\u011bte se, \u017ee je seka\u010dka v re\u017eimu p\u00e1rov\u00e1n\u00ed a zkuste to znovu. M\u016f\u017ee to trvat n\u011bkolik pokus\u016f.",
|
|
7
|
+
"not_allowed": "Nelze \u010d\u00edst data ze seka\u010dky; obvykle to znamen\u00e1, \u017ee nen\u00ed sp\u00e1rovan\u00e1",
|
|
8
|
+
"reauth_successful": "Op\u011btovn\u00e9 ov\u011b\u0159en\u00ed bylo \u00fasp\u011b\u0161n\u00e9",
|
|
7
9
|
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
|
|
8
10
|
},
|
|
11
|
+
"error": {
|
|
12
|
+
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
|
|
13
|
+
"invalid_auth": "Nelze sp\u00e1rovat se za\u0159\u00edzen\u00edm. Ujist\u011bte se, \u017ee je PIN spr\u00e1vn\u00fd a seka\u010dka je v re\u017eimu p\u00e1rov\u00e1n\u00ed.",
|
|
14
|
+
"invalid_pin": "PIN mus\u00ed b\u00fdt \u010d\u00edslo"
|
|
15
|
+
},
|
|
9
16
|
"flow_title": "{name} ({address})",
|
|
10
17
|
"step": {
|
|
18
|
+
"bluetooth_confirm": {
|
|
19
|
+
"data": {
|
|
20
|
+
"pin": "PIN seka\u010dky"
|
|
21
|
+
},
|
|
22
|
+
"data_description": {
|
|
23
|
+
"pin": "PIN pou\u017eit\u00fd k zabezpe\u010den\u00ed seka\u010dky"
|
|
24
|
+
},
|
|
25
|
+
"description": "Chcete nastavit {name}?\nUjist\u011bte se, \u017ee je seka\u010dka v re\u017eimu p\u00e1rov\u00e1n\u00ed."
|
|
26
|
+
},
|
|
27
|
+
"reauth_confirm": {
|
|
28
|
+
"data": {
|
|
29
|
+
"pin": "PIN seka\u010dky"
|
|
30
|
+
},
|
|
31
|
+
"data_description": {
|
|
32
|
+
"pin": "PIN pou\u017eit\u00fd k zabezpe\u010den\u00ed seka\u010dky"
|
|
33
|
+
},
|
|
34
|
+
"description": "Potvr\u010fte PIN pro {name}."
|
|
35
|
+
},
|
|
11
36
|
"user": {
|
|
12
37
|
"data": {
|
|
13
|
-
"address": "Adresa za\u0159\u00edzen\u00ed BLE"
|
|
38
|
+
"address": "Adresa za\u0159\u00edzen\u00ed BLE",
|
|
39
|
+
"pin": "PIN seka\u010dky"
|
|
40
|
+
},
|
|
41
|
+
"data_description": {
|
|
42
|
+
"pin": "PIN pou\u017eit\u00fd k zabezpe\u010den\u00ed seka\u010dky"
|
|
14
43
|
}
|
|
15
44
|
}
|
|
16
45
|
}
|
|
46
|
+
},
|
|
47
|
+
"exceptions": {
|
|
48
|
+
"pin_required": {
|
|
49
|
+
"message": "Pro {domain_name} je vy\u017eadov\u00e1n PIN."
|
|
50
|
+
}
|
|
17
51
|
}
|
|
18
52
|
}
|
|
@@ -4,15 +4,49 @@
|
|
|
4
4
|
"already_configured": "Prietaisas jau sukonfig\u016bruotas",
|
|
5
5
|
"cannot_connect": "Nepavyko prisijungti",
|
|
6
6
|
"no_devices_found": "\u012esitikinkite, kad vejapjov\u0117 yra susiejimo re\u017eimu, ir bandykite dar kart\u0105. Gali prireikti keli\u0173 bandym\u0173.",
|
|
7
|
+
"not_allowed": "Nepavyksta nuskaityti duomen\u0173 i\u0161 vejapjov\u0117s, tai paprastai rei\u0161kia, kad ji n\u0117ra suporuota",
|
|
8
|
+
"reauth_successful": "Pakartotinis autentifikavimas buvo s\u0117kmingas",
|
|
7
9
|
"unknown": "Netik\u0117ta klaida"
|
|
8
10
|
},
|
|
11
|
+
"error": {
|
|
12
|
+
"cannot_connect": "Nepavyko prisijungti",
|
|
13
|
+
"invalid_auth": "Nepavyksta susieti su \u012frenginiu, \u012fsitikinkite, kad PIN kodas teisingas ir vejapjov\u0117 veikia susiejimo re\u017eimu.",
|
|
14
|
+
"invalid_pin": "PIN kodas turi b\u016bti skai\u010dius"
|
|
15
|
+
},
|
|
9
16
|
"flow_title": "{name} ({address})",
|
|
10
17
|
"step": {
|
|
18
|
+
"bluetooth_confirm": {
|
|
19
|
+
"data": {
|
|
20
|
+
"pin": "Vejapjov\u0117s PIN kodas"
|
|
21
|
+
},
|
|
22
|
+
"data_description": {
|
|
23
|
+
"pin": "PIN kodas, naudojamas vejapjovei apsaugoti"
|
|
24
|
+
},
|
|
25
|
+
"description": "Ar norite nustatyti {name}? \n \u012esitikinkite, kad vejapjov\u0117 veikia susiejimo re\u017eimu."
|
|
26
|
+
},
|
|
27
|
+
"reauth_confirm": {
|
|
28
|
+
"data": {
|
|
29
|
+
"pin": "Vejapjov\u0117s PIN kodas"
|
|
30
|
+
},
|
|
31
|
+
"data_description": {
|
|
32
|
+
"pin": "PIN kodas, naudojamas vejapjovei apsaugoti"
|
|
33
|
+
},
|
|
34
|
+
"description": "Patvirtinkite PIN kod\u0105 {name}."
|
|
35
|
+
},
|
|
11
36
|
"user": {
|
|
12
37
|
"data": {
|
|
13
|
-
"address": "Prietaiso BLE adresas"
|
|
38
|
+
"address": "Prietaiso BLE adresas",
|
|
39
|
+
"pin": "Vejapjov\u0117s PIN kodas"
|
|
40
|
+
},
|
|
41
|
+
"data_description": {
|
|
42
|
+
"pin": "PIN kodas, naudojamas vejapjovei apsaugoti"
|
|
14
43
|
}
|
|
15
44
|
}
|
|
16
45
|
}
|
|
46
|
+
},
|
|
47
|
+
"exceptions": {
|
|
48
|
+
"pin_required": {
|
|
49
|
+
"message": "PIN kodas reikalingas {domain_name}"
|
|
50
|
+
}
|
|
17
51
|
}
|
|
18
52
|
}
|
|
@@ -4,15 +4,49 @@
|
|
|
4
4
|
"already_configured": "Dispositivo j\u00e1 configurado",
|
|
5
5
|
"cannot_connect": "A liga\u00e7\u00e3o falhou",
|
|
6
6
|
"no_devices_found": "Certifique-se de que o cortador est\u00e1 no modo de emparelhamento e tente novamente. Podem ser necess\u00e1rias algumas tentativas.",
|
|
7
|
+
"not_allowed": "N\u00e3o \u00e9 poss\u00edvel ler os dados do cortador, o que normalmente significa que n\u00e3o est\u00e1 emparelhado",
|
|
8
|
+
"reauth_successful": "Reautentica\u00e7\u00e3o bem sucedida",
|
|
7
9
|
"unknown": "Erro inesperado"
|
|
8
10
|
},
|
|
11
|
+
"error": {
|
|
12
|
+
"cannot_connect": "A liga\u00e7\u00e3o falhou",
|
|
13
|
+
"invalid_auth": "N\u00e3o \u00e9 poss\u00edvel emparelhar com o dispositivo, verifique se o PIN est\u00e1 correto e se o cortador est\u00e1 no modo de emparelhamento",
|
|
14
|
+
"invalid_pin": "O PIN deve ser um n\u00famero"
|
|
15
|
+
},
|
|
9
16
|
"flow_title": "{name} ({address})",
|
|
10
17
|
"step": {
|
|
18
|
+
"bluetooth_confirm": {
|
|
19
|
+
"data": {
|
|
20
|
+
"pin": "PIN do cortador de relva"
|
|
21
|
+
},
|
|
22
|
+
"data_description": {
|
|
23
|
+
"pin": "O PIN utilizado para proteger o cortador de relva"
|
|
24
|
+
},
|
|
25
|
+
"description": "Pretende configurar o {name}? Certifique-se de que o cortador est\u00e1 no modo de emparelhamento."
|
|
26
|
+
},
|
|
27
|
+
"reauth_confirm": {
|
|
28
|
+
"data": {
|
|
29
|
+
"pin": "PIN do cortador de relva"
|
|
30
|
+
},
|
|
31
|
+
"data_description": {
|
|
32
|
+
"pin": "O PIN utilizado para proteger o cortador de relva"
|
|
33
|
+
},
|
|
34
|
+
"description": "Confirme o PIN para {name}."
|
|
35
|
+
},
|
|
11
36
|
"user": {
|
|
12
37
|
"data": {
|
|
13
|
-
"address": "Endere\u00e7o do dispositivo BLE"
|
|
38
|
+
"address": "Endere\u00e7o do dispositivo BLE",
|
|
39
|
+
"pin": "PIN do cortador de relva"
|
|
40
|
+
},
|
|
41
|
+
"data_description": {
|
|
42
|
+
"pin": "O PIN utilizado para proteger o cortador de relva"
|
|
14
43
|
}
|
|
15
44
|
}
|
|
16
45
|
}
|
|
46
|
+
},
|
|
47
|
+
"exceptions": {
|
|
48
|
+
"pin_required": {
|
|
49
|
+
"message": "\u00c9 necess\u00e1rio PIN para {domain_name}"
|
|
50
|
+
}
|
|
17
51
|
}
|
|
18
52
|
}
|
|
@@ -24,6 +24,7 @@ from homeassistant.config_entries import ConfigEntry
|
|
|
24
24
|
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform
|
|
25
25
|
from homeassistant.core import HomeAssistant
|
|
26
26
|
from homeassistant.exceptions import ConfigEntryNotReady
|
|
27
|
+
from homeassistant.helpers import device_registry as dr
|
|
27
28
|
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
|
28
29
|
from homeassistant.helpers.event import async_track_time_interval
|
|
29
30
|
from homeassistant.helpers.httpx_client import get_async_client
|
|
@@ -104,6 +105,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: AqualinkConfigEntry) ->
|
|
|
104
105
|
f"Error while attempting to retrieve devices list: {svc_exception}"
|
|
105
106
|
) from svc_exception
|
|
106
107
|
|
|
108
|
+
device_registry = dr.async_get(hass)
|
|
109
|
+
device_registry.async_get_or_create(
|
|
110
|
+
config_entry_id=entry.entry_id,
|
|
111
|
+
name=system.name,
|
|
112
|
+
identifiers={(DOMAIN, system.serial)},
|
|
113
|
+
manufacturer="Jandy",
|
|
114
|
+
serial_number=system.serial,
|
|
115
|
+
)
|
|
116
|
+
|
|
107
117
|
for dev in devices.values():
|
|
108
118
|
if isinstance(dev, AqualinkThermostat):
|
|
109
119
|
runtime_data.thermostats += [dev]
|
|
@@ -29,6 +29,7 @@ class AqualinkEntity[AqualinkDeviceT: AqualinkDevice](Entity):
|
|
|
29
29
|
self._attr_unique_id = f"{dev.system.serial}_{dev.name}"
|
|
30
30
|
self._attr_device_info = DeviceInfo(
|
|
31
31
|
identifiers={(DOMAIN, self._attr_unique_id)},
|
|
32
|
+
via_device=(DOMAIN, dev.system.serial),
|
|
32
33
|
manufacturer=dev.manufacturer,
|
|
33
34
|
model=dev.model,
|
|
34
35
|
name=dev.label,
|
|
@@ -35,9 +35,35 @@
|
|
|
35
35
|
"battery_soc": {
|
|
36
36
|
"name": "Baterijos \u012fkrovimo b\u016bsena"
|
|
37
37
|
},
|
|
38
|
+
"battery_status": {
|
|
39
|
+
"name": "Baterijos b\u016bsena",
|
|
40
|
+
"state": {
|
|
41
|
+
"charged": "\u012ekrautas",
|
|
42
|
+
"charging": "\u012ekrovimas",
|
|
43
|
+
"discharging": "I\u0161sikrovimas"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
38
46
|
"battery_stored": {
|
|
39
47
|
"name": "Baterija saugoma"
|
|
40
48
|
},
|
|
49
|
+
"energy_battery_consumed": {
|
|
50
|
+
"name": "\u0160iandien akumuliatori\u0173 sunaudojama energija"
|
|
51
|
+
},
|
|
52
|
+
"energy_battery_stored": {
|
|
53
|
+
"name": "\u0160iandien akumuliatoriuje sukaupta energija"
|
|
54
|
+
},
|
|
55
|
+
"energy_building_consumption": {
|
|
56
|
+
"name": "\u0160iandien pastat\u0173 suvartojimas"
|
|
57
|
+
},
|
|
58
|
+
"energy_grid_consumed": {
|
|
59
|
+
"name": "\u0160iandien tinkle suvartojama energija"
|
|
60
|
+
},
|
|
61
|
+
"energy_grid_injected": {
|
|
62
|
+
"name": "\u0160iandien \u012f tinkl\u0105 tiekiama energija"
|
|
63
|
+
},
|
|
64
|
+
"energy_pv": {
|
|
65
|
+
"name": "\u0160iandienos PV energija"
|
|
66
|
+
},
|
|
41
67
|
"grid_current_l1": {
|
|
42
68
|
"name": "Tinklo srov\u0117 L1"
|
|
43
69
|
},
|
|
@@ -77,6 +103,14 @@
|
|
|
77
103
|
"inverter_injection_power_limit": {
|
|
78
104
|
"name": "\u012epur\u0161kimo galios riba"
|
|
79
105
|
},
|
|
106
|
+
"manager_inverter_state": {
|
|
107
|
+
"name": "Inverterio b\u016bsena",
|
|
108
|
+
"state": {
|
|
109
|
+
"grid_consumption": "Tinklo suvartojimas",
|
|
110
|
+
"grid_synchronised_but_not_used": "Tinklas nesinchronizuotas, bet naudojamas",
|
|
111
|
+
"unsynchronized": "Nesinchronizuotas"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
80
114
|
"meter_power": {
|
|
81
115
|
"name": "Skaitiklio galia"
|
|
82
116
|
},
|
|
@@ -133,6 +167,26 @@
|
|
|
133
167
|
},
|
|
134
168
|
"temp_component_temperature": {
|
|
135
169
|
"name": "Komponento temperat\u016bra"
|
|
170
|
+
},
|
|
171
|
+
"timeline_type_msg": {
|
|
172
|
+
"name": "Laiko juostos b\u016bsena",
|
|
173
|
+
"state": {
|
|
174
|
+
"com_lost": "Prarastas ry\u0161ys.",
|
|
175
|
+
"error_bat": "Aptikta akumuliatoriaus klaida.",
|
|
176
|
+
"error_grid": "Aptikta elektros tinklo klaida.",
|
|
177
|
+
"error_ond": "Aptikta keitiklio klaida.",
|
|
178
|
+
"error_pv": "Aptikta PV sistemos klaida.",
|
|
179
|
+
"error_soft": "Aptikta programin\u0117s \u012frangos klaida.",
|
|
180
|
+
"good_1": "Sistema veikia \u012fprastai.",
|
|
181
|
+
"info_bat": "Informacija apie akumuliatori\u0173.",
|
|
182
|
+
"info_ond": "Pateikiama informacija apie keitikl\u012f.",
|
|
183
|
+
"info_smartlo": "Galima gauti informacij\u0105 apie i\u0161mani\u0105j\u0105 apkrov\u0105.",
|
|
184
|
+
"info_soft": "Turima programin\u0117s \u012frangos informacija.",
|
|
185
|
+
"warning_bat": "Aptiktas \u012fsp\u0117jimas apie akumuliatori\u0173.",
|
|
186
|
+
"warning_grid": "Aptiktas \u012fsp\u0117jimas apie elektros tinkl\u0105.",
|
|
187
|
+
"warning_pv": "Aptiktas PV sistemos \u012fsp\u0117jimas.",
|
|
188
|
+
"web_account": "Prane\u0161imas apie \u017einiatinklio paskyr\u0105."
|
|
189
|
+
}
|
|
136
190
|
}
|
|
137
191
|
}
|
|
138
192
|
}
|
|
@@ -29,15 +29,44 @@
|
|
|
29
29
|
},
|
|
30
30
|
"entity": {
|
|
31
31
|
"sensor": {
|
|
32
|
+
"battery_consumed": {
|
|
33
|
+
"name": "Bateria consumida"
|
|
34
|
+
},
|
|
32
35
|
"battery_power": {
|
|
33
36
|
"name": "Energia da bateria"
|
|
34
37
|
},
|
|
35
38
|
"battery_soc": {
|
|
36
39
|
"name": "Estado de carga da bateria"
|
|
37
40
|
},
|
|
41
|
+
"battery_status": {
|
|
42
|
+
"name": "Estado da bateria",
|
|
43
|
+
"state": {
|
|
44
|
+
"charged": "Carregado",
|
|
45
|
+
"charging": "A carregar",
|
|
46
|
+
"discharging": "A descarregar"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
38
49
|
"battery_stored": {
|
|
39
50
|
"name": "Bateria armazenada"
|
|
40
51
|
},
|
|
52
|
+
"energy_battery_consumed": {
|
|
53
|
+
"name": "Energia consumida da bateria hoje"
|
|
54
|
+
},
|
|
55
|
+
"energy_battery_stored": {
|
|
56
|
+
"name": "Energia armazenada em bateria hoje"
|
|
57
|
+
},
|
|
58
|
+
"energy_building_consumption": {
|
|
59
|
+
"name": "Consumo do edif\u00edcio hoje"
|
|
60
|
+
},
|
|
61
|
+
"energy_grid_consumed": {
|
|
62
|
+
"name": "Energia consumida da rede hoje"
|
|
63
|
+
},
|
|
64
|
+
"energy_grid_injected": {
|
|
65
|
+
"name": "Energia injetada na rede hoje"
|
|
66
|
+
},
|
|
67
|
+
"energy_pv": {
|
|
68
|
+
"name": "Energia FV hoje"
|
|
69
|
+
},
|
|
41
70
|
"grid_current_l1": {
|
|
42
71
|
"name": "Corrente da rede L1"
|
|
43
72
|
},
|
|
@@ -77,9 +106,39 @@
|
|
|
77
106
|
"inverter_injection_power_limit": {
|
|
78
107
|
"name": "Limite de pot\u00eancia de inje\u00e7\u00e3o"
|
|
79
108
|
},
|
|
109
|
+
"manager_inverter_state": {
|
|
110
|
+
"name": "Inverter estado",
|
|
111
|
+
"state": {
|
|
112
|
+
"grid_consumption": "Consumo da rede",
|
|
113
|
+
"grid_injection": "Inje\u00e7\u00e3o na rede",
|
|
114
|
+
"grid_synchronised_but_not_used": "Rede dessincronizada mas utilizada",
|
|
115
|
+
"unsynchronized": "Dessincronizado"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
80
118
|
"meter_power": {
|
|
81
119
|
"name": "Pot\u00eancia do contador"
|
|
82
120
|
},
|
|
121
|
+
"monitoring_minute_building_consumption": {
|
|
122
|
+
"name": "Consumo do edif\u00edcio"
|
|
123
|
+
},
|
|
124
|
+
"monitoring_minute_grid_consumption": {
|
|
125
|
+
"name": "Consumo da rede"
|
|
126
|
+
},
|
|
127
|
+
"monitoring_minute_grid_injection": {
|
|
128
|
+
"name": "Inje\u00e7\u00e3o na rede"
|
|
129
|
+
},
|
|
130
|
+
"monitoring_minute_grid_power_flow": {
|
|
131
|
+
"name": "Fluxo de energia da rede"
|
|
132
|
+
},
|
|
133
|
+
"monitoring_minute_solar_production": {
|
|
134
|
+
"name": "Produ\u00e7\u00e3o solar"
|
|
135
|
+
},
|
|
136
|
+
"monitoring_self_consumption": {
|
|
137
|
+
"name": "Autoconsumo"
|
|
138
|
+
},
|
|
139
|
+
"monitoring_self_sufficiency": {
|
|
140
|
+
"name": "Autossufici\u00eancia"
|
|
141
|
+
},
|
|
83
142
|
"output_current_l1": {
|
|
84
143
|
"name": "Corrente de sa\u00edda L1"
|
|
85
144
|
},
|
|
@@ -133,6 +192,26 @@
|
|
|
133
192
|
},
|
|
134
193
|
"temp_component_temperature": {
|
|
135
194
|
"name": "Temperatura do componente"
|
|
195
|
+
},
|
|
196
|
+
"timeline_type_msg": {
|
|
197
|
+
"name": "Estado da linha temporal",
|
|
198
|
+
"state": {
|
|
199
|
+
"com_lost": "Perda de comunica\u00e7\u00e3o.",
|
|
200
|
+
"error_bat": "Detetado um erro na bateria.",
|
|
201
|
+
"error_grid": "Detetado erro na rede el\u00e9trica.",
|
|
202
|
+
"error_ond": "Detetado erro do inversor.",
|
|
203
|
+
"error_pv": "Detetado erro no sistema fotovoltaico.",
|
|
204
|
+
"error_soft": "Detetado erro de software.",
|
|
205
|
+
"good_1": "Sistema a funcionar normalmente.",
|
|
206
|
+
"info_bat": "Informa\u00e7\u00e3o dispon\u00edvel sobre a bateria.",
|
|
207
|
+
"info_ond": "Informa\u00e7\u00e3o dispon\u00edvel sobre o inversor.",
|
|
208
|
+
"info_smartlo": "Informa\u00e7\u00e3o dispon\u00edvel sobre carga inteligente.",
|
|
209
|
+
"info_soft": "Informa\u00e7\u00e3o dispon\u00edvel sobre software.",
|
|
210
|
+
"warning_bat": "Detetado aviso de bateria.",
|
|
211
|
+
"warning_grid": "Detetado aviso de rede el\u00e9trica.",
|
|
212
|
+
"warning_pv": "Detetado aviso do sistema fotovoltaico.",
|
|
213
|
+
"web_account": "Notifica\u00e7\u00e3o de conta Web."
|
|
214
|
+
}
|
|
136
215
|
}
|
|
137
216
|
}
|
|
138
217
|
}
|