* start of fan groups
* update fan classes
* update group entity domains
* add set speed
* update discovery for multiple entities for groups
* add fan group entity tests
* cleanup const
* cleanup entity_domain usage
* remove bad super call
* remove bad update line
* fix set speed on fan group
* change comparison
* pythonic list
* discovery guards
* Update homeassistant/components/zha/core/discovery.py
Co-Authored-By: Alexei Chetroi <lexoid@gmail.com>
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
* Abort rachio homekit config when one is already setup.
We can see rachio on the network to tell them to configure
it, but since the device will not give up the account it is
bound to and there can be multiple rachio controllers on a single
account, we avoid showing the device as discovered once
they already have one configured as they can always
add a new one via "+"
* doc string freshness
* doc string freshness
* Update tests/components/rachio/test_config_flow.py
Co-Authored-By: Franck Nijhof <git@frenck.dev>
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Update PySwitchbot to 0.8.0 and added password configuration
* Removed unchanged retry_count attribute
* Fix dependencies and formatting
* Removed default value for password and use config.get instead
If the database server disconnects there were exceptions
that were not trapped which would cause the recorder event
loop to collapse. As we never want the loop to end
we trap exceptions broadly.
Fix a bug in the new commit interval setting which caused
it to always commit after 1s
* bump pyvizio and update app_id to show app config to aid in HA config generation. squashed from multiple commits to make a rebase on dev easier
* bump pyvizio for bug fixes
* fix pyvizio version number
* only return app_id if app is unknown and explicitly create the dict that's returned
* fix tests
* fix docstring for app_id
* split entity into base and entity
* add initial light group support
* add dispatching of groups to light
* added zha group object
* add group event listener
* add and remove group members
* get group by name
* fix rebase
* fix rebase
* use group_id for unique_id
* get entities from registry
* use group name
* update entity domain
* update zha storage to handle groups
* dispatch group entities
* update light group
* fix group remove and dispatch light group entities
* allow picking the domain for group entities
* beginning - auto determine entity domain
* move methods to helpers so they can be shared
* fix rebase
* remove double init groups... again
* cleanup startup
* use asyncio create task
* group entity discovery
* add logging and fix group name
* add logging and update group after probe if needed
* test add group via gateway
* add method to get group entity ids
* update storage
* test get group by name
* update storage on remove
* test group with single member
* add light group tests
* test some light group logic
* type hints
* fix tests and cleanup
* revert init changes except for create task
* remove group entity domain changing for now
* add missing import
* tricky code saving
* review comments
* clean up class defs
* cleanup
* fix rebase because I cant read
* make pylint happy
We can see myq on the network to tell them to configure
it, but since the device will not give up the account it is
bound to and there can be multiple myq gateways on a single
account, we avoid showing the device as discovered once
they already have one configured as they can always
add a new one via "+"
* Fix minor issues mentioned in #30837 after it was closed
* Update homeassistant/components/bmp280/sensor.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* some sensors working in homeassistant
* bring up to date
* add codeowner
* update requirements
* overhaul data imports from api & sensor discovery
* remove print statement
* delete requirements_test_all
* add requrements_test_all.txt
* Update homeassistant/components/nextcloud/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* Update homeassistant/components/nextcloud/sensor.py
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
* describe recursive function
* clarify that dict is returned
* remove requirements from requirements_test_all
* improve and simplify sensor naming
* add basic tests
* restore pre-commit config
* update requirements_test_all
* remove codespell requirement
* update pre-commit-config
* add-back codespell
* rename class variables as suggested by @springstan
* add dev branch to no-commit-to-branch git hook
Because my fork had the same 'dev' branch i wasn't able to push. Going forward I should probably name my branches differently.
* move config logic to __init__.py
* restore .pre-commit-config.yaml
* remove tests
* remove nextcloud test requirement
* remove debugging code
* implement binary sensors
* restore .pre-commit-config.yaml
* bump dependency version
* bump requirements files
* bump nextcloud reqirement to latest
* update possible exceptions, use fstrings
* add list of sensors & fix inconsistency in get_data_points
* use domain for config
* fix guard clause
* repair pre-commit-config
* Remove period from logging
* include url in unique_id
* update requirements_all.txt
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Added support for Minecraft SRV records
* Switched from dnspython to aiodns, improved server ping and log messages, use address instead of host and port in config flow
* Updated component requirements
* Fix state_automation_listener when new state is None (fix#32984)
* Listen to EVENT_STATE_CHANGED instead of using async_track_state_change
and use the event context on automation trigger.
* Share `process_state_match` with helpers/event
* Add test for state change automation on entity removal
* Use async_call_later for retrying, instead of async_track_point_in_time
* Normalize test filename renaming it to `test_sensor`
* Remove link to docs in docstring
* Adjust test results to new behavior with async_call_later
* Update firmware version in device registry.
Parse recevied OTA requests for firmware version and update device
registry.
* Update tests.
* Cleanup sw_id_update listener.
* Update ZHA test devices list.
* Add aircleaner and humidify service to nexia climate
* These were removed from the original merge to reduce review scope
* Additional tests for binary_sensor, sensor, and climate states
* Switch to signals for services
Get rid of everywhere we call device and change to zone or thermostat
as it was too confusing
Renames to make it clear that zone and thermostat are tightly coupled
* Make scene activation responsive
* no need to use update for only one key/value
* stray comma
* use async_call_later
* its async, need ()s
* cleaner
* merge entity platform services testing branch
* Updated tado integration climate.py to allow for presence change
* Updated tado integration __init__.py to allow for presence change
* Black formatting
* Added missing docstring
* Added missing period to docstring
* Using constants from climate component
* Filter out other preset_modes
* Linting error fix
* Isort error fix
* Filtering of unwanted presence mode in init
* Bumped python-tado version to 0.5.0
Removed unnecessary preset mode check
* Update requirements_all.txt
* Config flow for doorbird
* Discoverable via zeroconf
* Fix zeroconf test
* add missing return
* Add a test for legacy over ride url (will go away when refactored to cloud hooks)
* Update homeassistant/components/doorbird/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* without getting the hooks its not so useful
* Update homeassistant/components/doorbird/config_flow.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* fix copy pasta
* remove identifiers since its in connections
* self review fixes
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add support for Lutron Caseta occupancy/vacancy sensors
This follows updates to pylutron-caseta to add support for these
devices. This code works for me as a custom component in Home Assistant
Core with pylutron-caseta 0.6.0 (currently unreleased).
* black formatting
* Update requirements_all.txt
* Apply black formatting
* Resolve some review comments
* serial -> unique_id
* Black formatting
* Resolve linting errors
* Add code owner...
* Fix isort complaint
* Fix remaining isort complaints
* Update codeowners
* Resolve outstanding review comments
* Remove caseta_
* Modernize nuheat for new climate platform
* Home Assistant state now mirrors the
state displayed at mynewheat.com
* Remove off mode as the device does not implement
and setting was not implemented anyways
* Implement missing set_hvac_mode for nuheat
* Now shows as unavailable when offline
* Add a unique id (serial number)
* Fix hvac_mode as it was really implementing hvac_action
* Presets now map to the open api spec
published at https://api.mynuheat.com/swagger/
* ThermostatModel: scheduleMode
* Revert test cleanup as it leaves files behind.
Its going to be more invasive to modernize the tests so
it will have to come in a new pr
* Config flow for nuheat
* codeowners
* Add an import test as well
* remove debug
If the IP address of the harmony hub changed it would
not be rediscovered. We now connect to get the
unique id and then update config entries with
the correct ip if it is already setup.
* Add gate support to myq, fix bouncy updates
Switch to DataUpdateCoordinator, previously
we would hit the myq api every 60 seconds per device.
If you have access to 20 garage doors on the account it means
we would have previously tried to update 20 times per minutes.
* switch to async_call_later
* Add new integration: pvpc_hourly_pricing
to add a sensor with the current hourly price of electricity in Spain.
Configuration is done by selecting one of the 3 reference tariffs, with
1, 2, or 3 billing periods.
* Features config flow, entity registry, RestoreEntity, options flow
to change tariff, manual yaml config as integration or sensor platform
* Cloud polling sensor with minimal API calls (3/hour at random times)
and smart retry; fully async
* Only 1 state change / hour (only when the price changes)
* At evening, try to download published tomorrow prices, to always store
prices info for a window of [3, 27] hours in the future.
* Include useful state attributes to program automations to be run
at best electric prices.
* Add spanish and english translations.
* Requires `xmltodict` to parse official xml file with hourly prices
for each day.
* Update requirements and add to codeowners
* Avoid passing in hass as a parameter to the entity
Instead, create time change listeners in async_added_to_hass and
call async_generate_entity_id before async_add_entities
* Fix lint issues
* Add tests for config & options flow
* Add tests for manual yaml config
with entity definition as integration and also as a sensor platform
* Fix placement of PLATFORM_SCHEMA and update generated config_flows
* Store prices internally linked to UTC timestamps
- to deal with days with DST changes
- and work with different local timezones
* Add availability to sensor
to 'expire' the sensor if there is no connection available
and current hour is not in the stored prices.
Also, turn off logging and retrying if prices can't be downloaded
repeatedly, by flagging `data_source_available` as False, so there is no
log-flood mess.
* Add more tests
- to cover behavior in DST changes and complete coverage of sensor logic
- to cover abort config flow
* fix linter
* Better handling of sensor availability and minor enhancements
- Emmit 1 error if data source is marked as unavailable
(after some retries), and be silent until cloud access is recovered,
then emmit 1 warning.
- Follow standard of camel_case keys in attributes
* Mock aiosession to not access real API, store fixture data
- Store a set of daily xml files to test sensor logic for all situations
- Mock time and session to run tests with stored API responses
- Add availability test to simulate a lost + recovery of cloud access,
checking that logging is reasonable: 1 error to flag the continued
disconnection + 1 warning in recovery.
* Change API endpoint to retrieve JSON data
and remove xmltodict from reqs.
It seems that this endpoint is more reliable than the XML.
* Adapt tests to new API endpoint
* Translate tariff labels to plain English
and sync the default timeout value for all ways of configuration.
* Relax logging levels to meet silver requirements
- 1 warning when becoming unavailable, another warning when recovered.
- Warnings for unexpected TimeoutError or ClientError
- Move the rest to debug level, leaving info for HA internals
Also reduce number of API calls from 3 to 2 calls/hour.
* Fix requirements
* Mod tests to work with timezone Atlantic/Canary
and fix state attributes for timezones != reference, by using 3 price
prefixes: 'price_last_day_XXh', 'price_next_day_XXh' and 'price_XXh',
all generated with local time (backend timezone)
* Try to fix CI tests
* Externalize pvpc data and simplify sensor.py
* add new `aiopvpc` to requirements
* Remove data parsing and price logic from here
* Replace some constant properties with class variables
* Simplify tests for pvpc_hourly_pricing
* Fix updater for options flow
* Updater always reloads
* `tariff` value comes 1st from entry.options, 2nd from entry.data
* Fix lint
* Bump aiopvpc
* Remove options flow and platform setup
- Remove PLATFORM_SCHEMA and async_setup_platform
- Generate config_entry.unique_id with tariff instead of entity_id, in flow step.
- Remove TariffSelectorConfigFlow
- Adapt tests to maintain full coverage
* Fix docstring on test
and rename SENSOR_SCHEMA to SINGLE_SENSOR_SCHEMA to avoid confusion
* Remove timeout manual config, fix entry.options usage, simplify unique_id
* Simplify tests
- No need for a test_setup now, as platform setup is removed and integration
setup is already used in `test_availability`
- Simplified `_process_time_step`: only one async_fire(EVENT_TIME_CHANGED)/hour
* Fix possible duplicated update
when source is not available.
* Do not access State last_changed for log messages
* Do not update until entity is added to hass
and call to async_update after 1st download or when recovering access, so
async_write_ha_state is not called twice on those.
* minor changes
* Rename method to select current price and make it a callback
* General code cleanups for lutron_caseta component
* black
* Update homeassistant/components/lutron_caseta/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* filter out additional app config names from pyvizios app list
* add test
* change where filtering app list occurs
* fix test
* fix mistake in change
* hopefully final test fix
* fix test scenario that unknowingly broke with test change
* Clear state on exception
Clear state if querying the device fails. The state is then set to unknown, so it can be tracked if a miflora device isn't responding any more.
* Add available()
Signal valid data via available()
* miflora: add timeout to go unavailable
* code cleanup
* miflora: tox cleanup
* Fix tankerkoenig with more than 10 stations
There seemed to be a problem, if more than 10 fuel stations were tracked.
Added a warning in this case, and split the calls to the API in chunks of
10, so that the data can be fetched anyway.
* Update homeassistant/components/tankerkoenig/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Split ZHA device loading and entities adding.
Load zha devices from ZHA gateway, but add entities after integration
was setup.
* Use hass.loop.create_task()
* Split ZHA device initialization from loading.
Restore and initialize ZHA devices separately.
* Use hass.async_create_task()
Load devices prior group initialization.
* Validate UUIDs against custom validator
Instead of just validating against strings, use a custom validator,
so that the format can be checked.
* Add tests for custom UUID4 validator
* Add support for nexia automations
Bump nexia to 0.7.1
Start adding tests
Fix some of the climate attributes that were wrong (discovered while adding tests)
Pass the name of the instance so the nexia UI does not display "My Mobile"
* fix mocking
* faster asserts, scene
* scene makes so much more sense
* pylint
* Update homeassistant/components/nexia/scene.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* docstring cleanup
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add a config flow for myq
* Discovered by homekit
* Fix gates being treated as garage doors
* Offline devices now show as unavailable
* Homekit flow
* strip out icon
* return -> raise
* Modernize nuheat for new climate platform
* Home Assistant state now mirrors the
state displayed at mynewheat.com
* Remove off mode as the device does not implement
and setting was not implemented anyways
* Implement missing set_hvac_mode for nuheat
* Now shows as unavailable when offline
* Add a unique id (serial number)
* Fix hvac_mode as it was really implementing hvac_action
* Presets now map to the open api spec
published at https://api.mynuheat.com/swagger/
* ThermostatModel: scheduleMode
* Empty commit to re-run ci
* Revert test cleanup as it leaves files behind.
Its going to be more invasive to modernize the tests so
it will have to come in a new pr
Add new "amcrest.ptz_control" service to specify a PTZ camera movement or zoom direction (up, down, right, left, right_up, right_down, left_up, left_down, zoom_in, zoom_out). An optional travel_time attribute specifies the amount of movement between start/stop.
* Wait for cloud connection
* Just wait
* Remove redundant entry
* Drop webhook before unloading other platforms
* Add missing scope
* Update homeassistant/components/netatmo/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Fix test
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add tests for states of the sensors
* Revert async_update method
* Tests improvement
* Fix icon name
* Tests improvement
* Simplify tests
* Test improvement
* Patch the library instead of the coordinator
* Suggested change
* Remove return_value
* Convert amcrest binary sensors from poll to stream
- Bump amcrest package to 1.6.0.
- For online binary sensor poll camera periodically to test communications in case
configuration & usage results in no other communication to camera.
- Start a separate thread to call camera's event_stream method since it never returns.
- Convert all received events into signals that cause corresponding sensors to update.
- Use camera's generic event_channels_happened method to update sensors at startup,
and whenever camera comes back online after being unavailable.
* Changes per review
* Changes per review 2
* Changes per review 3
- Move event stream decoding to amcrest package.
- Change name of event processing threads so global
counter is no longer required.
- Bump amcrest package to 1.7.0.
* Update powerwall unique id
* Fix somfy optimistic mode when missing in conf (#32995)
* Fix optimistic mode when missing in conf #32971
* Ease code using a default value
* Client id and secret are now inclusive
* Bump aiohomekit to fix Insignia NS-CH1XGO8 and Lennox S30 (#33014)
* Axis - Fix char in stream url (#33004)
* An unwanted character had found its way into a stream string, reverting f-string work to remove duplication of code and improve readability
* Fix failing tests
* deCONZ - Add support for Senic and Gira Friends of Hue remote… (#33022)
* Update the test
* Harmony config flow improvements (#33018)
* Harmony config flow improvements
* Address followup review comments from #32919
* pylint -- catching my naming error
* remove leftovers from refactor
* Update powerwall unique id
* Update the test
Co-authored-by: tetienne <thibaut@etienne.pw>
Co-authored-by: Jc2k <john.carr@unrouted.co.uk>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* Merge nexia
* Restore original work
* Merge cleanups
* config flow
* Add config flow
* Add missing files
* Fix import of old yaml config
* More cleanups from self review
* Additional self review
* Update homeassistant/components/nexia/services.yaml
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* fix io in event loop
* Update homeassistant/components/nexia/climate.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* avoid using ternary statements if they span multiple
* Cleanup strings and remove unneeded attributes
* more cleanup
* more cleanup of yaml
* remove coordinator boiler plate
* nuke services for now for the inital pr, add back later
* remove copy pasta
* this can be reduced more
* Update homeassistant/components/nexia/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/__init__.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* review
* comments
* Update homeassistant/components/nexia/climate.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/climate.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/nexia/climate.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* more review adjustments
* nuke unused constants
* Update homeassistant/components/nexia/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* map states
* add update
* zone id is unique
* Fix humidfy check
* target_humidity should be a property instead of in attributes
* remove aux heat as its already there
Co-authored-by: Ryan Nazaretian <ryannazaretian@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* An unwanted character had found its way into a stream string, reverting f-string work to remove duplication of code and improve readability
* Fix failing tests
* Config flow for harmony
* Fixes unique ids when using XMPP
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* Find the unique id for the config flow
* move shutdown to init
* Add test for ssdp (still failing)
* Fix ssdp test
* Add harmony to MIGRATED_SERVICE_HANDLERS (this is a breaking change)
* more cleanups
* use unique id for the config file
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
The existing sensor icons, while descriptive - dead = dead - are perhaps too matter of fact and don't accurately convey the tragedy. I changed emoticon-dead-outline to emoticon-cry-outline, as I think it better conveys the reality of the situation along with the emotions tied to the statistic.
* Fix iCloud init while pending
Continue if device is pending while setup
Create devices and fetch 15s if pending, otherwise determine interval to fetch.
* Add retried_fetch guard
* here_travel_time: Add modes arrival and departure
* convert arrival/departure from datetime to time
* Default departure is set by external lib on None
* Use cv.key_value_schemas
* Initial commit
* Restricting conditions by supported_features, drop pending condition
* Added tests for no and minimum amount of conditions
* Address review comments
* Sort impors with isort
* Sort impors with isort v2
* Add 'Yeelight LED Ceiling Light' model
Add new model https://www.yeelight.com/en_US/product/luna
* Update requirements_all.txt bump to yeelight 0.5.1
Update requirements_all.txt bump to yeelight 0.5.1
* Update manifest.json, bump to 0.5.1
Update manifest.json, bump to 0.5.1
* set alarmdecoder code_arm_required to False
* rm unnecessary f strings
* add code_arm_required config option
* add self as codeowner :-)
* add self as codeowner the right way
* Updating SynologySRM device trakcers to show additional information
* Fixes
* Aliasing attributes to snake case
* Sugguested changes as per MartinHjelmare
* add feet to meter conversion
* convert pressure and wind. fix wind for metric.
* dont convert wind speed in metric.
pymetno already converts it.
* add units to setup_platform constuctor
* Add model to rachio device info
Address followup items
* Address review items, retest zone updates back and forth, and standby mode
* Remove super
* Revert "Remove super"
This reverts commit 02e2f156a9.
* Update homeassistant/components/rachio/switch.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/rachio/binary_sensor.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Require a hyphen in lovelace dashboard url
* Keep storage dashboards working
* register during startup again
* Update homeassistant/components/lovelace/dashboard.py
Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>
* Comments
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Catch asyncio.TimeoutError, show a proper message instead
* Throttle updates to max once per 30s
* Change code owner
* Fix CODEOWNERS + linting
* Warn on connection timeout
* Do not fail when a user has a controller with shared access on their account
* Add config flow for rachio
Also discoverable via homekit
* Update homeassistant/components/rachio/switch.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Split setting the default run time to an options flow
Ensue the run time coming from yaml gets imported into the option flow
Only get the schedule once at setup instead of each zone (was hitting rate limits)
Add the config entry id to the end of the webhook so there is a unique hook per config entry
Breakout the slew of exceptions rachiopy can throw into RachioAPIExceptions
Remove the base url override as an option for the config flow
Switch identifer for device_info to serial number
Add connections to device_info (mac address)
* rename to make pylint happy
* Fix import of custom_url
* claim rachio
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* emulated_hue: Optimize is_entity_exposed
Switch all list transversals in is_entity_exposed to
hash lookups
get_deprecated is now only called if explict_expose is
set
This funciton was iterating multiple lists per enitity
every time there was an update. It was responsible for
a chunk of execution time when there are large number
of entities in home assistant.
* Complete deprecation of ATTR_EMULATED_HUE attribute
* Complete deprecation of ATTR_EMULATED_HUE attribute (remove const)
* Remove ATTR_EMULATED_HUE_HIDDEN and Rewrite tests
* Extend rtorrent sensor functionality.
* Remove blank line from end of file.
* After using black formatter.
* Update sensor.py using snake_case for variable names.
* Update PR by using true value in condition.
* move apps configuration to options flow
* add additional assertion to new test
* add additional assertions for options update
* update docstrings, config validation, and tests based on review
* Add set_memo_text service
* Apply template rendering for memo text
* Update constants to comply to naming conventions
* Local variable for module address and extended error description
* fixed typo
* Use platform tag to register components on hue SensorManager
instead of a boolean flag to decide between sensor and binary sensor,
so it could be used externally (or to get ready for inclusion of other comps)
* Make new item discovery platform agnostic for SensorManager
* Fix delijn sensor stuck on last passage
If the returned passage is an empty list that means there are
no next passages, so the sensor should be updated accordingly
* Mark the sensor as unavailable instead of emptying data
* use available property
* add available property
instances whenever the volume was requested a division calculation was made
resulting in a TypeError. The volume adjustment from `0-100` to `0-1` is now
calculated during the `update()` method.
* Add config flow to Freebox
* Add manufacturer in device_tracker info
* Add device_info to sensor + switch
* Add device_info: connections
* Add config_flow test + update .coveragerc
* Typing
* Add device_type icon
* Remove one error log
* Fix pylint
* Add myself as CODEOWNER
* Handle sync in one place
* Separate the Freebox[Router/Device/Sensor] from __init__.py
* Add link step to config flow
* Make temperature sensors auto-discovered
* Use device activity instead of reachablility for device_tracker
* Store token file in .storage
Depending on host if list of Freebox integration on the future without breaking change
* Remove IP sensors + add Freebox router as a device with attrs : IPs, conection type, uptime, version & serial
* Add sensor should_poll=False
* Test typing
* Handle devices with no name
* None is the default for data
* Fix comment
* Use config_entry.unique_id
* Add async_unload_entry with asyncio
* Add and use bunch of data size and rate related constants (#31781)
* Review
* Remove useless "already_configured" error string
* Review : merge 2 device & 2 sensor classes
* Entities from platforms
* Fix unload + add device after setup + clean loggers
* async_add_entities True
* Review
* Use pathlib + refactor get_api
* device_tracker set + tests with CoroutineMock()
* Removing active & reachable from tracker attrs
* Review
* Fix pipeline
* typing
* typing
* typing
* Raise ConfigEntryNotReady when HttpRequestError at setup
* Review
* Multiple Freebox s
* Review: store sensors in router
* Freebox: a sensor story