* Add support for events from Loitering guard and Motion guard
* Improve naming of events originating from applications Fence guard and VMD4 (Loitering guard and motion guard also benefit from this)
* Implement local media finder and integrate into cast
* update to media source as a platform
* Tweak media source design
* fix websocket and local source
* fix websocket schema
* fix playing media
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add resolve_media websocket
* Register that shit
* Square brackets
* Sign path
* add support for multiple media sources and address PR review
* fix lint
* fix tests from auto whitelisting config/media
* allow specifying a name on the media source
* add tests
* fix for python 3.7
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* add http back to cast and remove guess_type from executor as there is no i/o
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add tests for Broadlink remotes
* Reformat the tests with Black
* Add a helper method for device setup
* Rename device.setup() to device.setup_entry()
* Apply suggestions from code review
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
* Make sure we set discreteOnlyOpenClose for binary sensors
* Mark switches that are assumed state as commandOnlyOnOff
* Drop stray extra line
* Fix pylint error
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Add Plex service to refresh a library
* Clean up rebase leftovers
* Re-run black
* Fix docstring
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* Rename ipaddr to ip_addr
* Move custom services to entity services
* Remove platform data
* Change service setup to callback
* Rename ip_addr to host
* Use _host inside class
* Provide a logbook option entity_matches_only to optimize for single entity id lookup
When entity_matches_only is provided, contexts and events that do not
contain the entity_id are not included in the logbook response.
* Update homeassistant/components/logbook/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* api only takes a single entity
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Prior 0.113 all lights and switches were reported as dimmable devices and this was fixed by #37978.
However, under some circumstances Alexa will not smoothly transition from those broken devices to the new ones as it cache the list of entities.
It is imperative to have Alexa rediscover all devices and then remove the now non-responding duplicates using the Alexa phone App. This can take quite a while if you have lots of devices.
An alternative would be to log to the Alexa web site and remove all the lights instead and then re-discover them all.
If you have multiple echo devices on your network, it is possible that the entries would continue to show as duplicates. This is due to an individual echo devices caching the old list and re-using it.
The only known solution for this is to remove your echo devices from your Amazon account and re-add them.
After that, have Alexa rediscover all your devices.
This is a one-off requirement.
Fixes#39503
* Move options import to async_setup_entry
* Add tests for insteon init
* Move common constants to const
* Clean up to adhear to standards
* Create mock insteon device manager
* Update for HA standards
* Use keys and align to config_flow steps
* Fix default port for hub v1
* Update doc string to represent function
* Remove dump print commands
* Add modem_type entry
* Simplify dict key test
* Setup platforms in async_setup_entry
* Black
* Black tests
* Opened a new fresh page to clean my mess.
* Solved pylint warnings
* Fixing pylint issue of defining attr outside init.
* Excluded files from being tested by codecov.
* Solved binary sensor error.
* Fixed some stylisation errors.
* Resolved input not updating problem.
* Added port entry to test file.
* Added tests for create_entry.
* Added support for better state management.
* Increased code coverage of config_flow.py & made some tweaks.
* Increased coverage of config_flow.py by adding tests for unknown exceptions.
* A small bugfix.
* Stylised code as per Chris' suggestions.
* Stylised code again.
* Improved quality of test code.
* Added step_id in config flow tests.
* Close the ADB connection when there is an exception
* Add a test
* Split a comment onto two lines
* Fix test ('async_update' -> 'async_update_entity')
* 'close' -> 'Close'
* Add device name to all webhook logs to help with multiple devices
* Reload notifications when we update the registration, update from rebase
* Make hassfest happy
* Adjust caplog test to accomodate log message change
Co-authored-by: J. Nick Koston <nick@koston.org>
Some new HomeKit climate devices, like XiaoMi Air Conditioning Controller P3 are heater-cooler devices rather than
thermostat devices. This commit adds support for the heater-cooler class via homekit_controller.
* Include the context_entity_id in the logbook api
context_entity_id is the first entity seen during
a time period that includes the context
* update test
* more of them
* include friendly name
* pylint wants a ternary
* Refactor
* performance
* fix homekit context
* Fix self describing events
* Fix external_events
* Add ZwaveStringSensor to OZW integration
* Remove unnecessary new line
* Set enabled default to false for ZwaveStringSensor
* Add missing decorator for property
* Add a test for ZwaveStringSensor
* Also test state of ZWaveStringSensor
* Remove entity type check
* Add binary sensors to Risco integration
* Minor cleanups
* RiscoEntity base class
* Platinum score
* Remove alarm parameter in _setup_risco
* Avoid zones and partitions sharing unique ids
* Wait for broker to ACK MQTT operations
* Deduplicate new code
* Fix tests
* Improve test
* Don't hold PAHO lock when waiting for ACK
* Fix tests
* Add constant for ACK timeout
Now that python 3.7 is the minimum supported version, we can
use the more efficient SimpleQueue in the recorder as it does
not have to use threading.Lock
* Implement config flow in the Broadlink integration
* General improvements to the Broadlink config flow
* Remove unnecessary else after return
* Fix translations
* Rename device to device_entry
* Add tests for the config flow
* Improve docstrings
* Test we do not accept more than one config entry per device
* Improve helpers
* Allow empty packets
* Allow multiple config files for switches related to the same device
* Rename mock_device to mock_api
* General improvements
* Make new attempts before marking the device as unavailable
* Let the name be the template for the entity_id
* Handle OSError
* Test network unavailable in the configuration flow
* Rename lock attribute
* Update manifest.json
* Import devices from platforms
* Test import flow
* Add deprecation warnings
* General improvements
* Rename deprecate to discontinue
* Test device setup
* Add type attribute to mock api
* Test we handle an update failure at startup
* Remove BroadlinkDevice from tests
* Remove device.py from .coveragerc
* Add tests for the config flow
* Add tests for the device
* Test device registry and update listener
* Test MAC address validation
* Add tests for the device
* Extract domains and types to a helper function
* Do not patch integration details
* Add tests for the device
* Set device classes where appropriate
* Set an appropriate connection class
* Do not set device class for custom switches
* Fix tests and improve code readability
* Use RM4 to test authentication errors
* Handle BroadlinkException in the authentication
* Convert template lock to use async_track_template_result
* Convert template switch to use async_track_template_result
* Convert template fan to use async_track_template_result
* Convert template binary_sensor to use async_track_template_result
Co-Authored-By: Penny Wood <Swamp-Ig@users.noreply.github.com>
* Convert template cover to use async_track_template_result
* Convert template light to use async_track_template_result
* Convert template vacuum to use async_track_template_result
Co-authored-by: Penny Wood <Swamp-Ig@users.noreply.github.com>
* Convert template lock to use async_track_template_result
* Convert template switch to use async_track_template_result
* Convert template fan to use async_track_template_result
* Convert template alarm_control_panel to use async_track_template_result
* Convert template lock to use async_track_template_result
* Convert template switch to use async_track_template_result
* Convert template fan to use async_track_template_result
* Add audio to stream component
* Use container options to do most fmp4 formatting
* Add test for treatment of different audio inputs
* Add test for treatment of different audio inputs
* pcm_mulaw frames should be s16
* Use seek to get BytesIO length
* Remove unused utcnow
* Remove peek_next_audio_pts
* only demux audio and video packets - ignoring data and subtitle streams
Co-authored-by: Jason Hunter <hunterjm@gmail.com>
* Run scaffold script
* Update version
* Bump version
* Initial commit
* Move meter and ESIID to device attributes
* Update internal to hourly due to api limit
* Format with Black
* Fix typo
* Update tests
* Update description
* Disable Pylint error
* Don't commit translations
* Remove meter number from sensor name
* Allow multiple meters per account
* Move data updates to a DataUpdateCoordinator
* Use setdefault to setup the component
* Move strings to const.py
* Fix tests
* Remove meter last updated attribute
* Bump smart-meter-texas version
* Fix logger call
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove unneeded manifest keys
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove icon property
Co-authored-by: J. Nick Koston <nick@koston.org>
* Handle instance where user already setup an account
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove icon constant
* Fix indentation
* Handle config flow errors better
* Use ESIID + meter number as unique ID for sensor
* Update config flow tests to reach 100% coverage
* Avoid reading meters on startup
Cherrypick @bdraco's suggestion
* Run scaffold script
* Update version
* Bump version
* Initial commit
* Move meter and ESIID to device attributes
* Update internal to hourly due to api limit
* Format with Black
* Fix typo
* Update tests
* Update description
* Disable Pylint error
* Don't commit translations
* Remove meter number from sensor name
* Allow multiple meters per account
* Move data updates to a DataUpdateCoordinator
* Use setdefault to setup the component
* Move strings to const.py
* Fix tests
* Remove meter last updated attribute
* Bump smart-meter-texas version
* Fix logger call
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove unneeded manifest keys
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove icon property
Co-authored-by: J. Nick Koston <nick@koston.org>
* Handle instance where user already setup an account
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove icon constant
* Fix indentation
* Handle config flow errors better
* Use ESIID + meter number as unique ID for sensor
* Update config flow tests to reach 100% coverage
* Remove unnecessary try/except block
This checks for the same exception just prior in execution on L51.
* Remove unused return values
* Add tests
* Improve tests and coverage
* Use more pythonic control flow
* Remove all uses of hass.data
Co-authored-by: J. Nick Koston <nick@koston.org>
* Adjust homekit controller pairing errors back to a single step
* adjust test
* Revert "Adjust homekit controller pairing errors back to a single step"
This reverts commit e5ed89bbbb.
* Revert "adjust test"
This reverts commit c2e9f21a8401c144315260f6fdf71ea8060f8ca3.
* adjust
* prune
* prune
* merge
* Update tests
* remove debug
* adjust
* Multiple steps
* adjust the test
If a device on the network presented a bad name, zeroconf
would throw zeroconf.BadTypeInNameException and the service
browser would die off. We now trap the exception and continue.
* Bump pysyncthru version to 0.7.0
This change includes a heavier refactoring, using a more reliable source for the device status and parsing display strings only for additional details
* Fix test flow to ensure a status is set
* Don't allow duplicate nightscout configs
* Fix nightscout translations
* Remove unnecessary should_poll method
* Remove SVG attribute, as it was duplicating the state
* Use aiohttp client session from HA
* Move validate_input outside the config class
* Use the entry unique_id on the sensor
* Move create entity logic
* Handle unexpected exception on Nightscout config
* update device
* add binary sensor
* updates post rebase
* fix entity type post rebase
* fix post rebase
* fix add entities
* fix name
* review comments
* Add ozw refresh_node_info websocket api
* Remove extra unsubs definition
* Remove unused bits from refresh_node_info websocket
* Add tests
* Add unsubscribe test
* Wait for response in unsubscribe test
* Squashed
* Fix requirements_all
* Update homeassistant/components/insteon/__init__.py
Only update options if the result is to create the entry.
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/insteon/__init__.py
No return value needed.
Co-authored-by: J. Nick Koston <nick@koston.org>
* Ref RESULT_TYPE_CREATE_ENTRY correctly
* Return result back to import config process
* Make DOMAIN ref more clear
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add hourly forecast
* fix tests to assert for 2 entities created
* fix test to assert for 4 calls
* correct test tracking home number of calls
* fox tests
* fix test
* Apply suggestions from code review
* black
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
* Fix homekit_controller pairing retry
If the device was busy on the first pairing attempt, it
was not possible to retry.
* always restart pairing on recoverable execptions
* move code
* malformed pin is safe to restart
* make busy_error an abort
* switch max retries, simplify tests
* try pairing later
* try pairing later
* merge
* s/tlv_error/protocol_error/g
* Adjust wording
* Add missing Short type to set_config_param
* Forgot to fix the for loop
* Remove leftover return
* Guard the for loop
* Changed from if to else
* Fixed list iteration for validating input
* Adjusted per linter
* Add more tests
* Add tests for sensor platform
* Add more tests
* More tests
* Simplify parsing of attributes
* Change Quality scale to platinum
* Patch the library in the manual update entity test
* Add unsupported condition icon test
* Do not patch _async_get_data
* Apply suggestions from code review
* Update config_flow.py
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Update tests/components/accuweather/test_weather.py
* Apply suggestions from code review
* Add return_value
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
Support the action.devices.commands.mute intent to mute and unmute
media_players that declare support for mute/unmute.
For media players with support for volume up/down, but no support for
setting the volume to a specific number, allow use of the
action.devices.commands.relativeMute intent to control volume up/down.
This will improve support for IR blasters and other open-loop
media_player integrations.
* Make sure groups are initialized before template sensors
This way users may use the `expand` function in templates to expand
groups and have HA listen for changes to group members.
Fixes#35872
* Patch async_setup_platform instead of async_setup
* Cleanup
* Use an event to avoid sleep
* Update tests/components/template/test_sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Don't set SUPPORT_EFFECT on DemoLight if there are no effects
This requires an update to the group test - previously the other lights
instantiated by the DemoLight component had nothing in ATTR_EFFECT_LIST, but
still had SUPPORT_EFFECT set. This appears to have resulted in the light
group test code setting an effect on the group and expecting it to apply to
all lights, but given that two of the bulbs didn't actually support any
effects (due to the empty ATTR_EFFECT_LIST) this seems like a broken
assumption and updating the test to verify only the bulb that supports
effects has had one applied seems reasonable.
* Add support for exposing light effects via Google Assistant
The LightEffects trait only supports a fixed (and small) list of lighting
effects, but we can expose them via the Modes trait - this requires saying
"Set (foo) effect to (bar)" which is a little clumsy, but at least makes it
possible.
* added device classes for electrical measurement
(cherry picked from commit 2409fe19ed43bef568a0cca826652867d3a2d71a)
* upadte power factor unit (%)
* update power factor unit (%)
* Add support for reload_on_update to _abort_if_unique_id_configured
async_update_entry now avoids firing update listeners and writing
the storage if there are no actual changes.
* Actually add the tests
* collapse branch
* Update homeassistant/config_entries.py
Co-authored-by: Franck Nijhof <git@frenck.dev>
* handle entries that lack the ability to reload
* reduce
* adjust konnected tests
* update axis tests
* fix blocking
* more mocking
* config flow tests outside of test_config_flow
* reduce
* volumio
* Update homeassistant/config_entries.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* set reload_on_update=False for integrations that implement self._abort_if_unique_id_configured(updates= and a reload listen
* get rid of copy
* revert test change
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* track all settings and add service to update a setting
* sort setting types
* reduce frequency of updates due to the increase in API calls per update
* change dict call to a get in case audio settings aren't available
unlikely to occur but less error prone
* Update if statement to be more consistent
* revert changes to track all settings and store in state machine
* revert one more change
* force setting_type and setting_name to lowercase to make it easier to understand how to make service call
* make service calls even simpler by attempting to transform certain parameters as much as possible
* Support Next/Previous for InputSelector
* Update homeassistant/components/google_assistant/trait.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Adjust to match new version of _next_selected
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Fix webhook registration
* Only load camera platform with valid scope
* Add initial data handler and netatmo base class
* Update camera to use data handler
* Update init
* Parallelize API calls
* Remove cruft
* Minor tweaks
* Refactor data handler
* Update climate to use data handler
* Fix pylint error
* Fix climate update not getting fresh data
* Update climate data
* update to pyatmo 4.0.0
* Refactor for pyatmo 4.0.0
* Exclude from coverage until tests are written
* Fix typo
* Reduce parallel calls
* Add heating request attr
* Async get_entities
* Undo parallel updates
* Fix camera issue
* Introduce individual scan interval per device class
* Some cleanup
* Add basic webhook support for climate to improve responsiveness
* Replace ClimateDevice by ClimateEntity
* Add support for turning camera on/off
* Update camera state upon webhook events
* Guard data class registration with lock
* Capture errors
* Add light platform
* Add dis-/connect handling
* Fix set schedule service
* Remove extra calls
* Add service to set person(s) home/away
* Add service descriptions
* Improve service descriptions
* Use LightEntity instead of Light
* Add guard if no data is retrieved
* Make services entity based
* Only raise platform not ready if there is a NOC
* Register webhook even during runtime
* Fix turning off event
* Fix linter error
* Fix linter error
* Exclude light platform from coverage
* Change log level
* Refactor public weather sensor to use data handler
* Prevent too short coordinates
* Ignore modules without _id
* Code cleanup
* Fix test
* Exit early if no home data is retrieved
* Prevent discovery if already active
* Add services to (un-)register webhook
* Fix tests
* Not actually a coroutine
* Move methods to base class
* Address pylint comment
* Address pylint complaints
* Address comments
* Address more comments
* Add docstring
* Use single instance allowed
* Extract method
* Remove cruft
* Write state directly
* Fix test
* Add file to coverage
* Move nested function
* Move nested function
* Update docstring
* Clean up code
* Fix webhook bug
* Clean up listeners
* Use deque
* Clean up prints
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/netatmo/camera.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Rename data_class variable
* Break when match
* Extract method
* Extract methods
* Rename variable
* Improve comment
* Some refinements
* Extra
* Extract method
* Simplify code
* Improve reability
* Code simplification
* Simplify code
* Simplify code
* Code cleanup
* Fix import
* Clean up
* Clean up magic strings
* Replace data_class_name with CAMERA_DATA_CLASS_NAME
* Replace data_class_name with CAMERA_DATA_CLASS_NAME
* Replace data_class_name with HOMEDATA_DATA_CLASS_NAME
* Replace data_class_name in public weather sensor
* Clean up
* Remove deprecated config options
* Schedule immediate update on camera reconnect
* Use UUID to clearly identify public weather areas
* Use subscription mode
* Move clean up of temporary data classes
* Delay data class removal
* Fix linter complaints
* Adjust test
* Only setup lights if webhook are registered
* Prevent crash with old config entries
* Don't cache home ids
* Remove stale code
* Fix coordinates if entered mixed up by the user
* Move nested function
* Add test case for swapped coordinates
* Only wait for discovery entries
* Only use what I need
* Bring stuff closer to where it's used
* Auto clean up setup data classes
* Code cleanup
* Remove unneccessary lock
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update tests/components/netatmo/test_config_flow.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Clean up dead code
* Fix formating
* Extend coverage
* Extend coverage
Co-authored-by: J. Nick Koston <nick@koston.org>
* Wait for the state of the entity to actually change before resolving PUT request
Additionally, we cache the entity's properties for up to two seconds for the successive GET state request
When Alexa issues a command to a Hue hub; it immediately queries the hub for the entity's state to confirm if the command was successful.
It expects the state to be effective immediately after the PUT request has been completed.
There may be a delay for the new state to actually be active, this is particularly obvious when using group lights.
This leads Alexa to report that the light had an error.
So we wait for the state of the entity to actually change before responding to the PUT request.
Due to rounding issue when converting the HA range (0..255) to Hue range (1..254) we now cache the state sets by Alexa and return those cached values for up to two seconds so that Alexa gets the same value as it originally set.
Fixes#38446
* Add new tests verifying emulated_hue behaviour.
* Increase code test coverage.
The remaining uncovered lines can't be tested as they mostly check that the hass framework or the http server properly work.
This commit doesn't attempt to fix exposed issues as it would be out of scope ; it merely create the tests to exercise the whole code.
* Update homeassistant/components/emulated_hue/hue_api.py
* Add test for state change wait timeout
* Preserve the cache long enough for groups to change
* Update tests/components/emulated_hue/test_hue_api.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add config flow to HLK-SW16
* Use entry_id for unique_id
* Add options update capability
* Refactor entry_id under domain
* Remove name from config
* Set options
* Remove options flow
* remove unneccesary else block from validate_input and move domain cleanup to async_unload_entry
* Add tests and config import
* Add back config schema
* Remove config import
* Refactor unload
* Add back config import
* Update coveragerc
* Don't mock validate_input
* Test duplicate configs
* Add import test
* Use patch for timeout test
* Use mock for testing timeout
* Use MockSW16Client for tests
* Check mock_calls count
* Remove unused NameExists exception
* Remove title from strings.json
* Mock setup for import test
* Set PARALLEL_UPDATES for switch
* Move hass.data.setdefault(DOMAIN, {}) to async_setup_entry
* Add new python library
* Update requirements
* Remove old libs
* config flow with client.search_places
* WIP: UI config + weather OK
* WIP: sensors
* WIP: add pressure to weather + available to sensor
* WIP: coordinator next_rain + alert
* Make import step working
* migrate to meteofrance-api v0.0.3
* Create coordinator for rain only if data available in API
* Fix avoid creation of rain sensor when not available.
* Add options flow for forecast mode
* Fix import config causing bug with UI
* Add alert sensor
* Add coastal alerts when available (#5)
* Use meteofrance-api feature branch on Github
* Update unit of next_rain sensor
* Test different type of attibutes
* Typo for attribute
* Next rain sensor device class as timestamp
* Better design for rain entity attributes
* use master branch for meteofrance-api
* time displayed in the HA server timezone.
* fix bug when next_rain_date_locale is None
* Add precipitation and cloud cover sensors
* Add variable to avoid repeating computing
* Apply suggestions from code review
Co-authored-by: Quentame <polletquentin74@me.com>
* Attributes names in const.
* Cleaning
* Cleaning: use current_forecast and today_forecast
* Write state to HA after fetch
* Refactor, Log messages and bug fix. (#6)
* Add messages in log
* Refactor using 'current_forecast'.
* Use % string format with _LOGGER
* Remove inconsistent path
* Secure timestamp value and get current day forecast
* new unique_id
* Change Log message to debug
* Log messages improvement
* Don't try to create weather alert sensor if not in covered zone.
* convert wind speed in km/h
* Better list of city in config_flow
* Manage initial CONF_MODE as None
* Review correction
* Review coorections
* unique id correction
* Migrate from previous config
* Make config name detailed
* Fix weather alert sensor unload (#7)
* Unload weather alert platform
* Revert "Unload weather alert platform"
This reverts commit 95259fdee84f30a5be915eb1fbb2e19fcddc97e4.
* second try in async_unload_entry
* Make it work
* isort modification
* remove weather alert logic in sensor.py
* Refactor to avoid too long code lines
Co-authored-by: Quentin POLLET <polletquentin74@me.com>
* Update config tests to Meteo-France (#18)
* Update meteo_france exception name
* Update MeteoFranceClient name used in tests
* Update 'test_user'
* Make test_user works
* Add test test_user_list
* Make test_import works
* Quick & Dirty fix on exception managment. WIP
* allow to catch MeteoFranceClient() exceptions
* remove test_abort_if_already_setup_district
* bump meteofrance-api version
* We do not need to test Exception in flow yet
* Remove unused data
* Change client1 fixture name
* Change client2 fixture name
* Finish cities step
* Test import with multiple choice
* refactor places
* Add option flow test
Co-authored-by: Quentin POLLET <polletquentin74@me.com>
* Fix errors due to missing data in the API (#22)
* fix case where probability_forecast it not in API
* Workaround for probabilty_forecast data null value
* Fix weather alert sensor added when shouldn't
* Add a partlycloudy and cloudy value options in condition map
* Enable snow chance entity
* fix from review
* remove summary
* Other fix from PR review
* WIP: error if no results in city search
* Add test for config_flow when no result in search
* Lint fix
* generate en.json
* Update homeassistant/components/meteo_france/__init__.py
* Update homeassistant/components/meteo_france/__init__.py
* Update homeassistant/components/meteo_france/__init__.py
* Update homeassistant/components/meteo_france/sensor.py
* Update homeassistant/components/meteo_france/__init__.py
* Update homeassistant/components/meteo_france/__init__.py
* string: city input --> city field
Co-authored-by: Quentin POLLET <polletquentin74@me.com>
* Add node neighbors to websocket api
* Update homeassistant/components/ozw/websocket_api.py
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* Update tests/components/ozw/test_websocket_api.py
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* Add zeroconf discovery for bond integration
* Add zeroconf discovery for bond integration (fix typo)
* Add zeroconf discovery for bond integration (PR feedback)
* Add zeroconf discovery for bond integration (PR feedback)
* Add zeroconf discovery for bond integration (PR feedback)
* Add support for HomeKit doorbell
* Update homeassistant/components/homekit/type_cameras.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/homekit/type_cameras.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* add speaker service for doorbells
* fixed test as doorbell char requires null value
* removed null value for doorbell presses. and removed broken override of default values
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add support for dimmable lights
* Fix formatting
* Add supported features test on Bond Light
* Add more tests to bond light and fixes comments
* Fix rebase conflict resolution
* Apply suggestions from code review
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
* Add support for multiple time triggers in automations
* Attach with single callback
* Patch time in tests
* Improve test coverage
* Adjusting my facepalm moment
Through some testing with the samsungtvws library, it was determined
that the issue is related to the short read timeout (1s). Increasing
the timeout to 10s should solve the issue.
* Dimming duration fix
Fixes#38068 - allows dimming duration to 7620 (default of 7621)
* Forgot to commit my test updates
* Added backwards compatibility with pre-150+ builds
Added tests for backwards compatibility
* Upped the build number cut off
* Add check for major.minor version as well
* Fix major.minor detection
* Adjust variable name
* Adjust version checking logic
* Math is hard
* Rename files, adjust test names
* Update doc string
* Add Abode camera controls
* Add tests for camera turn on and off service
* Bump abodepy version
* Bump abodepy version and updates to reflect changes
* Update manifest
* Refactor bond unit tests to reduce boilerplate
* Refactor bond unit tests to reduce boilerplate (PR feedback)
* Refactor bond unit tests to reduce boilerplate (PR feedback, nullcontext)
We would connect to the hub via discovery and via setup
around the same time. This put additional load on the hub
which can increase the risk of timeouts.
* Add binary sensor support to motion sensors and smoke detectors
* Add support for new sensor events as binary sensors
Adds a default device_class for motion sensors and smoke detector
* Use device type instead of event to set class
* Add some additional binary values
* Fix SimpliSafe to work with new MFA
* Code review (part 1)
* Input needed from Martin
* Code review
* Code review
* Restore YAML
* Tests
* Code review
* Remove JSON patching in tests
* Add reauth test
* One more reauth test
* Don't abuse the word "conf"
* Update homeassistant/components/simplisafe/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Test coverage
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>