* Use camera name as device name
* Add Surveillance Station home mode switch for Synology DSM
- camera uses Surveillance Station as device parent
- camera uses camera name instead of NAS name + camera name
* Without device_class otherwise no icon
* Update .coveragerc
* Review: if not to pop
* Review: async_add_job --> async_add_executor_job
* Review: const
* Review: start logging messages with capital letter
* Review : UTC isoformated time --> fix "Invalid date""
* Fix hail forecast condition
* Review: _show_setup_form is a callback
* Fix update option
* Review: no icon for next_rain
* Review: inline cities form
* Review: store places as an instance attribute
* UNDO_UPDATE_LISTENER()
* Review: if not to pop
* Review: async_add_job --> async_add_executor_job
* Review: const
* Review: start logging messages with capital letter
* Review : UTC isoformated time --> fix "Invalid date""
* Fix hail forecast condition
* Review: _show_setup_form is a callback
* Fix update option
* Review: no icon for next_rain
* Review: inline cities form
* Review: store places as an instance attribute
* UNDO_UPDATE_LISTENER()
* Bump python-synology to 0.8.2
* state_attributes to device_state_attributes
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
- add Synology DSM Security binary sensor (enabled by default)
- use device name instead of id in names
- add device type to name
- show disk manufacturer, model and firmware version in devices
- some entries are disabled by default (`entity_registry_enabled_default`)
- binary sensor + sensor uses `device_class` when possible
- do not fetch a concerned API if all entries of it are disabled
- entity unique_id now uses key instead of label
- entity entity_id changes for disk and volume: example from `sensor.synology_status_sda` to `sensor.synology_drive_1_status`, or from `sensor.synology_average_disk_temp_volume_1` to `sensor.synology_volume_1_average_disk_temp`
- now binary sensor:
- disk_exceed_bad_sector_thr
- disk_below_remain_life_thr
- removed sensor:
- volume type (RAID, SHR ...)
- disk name (Drive [X])
- disk device (/dev/sd[Y])
* Use CONF_CLIENT_ID & CONF_CLIENT_SECRET from homeassistant.const
* Fix pylint
* Use in tests
* Search for "client_id"
* Fix tests
* Fix test
* Fix test
* Add config flow to Synology DSM
* Use proper sensor unique ID from flow + sensor name
* Add description to api_version
* Add authentication flow check
* Add device_info
* Add test_login_failed test
* Bump python-synology to 0.5.0
* 0.5.0 test updates
* Use NAS S/N as config_flow unique_id
* Add missed conf disks + volumes
* Review: async_unload the async_track_time_interval
* Fix NoneType for disks or volumes
* Keep all disks and volumes forever
* Update homeassistant/components/synology_dsm/.translations/en.json
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/synology_dsm/strings.json
Co-Authored-By: J. Nick Koston <nick@koston.org>
* Fix "Keep all disks and volumes forever" for empty import
* Fix prettier
* Remove useless LOGGER in config flow
* Fix Synology DSM tests doing I/O
Co-authored-by: J. Nick Koston <nick@koston.org>
* 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
* 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
* 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
* Fetch iCloud devices again if the status is pending
* Remove "No iCloud device found" double check
* fix default api_devices value
* Remove useless unitialisation declarations
* Fetch iCloud devices again if the status is pending
* Remove "No iCloud device found" double check
* fix default api_devices value
* Remove useless unitialisation declarations
* iCloud: setup ConfigFlow and prepare for more platforms
- add config flow + tests
- fix existing services
- add play_sound & display_message services
- document services
- can use devices with the same name
- prepare to add sensor platform
* Review : not copy account conf
* Review: Safer test patch
* Review: remove reset_account
* Review: Use executor_job while IO
* Review: Use executor_job while IO 2
* Review: use hass.helpers.storage.Store()
* Review: no IO in tests
* Remove reset from services.yaml
* Review: remove authenticate.return_value = Mock()
* Review: do not initialize the api with the mocked service
* isort
* Review: @MartinHjelmare Test config flow with all steps
* Review: Fix failed tests names
* Codevov: Add one missing test