* Added support for Habitica
Second refactoring
Moved all config to component.
Sensors are autodiscovered.
Signed-off-by: delphi <cpp.create@gmail.com>
* Apply requested changes
Signed-off-by: delphi <cpp.create@gmail.com>
* Made event fire async. Made `sensors` config implicit and opt-out-style.
Signed-off-by: delphi <cpp.create@gmail.com>
* Removed unneeded check and await.
Signed-off-by: delphi <cpp.create@gmail.com>
* Moved into separate component package and added service.yaml
Signed-off-by: delphi <cpp.create@gmail.com>
* Fix coveralls
Signed-off-by: delphi <cpp.create@gmail.com>
* add a component for hangouts
* add a notify component for hangouts
* add an extra message as title
* add support to listen to all conversations hangouts has
* move hangouts to package and add parameter documentation
* update .coveragerc and requirements_all.txt
* makes linter happy again
* bugfix
* add conversations parameter to command words
* Move the resolution of conversation names to conversations in own a function
* typo
* rename group of exclusion form 'id' to 'id or name'
* refactoring and use config_flow
* makes linter happy again
* remove unused imports
* fix not working regex commands
* fix translations
* cleanup
* remove step_init
* remove logging entry
* clean up events
* move constant
* remove unsed import
* add new files to .converagerc
* isort imports
* add hangouts_utils to ignored packages
* upadte doc and format
* fix I/O not in executor jon
* rename SERVICE_UPDATE_USERS_AND_CONVERSATIONS to SERVICE_UPDATE
* move EVENT_HANGOUTS_{CONNECTED,DISCONNECTED} to dispatcher
* add config flow tests
* Update tox.ini
* Adding noaa-tides changes to new branch.
* Fix typo in .coverageac
* Incorporate @MartinHjelmare and @fabaff changes.
* Disable pylint error and add error message for unavailable station.
* Two spaces before inline comments
* Increment py_noaa version to 0.3.0
* Updated requirements.py
* Minor changes
* Implement X10
* Add X10 after add_device_callback
* Ref device by id not hex and add x10OnOffSwitch name
* X10 services and add sensor device
* Correctly reference X10_HOUSECODE_SCHEMA
* Log adding of X10 devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct ref to X10 states vs devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct X10 config
* Debug x10 device additions
* Config x10 from bool to housecode char
* Pass PLM to X10 device create
* Remove PLM to call to add_x10_device
* Unconfuse x10 config and method names
* Correct spelling of x10_all_lights_off_housecode
* Bump insteonplm to 0.10.0 to support X10
* Add host to config options
* Add username and password to config for hub connectivity
* Add username and password to config for hub
* Convert port to int if host is defined
* Add KeypadLinc
* Update config schema to require either port or host
* Solidify Hub and PLM configuration to ensure proper settings
* Update hub schema
* Bump insteonplm version
* Fix pylint and flake issues
* Bump insteonplm to 0.12.1
* Merge insteon_plm and insteon_local to insteon
* Rename insteon_plm to insteon
* Bump insteonplm to 0.12.2
* Flake8 cleanup
* Update .coveragerc for insteon_plm, insteon_local and insteon changes
* Add persistent notification
* Fix reference to insteon_plm
* Fix indentation
* Shorten message and fix grammer
* Add comment to remove in release 0.90
* Hound fix
* Ecovacs Deebot vacuums
* All core features implemented
Getting fan speed and locating the vac are still unsupported until sucks adds support
* Move init queries to the added_to_hass method
* Adding support for subscribing to events from the sucks library
This support does not exist in sucks yet; this commit serves as a sort of TDD approach of what such support COULD look like.
* Add OverloadUT as ecovacs code owner
* Full support for Ecovacs vacuums (Deebot)
* Add requirements
* Linting fixes
* Make API Device ID random on each boot
* Fix unique ID
Never worked before, as it should have been looking for a key, not an attribute
* Fix random string generation to work in Python 3.5 (thanks, Travis!)
* Add new files to .coveragerc
* Code review changes
(Will require a sucks version bump in a coming commit; waiting for it to release)
* Bump sucks to 0.9.1 now that it has released
* Update requirements_all.txt as well
* Bump sucks version to fix lifespan value errors
* Revert to sucks 0.9.1 and include a fix for a bug in that release
Sucks is being slow to release currently, so doing this so we can get a version out the door.
* Switch state_attributes to device_state_attributes
* Add a sensor for netatmo public data
* A bit of cleanup before submitting pull request
* Add netatmo_public file to .coveragerc, as per pull request template instructions
* Fixes for tox complaining
* make calculations simpler, based on review feedback
* explicitly pass required_data parameter to netatmo API
* remove unnecessary spaces
* remove debug code
* code style fix
* add pjlink media player component
* retrieve pjlink device name from projector if name isn't specified in configuration
* update .coveragerc
* fix style
* add missing docstrings
* address PR comments from @MartinHjelmare
* fix code style
* use snake case string for source names
* add missing period at the end of comment string
* rewrite method as function
* revert to use source name provided by projector
* Add media_player.dlna_dmr component
* PEP 492
* Move DIDL-template up
* Remove max_volume-override option
* Remove picky_device support
* Use DEFAULT_NAME
* Make supported_features static
* Remove unneeded argument
* Proper module-docstring
* Add http dependency
* Remove additional_configuration options, no longer used
* Change default name to 'DLNA Digital Media Renderer'
* Use python-didl-lite for DIDL-Lite-xml construction/parsing
* Handle NOT_IMPLEMENTED for UPnP state variables RelativeTimePosition and CurrentMediaDuration
* Use UPnP-UDN for unique_id
* Proper handling of upnp events
* Keeping flake8 happy
* Update requirements_all.txt
* Make UDN optional
* Ensure NotifyView is started, before using it
* Only subscribe to services we're interested in
* Don't update state_variables if value has not been changed + minor refactoring
* Improve play_media, follow flow of DLNA more closely
* Hopefully fix ClientOSError problems
* Flake8 fixes
* Keep pylint happy
* Catch errors and report gracefully
* Update async_upnp_client to 0.11.0
* Don't be so noisy
* Define/use constants for HTTP status codes
* Add discovery entry for dlna_dmr
* More robustness with regard to state variable not being set (yet)
* Keep privates hidden
* Handle NOT_IMPLEMENTED for CurrentTrackMetaData state variable
* Fixes in async_upnp_client + renew UPnP subscriptions regularly
* Not too eager
* Refactor duplicate code to _current_transport_actions and improve parsing of actions
* Support RC:1 to RC:3 and AVT:1 to AVT:3
* Moved DLNA-specifics to async_upnp_client.dlna.DmrDevice
* Use our own HTTP server to listen for events.
* More clear and explicit log message for easier troubleshooting
* Follow changes by hass, fixes traceback
* Fix not being able to do next
* Changes after review by @MartinHjelmare
* Linting
* Use homeassistant.util.get_local_ip
* Moved upnp event handling to async_upnp_client
* Keeping pylint happy
* Changes after review by @MartinHjelmare
* add enphase envoy component
* Add Enphase Envoy component for energy monitoring
* Fix formatting problems
* Fix formatting errors
* Fix formatting errors
* Fix formatting errors
* Change unit of measurement to W or Wh. Return sensor states as integers
* Fix formatting errors
* Fix formatting errors
* Fix formatting errors
* Move import json to update function
* Fix formatting. Add file to .coveragerc
* Add new component to requirements_all.txt
* Move API call to third party library on PyPi
* Refactor
* Run gen_requirements_all.py
* Minor refactor
* Fix indentation
* Fix indentation
* Add Genie Aladdin Connect cover component
* Fix lines being too long
* Fix issues found in review
* remove Unknown state, use None instead
* Fixed requirements_all
* Add a component for Sisyphus Kinetic Art Tables
The [Sisyphus Kinetic Art Table](https://sisyphus-industries.com/) uses a
steel ball to draw intricate patterns in sand, thrown into sharp relief by a
ring of LED lights around the outside.
This component enables basic control of these tables through Home Assistant.
* Fix lints
* Docstrings, other lints
* More lints
* Yet more.
* Feedback
* Lint
* Missed one piece of feedback
* - Use async_added_to_hass in media player
- async_schedule_update_ha_state in listeners
- constants for supported features
- subscripting for required keys
- asyncio.wait
- update to sisyphus-control with passed-in session
* Update requirements
* lint
* Added support for FutureNow light platform and relay/dimmer units
* Pinned specific version for requirement
* Added support for FutureNow light platform and relay/dimmer units
* Added futurenow.py to .coveragerc.
* Minor fixes and enhancements as requested in the code review.
* Minor fixes and enhancements as requested in the code review.
* Use device_config's value directly as it's validated as boolean.
* Simplify state check.
* Fixed brightness update that was broken in previous commit.
* add spider thermostats
* Added load_platform. Added operation dictionary. Minor improvements
* loop over spider components for load_platform
* added empty dict to load_platform. changed add_devices
* moved logic to the API
* fix requirements_all.txt
* minor code improvements
* support for tuya platform
* support tuya platform
* lint fix
* change dependency
* add tuya platform support
* remove tuya platform except switch. fix code as required
* fix the code as review required
* fix as required
* fix a mistake
* Add Cloudflare DNS component
* Removed man
* Update .coveragerc
* Update cloudflare.py
* Update cloudflare.py
* Changed records to be required
* Fix typos, update order and other minor changes
* Added support for Duke Energy smart meters
* Fixed hound
* Added function docstring
* Moved strings to constants, implemented unique_id, and cleaned up setup.
* Added doc string.
* Fixed review issues.
* Updated pydukenergy to 0.0.6 and set update interval to 2 hours
* Updated requirements_all
* Added support for Xiaofang Camera
* Added entry for Xiaofang 1080p camera
* Code fix
* Minor comment fix
* Updated coveragerc for Xiaomi cameras
* Added Xiaomi Camera
Added Xiaomi Camera to accommodate multiple models like Yi, Xiaofang, etc.
* Minor code fix
* Minor code fix
* Added model property
* Update xiaomi.py
* Minor code fix
* Update xiaomi.py
* Update xiaomi.py
* Minor code fix
* Package requirement fix due to Version conflict
* To fix conflicts
* Update package_constraints.txt
* Minor fix
* Update xiaomi.py
* Update xiaomi.py
Changes made per comment
* Update xiaomi.py
* Don't update on add.
* first blood for ZhongHong HVAC Controller
* add requirements
* requirements_all.txt updated
* add zhong_hong.py to coveragerc
* add comments
* unique_id add platform name
* zhong_hong_hvac version bump to 1.0.1
* improve some coding style to match the project standard
* zhong_hong_hvac version bump to 1.0.4
* zhong_hong_hvac version require 1.0.7
* update requirements by script/gen_requirements_all.py
* zhong_hong_hvac version bump to 1.0.8
* fix startup problem
* remove unused import
* zhong_hong_hvac version bump to 1.0.9
- operation_mode: cold -> cool
* start hub listen event when all climate entities is ready
* use dispatcher to setup hub
* var name change
SIGNAL_DEVICE_SETTED_UP -> SIGNAL_DEVICE_ADDED
* async problem fix
* bugfix: set_operation_mode forget to use upper case
* stringify the exception instead of print full stack of traceback
* avoid to call str(exception) explicity
* remove unnecessary try...except clause
* remove unused import
* Epson projector support. Version based on external library
* Epson projector support. Version based on external library
* modified epson according to MartinHjelmare review.
Added description of cmode to services.yaml
* renamed EPSON_SCHEMA to epson_schema
* removed method of getting cmode property
* removed unnecessary checks
change name of cmode service
* renamed SERVICE_ATTR_CMODE to SERVICE_SELECT_CMODE
* initial commit for kiwi door locks
bugfixes
improved attribute display
flake8
more style adjustments
* added session handling
flake8
* added requirements_all
reordered imports and flake8
attempt to pelase a very picky linter
also pleasing pylint now :)
* re-try the build
* added kiwi.py to .coveragerc
* reorganized datetime handling and attribute naming
* created pypi package for door lock library
* updated requirements_all.txt
* code review changes
* added async lock state reset for locking state
* refactored lat/lon attribute updates
* initial locked state changed from undefined to locked
* refactored is_locked property check
* handling authentication exception in setup_platform
* added more check in setup_platform
* code review changes: return type in setup_platform
* fixed logging issue
* event handling in main thread
* updated kiwiki-client to version 0.1.1
* renamed alias e to exc
* added new platform for the Unitymedia Horizon HD Recorder
* improve connection handling of the horizon platform
* remove unneeded parameters and fix spelling in the horizon platform
* abort or raise exception if connection to the device could not be established
* remove channel/source list and SELECT_SOURCE feature
* remove useless type check after cast and use a try block instead
* abort or raise exception if reconnect to device fails
* remove protocol specific code and restructure sending logic accordingly
* fix indentation to be pep8 complaint
* remove unused methods/properties
* fix unnecessary pylint commands and use a return to abert outside of setup_platform
* directly access config values
* Added Uptime Robot sensor
* added newline at the end and corrected doclink
* Added changes form @cdce8p
* Convert to binary_sensor
* updated requirements
* moved to correct dir
* Update uptimerobot.py
* Initial version of wirelesstags platform support.
* Pinned wirelesstagpy, generated requirements_all.
* Fixed temperature units in imperial units systems, make binary events more tags specific.
* Lowercased tag name during entity_id generation.
* Fixed: tag_id template for tag_binary_events, support of light sensor for homebridge.
* Minor style cleanup.
* Removed state, define_name, icon. Reworked async arm/disarm update. Removed static attrs. Introduced available property. Custom events contains components name now. Cleaned dedundant items from schema definition.
* Removed comment and beep duration from attributes. Minor cleanup of documentation comment.
* Ignoring Wemo switches linked in iOS app.
* Reworked passing data from platform to components using signals.
This commit adds a new history component for the IBM Watson IoT
Platform. The IBM Watson IoT Platform allows for tracking of devices
and analytics on top of the device data. This new component allows
users to have home assistant automatically populate a watson iot
platform board with device data from devices managed by home assistant.
* Add a device tracker for Freebox routers
* Automatic setup of Freebox device tracker based on discovery
* Make the Freebox device tracker asynchronous
* Starting to add attributes
* All attributes added to programs
* Basic zone attributes in place
* Added advanced properties for zones
* We shouldn't calculate the MAC with every entity
* Small fixes
* Basic framework for push in play
* I THINK IT'S WORKING
* Some state cleanup
* Restart
* Restart part 2
* Added stub for service schema
* Update
* Added services
* Small service description update
* Lint
* Updated CODEOWNERS
* Moving to async methods
* Fixed coverage test
* Lint
* Removed unnecessary hass reference
* Lint
* Lint
* Round 1 of Owner-requested changes
* Round 2 of Owner-requested changes
* Round 3 of Owner-requested changes
* Round 4 (final for now) of Owner-requested changes
* Hound
* Updated package requirements
* Lint
* Collaborator-requested changes
* Collaborator-requested changes
* More small tweaks
* One more small tweak
* Bumping Travis and Coveralls
* Added the Hydrawise component.
* Fixed lint errors.
* Multiple changes due to review comments addressed.
* Simplified boolean test. Passes pylint.
* Need hydrawiser package version 0.1.1.
* Added a docstring to the device_class method.
* Addressed all review comments from MartinHjelmare.
* Changed keys to single quote. Removed unnecessary duplicate method.
* Removed unused imports.
* Changed state to lowercase snakecase.
* Changes & fixes from review comments.
* Added platform lw12wifi for Lagute LW-12 Wifi Lights
Supported features:
* RGB colors
* Variable brightness
* 29 effects
* Changing transitions speed for animated effects
* Added lw12wifi to the list of omitted files to test
* Added lw12 module as new requirement for lw12wifi platform
* Added configuration example docstring for platform lw12wifi
* Updating code according to review in PR:
* Removed unused imports: enum, socket.
* Unused and not imported feature SUPPORT_FLASH was removed.
* Unused import lw12 in setup_platform method removed.
* Fixed indention for valuptuous.
* Changed check if effect is None.
* Removed personal debug output.
* Blocking function are not async anymore.
* Further improvements to satisfy PR.
* Unused import asyncio removed.
* Fixed: Return value and docstring no match up for `assumed_state`.
* Check if the set effect is supported, otherwise revert to normal light.
* Added describing missing docstrings to all functions.
* Adopted code to work with HS color setting.
* Syntactical change in comment.
* Removed redefinition of DOMAIN.
* Refactored lw12 controller setup: removed requirement for host and port in LW12Wifi class.
* Rewritten supported feature setup to a more static expression.
* Removed unused rgb_color property
* Fixed typo in comment for set_light_option
* Changed RGB option validation schema
* Removed instance properties as config options
* Removed optional settings to be more inline with code style.
* Removed unused option from config example
* Removal of unused import
* Added property to disable state polling for this entity.
* Raise an exception if an unknown effect was selected.
* Fixed an issue with the check for known effects.
* As we do not need to set a default, use simple accessing by key.
* Log if an unknown effect was selected.
* Added link to future documentation.
* moved regular updates definition to own method to be able to override behaviour in subclass
* moved filter by max entries to own method to be able to override behaviour in subclass
* event type used when firing events to the bus now based on variable to be able to override behaviour in subclass
* feed id introduced instead of url for storing meta-data about the feed to be able to fetch the same feed from different configs with different filtering rules applied
* keep the status of the last update; continue processing the entries retrieved even if a recoverable error was detected while fetching the feed
* added test cases for feedreader component
* better explanation around breaking change
* fixing lint issues and hound violations
* fixing lint issue
* using assert_called_once_with instead of assert_called_once to make it compatible with python 3.5
* add familyhub.py camera
* fix import and REQUIREMENTS
* add to coveragerc
* fix formatting to make houndci-bot happy
* ran scripts/gen_requirements_all.py
* use CONF_IP_ADDRESS
* Revert "ran scripts/gen_requirements_all.py"
This reverts commit 3a38681d8a.
* fix library name
* add missing docstrings and enable polling
* Sort imports
* Add first version of the Matrix bot
* It's a stupid but necessary change…
* Dont list it twice
* All hail the linter!
* More linter-pleasing
* Use the correct user ID
* Add expression commands
* Add tests for new validators
* Fix room alias handling
* Wording
* Defer setup
* Simplify commands
* Handle exceptions
* Update requirements
* Review
* Move login back to constructor
* Fix review comments
* Add basic PostNL sensor (WIP)
* Update PostNL sensor
* Bump version
* Small updates to PostNL package based on feedback
* Remove unused import
* Pass api to sensor
* Refactor based on feedback
* Update based on feedback
* Fix feedback
* Clean up
* Bugfiix
* Bugfix
* SCAN_INTERVAL fix
* Remove unused import
* Refactor for new wrapper implementation
* Update postnl package requirement
* Change throttle logic
* Update package version
* Add new line
* Minor changes
* Change refresh time to 30 minutes
* Update requirements_all.txt
* Adding USCIS component
* Adding Line after the class DOC
* Update : Extract USCIS logic code to Component
* Update : Extract USCIS logic code to Component
* Adding CURRENT_STATUS
* Change Error handling, remove date from attributes
* Update the Version for USCIS
* Update uscis.py
* Add support for controlling homekit lights and switches
This adds support for controlling lights and switches that expose a HomeKit
control interface, avoiding the requirement to implement protocol-specific
components.
* Comment out the homekit requirement
This needs to build native code, so leave it commented for now
* Review updates
* Make HomeKit auto-discovery optional
Add an "enable" argument to the discovery component and add a list of
optional devices types (currently just HomeKit) to discover
* Further review comments
* Update requirements_all.txt
* Fix houndci complaints
* Further review updates
* Final review fixup
* Lint fixups
* Fix discovery tests
* Further review updates
* Add support for Eufy bulbs and switches
Add support for driving bulbs and switches from the Eufy range.
* Fix hound checks
* Satisfy pylint
* Handle review comments
* Review updates and test fixes
* PyLint is a bit too aggressive
* Google Maps location sharing device tracker.
* Use ConfigType and change debug logging to _LOGGER.debug()
* Update to locationsharinglib 0.3.0
* Remove unneeded lines.
* Use hass.config.path for config file location.
* Fixed remarks
* Return boolean in setup_scanner
* Create trafikverket_weatherstation.py
Created PR 12111 but due to permission issue I'm creating a new fork and PR.
* Added dot
Added dot to the first (second) row of the file, after the description.
* Corrections based on feedback
Done:
- Run flake8 before this commit
- Fixed invalid variables
- Shortened the xml variable/query via if statement (air_vs_road)
- Moved imports if update() to top of the file
- Imported CONF_API_KEY and CONF_TYPE
- Updated documentation (api_key): home-assistant/home-assistant.github.io#4562
Actions left:
- Error handling
- Request timeout
- Add sensor (file) to .coveragerc
* Multiple corrections
Done:
- Executed pylint and flake8 tests before commit
- Fixed import order
- Implemented request timeout
- Used variable air_vs_road in the return as well
Actions left:
- Error handling
- Add sensor (file) to .coveragerc
* Error handling
Done:
- Error handling for network
- Error handling for JSON response
* Added trafikverket_weatherstation.py
Added trafikverket_weatherstation.py in correct order.
* Road as default
Changed if statement to check for 'road' which means it will always defaulting to 'air' in other cases. Even if it will only accept 'air' and 'road' from the PLATFORM_SCHEMA.
* Updated variable names
Updated variable names to be more understandable as requested by @MartinHjelmare
* Standard Libraries
Grouped Standard Libraries
* Return None
Changed return None to only return as suggested.
* Added a simple component to support the BLNET
Adds a component based on pyblnet, that hooks up the blnet to home assistant
* Adds support for custimzation of blnet sensor devices
* Setting up blnet as a platfrom
* Updated use of state_attributes
Now the friendly_name (and for digital values the mode) is set in the state_attributes whereas the name is defined as "blnet_(analog|digital)_{sensornumber}" so you can reliably add them to groups.
* Added support for the SyncThru printer web service
* Added pysyncthru to the requirements
* Changed to Dependencis, import inside setup_platform
* Switch back to REQUIREMENTS
Looks like DEPENDENCIES is not meant for python packages but for other HA components
* Fixed access to _attributes
* Final fix
* Several Bugfixes
When the printer goes offline, the last state will be kept.
Also now checks if the printer is reachable upon setup
* Register syncthru as discoverable
* Included possible conditions to monitor
* Split the printer sensor in several seperate sensor entities
* Fixed bug at sensor creation, pep8 conform
* Bugfix
* Bugfix
* Removed Blnet components
* Fixed unused import
* Renamed discoverable to samsung_printer
* Removed unused Attribute _friendly_name
* Inserted missing space
* Pinned requirements and added to coveragerc
* Reduced redundancy by condensing into multiple sub-classes
* Fixed indentation
* Fixed super constructor calls
* Fixed super constructor calls
* Fixed format
* Resolving style issues and using name instead of friendly_name
* Pinned pysyncthru in requirements_all, having trouble with friendly_name
* Iterating over dictionary instead of dict.keys()
* ran gen_reqirements_all.py
* Fixed flake 8 issues
* Added a simple component to support the BLNET
Adds a component based on pyblnet, that hooks up the blnet to home assistant
* Implemented requested changes
* raised dependecies to pysyncthru version that has timeouts
* Raised required version for full timeout support
* Adds support for custimzation of blnet sensor devices
* Setting up blnet as a platfrom
* Updated use of state_attributes
Now the friendly_name (and for digital values the mode) is set in the state_attributes whereas the name is defined as "blnet_(analog|digital)_{sensornumber}" so you can reliably add them to groups.
* Added support for the SyncThru printer web service
* Added pysyncthru to the requirements
* Removed Blnet components
* Pinned requirements and added to coveragerc
* Fixed indentation
* Fixed format
* Pinned pysyncthru in requirements_all, having trouble with friendly_name
* ran gen_reqirements_all.py
* Updated requirements_all
* Renamed sensor objects, removed passing of hass entity
* Removed merge artifacts
* Reset syncthru to newest state
* Updated requirements_all
* switched to using the newest version of pysyncthru
* Sorted coveragerc
* Add IFTTT alarm control panel
* Update .coveragerc
* Add support for code
* Bugfix
* Fix logging problem
* Pin requirements
* Update requirements_all.txt
* Fix lint errors
* Use ifttt component as a dependency instead of interacting with ifttt manually
Take into account review comments
* No default value for code
* Take into account review comments
* Provide a "push_alarm_state" service to change the state from IFTTT
* Add service description
* Fix @balloob review comments. Thanks!
* Fix service description name
* Add initial support fo HomematicIP components
* Fix module import
* Update reqirments file as well
* Added HomematicIP files
* Update to homematicip
* Code cleanup based on highligted issues
* Update of reqiremnets file as well
* Fix dispatcher usage
* Rename homematicip to homematicip_cloud
* Added Foobot device sensor
* Added error handling tests
* Corrections after PR review.
* Migrated to async/await syntax
* lint fixes
* stop raising HomeAssistantError
* debug log for number of requests
* Moved shared data between sensors from a class attribute to a separate class
* Made test more async-aware
disabled setup error test for now as it's not working
* Working failure scenarios tests
* Added Zillow Zestimate sensor.
* Add zestimate.py to .coveragerc
* Fix line 167 81>80
* Incorporate tinloaf changes.
* Saving work
* Incorporate changes requested by MartinHjelmare
* Remove unnecessary import
* Add a blank line between standard library and 3rd party imports
* Support TekSavvy Unlimited Plans
Support TekSavvy account usage for unlimited plans.
Seeing cap limit to 0 will now provide unlimited behaviour on usage calculations.
* Add unit tests to sensor.teksavvy
Add coverage unit tests to TekSavvy Sensor component, none existing previously.
* Added Sense energy monitor sensor
* Added missing =
* Style updates
* Added newline, but not blank line at end of file
* Updated sense API to 0.2.2
* Moved import in function
* Fixed tabs
* Updated requirements
* Removed bare except
* Longer update times and more stats
* sense api update
* Updated to use string formatting
* Setup to use monitored_conditions
* Fix syntax
* API update
* blank space fixes
* More blank fixes
* API version update
* Fixed comment format
* removed unneeded function call
* Add Songpal ("Sony Audio Control API") platform
This adds support for a variety of Sony soundbars and potentially
many more devices using the same API.
See http://vssupport.sony.net/en_ww/device.html for list of
supported devices.
* add songpal requirement
* update coveragerc
* fix linting
* add service description to yaml
* add entity_id
* make pylint also happy.
* raise PlatformNotReady when initialization fails, bump requirement for better exception handling
* use noqa instead of pylint's disable, fix newline error
* use async defs and awaits
* Make linter happy
* Changes based on code review, fix set_sound_setting.
* define set_sound_setting schema on top of the file
* Move initialization back to async_setup_platform
* Fix linting
* Fixes based on code review
* Fix coveragerc ordering
* Do not print out the whole exception trace when failing to update
* Do not bail out when receiving more than one volume control
* Set to unavailable when no volume controls are available
* first attempt at synology chat as a notification platform
* quick fix
* houndci and coverage
* Cleanup
Some cleanup of the file
* Ugh underscore
* Use string formatting
* Remove `CONF_NAME`
* Added python-spotcrime sensor
* Added python-spotcrime sensor
* Remove accidental included file
* Update indentation to match PEP8
* Remove days from const.py
* Changed default days to 1
* Incorporate changes requested by MartinHjelmare
* Remove unnecessary import and fix lint error
* Adds folder sensor
The state of the sensor is the time that the most recently modified
file in a folder was modified.
* Address lint errors
* Edit docstrings
Makes the recommended edits to docstrings
* Update .coveragerc
Add sensor/folder.py
* Update folder.py
* Address requests
Address requests changes
* Adds folder
* Adds test, tidy up
* Tidy
* Update test_folder.py
* Update folder.py
* Fix setup
Fix setup with else statement
* Update folder.py
* Update folder.py
* Remove list of files from attributes
* Update test_folder.py
* Update folder.py
* Update test_folder.py
* Update folder.py
* Update folder.py
* first working version of BMW connected drive sensor
* extended coveragerc
* fixed blank line
* fixed pylint
* major refactoring after major refactoring in bimmer_connected
* Update are now triggered from BMWConnectedDriveVehicle.
* removed polling from sensor and device_tracker
* backend URL is not detected automatically based on current country
* vehicles are discovered automatically
* updates are async now
resolves:
* https://github.com/ChristianKuehnel/bimmer_connected/issues/3
* https://github.com/ChristianKuehnel/bimmer_connected/issues/5
* improved exception handing
* fixed static analysis findings
* fixed review comments from @MartinHjelmare
* improved startup, data is updated right after sensors were created.
* fixed pylint issue
* updated to latest release of the bimmer_connected library
* updated requirements-all.txt
* fixed comments from @MartinHjelmare
* calling self.update from async_add_job
* removed unused attribute "account"
* added smappee component
* Fixed pylint errors and a few use cases when starting up with invalid credentials
Added coverage omit
* Added support to run only locally
Added a few more sensors
Added more error handling
Better parsing and debug message
* fixed smappee switch after local/remote support was added
* Smappee - update switches for local support (#3)
* Merged with local version
* Updated smappy library with the patched one
Fixed lint, added merge missing param
Fixed missing run for requirements_all.txt
Fixed lint
* Fixed on/off based on library. Reverted change used for testing stacktrace
* Fixed switches to work with both remote and local active
Fixed lint
Fixed switches
Fixed lint
* nothing to update per switch as the states are not saved by smappee system
* added better error handling for communication errors with smappee
* fixed lint errors
* fixed comment
* fixed lint error
* fixed lint error
* update smappee module with reviewer comments
- update smappy module
- cache cloud api requests
- added actuator info
- updated return states
* Add support for August doorbell
* Address PR comment for August platform
* Address PR comment for August binary sensor
* Address PR comment for August camera
* Addressed PR comment for August lock
* - Fixed houndci-bot error
* - Updated configurator description
* - Fixed stale docstring
* Added august module to .coveragerc
* Added the Xiaomi TV platform.
* Implemented a more efficient default name.
* Fixed a few style errors that slipped past the eye.
* Indicate that state is assumed.
* First version of remote xiaomi-miio
* added to coveragerc
* fixed pylint error
* misc fixes and input validation
* address syssi's requests except device and async_service_handler
* forgot to run linter
* implemented async_service_handler
* fixed delay == None, honor timeout given by user, pythonic compare of None
* Added some whitespace for readability, added error message to turn_on and turn_off, fixed services.yaml examples
* fixed pylint errors
* readd pass for readability
* fixed small stuff
* Use RemoteDevice, Make send_command non-async
* Ready code for next version of python-miio (Support for pronto hex codes)
* cast command_optional to int, better input validation, fixed index out of bounds error.
* revert code now in python-miio
* ready for python-miio 0.3.5
* Removed unneccary return statements
* require 0.3.5
* Rebase and update requirements_all.txt
* make port mapping optional
* dependencies + improvements
* Added bytes and packets sensors from IGD
* flake8 check
* new sensor with upnp counters
* checks
* whitespaces in blank line
* requirements update
* added sensor.upnp to .coveragerc
* downgrade miniupnpc
Latest version of miniupnpc is 2.0, but pypi only has 1.9
Fortunately it is enough
* revert to non async
miniupnpc will do network calls, so this component can’t be moved to
coroutine
* hof hof
forgot to remove import ot asyncio
* Add baudrate option
* merge
* Added Mediaroom media_player component
* Updated header
Works with MEO and VDF set-top boxes in Portugal
* formatting
* Development Checklist (done)
* fix formatting according to houndci-bot
* more format fixing (tks houndci-bot)
* more fixes
* too much cleanup...
* too much
* pylint check
* Initial commit
Basic configuration testing
* flake8 and lint
* Add Mercedes me component
* pump api version to 0.1.2
* Add Mercedes me component
* pump api version to 0.1.2
* clean up code
* Code cleanup
* Remove unneeded return statement
* Return statements added again
* Implement requested changes
* Rework component, move data load to component
* lint
* remove debug logging
* Change RainCloud comments, change from track_utc_time to track_time_interval
* Final cleanup for version 1
* Base platform in place
* Logic in place
* Requirements and coverage
* Fixed some linting issues
* Small attribute reorganization
* Collaborator-requested changes round 1
* Updated documentation
* worked on first version of IOTA wallet
* added sensor for IRI node
* added requirements
* ignored new component in test coverage
* changed length of line
* fixed linter issues
* changed requested changes
* moved attributes of IRI node
* change coverage definitions
* changed loading of platforms
* changed loading of platforms
* changed initial state of wallet sensor
* changed handling of config
* changed attribute handling for IOTA node sensor
* Follow the component style
* Fix ordering and docstring
* Fix pylint issue
* New venstar climate component
* Corrected items raised during the PR process.
* Corrected flak8 issues.
* Add support for venstar models without humidity control.
* Changed the idle operation mode to off. Few other adjustments.
* Minor changes (log messages, sorting, etc.)
* Adding BME680 Sensor Component
* Flake8 lint fixes
* PyLint fixes
* Fix for log line
* Updating requirements for testing
* Fix PyLint Log format errors and add to coveragerc ommisions as requires sensor connected
* Regenerated requirements_all.txt
* Added Pylint exception for import error of system specific library
* Refactored async_add_platform to move IO out to avoid heavy yield usage
Add waterfurnace platform
This adds support for waterfurnace geothermal systems. This is
implemented as a component as there will eventually be some active
control elements. This is not done as a climate platform because
geothermal systems work best when set at a constant temperature as
they are tuned to keep within 0.5 degrees F of a setpoint, and large
temperature shifts are slow and expensive.
This is done in the Data + Sensors model, with the Data component
having a regular update thread. That thread needs to call the read()
function at least every 30 seconds otherwise the underlying websocket
is closed by the server.
* Added IHC platform
* Updated requirements for IHC platform
* Exclude IHC from test
* Correcting flake8 issues
* Fixing more flake8 issues
* Fixed flake8 issues
* Fixing pylint issues
* Fixed flake8 issues
* Changes from PR review.
* STATE_UNKNOWN changed to None
* Spelling mistake in comment
* Added IHC platform
* Updated requirements for IHC platform
* Exclude IHC from test
* Correcting flake8 issues
* Fixing more flake8 issues
* Fixed flake8 issues
* Fixing pylint issues
* Fixed flake8 issues
* Changes from PR review.
* STATE_UNKNOWN changed to None
* Spelling mistake in comment
* Updated requirements_all.txt with gen_requirements_app.py
* Pylint fix: No space allowed around keyword argument assignment
* PR review changes
* Moved auto setup from platforms to ihc component
* Do no auto setup if there are no IHC products found
* Changes from PR review
* Added support for TekSavvy bandwidth sensor
* Variable name fix
* Units are Gigabytes and not Gigabits
* Change REST calls to use asyncio
* houndci violation fix
* pylint fix
* Fix for code review
* Import order asyncxxx:wq
* Tweak docstrings and log message
* mychevy: added basic mychevy component
This implements a component using the mychevy library (which utilizes
selenium to webscrape the mychevy website for onstar for your
car). The architecture works by having a background thread doing
periodic polling of the website, and updating the sensors when new
data is found.
This requires rather more setup than most platforms, as you need
working selenium. Instructions will be provided on the component
list. All the sensors are spawned and coordinated from a single "hub"
as they are really just attributes of the same web scraping session.
* mychevy: only poll every 30 minutes
* mychevy: update sensors
* mychevy: better error handling
* mychevy: tweaking for refactor
* mychevy: bump version to handle odometer > 1000
* mychevy: great sensor reorg
* mychevy: add binary sensors
* mychevy: bump mychevy requirement
* mychevy: use dispatcher
Instead of directly modifying the sensors, this lets us use a
dispatcher to have sensors pull information from the car object when
there is a relevant update for them.
* mychevy: remove from coverage
* mychevy: dedicated constants for dispatch signals
This makes the dispatch signals dedicated topics, and fixes updating
the state on the sensors so that they are correctly updated.
* mychevy: updated with comments from martinhjelmare
* mychevy: set battery icon based with helper function
* Address additional review feedback
* Address additional review comments
* Add new iGlo component
* Missing comma
Add extra blank lines
* Dont change state in turn_on
Remove unused variables
Update before add
* Fixing some lint issues
* Add toucline platform
* Fix bugs suggested by houndci-bot
* Fix bugs suggested by houndci-bot
* Fix style based on comments and lint
* Remove target temperature
* Fix unexpected EOF
* Fix unexpected EOF
* Fix wrongfully named numberOfDevices variable
* Add target temperature
* Update requirements_all.txt
* Change after review
* Add supported features
* Remove update in constructor
* Set member variables to none in constructor
* Minor changes
* Added Daikin climate component
* Fixed tox & hound
* Place up the REQUIREMENTS var
* Update .coveragerc
* Removed unused customization
* Prevent setting invalid operation state
* Fixed hound
* Small refactor according to code review
* Fixed latest code review comments
* Used host instead of ip_address
* No real change
* No real change
* Fixed lint errors
* More pylint fixes
* Shush Hound
* Applied suggested changes for temperature & humidity settings
* Fixed hound
* Fixed upper case texts
* Fixed hound
* Fixed hound
* Fixed hound
* Removed humidity since even the device has the feature it cant be set from API
* Code review requested changes
* Fixed hound
* Fixed hound
* Trigger update after adding device
* Added Daikin sensors
* Fixed hound
* Fixed hound
* Fixed travis
* Fixed hound
* Fixed hound
* Fixed travis
* Fixed coverage decrease issue
* Do less API calls and fixed Travis failures
* Distributed code from platform to climate and sensor componenets
* Rename sensor state to device_attribute
* Fixed hound
* Updated requirements
* Simplified code
* Implemented requested changes
* Forgot one change
* Don't allow customizing temperature unit and take it from hass (FOR NOW)
* Additional code review changes applied
* Condensed import even more
* Simplify condition check
* Reordered imports
* Disabled autodiscovery FOR NOW :(
* Give more suggestive names to sensors
* Base implementation of component, no sensors yet
* Added senor files
* First fully working chain of sensors and binary sensors going from hardware in to hass
* Clean up
* Clean up
* Added light platform
* Turning lights on and off and set brightness now works
* Pydeconz is now a proper pypi package
Stop sessions when Home Assistant is shutting down
Use a simpler websocket client
* Updated pydocstrings
Followed recommendations from pylint and flake8
* Clean up
* Updated requirements_all.txt
* Updated Codeowners to include deconz.py
Also re-added the Axis component since it had gotten removed
* Bump requirement
* Bumped to v2
Reran script/gen_requirements
* Removed global DECONZ since it wasn't relevant any more
* Username and password is only relevant in the context of getting a API key
* Add support for additional sensors
* Added support for groups
* Moved import of component library to inside of methods
* Moved the need for device id to library
* Bump pydeconz to v5
* Add support for colored lights
* Pylint and flake8 import improvements
* DATA_DECONZ TO DECONZ_DATA
* Add support for transition time
* Add support for flash
* Bump to v7
* ZHASwitch devices will now only generate events by default, instead of being a sensor entity
* Clean up
* Add battery sensor when device signals through an event
* Third-party library communicates with service
* Add support for effect colorloop
* Bump to pydeconz v8
* Same domain everywhere
* Clean up
* Updated requirements_all
* Generated API key will now be stored in a config file
* Change battery sensor to register to callback since library now supports multiple callbacks
Move DeconzEvent to hub
Bump to v9
* Improve entity attributes
* Change end of battery name to battery level
No need for static icon variable when using battery level helper
* Bump requirement to v10
* Improve pydocstring for DeconzEvent
Rename TYPE_AS_EVENT to CONF_TYPE_AS_EVENT
* Allow separate brightness to override RGB brightness
* Expose device.reachable in entity available property
* Bump requirement to 11 (it goes up to 11!)
* Pylint comment
* Binary sensors don't have unit of measurement
* Removed service to generate API key in favor of just generating it as a last resort of no API key is specified in configuration.yaml or deconz.conf
* Replace clear text to attribute definitions
* Use more constants
* Bump requirements to v12
* Color temp requires xy color support
* Only ZHASwitch should be an event
* Bump requirements to v13
* Added effect_list property
* Add attribute to battery sensor to easy find event id
* Bump requirements to v14
* Fix hound comment
* Bumped requirements_all information to v14
* Add service to configure devices on deCONZ
* Add initial support for scenes
* Bump requirements to v15
* Fix review comments
* Python doc string improvement
* Improve setup and error handling during setup
* Changed how to evaluate light features
* Remove 'ghost' events by not triggering updates if the signal originates from a config event
Bump requirement to v17
* Fix pylint issue by moving scene ownership in to groups in requirement pydeconz
Bump requirement to v18
* Added configurator option to register to deCONZ when unlocking gateway through settings
Bump requirement to v20
* Improve async configurator
* No user interaction for deconz.conf
* No file management in event loop
* Improve readability of load platform
* Fewer entity attributes
* Use values() instead of items() for dicts where applicable
* Do one add devices per platform
* Clean up of unused attributes
* Make sure that discovery info is not None
* Only register configure service and shutdown service when deconz has been setup properly
* Move description
* Fix lines longer than 80
* Moved deconz services to a separate file and moved hub to deconz/__init__.py
* Remove option to configure switch as entity
* Moved DeconzEvent to sensor since it is only Switch buttonpress that will be sent as event
* Added support for automatic discovery of deconz
Thanks to Kroimon for adding support to netdisco
* Use markup for configuration description
* Fix coveragerc
* Remove deCONZ support from Hue component
* Improved docstrings and readability
* Remove unnecessary extra name for storing in hass.data, using domain instead
* Improve readability by renaming all async methods
Bump to v21 - improved async naming on methods
* Fix first line not being in imperative mood
* Added logo to configurator
Let deconz.conf be visible since it will be the main config for the component after initial setup
* Removed bridge_type from new unit tests as part of removing deconz support from hue component
* Capitalize first letters of Battery Level
* Properly update state of sensor as well as reachable and battery
Bump dependency to v22
* Fix flake8 Multi-line docstring closing quotes should be on a separate line
* Fix martinhjelmares comments
Bump dependency to v23
Use only HASS aiohttp session
Change when to use 'deconz' or domain or deconz data
Clean up unused logger defines
Remove unnecessary return values
Fix faulty references to component documentation
Move callback registration to after entity has been initialized by HASS
Less inception style on pydocs ;)
Simplify loading platforms by using a for loop
Added voluptous schema for service
Yaml file is for deconz only, no need to have the domain present
Remove domain constraint when creating event title
* Support for EcoNet water heaters.
* Fixed requested changes.
* Added logging when temp or operation mode are None
* More fixes from PR review.
* Updated pyeconet version to fix natural gas water heater error. Last PR review fix.
* add required files
* add sochain sensor
* add missing schema
* end first sentence with a period to make travis happy
* upgrade to python-sochain-api 0.0.2 and use asyncio
* add missing _LOGGER and fix long line
* move object setup to async_setup_platform
* rename chainSo variable to chainso
* Add support for Logitech UE Smart Radios.
* Removed full stops to please Hound's line limit.
* Updated with requested changes.
* Fix Pylint Flake8 problem.
* Updated with requested changes.
* Add Canary component
* Made some change to how canary data is updated and stored
* Updated to use py-canary:0.1.2
* Addressed flake8 warnings
* Import canary API locally
* Import canary API locally again
* Addressed pylint errors
* Updated requirements_all.txt
* Fixed incorrect unit of measurement for air quality sensor
* Added tests for Canary component and sensors
* Updated canary component to handle exception better when initializing
* Fixed tests
* Fixed tests again
* Addressed review comments
* Fixed houndci error
* Addressed comment about camera force update
* Addressed comment regarding timeout when fetching camera image
* Updated to use py-canary==0.2.2
* Increased update frequency to 30 seconds
* Added support for Canary alarm control panel
* Address review comments
* Fixed houndci error
* Fixed lint errors
* Updated test to only test setup component / platform
* Fixed flake error
* Fixed failing test
* Uptake py-canary:0.2.3
* canary.alarm_control_panel DISARM is now mapped to canary PRIVACY mode
* Fixed failing tests
* Removed unnecessary methods
* Removed polling in canary camera component and update camera info when getting camera image
* Added more tests to cover Canary sensors
* Address review comments
* Addressed review comment in tests
* Fixed pylint errors
* Excluded canary alarm_control_panel and camera from coverage calculation
* add ads hub, light and switch
* add binary sensor prototype
* switch: use adsvar for connection
* fix some issues with binary sensor
* fix binary sensor
* fix all platforms
* use latest pyads
* fixed error with multiple binary sensors
* add sensor
* add ads sensor
* clean up after shutdown
* ads component with platforms switch, binary_sensor, light, sensor
add locking
poll sensors at startup
update state of ads switch and light
update ads requirements
remove update() from constructors on ads platforms
omit ads coverage
ads catch read error when polling
* add ads service
* add default settings for use_notify and poll_interval
* fix too long line
* Fix style issues
* no pydocstyle errors
* Send and receive native brightness data to ADS device to prevent issues with math.floor reducing brightness -1 at every switch
* Enable non dimmable lights
* remove setting of self._state in switch
* remove polling
* Revert "remove polling"
This reverts commit 7da420f823.
* add service schema, add links to documentation
* fix naming, cleanup
* re-remove polling
* use async_added_to_hass for setup of callbacks
* fix comment.
* add callbacks for changed values
* use async_add_job for creating device notifications
* set should_poll to False for all platforms
* change should_poll to property
* add service description to services.yaml
* add for brigthness not being None
* put ads component in package
* Remove whitespace
* omit ads package
* Add iAlarm support
* Minor fixes to iAlarm
* Rename ialarmpanel to ialarm and add a check for the host value
* corrections in the value validation of ialarm
* add a missing period on ialarm