* bae entity unique id on Operational Instance Name standard
* Update homeassistant/components/matter/entity.py
Co-authored-by: Stefan Agner <stefan@agner.ch>
* also adjust unique id for devices
* final adjustment
* remove assert on server_info
* move device info to init
* fabric_id_hex
* use DeviceInfo instead of dict
* fix test
Co-authored-by: Stefan Agner <stefan@agner.ch>
* Add Thread integration
* Add get/set operational dataset as TLVS
* Add create operational dataset
* Add set thread state
* Adjust after rebase
* Improve HTTP status handling
* Improve test coverage
* Change domains from thread to otbr
* Setup otbr from a config entry
* Add files
* Store URL in config entry data
* Make sure manifest is not sorted
* Remove useless async
* Call the JSON parser more
* Don't raise exceptions without messages
* Remove stuff which will be needed in the future
* Remove more future stuff
* Use API library
* Bump library to 1.0.1
* Initial "group members assume state" implementation for ZHA
* Remove left-over debug flag (where polling was disabled)
* Implement _send_member_assume_state_event() method and also use after turn_off
* Only assume updated arguments from service call to group
* Make code more readable and change checks slightly
* Move "send member assume state" events to LightGroup on/off calls
* Include new config option in tests
* Check that member is available before updating to assumed state
* Lower "update group from child delay" for debouncer to basically 0 when using assumed member state
* Allow "child to group" updates regardless of config option
This is not needed, as group members will not update their state, as long as they're transitioning. (If a group transitions, it also sets its members to transitioning mode)
This fixes multiple issues. Previously, the state of a group was completely wrong when:
- turn on group with 10 second transition
- turn on members individually
- turn off members individually
- group state would not update correctly
* Move "default update group from child delay" constant
* Change to new constant name in test
* Also update fan test to new constant name
* Decrease "update group from child delay" to 10ms
In my testing, 0.0 also works without any issues and correctly de-bounces child updates when using the "assume state option".
This is just for avoiding multiple state changes when changing the group -> children issue individual updates.
With 2 children in a group and delay 0, both child updates only cause one group re-calculation and state change.
0.01 (10ms) should be plenty for very slow systems to de-bounce the update (and in the worst case, it'll cause just another state change but nothing breaks)
* Also implement "assuming state" for effect
Not sure if anybody even uses this, but this one is a bit special because the effect is always deactivated if it's not provided in the light.turn_on call.
* Move shortened delay for "assuming members" to a constant
* Add basic test to verify that group members assume on/off state
* Move _assume_group_state function declaration out of async_added_to_hass
* Fix rare edge-case when rapidly toggling lights and light groups at the same time
This prevents an issue where either the group transition would unset the transition flag or the single light would unset the group transition status midst-transition.
Note: When a new individual transition is started, we want to unset the group flag, as we actually cancel that transition.
* Check that effect list exists, add return type
* Re-trigger CI due to timeout
* Increase ASSUME_UPDATE_GROUP_FROM_CHILD_DELAY slightly
The debouncer is used when updating group member states either by assuming them (in which case we want to barely have any delay), or between the time we get the results back from polling (where we want a slightly longer time).
As it's not easily possible to distinguish if a group member was updated via assuming the state of the group or by the polling that follows, 50 ms seems to be a good middle point.
* Add debug print for when updating group state
* Fix issues with "off brightness" when switching between group/members
This fixes a bunch of issues with "off brightness" and passes it down to the members correctly.
For example, if a light group is turned off with a transition (so bulbs get their level set to 1), this will also set the "off brightness" of all individual bulbs to the last level that they were at.
(It really fixes a lot of issues when using the "member assume group state" option. It's not really possible to fix them without that.)
Furthermore, issues where polling was previously needed to get the correct state after "playing with transitions", should now get be resolved and get correct state when using the "members assume group state" option.
Note: The only case which still can't be fixed is the following:
If individual lights have off_with_transition set, but not the group, and the group is then turned on without a level, individual lights might fall back to brightness level 1 (<- at least now shows correctly in UI even before polling).
Since all lights might need different brightness levels to be turned on, we can't use one group call. But making individual calls when turning on a ZHA group would cause a lot of traffic and thereby be counter-productive.
In this case, light.turn_on should just be called with a level (or individual calls to the lights should be made).
Another thing that was changed is to reset off_with_transition/off_brightness for a LightGroup when a member is turned on (even if the LightGroup wasn't turned on using its turn_on method).
off_with_transition/off_brightness for individual bulbs is now also turned off when a light is detected to be on during polling.
Lastly, the waiting for polled attributes could previously cause "invalid state" to be set (so mid-transition levels).
This could happen when group and members are repeatedly toggled at similar times. These "invalid states" could cause wrong "off brightness" levels if transitions are also used.
To fix this, we check after waiting for the polled attributes in async_get_state to see if a transition has started in the meanwhile. If so, the values can be discarded. A new poll will happen later and if using the "members assume group state" config option, the values should already be correct before the polling.
* Enable "group members assume state" config option by default
The config tests are also updated to expect the config option be enabled by default.
For all tests, the config option is generally disabled though:
There are only two group related tests. The one that tests this new feature overrides the config option to be enabled anyway.
The other tests works in a similar way but also "sends" attribute reports, so we want to disable the feature for that test.
(It would also run with it enabled (if the correct CHILD_UPDATE value is patched), but then it would test the same stuff as the other test, hence we're disabling the config option for that test.)
* Add tier summation delivered for zlinky
* Improve name case
* Add other tiers and register tier
* Fix smartenergy sensor update
* Account for new reporting configuration in unit tests
* Use cluster ID attributes instead of hardcoding the values
* Use tier names instead of the numeric constants for formatter
* Revert active register tier delivered
* Fix tests
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
* Update Kostal integration to use maintained lib
* Update Kostal integration to use pykoplenti
* Update kostal_plenticore tests for new lib
* Fix tests config_flow & diagnostics after changes
* Remove sky connect config entry if USB stick is not plugged in
* Tweak cleanup
* Give some stuff more cromulent names
* Do the needful
* Add tests
* Tweak
* Update python-homewizard-energy to 1.5.0
* Remove strict typing for now
* Revert "Remove strict typing for now"
This reverts commit ebcd327fdf.
* Adjust typing to resolve upstream changes
If the there are a lot of excluded events for the recorder, it
can have a performance impact as the list has to be searched
every time an event fires in HA
* Use `None` for unknown states consistently
* Use huawei_lte_api NetworkModeEnum instead of magic strings
* Recognize some new sensor items
* Exclude current day duration sensor
* Fix current month upload/download types
* Add current day transfer
* Extract lambdas used in multiple spots to named functions
* Formatter naming consistency improvements
* Revert Axis config flow version to 1
* Set up using hass.config_entries.async_setup
* Fix review comment
* Update homeassistant/components/axis/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* 🎨 Add missing typing for config-flow
* 🐛 Remove 'tariff' edition from options-flow
The `entry.data["tariff"]` is what makes the `entry.unique_id`,
so it's an incoherence to be able to change it in the Options flow
* 🌐 Update generated EN translation
* 🎨 Link translations of option-flow to those of config-flow
Key routers in hass.data by config entry rather than unique id
There's no particular reason to key them by the unique id; the config
entry id is a stronger, always available guarantee, and a much more
common convention across the HA codebase.
At some point, we might conceivably support devices we can't find a
proper unique id for; this would work for that purpose as well.
* Fix IoT Class for Torque plugin
This is currently misclassified:
- There is no "Torque" server, the Torque plugin is the server that receives data directly from the client. It should be `local` instead of `cloud`.
- The client sends data to the server as needed. This plugin will NOT poll for data. It should be `push` instead of `poll`.
* Run hassfest
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Deprecate mode_command_topic for MQTT climate
* Correct deprecation and remove support release inf
* Do not use future tense for comment
* Extend deprecation period to 6 months
* Probe Huawei LTE API for device support on SSDP match
More or less as expected, the loosening of SSDP/UPnP data matches done
in #81643 started to yield false positives, as in #85402.
Coming up with robust matches solely based on the SSDP/UPnP data still
does not seem possible, so keep the matches as loose as they were made,
but additionally invoke a probe request on the API to determine if the
device looks like a supported one.
* Probe only after unique id checks
Prevents throwaway probes for discoveries already in progress.
* Fix SSDP result URL test, add missing assert on it
* 🔥 Remove old config entry migration logic
introduced for a breaking change in 2021-06, now unreachable after
completely disabling the YAML config for the integration
* ✅ Remove test for old config entry migration logic
and adjust existent one for config-flow to do not lose coverage
* 📦️ Bump aiopvpc version
* ♻️ Evolve DataUpdateCoordinator and PVPC sensor for new aiopvpc
setting `SensorDeviceClass.MONETARY` for the price sensor
* 🍱 tests: Update tests fixtures with new sensor data
for aiopvpc v4 with 'esios_public' as data-source
* ✅ tests: Adapt test suite for new default data-source
* 📦️ Bump aiopvpc version for latest patch 4.0.1
* ⏪️ Revert changes unrelated to library bump
* ⏪️ Revert tests changes unrelated to library bump
* Add diagnostics to bmw_connected_drive
* Add tests for diagnostics
* Move get_fingerprints to library, bump bimmer_connected to 0.10.4
* Update bimmer_connected to 0.11.0
* Fix pytest
* Mock actual diagnostics HTTP calls
* Update tests for bimmer_connected 0.12.0
* Don't raise errors if vehicle is not found
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
* Bump aiohue to 4.6.0
* fix device name for lights
* fix name for groups too
* ignore smart scenes
* bump to 4.6.1 instead
* fix test fixture
* update tests
* fix scene test
* Rainbird config flow
Convert rainbird to a config flow. Still need to handle irrigation numbers.
* Add options for irrigation time and deprecate yaml
* Combine exception handling paths to get 100% test coverage
* Bump the rainird config deprecation release
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unnecessary sensor/binary sensor and address some PR feedback
* Simplify configuration flow and options based on PR feedback
* Consolidate data update coordinators to simplify overall integration
* Fix type error on python3.9
* Handle yaml name import
* Fix naming import post serialization
* Parallelize requests to the device
* Complete conversion to entity service
* Update homeassistant/components/rainbird/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/rainbird/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unused import
* Set default duration in options used in tests
* Add separate devices for each sprinkler zone and update service to use config entry
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Improve debug output & redact sensitive info from log.
Fix bug that was masking some HTTP errors.
Retry HTTP errors 502, 503 & 504, which have been observed to happen every once
in a while, resulting in fewer unnecessary unavailable states.
* add reauth flow
* adjust tests
* use constant for platforms
* remove not needed async_get_entry()
* fix typo
* user _async_abort_entries_match()
* don't use CONF_ prefix for config dicts
* sort PLATFORMS
* use entry_data in reauth flow
* redo Add sensor
* move back to ClientError
simplify washer_state
* Cleanup Sensor definitions
* Seperated EndTimeSensor
* Clean up WasherDryerTimeClass
* Start with Timestamp = None
* Clean up class description
* One more ClientError
* change to restore sensor
* Don't update when no state change
* Seperate washer tests
Add restore_state test
* Remove unused loop in washer sensor test
* No loops in sensor tests
* Remove unnecessary SensorTestInstance
* Remove comma thousands formatting
* Add calorie and bpm to units
* Updating device and state classes
* Revert "Updating device and state classes"
This reverts commit ae77cf3cd7.
* Revert "Add calorie and bpm to units"
This reverts commit 7d82bb1c12.
* Removing unnecessary formatting
* Add support for WetDry and WindHeading fields in LaCrosse View
* Improve test coverage
* Verify data type before conversion
* Improve test coverage
* Convert to more concise type conversion
* Add Flex field as per #79529
* Improve code quality
* Add check if expected field is missing
lacrosse_view: fixed fetching of latest data
When using datetime.utcnow(), it only replaces timezone information with
UTC making the actual time offset by the timezone. When you are in UTC-
timezones, it makes no issue as the offset is in the future, but when in
UTC+, the last hour(s) of data are missing.
This commits swtiches to time.time() as UTC timestamp is actually what
the API expects.
It also reduces the window to one hour what noticeably improves the API
performance.
* Updated econet sensors to have device and state classes
* Updated econet sensors to have device and state classes
* EcoNet sensor updates
* Updated EcoNet sensors to convert kBtu to kWh
* Updating EcoNet sensor with suggestions
* Updating EcoNet sensor with suggestions
* Updating EcoNet sensor with suggestions
* Updating EcoNet sensor with suggestions
* Updating EcoNet sensors name and unique id
* Updating EcoNet sensor with suggestions
* Updating EcoNet sensor with suggestions
* Make switch platform use common UniFi entity class
* Consolidate common functions between update and switch platforms
* Use controller.register_platform_add_entities
* Rename UnfiEntityLoader to UnifiUpdateEntityDescriptionMixin
* MQTT Climate: Add support for setting the current humidity via MQTT
* MQTT Climate: Add configuration constants related to setting the target humidity
* MQTT Climate: Add support for setting the humidity's state topic & template
* MQTT Climate: Add support for setting the initial humidity
* MQTT Climate: Add support for setting the humidity's command topic & template
* MQTT Climate: Add support for setting the min/max humidity
* MQTT Climate: Fix style & tests
* MQTT Climate: Set the initial humidity to None
* MQTT Climate: Rename _set_mqtt_attribute to _set_climate_attribute and handle_temperature_received to handle_climate_attribute_received
* MQTT Climate: Copy humidity range validation from MQTT Humidifier
* MQTT Climate: Remove CONF_HUMIDITY_INITIAL
* MQTT Climate: Only enable support for TARGET_HUMIDITY when the command topic is set
* MQTT Climate: Check if setting the target humidity is supported before actually setting it
* MQTT Climate: Make sure that CONF_HUMIDITY_COMMAND_TOPIC has been configured when setting CONF_HUMIDITY_STATE_TOPIC
* MQTT Climate: Fix broken tests
* MQTT Climate: Add test for optimistically setting the target humidity
* MQTT Climate: Remove references to "temperature" in handle_climate_attribute_received
* MQTT Climate: Add additional humidity-related tests
* MQTT Climate: Remove supported feature check in handle_target_humidity_received
It's not needed because this is covered by the `valid_humidity_state_configuration` validation.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* MQTT Climate: Remove supported feature check in async_set_humidity
It is covered by the base Climate entity.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Add filter and error code support to CoolMastetNet
* Create separate entities
* coolmaster swing_mode support
* Changed default to False
* Raise HomeAssistantError
* Add tests for init and climate
* Fixed bad merge
* Catch only ValueError
* Add filter and error code support to CoolMastetNet
* Create separate entities
* Remove async_add_entities_for_platform
* Fixed call to async_add_entities
* Avoid using test global
* Add support for fututre config entry migrations
* Add testcase
* dir check bug
* rework the migrate testcase
* implement comments
* Missed this part of the file
* Fix and clean tests
* add more into the testcase
* push sugestions
* Upgrade velbusaio to add version 2 support
* more comments
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fixed user-agent string not being accepted as an valid header
* Update homeassistant/components/haveibeenpwned/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Removed the aiohttp import
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fixed user-agent string not being accepted as an valid header
* Update homeassistant/components/haveibeenpwned/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Removed the aiohttp import
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Ensure AirVisual Pro migration includes device and entity customizations
* Update homeassistant/components/airvisual/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Code review
* Fix tests
* Fix tests FOR REAL
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Support US region in the Whirlpool integration
* Force maytag brand for US region
* Add missing util.py file
* Fix import after merge
* run black
* Missing region key in config flow test
* Fixed Generic config entry
* fixed typos in dict
* Remove redundant list const
Co-authored-by: mkmer <mike.j.kasper@gmail.com>
* Add PoE power sensor to UniFi integration
* Add unit of power
* Only update state if value has changed
* Remove stale print
* Subscribe to specific sensor to remove unnecessary state changes
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove unused constant
* Reuse fetch check for retrieving device information
* Remove else block
* Patch integration setup in test
* use isinstance to detect return type, instead of tuple
* Raise exception when recoverable error has been triggered to make code cleaner
* Use error code to split message and localization
* Actually log things
Fix RMS Voltage.
class ElectricalMeasurementRMSVoltage(ElectricalMeasurement, id_suffix="rms_voltage"): is using CURRENT as unit but shall being VOLTAGE.
Fix: https://github.com/home-assistant/core/issues/84537
* Added support for SwitchBot Lock
* Updated PySwitchbot to 0.32.1
* Updated .coveragerc
* Removed unnecessary condition
* Using library method to verify encryption key
* Added config flow tests
* Remove link from config flow description
* Added one more test for config flow
* Updated CODEOWNERS
* Add update support for calendars and implement in local calendar
* Fix supported feature for update calendar
* Increase test coverage for websocket error cases
* Improve test coverage for update failure cases
* Improve test coverage by sharing code between update and create
* Update homeassistant/components/calendar/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Try the next best adapter after a BLE connection fails
* add cover
* tweak
* tweak
* Update homeassistant/components/bluetooth/wrappers.py
* bump
* small tweak
* tweak logic
* manual_mqtt: parametrize test_no_pending
* manual_mqtt: parametrize test_no_pending_when_code_not_req
* manual_mqtt: parametrize test_with_pending
* manual_mqtt: parametrize test_with_invalid_code
* manual_mqtt: parametrize test_with_template_code
* manual_mqtt: parametrize test_with_specific_pending
* manual_mqtt: parametrize test_arm_via_command_topic
* manual_mqtt: remove unnecessary async_block_till_done from tests
* manual_mqtt: bring over a new test from manual
* manual_mqtt: add more states
The manual alarm control panel supports ARMED_CUSTOM_BYPASS and ARMED_VACATION.
Bring them over to the MQTT version.
* Bump pyrainbird to 0.7.0 and move to async library
* Share updates across sensors
* Fix test version and delete dead code
* Add test coverage for yaml configuration
* Address PR feedback
* Set title for Matter integration to integration name
* Update homeassistant/components/matter/config_flow.py
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Update title in tests
* one more title fix
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Fix dhWP overkiz_to_operation_mode creation list
* Improve operation__list too and rename var
* Improve if condition
* Improve state_modefintion test
Co-authored-by: Thibaut <thibaut@etienne.pw>
Co-authored-by: Thibaut <thibaut@etienne.pw>
* Prevent use of deprecated units
* Adjust obsolete util
* More units
* Add FREQUENCY
* Adjust pylint ignore
* Add ELECTRIC (current/potential)
* Add TIME
* Adjust units
* Add more types to the todoist integration.
* Update tests.
* Update homeassistant/components/todoist/calendar.py
Pass f-string directly to strftime.
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Add back mistakenly removed local var.
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Use ENERGY device class in oru
* Apply suggestions from code review
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* manual: add previous state for TRIGGERED as well
This will be useful to properly restore timers on restart.
* manual: correctly restore timers on startup
* manual: make it completely async
Restoring the timers on startup cannot use track_point_in_time,
because the restoring code runs from the async_added_to_hass
method. Rewrite everything to run in the event loop instead
of using threaded wrappers, this way the code can be reused in
async_added_to_hass.
* manual_mqtt: replace async function with @callback
* manual_mqtt: make it completely async
Restoring the timers on startup cannot use track_point_in_time,
because the restoring code runs from the async_added_to_hass
method. Rewrite everything to run in the event loop instead
of using threaded wrappers, this way the code can be reused in
async_added_to_hass when state restore is added.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Trigger reauth flow when HomeWizard API was disabled
* Add tests for reauth flow
* Fix typo in test
* Add parallel updates constant
* Improve error message when device in unreachable during config
* Set quality scale
* Remove quality scale
* Throw error instead of abort when setup fails
* Adjust test for new setup behaviour
* Trigger reauth flow when API is disabled and continue retrying
* Reload entry and raise AuthFailed during init
* Abort running config flow
* Listen for coordinator updates to trigger reload
* Use build-in backoff system
* Fix failing test
* Test reauth flow is active after disable-api init
* Test reauth flow removal
* Remove unused function in withings
* Move to tests
* Remove reference to attribute.platform
* Move WITHINGS_MEASUREMENTS_MAP to tests
* measute_type > measure_type
* One more
* Recognize more SSDP friendly names as "ours"
* Trigger on SoyeaLink devices
* Pass discovered URL through context, it does not persist via user_input
* Use manufacturer from SSDP
* Actually use serial number if available, update URL for configured
* Remove heuristic friendly name filtering against non-LTE devices
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
* Return conversation_id and multiple targets
* Clean up git mess
* Fix linting errors
* Fix more async_handle signatures
* Separate conversation_id and IntentResponse
* Add unknown error code
* Add ConversationResult
* Don't set domain on single entity
* Language is required for intent response
* Add partial_action_done
* Default language in almond agent
* Remove partial_action_done
* Fix linting
* Rename success/fail targets
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
* Return conversation_id and multiple targets
* Clean up git mess
* Fix linting errors
* Fix more async_handle signatures
* Separate conversation_id and IntentResponse
* Add unknown error code
* Add ConversationResult
* Don't set domain on single entity
* Language is required for intent response
* Add partial_action_done
* Default language in almond agent
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Refactor Huawei LTE to use Entity Description
* Apply suggestions from code review
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
* Refactor huisbaasje to use entity descriptions
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Refactor ted5000 to use entity descriptions
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Refactor native_value
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Factor out _is_dmr_device function
* Use DMR device's MAC to match existing config entries
Some DMR devices change their every time they boot, against the DMR specs.
Try to match such devices to existing config entries by using their MAC
addresses.
* Add DMR device's MAC as a device_registry connection
* Use doc-only IPs (RFC5737) for dlna_dmr tests
vicare: Rename "Power production this week" sensor
'Power' should be 'Energy' like for the other timespanns.
This one was forgotten last time this area was cleaned up.
* Use the same entity class as switches, but separately
Once all platforms are migrated I will consolidate them into one entity class
* Fix review comment
* Fix review comments
* Fix review comments
* ESPHome: Use MAC as unique ID
* Normalize incoming zeroconf/dhcp macs
* Update comment
* Test ESPHome without mac in zeroconf
* Use format_mac
* Remove unique ID index from DomainData
* Add support for battery level to Yale Access Bluetooth
* fix
* bump
* bump
* bump
* bump
* fix
* bump
* battery level is always an estimate from voltage, but than again it always is for every device
* bump
* review
* bump again to fix slow start
* other one
* Make google calendar fail louder on invalid google_calendars.yaml
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Remove duplicate object key in strings.json
* Remove async_entry_has_scopes check
This is not needed. This was copied from google calendar integration
where it was needed to reauth when the scope changed.
* Remove unused constant in application_credentials
* Move constant to the file used
* fix warning use-implicit-booleaness-not-len
* Remove not accessed parameters
* Revert "Remove async_entry_has_scopes check"
This reverts commit 63e24f84cc.
Entries took a while to setup because of the
async_wait_init_flow_finish call in _async_setup_component
The delay was so long that users thought the integration
was broken
We had a wait in place for advertisements to arrive
during discovery in case the lock was not
yet seen. Since integration discovery is deferred
until after startup this wait it no longer needed
* Copy google_sheets to google_assistant_sdk
This is to improve diff of the next commit with the actual implementation.
Commands used:
cp -r homeassistant/components/google_sheets/ homeassistant/components/google_assistant_sdk/
cp -r tests/components/google_sheets/ tests/components/google_assistant_sdk/
find homeassistant/components/google_assistant_sdk/ tests/components/google_assistant_sdk/ -type f | xargs sed -i \
-e 's@google_sheets@google_assistant_sdk@g' \
-e 's@Google Sheets@Google Assistant SDK@g' \
-e 's@tkdrob@tronikos@g'
* Google Assistant SDK integration
Allows sending commands and broadcast messages to Google Assistant.
* Remove unnecessary async_entry_has_scopes check
* Bump gassist-text to fix protobuf dependency
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
HA OS 9.4 adds support for passive scanning, however
a different path is used in dbus-fast to get the passive
results which was never optimized which caused passive
scanning to use more cpu time than active scanning.
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.75.0...v1.79.0
* Add language to conversation and intent response
* Add language parameter to conversation/process service
* Move language to intent response instead of speech
* Add language to almond conversation agent
* Fix intent test
* Set last_target_temp value according the unit system
* Convert restored temperature values
* Add test
* Improve comments
* Move _last_target_temp value to constants
* Replace unit consts with enums
* Remove default entries in NWSSensorEntityDescription
* Replace wind icon property with setting device_class in Wind Speed and Wind Gust sensors
* fan.set_percentage + tests
* let's see what is not yet covered
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* tests fix
* vallox_websocket_api 3.0.0
* more coverage
* test coverage
* Update tests/components/vallox/test_fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* raise exceptions on user input
* Supported features are different per preset mode.
* Test fixes
* Static supported features is back.
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add IPv6 sensor to fritz component
* Cast return type to string
* Make ipv6 sensor suitable
* simplify cast to str
* use extisting property
Co-authored-by: chemelli74 <simone.chemelli@gmail.com>
Co-authored-by: mib1185 <mail@mib85.de>
* Add Google Calendar create/delete support
Includes editing for recurring events
* Fix default calendar access role
* Formatting improvements
* Address other details that have changed due to local sync
* Update tests/components/google/test_calendar.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/google/test_calendar.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/google/test_calendar.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Increase test coverage
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add matter base (#79372)
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
* Add matter server add-on flow (#82698)
* Add matter server add-on flow
* Fix stale error argument
* Clean docstrings
* Use localhost as default address
* Add matter websocket api foundation (#82848)
* Add matter config entry add-on management (#82865)
* Use matter refactored server/client library (#83003)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Bump python-matter-server to 1.0.6 (#83059)
* Extend matter websocket api (#82948)
* Extend matter websocket api
* Finish docstring
* Fix pin type
* Adjust api after new client
* Adjust api to frontend for now
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add TLD option support to google_translate
* Fix tests for added TLD option in google_translate
* Add Language to TLD mapping, Make tld configurable in google_translate
* Move const to dedicated file in google_translate
* Add translation_key attribute to entity state
* Update accuweather test
* Index entity translation keys by platform
* Store translation key in entity registry
If the keys changed for the yale locks, the locks would be
slow to setup. Because august had yalexs_ble as an
after dep, it would be waiting with the new keys but not
able to setup because it was waiting for the locks to setup
which would be trying over and over until they failed because
the key had changed out from under it.
This change moves some more code into the lib to avoid
the dep and allows both to startup at the same time so
the cloud service can feed the new keys in if needed without
waiting for the lock to fail to setup
changelog: https://github.com/bdraco/yalexs-ble/compare/v1.9.8...v1.10.0
* Add climate platform
* Enable climate plarform
* Some adjustments after review
* fixup! Add climate platform
* Rename description to avoid confusion
* No need to pass None
* Rename with nibe prefix
* Handle possible translations of values
* Make sure we prune None contexts
* Switch to constants from library
placeholder:"drag-and-drop the diagnostics data file here (do not copy-and-paste the content)"
placeholder:"drag-and-drop the diagnostics data file here (do not copy-and-paste the content)"
description:>-
description:>-
Many integrations provide the ability to download diagnostic data
Many integrations provide the ability to [download diagnostic data](https://www.home-assistant.io/docs/configuration/troubleshooting/#debug-logs-and-diagnostics).
on the device page (and on the integration dashboard).
**It would really help if you could download the diagnostics data for the device you are having issues with,
**It would really help if you could download the diagnostics data for the device you are having issues with,
and <ins>drag-and-drop that file into the textbox below.</ins>**
and <ins>drag-and-drop that file into the textbox below.</ins>**
pre-commit run --hook-stage manual black --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual black --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/{*,**/*} --show-diff-on-failure
lint-flake8:
lint-flake8:
name:Check flake8
name:Check flake8
@@ -265,16 +265,16 @@ jobs:
- pre-commit
- pre-commit
steps:
steps:
- name:Check out code from GitHub
- name:Check out code from GitHub
uses:actions/checkout@v3.1.0
uses:actions/checkout@v3.3.0
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
uses:actions/setup-python@v4.3.0
uses:actions/setup-python@v4.5.0
id:python
id:python
with:
with:
python-version:${{ env.DEFAULT_PYTHON }}
python-version:${{ env.DEFAULT_PYTHON }}
check-latest:true
check-latest:true
- name:Restore base Python virtual environment
- name:Restore base Python virtual environment
id:cache-venv
id:cache-venv
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:venv
path:venv
key:>-
key:>-
@@ -287,7 +287,7 @@ jobs:
exit 1
exit 1
- name:Restore pre-commit environment from cache
- name:Restore pre-commit environment from cache
id:cache-precommit
id:cache-precommit
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:${{ env.PRE_COMMIT_CACHE }}
path:${{ env.PRE_COMMIT_CACHE }}
key:>-
key:>-
@@ -312,7 +312,7 @@ jobs:
run:|
run:|
. venv/bin/activate
. venv/bin/activate
shopt -s globstar
shopt -s globstar
pre-commit run --hook-stage manual flake8 --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/*
pre-commit run --hook-stage manual flake8 --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/{*,**/*}
lint-isort:
lint-isort:
name:Check isort
name:Check isort
@@ -322,16 +322,16 @@ jobs:
- pre-commit
- pre-commit
steps:
steps:
- name:Check out code from GitHub
- name:Check out code from GitHub
uses:actions/checkout@v3.1.0
uses:actions/checkout@v3.3.0
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
uses:actions/setup-python@v4.3.0
uses:actions/setup-python@v4.5.0
id:python
id:python
with:
with:
python-version:${{ env.DEFAULT_PYTHON }}
python-version:${{ env.DEFAULT_PYTHON }}
check-latest:true
check-latest:true
- name:Restore base Python virtual environment
- name:Restore base Python virtual environment
id:cache-venv
id:cache-venv
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:venv
path:venv
key:>-
key:>-
@@ -344,7 +344,7 @@ jobs:
exit 1
exit 1
- name:Restore pre-commit environment from cache
- name:Restore pre-commit environment from cache
id:cache-precommit
id:cache-precommit
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:${{ env.PRE_COMMIT_CACHE }}
path:${{ env.PRE_COMMIT_CACHE }}
key:>-
key:>-
@@ -368,16 +368,16 @@ jobs:
- pre-commit
- pre-commit
steps:
steps:
- name:Check out code from GitHub
- name:Check out code from GitHub
uses:actions/checkout@v3.1.0
uses:actions/checkout@v3.3.0
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
- name:Set up Python ${{ env.DEFAULT_PYTHON }}
uses:actions/setup-python@v4.3.0
uses:actions/setup-python@v4.5.0
id:python
id:python
with:
with:
python-version:${{ env.DEFAULT_PYTHON }}
python-version:${{ env.DEFAULT_PYTHON }}
check-latest:true
check-latest:true
- name:Restore base Python virtual environment
- name:Restore base Python virtual environment
id:cache-venv
id:cache-venv
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:venv
path:venv
key:>-
key:>-
@@ -390,7 +390,7 @@ jobs:
exit 1
exit 1
- name:Restore pre-commit environment from cache
- name:Restore pre-commit environment from cache
id:cache-precommit
id:cache-precommit
uses:actions/cache@v3.0.11
uses:actions/cache/restore@v3.2.3
with:
with:
path:${{ env.PRE_COMMIT_CACHE }}
path:${{ env.PRE_COMMIT_CACHE }}
key:>-
key:>-
@@ -413,7 +413,7 @@ jobs:
run:|
run:|
. venv/bin/activate
. venv/bin/activate
shopt -s globstar
shopt -s globstar
pre-commit run --hook-stage manual pyupgrade --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual pyupgrade --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/{*,**/*} --show-diff-on-failure
- name:Register yamllint problem matcher
- name:Register yamllint problem matcher
run:|
run:|
@@ -442,7 +442,7 @@ jobs:
shell:bash
shell:bash
run:|
run:|
. venv/bin/activate
. venv/bin/activate
pre-commit run --hook-stage manual prettier --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/*
pre-commit run --hook-stage manual prettier --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/{*,**/*}
- name:Register check executables problem matcher
- name:Register check executables problem matcher
run:|
run:|
@@ -483,7 +483,7 @@ jobs:
run:|
run:|
. venv/bin/activate
. venv/bin/activate
shopt -s globstar
shopt -s globstar
pre-commit run --hook-stage manual bandit --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/**/* --show-diff-on-failure
pre-commit run --hook-stage manual bandit --files {homeassistant,tests}/components/${{ needs.info.outputs.integrations_glob }}/{*,**/*} --show-diff-on-failure
"description":"Per culpa de les limitacions de la versi\u00f3 gratu\u00efta l'API d'AccuWeather, quan habilitis la previsi\u00f3 meteorol\u00f2gica, les actualitzacions de dades es faran cada 80 minuts en comptes de cada 40."
"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."
"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."
"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."
"description":"Kdy\u017e povol\u00edte p\u0159edpov\u011b\u010f po\u010das\u00ed, budou aktualizace dat prov\u00e1d\u011bny ka\u017ed\u00fdch 80 minut nam\u00edsto 40 minut z d\u016fvodu omezen\u00ed bezplatn\u00e9 verze AccuWeather."
"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."
"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."
},
"user":{
"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."
"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."
"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."
},
"user":{
"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."
"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."
"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."
}
}
},
},
"options":{
"step":{
"user":{
"data":{
"forecast":"Pron\u00f3stico del tiempo"
},
"description":"Debido a las limitaciones de la versi\u00f3n gratuita de la clave API de AccuWeather, cuando habilita el pron\u00f3stico del tiempo, las actualizaciones de datos se realizar\u00e1n cada 64 minutos en lugar de cada 32 minutos."
}
}
},
"system_health":{
"system_health":{
"info":{
"info":{
"can_reach_server":"Llegar al servidor de AccuWeather",
"can_reach_server":"Llegar al servidor de AccuWeather",
"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."
"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."
},
"user":{
"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."
"description":"AccuWeather API tasuta versioonis toimub ilmaennustuse lubamisel andmete v\u00e4rskendamine iga 80 minuti j\u00e4rel (muidu 40 minutit)."
"description":"AccuWeather API tasuta versioonis toimub ilmaennustuse lubamisel andmete v\u00e4rskendamine iga 80 minuti j\u00e4rel (muidu 40 minutit)."
},
"user":{
"data":{
"forecast":"Ilmateade"
},
"description":"AccuWeather API tasuta versioonis toimub ilmaennustuse lubamisel andmete v\u00e4rskendamine iga 80 minuti j\u00e4rel (muidu 40 minutit)."
"description":"En raison des limitations de la version gratuite de la cl\u00e9 API AccuWeather, lorsque vous activez les pr\u00e9visions m\u00e9t\u00e9orologiques, les mises \u00e0 jour des donn\u00e9es seront effectu\u00e9es toutes les 64 minutes au lieu de toutes les 32 minutes."
"description":"Az AccuWeather APIkulcs ingyenes verzi\u00f3j\u00e1nak korl\u00e1tai miatt, amikor enged\u00e9lyezi az id\u0151j\u00e1r\u00e1s-el\u0151rejelz\u00e9st, az adatfriss\u00edt\u00e9seket 40 percenk\u00e9nt 80 percenk\u00e9nt hajtj\u00e1k v\u00e9gre."
"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."
"description":"Karena keterbatasan versi gratis kunci API AccuWeather, ketika Anda mengaktifkan prakiraan cuaca, pembaruan data akan dilakukan setiap 80 menit, bukan setiap 40 menit."
"description":"Karena keterbatasan versi gratis kunci API AccuWeather, ketika Anda mengaktifkan prakiraan cuaca, pembaruan data akan dilakukan setiap 80 menit, bukan setiap 40 menit."
},
"user":{
"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."
"description":"A causa delle limitazioni della versione gratuita della chiave API AccuWeather, quando si abilitano le previsioni del tempo, gli aggiornamenti dei dati verranno eseguiti ogni 80 minuti invece che ogni 40."
"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."
"description":"Duerch d'Limite vun der Gratis Versioun vun der AccuWeather API, wann d'Wieder Pr\u00e9visoune aktiv\u00e9iert sinn, ginn d'Aktualis\u00e9ierungen all 64 Minutten gemaach, am plaatz vun all 32 Minutten."
}
}
},
"system_health":{
"system_health":{
"info":{
"info":{
"can_reach_server":"AccuWeather Server ereechbar",
"can_reach_server":"AccuWeather Server ereechbar",
"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."
"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."
},
"user":{
"data":{
"forecast":"Weervoorspelling"
},
"description":"Vanwege de beperkingen van de gratis versie van de AccuWeather API-sleutel, worden gegevensupdates elke 64 minuten in plaats van elke 32 minuten uitgevoerd wanneer u weersvoorspelling inschakelt."
"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."
"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."
},
"user":{
"data":{
"forecast":"V\u00e6rmelding"
},
"description":"P\u00e5 grunn av begrensningene i den gratis versjonen av AccuWeather API-n\u00f8kkelen, vil dataoppdateringer utf\u00f8res hvert 80. minutt i stedet for hvert 40. minutt n\u00e5r du aktiverer v\u00e6rmelding."
"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."
"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."
},
"user":{
"data":{
"forecast":"Previs\u00e3o do Tempo"
},
"description":"Devido \u00e0s limita\u00e7\u00f5es da vers\u00e3o gratuita da chave da API AccuWeather, quando voc\u00ea habilita a previs\u00e3o do tempo, as atualiza\u00e7\u00f5es de dados ser\u00e3o realizadas a cada 64 minutos em vez de a cada 32 minutos."
"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."
"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":{
"error":{
"cannot_connect":"Falha na liga\u00e7\u00e3o",
"cannot_connect":"A liga\u00e7\u00e3o falhou",
"invalid_api_key":"Chave de API inv\u00e1lida",
"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."
"requests_exceeded":"O n\u00famero permitido de pedidos \u00e0 API do Accuweather foi excedido. \u00c9 necess\u00e1rio aguardar ou alterar a chave API."
},
},
@@ -22,16 +22,6 @@
}
}
}
}
},
},
"options":{
"step":{
"user":{
"data":{
"forecast":"Previs\u00e3o meteorol\u00f3gica"
},
"description":"Devido \u00e0s limita\u00e7\u00f5es da vers\u00e3o gratuita da chave AccuWeather API, quando se activa a previs\u00e3o do tempo, as actualiza\u00e7\u00f5es de dados ser\u00e3o realizadas a cada 80 minutos em vez de a cada 40 minutos."
}
}
},
"system_health":{
"system_health":{
"info":{
"info":{
"can_reach_server":"Alcance o servidor AccuWeather",
"can_reach_server":"Alcance o servidor AccuWeather",
"single_instance_allowed":"U\u017e je nakonfigurovan\u00fd. Mo\u017en\u00e1 len jedna konfigur\u00e1cia."
"single_instance_allowed":"U\u017e je nakonfigurovan\u00fd. Mo\u017en\u00e1 len jedna konfigur\u00e1cia."
},
},
"create_entry":{
"default":"Niektor\u00e9 sn\u00edma\u010de nie s\u00fa predvolene povolen\u00e9. M\u00f4\u017eete ich povoli\u0165 v registri ent\u00edt po konfigur\u00e1cii integr\u00e1cie.\n Predpove\u010f po\u010dasia nie je predvolene zapnut\u00e1. M\u00f4\u017eete to povoli\u0165 v mo\u017enostiach integr\u00e1cie."
},
"error":{
"error":{
"cannot_connect":"Nepodarilo sa pripoji\u0165",
"cannot_connect":"Nepodarilo sa pripoji\u0165",
"invalid_api_key":"Neplatn\u00fd API k\u013e\u00fa\u010d",
"invalid_api_key":"Neplatn\u00fd API k\u013e\u00fa\u010d",
@@ -19,17 +22,24 @@
}
}
}
}
},
},
"entity":{
"sensor":{
"pressure_tendency":{
"state":{
"falling":"Klesaj\u00faci",
"rising":"St\u00fapaj\u00faci",
"steady":"Stabiln\u00fd"
}
}
}
},
"options":{
"options":{
"step":{
"step":{
"init":{
"init":{
"data":{
"data":{
"forecast":"Predpove\u010f po\u010dasia"
"forecast":"Predpove\u010f po\u010dasia"
}
},
},
"description":"Z d\u00f4vodu obmedzen\u00ed bezplatnej verzie k\u013e\u00fa\u010da AccuWeather API, ke\u010f povol\u00edte predpove\u010f po\u010dasia, aktualiz\u00e1cie \u00fadajov sa bud\u00fa vykon\u00e1va\u0165 ka\u017ed\u00fdch 80 min\u00fat namiesto ka\u017ed\u00fdch 40 min\u00fat."
"description":"P\u00e5 grund av begr\u00e4nsningarna f\u00f6r den kostnadsfria versionen av AccuWeather API-nyckeln, n\u00e4r du aktiverar v\u00e4derprognos, kommer datauppdateringar att utf\u00f6ras var 80:e minut ist\u00e4llet f\u00f6r var 40:e minut."
"description":"Resetujte ohrieva\u010d stla\u010den\u00edm + a OK, dokia\u013e se nezobraz\u00ed \"Reset\". Potom stla\u010dte a podr\u017ete tla\u010didlo OK na ohrieva\u010di, dokia\u013e modr\u00e1 led di\u00f3da neza\u010dne blika\u0165, k\u00fdm stla\u010d\u00edte tla\u010didlo Odosla\u0165. Konfigur\u00e1cia ohrieva\u010da m\u00f4\u017ee trva\u0165 nieko\u013eko min\u00fat."
"already_configured":"Asukoht on juba m\u00e4\u00e4ratud"
"already_configured":"Asukoht on juba m\u00e4\u00e4ratud",
"wrong_location":"Selles piirkonnas pole Airly m\u00f5\u00f5tejaamu."
},
},
"error":{
"error":{
"invalid_api_key":"Vigane API v\u00f5ti",
"invalid_api_key":"Vigane API v\u00f5ti",
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.