* Clean config flow entries with trailing whitespace
* Rewrite the config entry at runtime, without upgrading
* Skip intermediate `data = config_entry.data` variable
* Perform a deepcopy to ensure the config entry will actually be updated
* Make sql subqueries threadsafe
fixes#89224
* fix join outside of lambda
* move statement generation into a seperate function to make it easier to test
* add cache key tests
* no need to mock hass
* Cache transient templates compiles provided via api
partially fixes#89047 (there is more going on here)
* add a bit more coverage just to be sure
* switch method
* Revert "switch method"
This reverts commit 0e9e1c8cbe.
* tweak
* hold hass
* empty for github flakey
* Actually use translated state names in response
* Change test result now that locks are excluded from HassTurnOn
* Bump home-assistant-intents and hassil versions
* Bump aurora_api version to fix issues with NOAA conversion values. Fix#82587
* update requirements for aurora.
* Add state_class to aurora sensor.
* Fixed environment to run requirements_all script.
* Revert "Add state_class to aurora sensor."
This reverts commit 213e21e842.
* Introduce a UUID configuration option for API token. (#86547)
If the uuid is configured, it will be used in the HTTP headers. Otherwise,
we'll hash the salted instance URL which should be good enough(tm).
* Generate random 6-digit uuid on startup.
* Fix unifiprotect discovery running at shutdown
Move the discovery start into `async_setup` so we only
start discovery once reguardless of how many config entries
for unifiprotect they have (or how many times they reload).
Always make discovery a background task so it does not get
to block shutdown
* missing decorator
pkg_resources is abandoned and we need to move away
from using it https://github.com/pypa/pkg_resources
In the mean time we need to keep it working. This fixes
a new exception in py3.11 when a module is not installed
which allows proper fallback to pkg_resources.Requirement.parse
when needed
```
2023-02-25 15:46:21.101 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/view.py", line 146, in handle
result = await result
^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/config/config_entries.py", line 148, in post
return await super().post(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/helpers/data_entry_flow.py", line 71, in post
result = await self._flow_mgr.async_init(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 826, in async_init
flow, result = await task
^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 844, in _async_init
flow = await self.async_create_flow(handler, context=context, data=data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/config_entries.py", line 950, in async_create_flow
await async_process_deps_reqs(self.hass, self._hass_config, integration)
File "/Users/bdraco/home-assistant/homeassistant/setup.py", line 384, in async_process_deps_reqs
await requirements.async_get_integration_with_requirements(
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 52, in async_get_integration_with_requirements
return await manager.async_get_integration_with_requirements(domain)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 171, in async_get_integration_with_requirements
await self._async_process_integration(integration, done)
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 186, in _async_process_integration
await self.async_process_requirements(
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 252, in async_process_requirements
await self._async_process_requirements(name, missing)
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 284, in _async_process_requirements
installed, failures = await self.hass.async_add_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/requirements.py", line 113, in _install_requirements_if_missing
if pkg_util.is_installed(req) or _install_with_retry(req, kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/bdraco/home-assistant/homeassistant/util/package.py", line 40, in is_installed
pkg_resources.get_distribution(package)
File "/opt/homebrew/lib/python3.11/site-packages/pkg_resources/__init__.py", line 478, in get_distribution
dist = get_provider(dist)
^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pkg_resources/__init__.py", line 354, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
``
* Restore previous behavior of only waiting for new tasks at shutdown
* cleanup
* do a swap instead
* await canceled tasks
* await canceled tasks
* fix
* not needed since we no longer clear
* log it
* reword
* wait for airvisual
* tests
* Expose the Yellow-internal radio and multi-PAN addon as named serial ports
* Remove the serial number if it isn't available
* Use consistent names for the addon and Zigbee radio
* Add `homeassistant_hardware` and `_yellow` as `after_dependencies`
* Handle `hassio` not existing when listing serial ports
* Add unit tests
* Refactor discovery of entities to support composed and bridged devices
* Bump library version to 3.1.0
* move discovery schemas to platforms
* optimize a tiny bit
* simplify even more
* fixed bug in light platform
* fix color control logic
* fix some issues
* Update homeassistant/components/matter/discovery.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* fix some tests
* fix light test
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add support for firmware target in zwave_js FirmwareUploadView
fix
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zwave_js/test_api.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* fix types
* Switch back to using Any
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Bump python-matter-server to 3.0.0
Include all fixes for the changed api schema of the library
* fix test fixtures
* remove invalid data from fixtures
* fix some of the tests
* fix binary sensor bug
* fix sensor bug
* fix switch test
* fix tests
* adjust bugs and typos
* Initial diagnostics
* Include MLP of local OTBR
* Add dep on pyroute2
* Move pyroute2 onto executor
* More comments
* Read thread data direct from zeroconf cache
* Get neighbour cache for known BR's
* isort
* mypy
* Add diagnostic test
* rel import
* Fix pylint
* Restore coverage in discovery.py
* Add WS command config/entity_registry/list_for_display
* Make more keys in the display dict optional
* Move disabled_by check to ws command handler
* Hide hidden_by if not hidden
* Use send_json_auto_id in the new test
* Don't include entities which have no data needed for display
* Include platform for entries with translation_key
* Avoid asking recorder platforms for list_statistic_ids when already complete
If we already had all the data needed for list_statistic_ids, we would
still query recorder platforms and throw away the results
* Update homeassistant/components/recorder/statistics.py
Ensure new tables are created using InnoDB
InnoDB is the only supported engine to use with MariaDB
or MySQL as we currently have large keys in the states
table that will not work with MyIASM. Other storage
engines including Aria will likely work fine, but they
are not officially supported.
* Manage KNX Keyfile from UI
* migrate config entry to use new keyfile
* Revert "migrate config entry to use new keyfile"
use same config style as before instead of entry version migration
* clean up uploaded file when integration is removed
* change default filename
* revert to previous step name
* remove empty directory on unload
* Add tests for init.
* Add more test init.
* Fix test init side_effect.
* Add test sensor.
* Fix sensor test file name.
* Fix sensor test.
* Add binary sensor test.
* Fix comments and styling.
* Remove apcupsd from omissions in coveragerc.
* Add a test case for binary sensor when STATFLAG is not available.
* Complete type annotations for test files.
* Revert "Remove apcupsd from omissions in coveragerc."
This reverts commit 66b05fcb8829619a771a650a3d70174089e15d91.
* Load pending state attributes and event data ids at startup
Since we queue all events to be processed after startup
we can have a thundering herd of queries to prime the
LRUs of event data and state attributes ids. Since we
know we are about to process a chunk of events we can
fetch all the ids in two queries
* lru
* fix hang
* Fix recorder LRU being destroyed if event session is reopened
We would clear the LRU in _close_event_session but
it would never get replaced with an LRU again so
it would leak memory if the event session is reopened
* Fix recorder LRU being destroyed if event session is reopened
We would clear the LRU in _close_event_session but
it would never get replaced with an LRU again so
it would leak memory if the event session is reopened
* cleanup
* Mark PostgreSQL range select as fast
Currently we were using the slow range select workaround for
PostgreSQL that was original developed for MariaDB but
its actually slower on PostgreSQ
fixes#83253
* Mark PostgreSQL range select as fast
Currently we were using the slow range select workaround for
PostgreSQL that was original developed for MariaDB but
its actually slower on PostgreSQ
fixes#83253
* Fix statistics_at_time query not using index
fixes#82411
* fix refactoring error
* fix query so sqlalc does not get confused
* split it
* write as subquery
* reduce
* cleanup
* reduce
* Revert "reduce"
This reverts commit 43b4b55778.
* Remove default from created statistics schema
We were still inserting created times because even though
None was passed when creating the object explictly, the
default would still be used
* adjust column
* preserve original pre sql alc 2.0 behavior
* Adjust size of recorder LRU based on number of entities
If there are a large number of entities the cache would
get thrashed as there were more state attributes being
recorded than the size of the cache. This meant we had
to go back to the database to do lookups frequently when
an instance has more than 2048 entities that change
frequently
* add a test
* do not actually record 4096 states
* patch target
* patch target
* Ensure doorbird always uses internal url
The doorbird should always use the internal url to
ensure the webhooks work. The doorbird does not
verify ssl so there is no concern about ssl matching
according to the LAN-2-LAN API v0.32 Dec 21 2022
* adjust
* Update homeassistant/components/doorbird/__init__.py
* Add support for snapshot testing
* Use snapshots in Elgato diagnostics test
* Use snapshots in Elgato sensor test
* Fix flake8 warning
* Slightly improve serialized output
* Remove snapshot naming in elgato sensor tests
* Improve snapshoting of via_device_id in device registry item
* Update pylint typehints plugin for snapshot fixture typing
* Use snapshots in Elgato configflow test
* Use snapshots in Bluetooth repair issue tests
* Only expose default cloud domains in default agent
* Copy exposed domain list to conversation
* Implement requested changes
* Add test for exposed devices/areas
* Use a set for config entries task tracking
* Allow adding background tasks to config entries
* Add tests for config entry add tasks
* Update docstrings on core create task
* Migrate roon and august
* Use in more places
* Guard for None
* Fix dangling task for elkm1
* Update homeassistant/components/elkm1/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
```
2023-02-16 20:44:54.516 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry alexander for sense
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1152, in _create_direct_connection
hosts = await asyncio.shield(host_resolved)
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1152, in _create_direct_connection
hosts = await asyncio.shield(host_resolved)
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 861, in _resolve_host
await event.wait()
File "/usr/local/lib/python3.10/site-packages/aiohttp/locks.py", line 34, in wait
raise self._exc
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 874, in _resolve_host
addrs = await self._resolver.resolve(host, port, family=self._family)
File "/usr/local/lib/python3.10/site-packages/aiohttp/resolver.py", line 33, in resolve
infos = await self._loop.getaddrinfo(
File "/usr/local/lib/python3.10/asyncio/base_events.py", line 860, in getaddrinfo
return await self.run_in_executor(
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 381, in async_setup
result = await component.async_setup_entry(hass, self)
File "/usr/src/homeassistant/homeassistant/components/sense/__init__.py", line 83, in async_setup_entry
await gateway.get_monitor_data()
File "/usr/local/lib/python3.10/site-packages/sense_energy/asyncsenseable.py", line 214, in get_monitor_data
json = await self._api_call("app/monitors/%s/overview" % self.sense_monitor_id)
File "/usr/local/lib/python3.10/site-packages/sense_energy/asyncsenseable.py", line 174, in _api_call
async with self._client_session.get(
File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 1141, in __aenter__
self._resp = await self._coro
File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 536, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 540, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 901, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1166, in _create_direct_connection
raise ClientConnectorError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.sense.com:443 ssl:default [Try again] ```
* Use blocking in service calls and verify result
* Block for 2 seconds and update states after
* Small timeout in service call to allow exceptions
* Move sun test
* Stop processing when we hit bad encryption
* Accept webhook payload that is a list
* Rename functions because we import them
* Revert a debug thing
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Remove profiler.memory service
guppy3 is not python3.11 compat
https://github.com/zhuyifei1999/guppy3/issues/41
This service will return if and when guppy3 becomes
python3.11 compat
* squash
* temp remove
* temp dump tests
* temp dump tests
* drop a few more to get a run
* drop a few more to get a run
* Account for changed python3.11 enum.IntFlag behavior in zha
There may be additional changes needed, but I could only
see what needed to be updated based on the tests
* merge
* restore
* restore
* legacy value
* tweak a bit for the python 3.11 timings
* block cchardet
* conditional
* adjust est
* test
* not yet
* tweak
* give a little leeway for timing
* Fix otbr tests
* Increase database test timeout
It looks like we need a little more time to run
with the addiitonal tests in #87019
* Increase database test timeout
It looks like we need a little more time to run
with the addiitonal tests in #87019
* Fix aprs tests with python 3.11
* merge fix
* hints
* Update homeassistant/package_constraints.txt
* Update script/gen_requirements_all.py
* Constrain uamqp for Python 3.10 only
* Bump vulcan-api to 2.3.0
see https://github.com/kapi2289/vulcan-api/pull/126
see https://github.com/home-assistant/core/pull/88038
see https://github.com/home-assistant/docker/pull/260
* add ban
* Bump python-matter-server to 2.1.1
* revert
* Update tests/asyncio_legacy.py
---------
Co-authored-by: Erik <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
* Refactor zeroconf task handling
- Avoid the need to create tasks for most callbacks
- Fixes the untracked task that could get unexpectedly GCed
* be consistant
* be consistant
* fix zeroconf tests
* runtime
* Revert "runtime"
This reverts commit 19e6b61837.
* precalc
* refactor
* tweak
* update tests
The check for identical flows only worked after
the start event. We now check against pending
flows as well
If startup took a while we could end up
with quite the thundering herd
Home Assistant uses orjson 3.8.5 that contains an issue[1] on musl libc
platforms that causes a segmentation fault. This particularly affect
Home Assistant container installations reported in #87283 and #87522.
This updates the version to 3.8.6 that resolves the segmentation
fault during json serialisation.
[1] https://github.com/ijl/orjson/issues/335
* Add WS command for discovering Thread routers
* Fix type annotations
* Mock zeroconf in tests
* Key discovery by external MAC address
* Add tests
* Include hostname in data, allow missing fields
* Fix typo
* Include server instead of hostname
* Do not reload the entry when the target temperature changes
* Do not reload the entry when the mode changes
* Increase test coverage
* Increase test coverage
Home Assistant uses orjson 3.8.5 that contains an issue[1] on musl libc
platforms that causes a segmentation fault. This particularly affect
Home Assistant container installations reported in #87283 and #87522.
This updates the version to 3.8.6 that resolves the segmentation
fault during json serialisation.
[1] https://github.com/ijl/orjson/issues/335
* Add dormakaba_dkey door and dead bolt binary sensors
* Rename dead bolt sensor
* Fix docstring
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Keep task references while running
* Update pilight tests pointing at correct logger call
* Fix graphite tests
* Fix profiler tests
* More graphite test fixes
* Remove extra sleep
* Fix tests
* Shutdown background tasks as part of stage 1
* Remove unnecessary sleep in test
* Remove unused method on mock hass
* Skip on cancelled too
* Remove background tasks
* Test trigger variables without actually sleeping
* Fix graphite
* One more graphite grrrrrrr
* Upgrading volvooncall to 0.10.2
This release fixes the incorrect remaining time of charging the battery
* updating volvooncall test requirements
* Updating volvooncall requirements
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This is a backport from cpython 3.12
https://docs.python.org/3/library/asyncio-policy.html
> PidfdChildWatcher is a “Goldilocks” child watcher implementation. It doesn’t require signals or threads, doesn’t interfere with any processes launched outside the event loop, and scales linearly with the number of subprocesses launched by the event loop. The main disadvantage is that pidfds are specific to Linux, and only work on recent (5.3+) kernels.
https://github.com/python/cpython/pull/98024
There are some additional fixes in cpython 3.12
in https://github.com/python/cpython/pull/94184
when there is no event loop running in the main thread
but this is not a problem we have
* Replace fiblary3 with pyfibaro library
* Fix some missing replacements for pyfibaro library
* Remove debug code which was committed accidentially
* Use fibaro_parent_id in another place
* Fix some bugs
* Move more code to the library
* Move has_unit check to correct place
* Add hass type hint and `None` return type
* Add type hints on tmp_path
* Add registry hints
* Add caplog and hass_ws_client type hints
* Add type hints for MqttMockHAClientGenerator
* Add type hints MqttMockPahoClient
* Hints on fixtures `calls` and `record_calls`
* Other fixture type hints tweaks
* Add hints for mock_usename_password_set
* Update tests/components/mqtt/test_init.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* correct domain
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Fix FKB merging entities when MAC empty
Fully Kiosk Browser will sometimes return an empty MAC address in the
device_info API call. When two Fully Kiosk devices are added with
missing MAC addresses, HA will assume the two devices are the same and
merge the entities. This fixes that problem.
Fixes#77722
* Update homeassistant/components/fully_kiosk/entity.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Optimize fetching statistics
* speed up
* avoid double groupby
* avoid another loop
* tweak flow
* fixes
* tweak
* avoid a new dt object in the cache for week/month
* avoid a new dt object in the cache for week/month
* Bump yalexs_ble to 1.12.11 to fix reconnect when services fail to resolve
changelog: https://github.com/bdraco/yalexs-ble/compare/v1.12.8...v1.12.11
* bump to make it work with esphome proxy as well
* empty
* Add reauth support to yalexs_ble
* lint
* reduce
* tweak
* tweak
* test for reauth
* Apply suggestions from code review
* cleanup
Dropping the database after this test will fail on
MySQL and hang forever because it causes an InnoDB deadlock
```
| 2042 | root | localhost:52698 | NULL | Query | 41 | Waiting for table metadata lock | DROP DATABASE `homeassistant-test` | 0.000 |
```
This test was recently enabled on MySQL in
https://github.com/home-assistant/core/pull/87753
Since it the migration is still in progress in the background
when the test ends, it causes deadlock with InnoDB when its dropped
out from under it
* Add type hints to diagnostics test helper
* Move type alias to the top
* Use Any
* Move TestClientGenerator to typing helper
* Use `dict[str, Any]` again
* Use JsonObjectType
* Add cast
* Apply MQTT fixture types on platform tests
* Add caplog type hint
* Add hass_ws_client type hint
* Add tmp_path type hint
* Add hass_client_no_auth type hint
* Adds tests for each matter light type and fixes small issue with color temperature lights not being detected properly
* Removes commented out code
* Changed matter light tests to pytest.mark.parametrize to reduce duplicate code
* Upgrading volvooncall to 0.10.2
This release fixes the incorrect remaining time of charging the battery
* updating volvooncall test requirements
* Updating volvooncall requirements
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Add type hints for MQTT discovery tests
* Remove more unused caplog instances
* rebase commit
* Small corrections
* Add event tye hint and correct string assignment
* Another Event type hint
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Correct test_complex_discovery_topic_prefix
* Import individual items from homeassistant.core
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Create a thread active dataset when discovering OTBR
* Align with lib changes
* Use thread preferred dataset if set
* Create a dataset also from the user flow
* Add hints for hass and return type
* Fix MqttMockType add apply hints to test_common
* Add type hints for other arguments
* Merge changes
* Add missed annotation
* Make tests types private and move to top
* Added the correct attributes to ColorTemperatureLight and ExtendedColorLight and added CurrentY to codespell ignore word list
* Added enums for matter color modes
* Added support for reading color and color temperature settings from matter api
* Added away of getting the ColorControl featureMap while the get_cluster(ColorControl) function is fixed
* Initial working implementation of color and color temperature
* Full supports for lights with both hs and xy
* Added checks to make sure color features are supported before making matter call
* Changed how color mode is figured out
* Moved the logic that gets the brightness to its own function
* Adds matter light tests for hass triggered events
* Adds full test coverage for matter all types of matter lights
* Adds full test coverage for matter all types of matter lights
* Moved light convertion logic to util.py
* Reorderd codespell ignore list and removed unused code
* Adds brightness state test
* Do not return cached values for state and brightness
* Move building the uncached state dict behind a lru_cache (_build_entity_state_dict)
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
Fix recorder run history during schema migration
RunHistory.get and RunHistory.current can be called before
RunHistory.start. We need to return a RecorderRuns object
with the recording_start time that will be used when start
it called to ensure history queries still work as expected.
fixes#87112
* Do not return cached values for state and brightness
* Move building the uncached state dict behind a lru_cache (_build_entity_state_dict)
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add JSON type definitions
* Sample use
* Keep mutable for a follo-up PR (avoid dead code)
* Use list/dict
* Remove JsonObjectType
* Remove reference to Union
* Cleanup
* Improve rest
* Rename json_dict => json_data
* Add docstring
* Add type hint to json_loads
* Add cast
* Move type alias to json helpers
* Cleanup
* Create and use json_loads_object
* Make error more explicit and add tests
* Use JsonObjectType in conversation
* Remove quotes
* Allow `None` for numeric sensor, ignore empty val
* Add test case with omitting a value
* Use _numeric_state_expected property
* Only respect None if numeric state is expected
* TP-Link Omada integration
Support for PoE config of network switch ports
* Bump omada client version
* Fixing tests
* Refactored site config flow
* Code review comments
* Fixed tests and device display name issue
* Bump isort to fix pre-commit hooks
* Hassfest for the win
* Omada code review
* Black
* More config flow test coverage
* Full coverage for omada config_flow
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Xiaomi 2S air purifier mode selection support
* Update homeassistant/components/xiaomi_miio/select.py
Co-authored-by: Teemu R. <tpr@iki.fi>
* rename fix translation keys and rename key to be specific to airpurifiers
Co-authored-by: Teemu R. <tpr@iki.fi>
Fix recorder run history during schema migration
RunHistory.get and RunHistory.current can be called before
RunHistory.start. We need to return a RecorderRuns object
with the recording_start time that will be used when start
it called to ensure history queries still work as expected.
fixes#87112
* Add Success logging as info message
Create "Info Log" for when domain is successfully updated.
* Update homeassistant/components/no_ip/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Closing Parenthesis added
* amend as per black suggestion
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
use official unit of measure for Lux in wiffi component
Add a mapping for the wiffi unit of illuminance 'lux' to the Home Assistant unit 'lx'. This fixed the following warning during startup:
```
2023-02-04 10:28:30.653 WARNING (MainThread) [homeassistant.components.sensor] Entity sensor.helligkeit (<class 'homeassistant.components.wiffi.sensor.NumberEntity'>) is using native unit of measurement 'lux' which is not a valid unit for the device class ('illuminance') it is using; expected one of ['lx']; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+wiffi%22
```
* Disable mopeka accelerometer sensors by default
These generate a significant amount of noise and are
only useful when placing the sensor. Disable them by
default. This not a breaking change because existing
preferences are preserved.
* adjust tests
* Disable mopeka accelerometer sensors by default
These generate a significant amount of noise and are
only useful when placing the sensor. Disable them by
default. This not a breaking change because existing
preferences are preserved.
* adjust tests
* Bump to 0.0.5
* Bump aiosomecomfort to 0.0.6
* lower case aiosomecomfort
* Fix other bad imports....
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Bump to 0.0.5
* Bump aiosomecomfort to 0.0.6
* lower case aiosomecomfort
* Fix other bad imports....
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Fixes
```
recorder/test_init.py:251: SAWarning: SELECT statement has a cartesian product between FROM element(s) "states" and FROM element "state_attributes". Apply join condition(s) between each element to resolve.
```
* Ensure humidity is still exported to HomeKit when is cannot be set
We would only send humidity to HomeKit if the device supported
changing the humidity
* remove unrelated changes
* Ensure humidity is still exported to HomeKit when is cannot be set
We would only send humidity to HomeKit if the device supported
changing the humidity
* remove unrelated changes
* Separate the garage door device from the door sensor
* Bump yolink api to 0.2.1
* fix suggest
* fix typos
* Bump yolink-api to 0.2.6
* Bump version to 0.2.7 and fix rename effects
* change aiohttp min version to 3.8.1
* ESPHome handle remove password and no encryption
* Start reauth for invalid api password
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Refactor async_match_states
* Check entity name after state, before aliases
* Give entity name matches priority over area names
* Don't force result to have area
* Add area alias in tests
* Move name/area list creation back
* Clean up PR
* More clean up
* Fix MQTT discovery failing after bad config update
* Update last discovery payload after update success
* Improve test, correct update assignment
* send_discovery_done to finally-catch vol.Error
* Just use try..finally
* Remove extra line
* use elif to avoid log confusion
* Cache the names and area lists in the default agent
fixes#86803
* add coverage to make sure the entity cache busts
* add areas test
* cover the last line
* Ignore empty payloads from DSMR Reader
* Simplify empty payload handling
If the native value hasn't changed, requesting to store it won't have a performance impact.
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
---------
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
After the start event we tend to get an event storm of state
changes which can get the websocket behind. #86854 will
help with that a bit, but we can reduce the overhead
to build a state diff when the attributes have not
changed
* Chunk MariaDB data migration to avoid running out of buffer space
This will make the migration slower but since the innodb_buffer_pool_size
is using the defaul to 128M and not tuned to the db size there is a
risk of running out of buffer space for large databases
* Update homeassistant/components/recorder/migration.py
* hard code since bandit thinks its an injection
* Update homeassistant/components/recorder/migration.py
* guard against manually modified data/corrupt db
* adjust to 10k per chunk
* adjust to 50k per chunk
* memory still just fine at 250k
* but slower
* commit after each chunk to reduce lock pressure
* adjust
* set to 0 if null so we do not loop forever (this should only happen if the data is missing)
* set to 0 if null so we do not loop forever (this should only happen if the data is missing)
* tweak
* tweak
* limit cleanup
* lower limit to give some more buffer
* lower limit to give some more buffer
* where required for sqlite
* sqlite can wipe as many as needed with no limit
* limit on mysql only
* chunk postgres
* fix limit
* tweak
* fix reference
* fix
* tweak for ram
* postgres memory reduction
* defer cleanup
* fix
* same order
* Add device registration to the Nuki component
* Name is always given by the API
* implement pvizeli's suggestions
* switch device_registry to snake_case
* fix entity naming
* unify manufacturer names
"single_instance_allowed":"Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
},
"create_entry":{
"default":"Alguns sensors no estan activats de manera predeterminada. Els pots activar des del registre d'entitats, despr\u00e9s de la configuraci\u00f3 de la integraci\u00f3.\nLa previsi\u00f3 meteorol\u00f2gica no est\u00e0 activada de manera predeterminada. Pots activar-la a les opcions de la integraci\u00f3."
},
"error":{
"cannot_connect":"Ha fallat la connexi\u00f3",
"invalid_api_key":"Clau API inv\u00e0lida",
"requests_exceeded":"S'ha superat el nombre m\u00e0xim de sol\u00b7licituds permeses a l'API d'AccuWeather. Has d'esperar-te o canviar la clau API."
},
"step":{
"user":{
"data":{
"api_key":"Clau API",
"latitude":"Latitud",
"longitude":"Longitud",
"name":"Nom"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Disminuint",
"rising":"Augmentant",
"steady":"Estable"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Previsi\u00f3 meteorol\u00f2gica"
},
"description":"Per culpa de les limitacions de la versi\u00f3 gratu\u00efta de l'API d'AccuWeather, quan activis la previsi\u00f3 meteorol\u00f2gica, les actualitzacions de dades es faran cada 80 minuts en comptes de cada 40."
"requests_exceeded":"Byl p\u0159ekro\u010den povolen\u00fd po\u010det po\u017eadavk\u016f pro API Accuweather. Mus\u00edte po\u010dkat nebo zm\u011bnit API kl\u00ed\u010d."
"description":"Vzhledem k omezen\u00edm bezplatn\u00e9 verze kl\u00ed\u010de AccuWeather API, kdy\u017e povol\u00edte p\u0159edpov\u011b\u010f po\u010das\u00ed, aktualizace dat se budou prov\u00e1d\u011bt ka\u017ed\u00fdch 80 minut m\u00edsto ka\u017ed\u00fdch 40 minut."
"single_instance_allowed":"Bereits konfiguriert. Nur eine einzige Konfiguration m\u00f6glich."
},
"create_entry":{
"default":"Einige Sensoren sind standardm\u00e4\u00dfig nicht aktiviert. Du kannst sie nach der Integrationskonfiguration in der Entit\u00e4tsregistrierung aktivieren.\nDie Wettervorhersage ist nicht standardm\u00e4\u00dfig aktiviert. Du kannst sie in den Integrationsoptionen aktivieren."
"requests_exceeded":"Die zul\u00e4ssige Anzahl von Anforderungen an die Accuweather-API wurde \u00fcberschritten. Du musst warten oder den API-Schl\u00fcssel \u00e4ndern."
},
"step":{
"user":{
"data":{
"api_key":"API-Schl\u00fcssel",
"latitude":"Breitengrad",
"longitude":"L\u00e4ngengrad",
"name":"Name"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Fallend",
"rising":"Steigend",
"steady":"Stetig"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Wettervorhersage"
},
"description":"Aufgrund der Einschr\u00e4nkungen der kostenlosen Version des AccuWeather API-Schl\u00fcssels werden bei aktivierter Wettervorhersage Datenaktualisierungen alle 80 Minuten statt alle 40 Minuten durchgef\u00fchrt."
"single_instance_allowed":"Already configured. Only a single configuration possible."
},
"create_entry":{
"default":"Some sensors are not enabled by default. You can enable them in the entity registry after the integration configuration.\nWeather forecast is not enabled by default. You can enable it in the integration options."
},
"error":{
"cannot_connect":"Failed to connect",
"invalid_api_key":"Invalid API key",
"requests_exceeded":"The allowed number of requests to Accuweather API has been exceeded. You have to wait or change API Key."
},
"step":{
"user":{
"data":{
"api_key":"API Key",
"latitude":"Latitude",
"longitude":"Longitude",
"name":"Name"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Falling",
"rising":"Rising",
"steady":"Steady"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Weather forecast"
},
"description":"Due to the limitations of the free version of the AccuWeather API key, when you enable weather forecast, data updates will be performed every 80 minutes instead of every 40 minutes."
"single_instance_allowed":"Ya configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"create_entry":{
"default":"Algunos sensores no est\u00e1n habilitados de forma predeterminada. Puede habilitarlos en el registro de la entidad despu\u00e9s de la configuraci\u00f3n de la integraci\u00f3n. \nEl pron\u00f3stico del tiempo no est\u00e1 habilitado de forma predeterminada. Puedes habilitarlo en las opciones de integraci\u00f3n."
},
"error":{
"cannot_connect":"No se pudo conectar",
"invalid_api_key":"Clave de API no v\u00e1lida",
"requests_exceeded":"Se super\u00f3 el n\u00famero permitido de solicitudes a la API de Accuweather. Tiene que esperar o cambiar la clave de API."
}
},
"system_health":{
"info":{
"can_reach_server":"Llegar al servidor de AccuWeather",
"single_instance_allowed":"Ya est\u00e1 configurado. Solo es posible una \u00fanica configuraci\u00f3n."
},
"create_entry":{
"default":"Algunos sensores no est\u00e1n habilitados de forma predeterminada. Puedes habilitarlos en el registro de la entidad despu\u00e9s de la configuraci\u00f3n de la integraci\u00f3n.\nLa previsi\u00f3n meteorol\u00f3gica no est\u00e1 habilitada de forma predeterminada. Puedes habilitarla en las opciones de integraci\u00f3n."
},
"error":{
"cannot_connect":"No se pudo conectar",
"invalid_api_key":"Clave API no v\u00e1lida",
"requests_exceeded":"Se ha excedido el n\u00famero permitido de solicitudes a la API de Accuweather. Tienes que esperar o cambiar la Clave API."
},
"step":{
"user":{
"data":{
"api_key":"Clave API",
"latitude":"Latitud",
"longitude":"Longitud",
"name":"Nombre"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Descendente",
"rising":"Creciente",
"steady":"Estable"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Previsi\u00f3n meteorol\u00f3gica"
},
"description":"Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilitas la previsi\u00f3n meteorol\u00f3gica, las actualizaciones de datos se realizar\u00e1n cada 80 minutos en lugar de cada 40 minutos."
}
}
},
"system_health":{
"info":{
"can_reach_server":"Se puede llegar al servidor AccuWeather",
"single_instance_allowed":"Sidumine juba tehtud. V\u00f5imalik on ainult 1 sidumine."
},
"create_entry":{
"default":"M\u00f5ned andurid ei ole vaikimisi lubatud. Saad neid lubada \u00fcksuse registris p\u00e4rast sidumise seadistamist.\nIlmaprognoos ei ole vaikimisi lubatud. Saad selle lubada sidumise valikutes."
},
"error":{
"cannot_connect":"\u00dchendamine nurjus",
"invalid_api_key":"API v\u00f5ti on vale",
"requests_exceeded":"Accuweatheri API-le esitatud p\u00e4ringute piirarv on \u00fcletatud. Peate ootama (v\u00f5i muutma API v\u00f5tit)."
},
"step":{
"user":{
"data":{
"api_key":"API v\u00f5ti",
"latitude":"Laiuskraad",
"longitude":"Pikkuskraad",
"name":"Sidumise nimi"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Langev",
"rising":"T\u00f5usev",
"steady":"\u00dchtlane"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Ilmateade"
},
"description":"AccuWeather API tasuta versioonis toimub ilmaennustuse lubamisel andmete v\u00e4rskendamine iga 80 minuti j\u00e4rel (muidu 40 minutit)."
"single_instance_allowed":"D\u00e9j\u00e0 configur\u00e9. Une seule configuration possible."
},
"create_entry":{
"default":"Certains capteurs ne sont pas activ\u00e9s par d\u00e9faut. Vous pouvez les activer dans le registre des entit\u00e9s une fois la configuration de l'int\u00e9gration termin\u00e9e.\nLes pr\u00e9visions m\u00e9t\u00e9orologiques ne sont pas activ\u00e9es par d\u00e9faut. Vous pouvez les activer dans les options de l'int\u00e9gration."
},
"error":{
"cannot_connect":"\u00c9chec de connexion",
"invalid_api_key":"Cl\u00e9 d'API non valide",
"requests_exceeded":"Le nombre autoris\u00e9 de requ\u00eates adress\u00e9es \u00e0 l'API AccuWeather a \u00e9t\u00e9 d\u00e9pass\u00e9. Vous devez attendre ou modifier la cl\u00e9 API."
"single_instance_allowed":"M\u00e1r konfigur\u00e1lva van. Csak egy konfigur\u00e1ci\u00f3 lehets\u00e9ges."
},
"create_entry":{
"default":"Egyes \u00e9rz\u00e9kel\u0151k alap\u00e9rtelmez\u00e9s szerint nincsenek enged\u00e9lyezve. Az integr\u00e1ci\u00f3s konfigur\u00e1ci\u00f3 ut\u00e1n enged\u00e9lyezheti \u0151ket az entit\u00e1s rendszerle\u00edr\u00f3 adatb\u00e1zis\u00e1ban.\nAz id\u0151j\u00e1r\u00e1s-el\u0151rejelz\u00e9s alap\u00e9rtelmez\u00e9s szerint nincs enged\u00e9lyezve. Ezt az integr\u00e1ci\u00f3s be\u00e1ll\u00edt\u00e1sokban enged\u00e9lyezheti."
},
"error":{
"cannot_connect":"Sikertelen csatlakoz\u00e1s",
"invalid_api_key":"\u00c9rv\u00e9nytelen API kulcs",
"requests_exceeded":"Accuweather API-hoz enged\u00e9lyezett lek\u00e9r\u00e9sek sz\u00e1ma t\u00fal lett l\u00e9pve. Meg kell v\u00e1rnia m\u00edg a tilt\u00e1s lej\u00e1r vagy m\u00f3dos\u00edtania kell az API-kulcsot."
"description":"Az AccuWeather API-kulcs ingyenes verzi\u00f3j\u00e1nak korl\u00e1tai miatt az id\u0151j\u00e1r\u00e1s-el\u0151rejelz\u00e9s enged\u00e9lyez\u00e9sekor az adatok friss\u00edt\u00e9se 40 perc helyett 80 percenk\u00e9nt t\u00f6rt\u00e9nik."
}
}
},
"system_health":{
"info":{
"can_reach_server":"\u00c9rje el az AccuWeather szervert",
"single_instance_allowed":"Sudah dikonfigurasi. Hanya satu konfigurasi yang diizinkan."
},
"create_entry":{
"default":"Beberapa sensor tidak diaktifkan secara default. Anda dapat mengaktifkannya di registri entitas setelah konfigurasi integrasi.\nPrakiraan cuaca tidak diaktifkan secara default. Anda dapat mengaktifkannya di opsi integrasi."
},
"error":{
"cannot_connect":"Gagal terhubung",
"invalid_api_key":"Kunci API tidak valid",
"requests_exceeded":"Jumlah permintaan yang diizinkan ke API Accuweather telah terlampaui. Anda harus menunggu atau mengubah Kunci API."
},
"step":{
"user":{
"data":{
"api_key":"Kunci API",
"latitude":"Lintang",
"longitude":"Bujur",
"name":"Nama"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Turun",
"rising":"Naik",
"steady":"Tetap"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Prakiraan cuaca"
},
"description":"Karena keterbatasan versi gratis kunci API AccuWeather, ketika Anda mengaktifkan prakiraan cuaca, pembaruan data akan dilakukan setiap 80 menit, bukan setiap 40 menit."
}
}
},
"system_health":{
"info":{
"can_reach_server":"Keterjangkauan server AccuWeather",
"remaining_requests":"Sisa permintaan yang diizinkan"
"single_instance_allowed":"Gi\u00e0 configurato. \u00c8 possibile una sola configurazione."
},
"create_entry":{
"default":"Alcuni sensori non sono abilitati per impostazione predefinita. Puoi abilitarli nel registro delle entit\u00e0 dopo la configurazione dell'integrazione.\nLe previsioni del tempo non sono abilitate per impostazione predefinita. Puoi abilitarlo nelle opzioni di integrazione."
},
"error":{
"cannot_connect":"Impossibile connettersi",
"invalid_api_key":"Chiave API non valida",
"requests_exceeded":"\u00c8 stato superato il numero consentito di richieste all'API di Accuweather. \u00c8 necessario attendere o modificare la chiave API."
},
"step":{
"user":{
"data":{
"api_key":"Chiave API",
"latitude":"Latitudine",
"longitude":"Logitudine",
"name":"Nome"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"In diminuzione",
"rising":"In aumento",
"steady":"Stabile"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Previsioni del tempo"
},
"description":"A causa delle limitazioni della versione gratuita della chiave API AccuWeather, quando abiliti le previsioni del tempo, gli aggiornamenti dei dati verranno eseguiti ogni 80 minuti anzich\u00e9 ogni 40 minuti."
}
}
},
"system_health":{
"info":{
"can_reach_server":"Raggiungi il server AccuWeather",
"single_instance_allowed":"Scho konfigur\u00e9iert. N\u00ebmmen eng eenzeg Konfiguratioun ass m\u00e9iglech."
},
"error":{
"cannot_connect":"Feeler beim verbannen",
"invalid_api_key":"Ong\u00ebltegen API Schl\u00ebssel",
"requests_exceeded":"D\u00e9i zougelooss Zuel vun Ufroen un Accuweather API gouf iwwerschratt. Du muss ofwaarden oder den API Schl\u00ebssel \u00e4nneren."
},
"step":{
"user":{
"data":{
"api_key":"API Schl\u00ebssel",
"latitude":"Breedegrad",
"longitude":"L\u00e4ngegrad",
"name":"Numm"
}
}
}
},
"system_health":{
"info":{
"can_reach_server":"AccuWeather Server ereechbar",
"remaining_requests":"Rescht vun erlaabten Ufroen"
"single_instance_allowed":"Al geconfigureerd. Slechts \u00e9\u00e9n configuratie mogelijk."
},
"create_entry":{
"default":"Sommige sensoren zijn standaard niet ingeschakeld. U kunt ze inschakelen in het entiteitenregister na de integratieconfiguratie.\nWeersvoorspelling is niet standaard ingeschakeld. U kunt deze inschakelen in de integratieopties."
},
"error":{
"cannot_connect":"Kan geen verbinding maken",
"invalid_api_key":"Ongeldige API-sleutel",
"requests_exceeded":"Het toegestane aantal verzoeken aan de Accuweather API is overschreden. U moet wachten of de API-sleutel wijzigen."
},
"step":{
"user":{
"data":{
"api_key":"API-sleutel",
"latitude":"Breedtegraad",
"longitude":"Lengtegraad",
"name":"Naam"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Dalende",
"rising":"Stijgende",
"steady":"Stabiel"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Weersverwachting"
},
"description":"Wanneer je de weersverwachting ingeschakeld zullen updates elke 80 minuten plaatsvinden i.p.v. elke 40 minuten, dit komt door de beperkingen van de gratis versie van de AccuWeather API sleutel."
}
}
},
"system_health":{
"info":{
"can_reach_server":"Kan AccuWeather server bereiken",
"single_instance_allowed":"Allerede konfigurert. Bare \u00e9n enkelt konfigurasjon er mulig."
},
"create_entry":{
"default":"Noen sensorer er ikke aktivert som standard. Du kan aktivere dem i enhetsregisteret etter integrasjonskonfigurasjonen.\n V\u00e6rmelding er ikke aktivert som standard. Du kan aktivere det i integreringsalternativene."
},
"error":{
"cannot_connect":"Tilkobling mislyktes",
"invalid_api_key":"Ugyldig API-n\u00f8kkel",
"requests_exceeded":"Det tillatte antallet foresp\u00f8rsler til Accuweather API er overskredet. Du m\u00e5 vente eller endre API-n\u00f8kkel."
},
"step":{
"user":{
"data":{
"api_key":"API-n\u00f8kkel",
"latitude":"Breddegrad",
"longitude":"Lengdegrad",
"name":"Navn"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Fallende",
"rising":"Stiger",
"steady":"Jevn"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"V\u00e6rmelding"
},
"description":"P\u00e5 grunn av begrensningene til gratisversjonen av AccuWeather API-n\u00f8kkelen, n\u00e5r du aktiverer v\u00e6rmelding, vil dataoppdateringer utf\u00f8res hvert 80. minutt i stedet for hvert 40. minutt."
"single_instance_allowed":"Ju\u017c skonfigurowano. Mo\u017cliwa jest tylko jedna konfiguracja."
},
"create_entry":{
"default":"Niekt\u00f3re sensory nie s\u0105 domy\u015blnie w\u0142\u0105czone. Mo\u017cesz je w\u0142\u0105czy\u0107 w rejestrze encji po skonfigurowaniu integracji.\nPrognoza pogody nie jest domy\u015blnie w\u0142\u0105czona. Mo\u017cesz to w\u0142\u0105czy\u0107 w opcjach integracji."
"requests_exceeded":"Dozwolona liczba zapyta\u0144 do interfejsu API AccuWeather zosta\u0142a przekroczona. Musisz poczeka\u0107 lub zmieni\u0107 klucz API."
"description":"Ze wzgl\u0119du na ograniczenia darmowej wersji klucza API AccuWeather po w\u0142\u0105czeniu prognozy pogody aktualizacje danych b\u0119d\u0105 wykonywane co 80 minut zamiast co 40 minut."
"single_instance_allowed":"J\u00e1 configurado. Apenas uma configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"create_entry":{
"default":"Alguns sensores n\u00e3o s\u00e3o ativados por padr\u00e3o. Voc\u00ea pode habilit\u00e1-los no registro da entidade ap\u00f3s a configura\u00e7\u00e3o da integra\u00e7\u00e3o.\n A previs\u00e3o do tempo n\u00e3o est\u00e1 habilitada por padr\u00e3o. Voc\u00ea pode habilit\u00e1-lo nas op\u00e7\u00f5es de integra\u00e7\u00e3o."
},
"error":{
"cannot_connect":"Falha ao conectar",
"invalid_api_key":"Chave de API inv\u00e1lida",
"requests_exceeded":"O n\u00famero permitido de solicita\u00e7\u00f5es para a API Accuweather foi excedido. Voc\u00ea precisa esperar ou alterar a chave de API."
},
"step":{
"user":{
"data":{
"api_key":"Chave da API",
"latitude":"Latitude",
"longitude":"Longitude",
"name":"Nome"
}
}
}
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Caindo",
"rising":"Ascendente",
"steady":"Est\u00e1vel"
}
}
}
},
"options":{
"step":{
"init":{
"data":{
"forecast":"Previs\u00e3o do tempo"
},
"description":"Devido \u00e0s limita\u00e7\u00f5es da vers\u00e3o gratuita da chave API AccuWeather, quando voc\u00ea ativa a previs\u00e3o do tempo, as atualiza\u00e7\u00f5es de dados s\u00e3o realizadas a cada 80 minutos em vez de 40 minutos."
}
}
},
"system_health":{
"info":{
"can_reach_server":"Alcance o servidor AccuWeather",
"single_instance_allowed":"J\u00e1 configurado. Apenas uma \u00fanica configura\u00e7\u00e3o \u00e9 poss\u00edvel."
},
"create_entry":{
"default":"Alguns sensores n\u00e3o s\u00e3o ativados por defeito. Podem ser ativados no registo da entidade ap\u00f3s a configura\u00e7\u00e3o da integra\u00e7\u00e3o.\nA previs\u00e3o do tempo n\u00e3o est\u00e1 ativada por defeito. Pode ativ\u00e1-la nas op\u00e7\u00f5es de integra\u00e7\u00e3o."
},
"error":{
"cannot_connect":"A liga\u00e7\u00e3o falhou",
"invalid_api_key":"Chave de API inv\u00e1lida",
"requests_exceeded":"O n\u00famero permitido de pedidos \u00e0 API do Accuweather foi excedido. \u00c9 necess\u00e1rio aguardar ou alterar a chave API."
},
"step":{
"user":{
"data":{
"api_key":"Chave da API",
"latitude":"Latitude",
"longitude":"Longitude",
"name":"Nome"
}
}
}
},
"system_health":{
"info":{
"can_reach_server":"Alcance o servidor AccuWeather",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.