* Bump sucks (Ecovacs) lib to 0.9.3
Changed code that was in place as a workaround pre-0.9.2. This version bump fixes a few issues.
* Update requirements_all
* 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 support for states
* Woof?
* Fixed some errors
* VacuumDevice -> StateVacuumDevice
* VacuumDevice -> StateVacuumDevice
* Added split of start and pause
* Vacuum: Added support for STATES
* Added debug logging and corrected state order
* typo
* Fix travis error, STATE = STATE for readability
* status -> state
* Changed to Entity instead of ToogleEntity
* Updated some vacuums
* Revert changes
* Revert Changes
* added SUPPORT_STATE
* Woof?
* Implement on/off if STATE not supported
* Moved new state vaccum to Class StateVacuumDevice
* Error: I should go to bed
* Moved around methods for easier reading
* Added StateVacuumDevice demo vacuum
* Added tests for StateVacuumDevice demo vacuum
* Fix styling errors
* Refactored to BaseVaccum
* Vacuum will now go back to dock
* Class BaseVacuum is for internal use only
* return -> await
* return -> await
* Add python 3.7 to travis and tox
* Use pyyaml from github
* Don't version constraints
* Fix version tag
* Change to new pyyaml release
* Python 3.7 requires xenial
* Fix namespace detection
* Use correct RegEx type
* Update pexpect to 4.6
* Use correct validation for dictionaries
* Disable Py37 incompatible packages
* Upgrade all pexpect to 4.6
* Add explicit None as default param
* Upgrade pylint to 1.8.1
* Fix no-else-return
* Fix bad-whitespace
* Fix too-many-nested-blocks
* Fix raising-format-tuple
See https://github.com/PyCQA/pylint/blob/master/doc/whatsnew/1.8.rst
* Fix len-as-condition
* Fix logging-not-lazy
Not sure about that TEMP_CELSIUS though, but internally it's probably just like if you concatenated any other (variable) string
* Fix stop-iteration-return
* Fix useless-super-delegation
* Fix trailing-comma-tuple
Both of these seem to simply be bugs:
* Nest: The value of self._humidity never seems to be used anywhere
* Dovado: The called API method seems to expect a "normal" number
* Fix redefined-argument-from-local
* Fix consider-using-enumerate
* Fix wrong-import-order
* Fix arguments-differ
* Fix missed no-else-return
* Fix no-member and related
* Fix signatures-differ
* Revert "Upgrade pylint to 1.8.1"
This reverts commit af78aa00f125a7d34add97b9d50c14db48412211.
* Fix arguments-differ
* except for device_tracker
* Cleanup
* Fix test using positional argument
* Fix line too long
I forgot to run flake8 - shame on me... 🙃
* Fix bad-option-value for 1.6.5
* Fix arguments-differ for device_tracker
* Upgrade pylint to 1.8.2
* 👕 Fix missed no-member
* Lazy loading of service descriptions
* Fix tests
* Load YAML in executor
* Return a copy of available services to allow mutations
* Remove lint
* Add zha/services.yaml
* Only cache descriptions for known services
* Remove lint
* Remove description loading during service registration
* Remove description parameter from async_register
* Test async_get_all_descriptions
* Remove lint
* Fix typos from multi-edit
* Remove unused arguments
* Remove unused import os
* Remove unused import os, part 2
* Remove unneeded coroutine decorator
* Only use executor for loading files
* Cleanups suggested in review
* Increase test coverage
* Fix races in existing tests
* vacuum.xiaomi_miio: read dnd status properly instead of using imprecise dnd flag from vacuum_state
* vacuum.xiaomi_miio: use miio package instead of mirobo
* check only that wanted calls have taken place, ignore order of calls
* Fix linting issues
* Remove empty line after docstring
* Refactor Neato botvac components as a vacuum
A switch is still use to enable/disable the schedule
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* CI Hound fixes
* Fix lint errors
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* [Neato vacumm] Add sensor attributes to vacuum
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Remove line breaks and fix docstring
* PR fixes
* Xiaomi Air Purifier 2 integration
* Flake8 errors fixed.
Changes based on review.
* Service domain ("fan") updated and services properly prefixed by xiaomi_miio.
* The underlying library is called python-miio now. Imports and requirements updated.
* Version bumped. The underlying library is called python-miio now.
* Added new statistic attributes
Added new attributes:
- Cleaning count
- Total cleaning time
- Total cleaning area
- Time left to change main brush, side brush and filter
* Code corrections
Code corrections
* Remove wronge hanging indentation
* Added new attributes
ATTR_MAIN_BRUSH_LEFT
ATTR_SIDE_BRUSH_LEFT
ATTR_FILTER_LEFT
ATTR_CLEANING_COUNT
ATTR_CLEANED_TOTAL_AREA
ATTR_CLEANING_TOTAL_TIME
* Remove trailing white space
* Corrections of the unit test for new attributes
* Hound corrections
* Init self.clean_history, self.consumable_state
* Hound correction
* - Cleaning time and total cleaning time shown in minutes
- Cleaned area and total cleaned area shown in square meters
- Main brush left, side brush left, filter left time shown in hours
- Display of the unit of measurement
* Remove trailing white spaces
* Fixed wrong continued indentation
* Fixed Hound
* Fixed Hound
* Added new statistic attributes
Added new attributes:
- Cleaning count
- Total cleaning time
- Total cleaning area
- Time left to change main brush, side brush and filter
* Code corrections
Code corrections
* Remove wronge hanging indentation
* Init self.clean_history, self.consumable_state
* Hound correction
* Remove UOM
* Merge
* Init self.clean_history, self.consumable_state
* Hound correction
* Init self.clean_history, self.consumable_state
* Hound correction
* Removed double declarations
* Basic MQTT vacuum support
* PR feedback
* Support for fan_speed and send_command services
* Fix configurable topics
* Use configurable bools for cleaning/docked/stopped state
* Fix language in docstring
* PR feedback
* Remove duplicate vacuum/state topic defaults
* Fix incorrect template for docked value
* Move direction like default mqtt platfom/components
* fix None on templates
* fix tests
* fix int
* fix tests
* ready to merge
* rename xiaomi to xiaomi_aqara
* rename xiaomi vacuum and xiaomi phillips light to xiaomi miio
* update discovery and tests
* style
* update discovery and tests
* Still use Philips as name
* Adds support for the Xiaomi Philips LED Ball and Ceiling Lamp
* Documentation url updated.
* New component to .coveragerc added.
* Unused import removed.
* translate labeled as static method.
* Mixed parameters in log message fixed.
* Order of requirements_all.txt fixed.
* Plattform updated. It's async now.
* Simplifiable if-statement fixed.
* Some more clean-up of unneeded stuff.
* Platform schema updated.
* Component is called xiaomi_philipslight now.
* Requirements all updated.
* Initialization of some variables updated.
* Raise PlatformNotReady exception if light cannot be discovered.
* Import of math removed.
Missing space added.
* Remove unnecessary updates
* Implement Roomba fanspeed
* Fix: fan_speed_list is always empty
* Log instead of raising an exception when incorrect fan speed has been provided
* Don't attempt to set any preference if fan speed is invalid
* Add new service `clean_spot` to vacuums
- Add as base component service, with associated support flag to make it optional
- Implement on Demo vacuum
- Implement on Xiaomi vacuum
- Update tests for platforms Demo and Xiaomi
- Change default icon for vacuums to `mdi:roomba`, but keep the one for the Xiaomi
- (In a polymer PR: add new service to command toolbar in the 'more-info' card)
* Add `clean_spot` service description
* fix default properties for vacuum component
* Fix tests for Demo vacuum platform (and increase coverage)
* increase coverage of xiaomi vacuum tests and include in coverage
Also little fixes
* remove print statement
* Xiaomi vacuum as component with switch, sensors and services
- Conversion from switch platform to async component.
- Add services proposed in #8416 to the new component, with shorter names.
- Add sensors for the vacuum robot as a selectable list from `battery`, `state`, `error`, `fanspeed`, `clean_time` and `clean_area` (the state attributes of the switch). The sensors don't poll, but listen to a signal to update the state, the switch fires this signal when updating.
- Assign default icons to sensors and the switch (`mdi:google-circles-group` looks like the robot!)
* path change in requirements_all (from switch platform to component)
* copy pasting is a bad habit
* services to the components services.yaml, modify .coveragerc
* review: use with multiple hosts, fix calls to async_add_devices, fix ranges for services
* `icon_for_battery_level` util method
* Xiaomi vacuum as platform of new component vacuum
- Created new component `vacuum` from a ToggleEntity.
- Add services `turn_on`, `turn_off`, `cleaning_play_pause`, `stop`, `return_to_base`, `locate`, `set_fanspeed` and `send_command`.
- Remove the main switch for the xiaomi vacuum (the toggable main entity is the switch).
- Add `support flags` for the common services
- Assign default icons to sensors and the switch (`mdi:google-circles-group` looks like the robot!)
- Move services descriptions to a yaml file for the new component.
- Update requirements_all.
- Update coveragerc.
* fix coveragerc
* fix battery icon helper to use more icons
* remove sensors, create properties and support flags for custom UI
* cleaning
* updated state_attrs for filtering in UI, renamed platform to simply `xiaomi`
* fix platform rename
* change fanspeed and expose `fanspeed_list` to use speed steps
* minor fixes
- Rename service `start_pause`
- Add 'Error' attribute only if `got_error`.
- Minor changes
* rename state attrs
* rename state attrs
* review changes: cut fan__speed, style changes, remove logging, and more
* add ATTR_COMMAND = 'command' to const
* pop entity_id from service data
* remove property accessor for vacuum object
* lint fix
* fix extra attrs names
* module level functions for calling the services
* params as optional keyword for `send_command`
* params as optional keyword for `send_command`, remove debug logs
* explicit parameters for `set_fan_speed` and `send_command`
* Demo platform for the vacuum component
* vacuum tests for the Demo platform
* some fixes
* don't omit vacuum
* vacuum tests for the Xiaomi platform
* fix test
* fix
* fix xiaomi test
* fix coveragerc
* test send command
* fix coveragerc
* fix string formatting
* The coverage is to low. It need 93% or more