* fix bug when search for string in dict fails when dict is null
* another bug fix that I only noticed because of this other bug
* add test to cover failure scenario
* update docstring
* add additional assertions to cover failure scenario that's being fixed
* Add a config flow for flume
* Sensors no longer block Home Assistant startup
since the flume api can take > 60s to respond on
the first poll
* Update to 0.4.0 to resolve the blocking startup issue
* Missed conversion to FlumeAuth
* FlumeAuth can do i/o if the token is expired, wrap it
* workaround async_add_entities updating disabled entities
* Fix conflict
* Speed up TP-Link lights
* Color temp kan be None
* hs as int, force color temp=0
* Fix color temp?
* Additional tplink cleanups to reduce api calls
* Update test to return state, remove Throttle
* Fix state restore on off/on
* Fix lights without hue/sat
Co-authored-by: J. Nick Koston <nick@koston.org>
* Use asynctest patch instead of mock_coro
* Add test for supervisor ip ban
* Do not ban supervisor ip if set
* Extract supervisor ip helper
* Check supervisor ip before banning
* Remove added blank line
* Clean up get supervisor ip
Co-Authored-By: Pascal Vizeli <pvizeli@syshack.ch>
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
* Convert nut to a multi step config flow
* Users can now choose the ups they want in
step 2 (or skipped if only one)
* Users can now select the resources they want
to monitor based on what is actually available
on the device
* CONF_NAME has been removed as we now get the
name from NUT
* Device classes have been added which allows
the battery charge state to be seen in the
devices UI
* Remove update_interval as its for a followup PR
* explict
* reduce
* fix bug, add tests for options flow
* Test for dupe import
* Test for dupe import
* Call step directly
* Update homeassistant/components/nut/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* convert nws to component configuration
* add more debug logging
* remove assumed state
* move initialization of data into init
* refactor update logic
* use forecast success for checking available entities
* Split unique_id into more usable pieces.
use a base_unique_id for each entry. Add domain for signaling to entities. Each entity in each platform can use base_unique_id to form individual unique_id's.
* Revert "move initialization of data into init"
This reverts commit 09eb0220469285b10f0500f5f6def67415931a81.
* add silver quality scale to manifest
* unsubscribe listener in will_remove_from_hass
* initialize _unsub_listener in __init__
* use async_on_remove
* remove scan interval from configuration
* Use better name
Co-Authored-By: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add discovery support to synology_dsm
* Remove debug
* black
* Fix mocks
* Merge strings
* Move placeholders
* add missing placeholders
* reorder
* use constants in test
* Remove CONF_NAME (only displayed in discovery now)
* test reduction
* Shorten long name
* Use name for name but NOT for unique_id, remove CONF_NAME from yaml config
* Use Synology for the name for now, hopefully we can use the hostname later
* lint
* Remove name from strings
* remove =None
* show login errors at username field
* Update tests/components/synology_dsm/test_config_flow.py
Co-Authored-By: Quentame <polletquentin74@me.com>
* Update tests/components/synology_dsm/test_config_flow.py
Co-Authored-By: Quentame <polletquentin74@me.com>
* Update homeassistant/components/synology_dsm/const.py
Co-authored-by: Quentame <polletquentin74@me.com>
* used coroutinemock to avoid exception
* added spec to mock to remove exception
* added the current_user return value so it doesnt throw exception
* fix the mocks so properties do not need .return_value
* fixed missing mock values that were causing exceptions
* moved patch to asynctest so no need to define m_init
* fixed black error
* update common test for modbus integration
* remove log messages from modbus setup function.
* Make global method local
* Change parameter name to snake_case
* replaced MagicMock with CoroutineMock to avoid exception
* added conversion to str so mock returns unique-id that doesn't throw json exception
* added non-empty config since hass throws exception when config is empty
* MQTT Alarm Control Panel to have all available states
* MQTT Alarm Control Panel to have all available states
* test_arm_custom_bypass_* tests added
* MQTT payload_arm_custom_bypass abbreviation
Since all entity test functions are going to use
the modbus class, isolate the common parts in
conftest.py, and thereby make it simpler to write
additional test cases.
cleaned up test_modbus_sensor.py while splitting the code.
* 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>
Home Assistant auto mode is described as
"The device is set to a schedule, learned behavior, AI."
HomeKit Accessory Protocol expects "heating or cooling to maintain
temperature within the heating and cooling threshold of the
target temperature"
Since HomeKit is expecting to set temperatures in this mode,
mapping homekit state 3 ("Auto") to Home Assistant HVAC_MODE_HEAT_COOL
is more inline with how Home Assistant defines HVAC_MODE_HEAT_COOL
as "The device supports heating/cooling to a range"