* Set default value for input_datetime
If no initial value is set and no value is available to be restored, set the default value as specified in the docs to 1970-01-01 00:00.
* Use regular if statement
Ternary statements can be tricky if you try to keep the value the same if not something
* Add test for default values
Check that if no initial value is set, state returns 1970-01-01 at 00:00
* Fix tests - was passing wrong args to time/date
* Verify we get a timestamp attribute for input_datetime
This adds a check that when using the default timestamp of 1970-1-1 00:00:00, we
get a timestamp attribute. This is waht prompted this PR in the first place, as
when specifying an automation trying to access the timestamp attribute for a non-
initialized input_datetime HASS wouldn't start.
* Simplify the change for a default value
Based on @balloob comment. Simplifying the code
* Revert "Simplify the change for a default value"
This reverts commit c2d67f19a6.
* update vizio component to support latest pyvizio with soundbar support
* Resolved Hound issues
* Additional Hound issue
* Updated based on feedback
* Style updates
* Additional code styling changes
* Added check for auth token not being set for tv device_class
* Limited lines to 80 characters
* moved MAX_VOLUME into base package
* fixed supported commands
* styling changes
* fix styling yet again
* remove unnecessary elif
* removed play/pause since I can't get current state
* changed value access method from config dict
* fixed flake failures
* try to fix docstring
* try to fix docstring
* fixed auth token validation
* rebase and regenerate requirements_all.txt
* updated log text
* line length fix
* added config validation to handle conditionally optional parameter
* updated validate setup log message and string formatting based on review
* fix pylint error
* less ugly
* handle the off part of on with timed off command
* use correct var
* only bind / configure cluster once
* clean up channel configuration
* additional debug logging
* add guard
* prevent multiple discoveries for a device
* cleanup and still configure on rejoin
* Skip entity if no device type found
* Add test for potentially skipped binary sensors
* Reorg code, add tests to ensure all exposed things have types
* Lint
* Fix tests
* Lint
* Add basic support for native Hue sensors
* Update coveragerc
* Simplify attributes
* Remove config option
* Refactor and document device-ness and update mechanism
* Entity docstrings
* Remove lingering config for sensors
* Whitespace
* Remove redundant entity ID generation and hass assignment.
* More meaningful variable name.
* Add new 'not-darkness' pseudo-sensor.
* Refactor sensors into separate binary, non-binary, and shared modules.
* formatting
* make linter happy.
* Refactor again, fix update mechanism, and address comments.
* Remove unnecessary assignment
* Small fixes.
* docstring
* Another refactor: only call API once and make testing easier
* Tests & test fixes
* Flake & lint
* Use gather and dispatcher
* Remove unnecessary whitespace change.
* Move component related stuff out of the shared module
* Remove unused remnant of failed approach.
* Increase test coverage
* Don't get too upset if we're already trying to update an entity before it has finished adding
* relative imports
* Kill bluetooth LE scanning gracefully when asked to shut down.
* Add missing argument.
* Refactor to use data instead of passing nonlocal variables about.
* Fix typo.
* Pass host string instead of forcing an ip-address
Pass the configured host (https://www.home-assistant.io/components/homematic/#host) instead of always forcing an ip-address. This is required to get SSL certificate validation working.
* Remove unused 'socket' import
Because Luftdaten assigns separate ids for particle and weather
measurements, most if not all stations added with config flow will
have non-functional sensors, as mentioned in #19591. This change
prevents the creation of sensors without data.
There was a potential unique ID collission which caused problems for some users, as scenes and devices are enumerated separately, so the same ID could be assigned to in they are unnamed.
So I changed the unique ID generation for scenes to avoid this, which is a breaking change wrt scenes.
* STATE_UNCERTAIN for Homematic Lock devices introduced
Homematic Lock devices provides an uncertain flag if the lock was opened manually an the lock is uncertain regards the status.
The other necassary functionality was implemented in pyhomematic by Daniel earlier...
* enabled attribute transition in light service for homematic dimmer devices
* Update light.py
* Revert "Update light.py"
This reverts commit f5565a006d.
* Revert "Revert "Update light.py""
This reverts commit 2c264826ef.
* fix for line too long error
* trailing whitespace
* Adding Genius Hub
* Added Genius hub
* Correct hound errors
* Correct hound errors.
* Correct tox errors.
* Fix travis errors
* Correct sensor names
* Correct travis errors
* Correct hound errors
* Follow up from code review by Martin Hjelmare
* More changes from code review.
* Attempt to resolve conflicts in requirements_all
* de-lint for the houndci-bot
* better logging message, and small tidy-up
* minor refactor and de-lint
* domain name should be the same as the component name
* use self where appropriate
* minor de-lint
* add entities as a single call
* de-lint
* all read-only attrs almost done
* refactor - near the end
* change state/,ode mapping
* override temp from curr_temp
* all read-only properties working
* working now
* ready for PR, but need to remove logging
* de-lint
* de-linted, ready for merge
* de-linted, ready for merge 2
* didn't like import in climate/__init__
* improve footprint logic
* add manifest.json
* add manifest.json 2
* correct a regression
* fix regression with device.is_on()
* use latest client library
* update to latest client library, 3.3.6
* delint and shoudl be OK to go
* Add target_temp_high/low and current_temperature
water_heater piggy back on climate(thermostat) component in gui,
so these things are already supported by frontend for display
purposes.
* Drop support tags for target high/low
* Remove explicit declaration of automatic found devices as RGBW
* fixes for Magic Home only-white controllers
* mode is now set to None instead of removed entirely
* flux_led now changes no values when turned on from off state.
* better checking for changed values in turn_on
* Reduce waiting time to 1 second
* Correction of turn on logic
* Remove accidentally inserted 'not'
* Remove lint
* Remove redundant code
* load cleanups
* Remove unused methods
* Allow importing requirements at the top of a file
* Fix test
* Lint
* Install reqs ASAP when loading platforms
* Added basic Supla (https://www.supla.org) support (covers)
* PySupla upgrade, minor spelling corrections and .coveragerc update
* Linter errors cleanup
* More linter cleanups.
* Documentation link removal and import sorting
* Docstring formatting
* PR suggestions
* Styling and linting
* PySupla version update
* Removal of ALLOW_EXTRA in SERVER_CONFIG
* Return False on failed connection validation, function order cleanup
* Component manifest
* Missing return None and different way of setting unique_id
* CODEOWNERS update
* CircleCI nudge
* Update config flow to support updating host address
Improve tests
* Update gateway to handle new address signal
* Improve description why whe need to keep step_init
* Corrections and test
* Raise error if does not support setting position
* Raising error for stateless and assumed state covers
* Fix pylint
* Tests
* Update test_trait.py
* Start with Stiebel Eltron heatpump
* STE HP
* Add read of operating mode
* Add read-write operation mode
* Further extract ModBus access
* Separation of platform and API
* Last changes
* Use modbus hub
* Update module doc with config
* Clean up platform code
* Cleanup and update to dev2 of pystiebeleltron
* Remove slave configuration
* Add translation of states
* Make name parameter optional
* Consolidate platform
* Correct .coveragerc after conflict
* Prepare component for sensor platform
* Fix issues found in review
* Remove custom states and map to existing HA states
* Force update, when values are modified
* Update CODEOWNERS and requirements_all.txt
* Fix .coveragerc file
* Exclude stiebel_eltron components in .coveragerc
* Break out to module level constant
* Rename constant
* Removed REQ and DEP constant.
Loading a component defined in a registration didn't actually work and was undocumented, so let's just remove it instead of fixing #23005.
## Checklist:
- [X] The code change is tested and works locally.
- [X] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [X] There is no commented out code in this PR.
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Fix tests
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix light tests [skip ci]
* Fix tests/common
* Fix some mqtt tests [skip ci]
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Fix more tests and manifests
* Readability over shorthand format
* Fix demo/notify tests
* Load dependencies from manifests. Fallback to current DEPENDENCIES
* Load requirements from manifests. Fallback to current REQUIREMENTS
* Fix typing
* Ignore typing correctly
* Split out dependency processing to a new method
* Only pull from manifest if dependencies is non empty
* Inline temporary function
* Fix tests and component manifests which have only one platform
* Fix rflink tests
* Readability over shorthand format
* Clean up requirements
* Use integration to resolve deps/reqs
* Lint
* Lint
* revert a change
* Revert a test change
* Fix types
* Fix types
* Add back cache for load component
* Fix test_component_not_found
* Move light.test and device_tracker.test into test package instead with manifest to fix tests
* Fix broken device_tracker tests
* Add docstrings to __init__
* Fix all of the light tests that I broke earlier
* Embed the test.switch platform to fix other tests
* Embed and fix the test.imagimage_processing platform
* Fix tests for nx584
* Add dependencies from platform file's DEPENDENCIES
* Try to setup component when entity_platform is setting up
Fix tests in helpers folder
* Rewrite test_setup
* Simplify
* Lint
* Disable demo component if running in test
Temp workaround to unblock CI tests
* Skip demo tests
* Fix config entry test
* Fix repeat test
* Clarify doc
* One extra guard
* Fix import
* Lint
* Workaround google tts
* Bump pyubee to 0.4, support more models and detect model automatically
* Update requirements_all.txt
* Check for supported models
* Add model aliases
* Code clean-up
* Updated code to meet reviewer's requests.
* Updated code to meet reviewer's requests.
* Minor update
* Minor update
* Populate mac2name dict
* Return list of MAC addresses, not dict
Co-Authored-By: mzdrale <mzdrale@gmail.com>
* Minor update
* Fix for network issues
Fix for network issues
* Further changes to network connection
* websession is created in pymyq
websession is created in pymyq instead.
Added call on stop event to close web session.
* Updated requirements file
* Added comment
* Changed back to use aiohttp_client
* Cleanup closed sockets in aiohttp
Enable automatic cleanup of closed sockets in aiohttp client helper.
* Updated manifest & requirements
* Updated comment block
* Add amcrest binary_sensors
Add binary_sensors with option motion_detected. Deprecate motion_detector sensor.
* Update per review
* Update per review
Add custom validators to make sure camera names are unique, and to issue warning if deprecated sensors option motion_detector is used.
async_setup_platform should not return a value.
* Another review update
Since there is only one type of binary_sensor, remove type test in update method.
* Logi Circle now uses OAuth2 for authentication, added config flow.
* Service calls now dispatched to camera entities via signalled events
* Update from PR review
* Add unit tests for config flow
* Updated CODEOWNERS
* Reverted change to .coveragerc
* Improved test coverage of config flow
* Work on PR comments
* Work on PR comments
* Update imports
* Work on schema validation
* Fix package
* Add bomradarcam to .coveragerc
* Improve error message for location
* Delinting
* Correct module name in .coveragerc
* Add manifest.json
* Update requirements_all.txt
* Merge bomradarcam into existing bom integration
* Added features to Concord232 Alarm Panel
* Update homeassistant/components/concord232/alarm_control_panel.py
Deleted 'or None' as per @syssi suggestion.
* Ensure we only add a sensor once
* Ensure that we dont process updates for entities that arent what we were setup for
* Add debug logging to ease development of apps
* Use str representation
* Added MyLink component
* Updated requirements.txt
* Fix lint issues
* Removed ‘Scene’ functionality
* Removed state restoration, as state is no longer tracked
* Add component manifest
* Remove documentation links in Docstring
* Removed redundant try/except block
* Removed default dict
* Removed features already implemented in default CoverDevice
* Removed attributes for tracking state
* Simplified loading of covers
No options exist other than reversal, so just check reversal status directly and update if needed
* Reimplemented is_closed property
* Import ENTITY_ID_FORMAT from base component
* Removed misc unused vars
* Update module docstrings to one line
* Removed too many blank lines, giving one back :)
* Return none on TimeoutError
* Added component to .coveragerc
* Fix light tests [skip ci]
* Fix tests/common
* Fix some mqtt tests [skip ci]
* Fix tests and component manifests which have only one platform
* Fix more tests and manifests
* Fix demo/notify tests
* Rollback test for demo.geo_location
* Initial version of climate
* initial commit of climate device support
* Fixed opmode and fanmode
* Cleanup
* meh
* added back all other components
Oops
* wider support for thermostats
Added one more identifier for thermostats to broaden compatibility
* Added even more climate types
* Reworked detection mechanism
Better support for combined devices
* Added additional modes
* force visibility on climate
* Changed logging of device data
* Improved operatingmode support
Improved operatingmode support
* Updated logic for opmode/fanmode list creation
Implemented a universal mapping logic for opmode and fanmode, to make it more widely compatible
Improved mapping of Fibaro FGT devices
* Lint fixes
* bump
* Fixes based on code review
* Fixes
* Moved to fibaro folder
* lint inspired cosmetic changes
* Mapped all operating modes to existing HA ones
Mapped all operating modes to existing HA ones
* Improved compatibility with Heatit thermostats
Thanks to astrandb for testing, debugging and fixing my code
* Changes based on code review
Changes based on code review
* more fixes based on more code review
more fixes based on more code review
* Support stream source for doorbird live camera
* Support stream source for doorbird live camera
* Support stream component on Doorbird camera entities
* Bump library version
* Update manifest
* Lint
* Correct parameter order
* Bugfix - binary_sensor.py
* Added features to Concord232 Alarm Panel
* Added New Line End Of File
* Deleted Whitespace
* Back to original
Removed added feature and sticking to bugfix
* Added option to use manual authentication for google hangout component
See: https://hangups.readthedocs.io/en/latest/user_guide.html#logging-in for manual log in example
Bumped up version of hangups to 0.4.9
* Updated components/hangouts/strings.json and generated translation string by running script/translations_develop
Reduced verbosity of modifications to components/hangouts/config_flow.py
* Added option to use manual authentication for google hangout component
See: https://hangups.readthedocs.io/en/latest/user_guide.html#logging-in for manual log in example
Bumped up version of hangups to 0.4.9
* Updated components/hangouts/strings.json and generated translation string by running script/translations_develop
Reduced verbosity of modifications to components/hangouts/config_flow.py
* fixing missing rebase
* Update Foscam to support stream source
* Removing spaces and tabs
* Changing to Python3-style string formatting
* Adding '_media_port' to hopefully cover other models
* changing logic for success and return none
* Update Foscam stream for newer models
* change if to or
* Store gateways inside a dict in deconz domain
* Make reachable events gateway specific
* Gateway shall always exist
* Adapt new device signalling to support multiple gateways
* Services follow gateway master
* Working on unload entry
* Make unload and master handover work
Improve tests for init
* Fix config flow
* Fix linting
* Clean up init tests
* Clean up hassio discovery to fit with the rest
* Store gateways inside a dict in deconz domain
* Make reachable events gateway specific
* Gateway shall always exist
* Adapt new device signalling to support multiple gateways
* Services follow gateway master
* Working on unload entry
* Make unload and master handover work
Improve tests for init
* Fix config flow
* Fix linting
* Clean up init tests
* Clean up hassio discovery to fit with the rest
* Add support for services to specify bridgeid
## Description:
Mikrotik does some stupid stuff with character encoding that can screw up the DHCP responses. See #15257 for more detail.
**Related issue (if applicable):** fixes#15257
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Raise ConfigEntryNotReady for connection exception
Raise ConfigEntryNotReady for the connection exception like if the MQTT Server container/device is being restarted or was unavailable on boot.
* Add new exception
* grammar fix
* Possibly resolve hound comments
* raise `ConfigEntryNotReady` for mqtt connection error
* revert exceptions.py
* Update exceptions.py
* modify test to handle exception
* use constants to control exception scope
* Raise ConfigEntryNotReady for connection exception
Raise ConfigEntryNotReady for the connection exception like if the MQTT Server container/device is being restarted or was unavailable on boot.
* Add new exception
* Add new exception
* grammar fix
* Possibly resolve hound comments
* raise `ConfigEntryNotReady` for mqtt connection error
* revert exceptions.py
* Update exceptions.py
* modify test to handle exception
* use constants to control exception scope
* revert test change as it's not the same thing
* Update test_init.py
* Add test for MQTT OSError
* revert file changes from a bad rebase
* Rewrite test with valid syntax
* rewrite test to be less ambiguous
* add empty line
* add back 'axis'
* Remove empty line
* Update tests and undo merge from earlier
* correctly restore test for no connect broker
* fix test mock correctly
* line was too long. hit enter.
* Increase aioharmony version to 0.1.11
Update aioharmony version to 0.1.11, this new update contains fixes for websocket connection losses.
* Update requirements_all
* Add mobile_app notify platform
* Requested changes
* Fix incorrect param for status code
* Move push_registrations to notify platform file
* Trim down registration information sent in push
* quotes
* Use async version of load_platform
* Add warning for duplicate device names
* Switch to async_get_service
* add mobile_app.notify test
* Update tests/components/mobile_app/test_notify.py
* Update tests/components/mobile_app/test_notify.py
* Rebrand Cisco Spark notify to be Cisco Webex Teams
* Remove property from class
* Switch to use html for api
* Update notify.py
* Rename CONF_ROOMID to CONF_ROOM_ID
* updated
* Fix lint errors
* Update notify.py
* Update notify.py
* Also validate room ID
* Update notify.py
* Update .coveragerc
* Update notify.py