* HomeMatic KeyMatic device become a real lock component
* Adds supported features to lock component.
Locks may are capable to open the door latch.
If component is support it, the SUPPORT_OPENING bitmask can be supplied in the supported_features property.
* hound improvements.
* Travis improvements.
* Improvements from review process
* Simplifies is_locked method
* Adds an openable lock in the lock demo component
* removes blank line
* Adds test for openable demo lock and lint and reviewer improvements.
* adds new line...
* Comment end with a period.
* Additional blank line.
* Mock service based testing, lint fixes
* Update description
* Cast Integration Cleanup
* Fix long line
* Fixes and logging
* Fix tests
* Lint
* Report unknown state with None
* Lint
* Switch to async_add_job
Gets rid of those pesky "Setup of platform cast is taking over 10 seconds." messages.
* Re-introduce PlatformNotReady
* Add tests
* Remove unnecessary checks
* Test PlatformNotReady
* Fix async in sync context
* Blocking update
It's not using async anyway
* Upgrade pychromecast to 2.1.0
* Make reviewing easier
I like "protected" access, but I like reviewing more :)
* Make reviewing even easier :)
* Comment tests
* Cleanup and proposed changes from MartinHjelmare
* Removed coroutine decorator from async_added_to_hass
* Added blank line
* Fix of component url
* Fix of component url
* Fix url of the sensor component
* Initial commit on new asyncio based version
* Async version
* Lint
* updated to lasted pymediaroom version
* bump version
* optimistic state updates
* bump version
* Moved class import to method import
* async schedule and name correction
* Addresses @balloob comments
* missed fixes
* no unique_id for configuration based STB
* hound
* handle 2 mediaroom platforms
* Add the possibility to filter on line(s) in Västtrafik Public Transport sensor
Add a config entry "lines" to be able to filter departures on line(s) for the
vasttrafik sensor.
* Change log level to debug if no departures found.
* Remove extra None argument from dict().get() calls as it is already the default.
* Ensure "lines" is a list of strings. Also fix an indentation error.
* Correct to long line
* Added timestamp for when device was marked unavailable
* protect time 1st marked
* client removal, no errors
* Optional removal interval added
* Linting error fix
* Implemented guard to prevent indentation
Removed vars in favour of inline calcs
* Using hass.add_job() for cleanup
* Lint
* Revert removal interval to 600sec
* Changed datetime to hass implementation
* Forgot to include one of the references to dt
* 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.
* Accept and report both xy and RGB color for lights
* Fix demo light supported_features
* Add new XY color util functions
* Always make color changes available as xy and RGB
* Always expose color as RGB and XY
* Consolidate color supported_features
* Test fixes
* Additional test fix
* Use hue/sat as the hass core color interface
* Tests updates
* Assume MQTT RGB devices need full RGB brightness
* Convert new platforms
* More migration
* Use float for HS API
* Fix backwards conversion for KNX lights
* Adjust limitless min saturation for new scale
* 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
* Update plex.py
show information about media depending if it is a movie or an episode
set time_between_scans to 10 s to match with plex media_player component
* Update plex.py
lint
* Update plex.py
linting
* Update plex.py
linting
* Update plex.py
linting
* Update plex.py
added catch for tracks and everything else
if no release year is given, instead of () it now show nothing
* Update plex.py
Remove the album year to match with the Plex UI
* Update README.rst
* Update README.rst
* Update plex.py
reformat code to make it more readable
recorded tv shows might not have episode numbers assigned -> check before adding to title
* Update plex.py
cleanup excessive whitespace
* Update plex.py
cleanup excessive whitespace
* add ability to set fan on
* add tests and change "not on" status to "auto"
* hound fix
* more hounds
* I don't understand new lines
* fix linting errors
* more linting fixes
* change method signature
* lint fixes
* hopefully last lint fix
* correct temp ranges according to ecobee API docs
* update dependency to latest version
* update tests with values from new temp logic
* fix linting issue
* more linting fixes
* add SUPPORT_FAN_MODE to capabilities
* add fan_list to attributes.
restore current fan state to OFF if fan is not running.
change target high/low temps from null to target temp when not in auto mode.
change target temp from null to high/low temp when in auto mode
change mode attribute to climate_mode for consistency with other lists.
* remove unused import
* simplify logic
* lint fixes
* revert change for target temps
* 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
* Added Time based SMA
* move "now" to _filter_state()
* Addressed comments
* fix long line
* type and name
* # pylint: disable=redefined-builtin
* added test
* 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
* phue -> aiohue
* Clean up
* Fix config
* Address comments
* Typo
* Fix rebase error
* Mark light as unavailable when bridge is disconnected
* Tests
* Make Throttle work with double delay and async
* Rework update logic
* Don't resolve host to IP
* Clarify comment
* No longer do unnecessary updates
* Add more doc
* Another comment update
* Wrap up tests
* Lint
* Fix tests
* PyLint does not like mix 'n match async and coroutine
* Lint
* Update aiohue to 1.2
* Lint
* Fix await MagicMock
* Xiaomi MiIO Sensor: Xiaomi Air Quality Monitor (PM2.5) integration.
* Missing newline added.
* Use a unique data key per domain.
* turn_{on,off} service moved to __init__.py.
* All sensors group added.
* Sensor is a ToggleEntity now.
* is_on property added.
* Use Async / await syntax.
* Make hound happy.
* Unique id added.
* Turn on/off service removed from abstract sensor.
* Turn on/off methods removed.
Device unavailable handling improved.
* Unused import removed.
* Sensor migrated back to an entity.
* Rebased and requirements updated.
* Xiaomi Philips Eyecare Smart Lamp 2 support added.
* Blank lines removed.
* Pylint errors fixed.
* Abstract light introduced.
* Smart night light mode renamed.
* Use the conventional power on/off methods again.
* Eyecare mode service added.
* Eyecare mode attribute added.
* Name of the ambient light entity fixed.
* Reuse of the same local variable name within the same scope fixed.
* Use Async / await syntax.
* Missed method fixed.
* Make hound happy.
* Don't abuse the system property supported_features anymore.
* Make hound happy.
* Wrong hanging indentation fixed.
Unnecessary parens after 'return' keyword fixed.
* Refactoring.
* Additional supported features bit mask removed as long as the differences of the supported devices are simple.
* Support for Xiaomi Philips Zhirui Smart LED Bulb E14 Candle Lamp added.
* Docstrings updated.
Refactoring.
* Unique id added.
* Filter service calls. Dummy methods removed.
* Device available handling improved.
* super() used for calling the parent class
* Self removed from super().
* Fix for not setting up the camera if it is offline during setup phase
* async/await and modified service creation
* Properly handle not supported PTZ
* setup platform made synchronous as ONVIFService constructors do I/O
* Fix intendation issue
* 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 extra sensors for BMW ConnectedDrive
* Updates based on review of @MartinHjelmare
* Updates based on 2nd review of @MartinHjelmare
* Changed control flow for updates to support updates triggered by remote services.
* updated library version number
* Changed order of commands so that the UI looks consistent.
State of lock is now set optimisitcally before getting proper update
from the server. So that the state does not toggle in the UI.
* Added comment on optimistic state
* Updated requirements_all.txt
* Revert access permission changes
* Fix for Travis
* Changes based on review by @MartinHjelmare
* Restructure
* Pincode will now be autogenerated and display using a persistence notification
* Added 'homekit.start' service
* Added config options
* Renamed files for types
* Improved tests
* Changes (based on feedback)
* Removed CONF_PIN_CODE
* Added services.yaml
* Service will only be registered if auto_start=False
* Bugfix names, changed default port
* Generate aids with zlib.adler32
* Added entity filter, minor changes
* Small changes
* Update downloader.py
Add persistent notification to alert when download is finished or in case of download failure.
* Update downloader.py
* Update downloader.py
* Update downloader.py
* Fire and event when download is requested
Added 2 events to represent download completed and download failed. This will allow the user to trigger an automation based on the status of the download.
* Update downloader.py
* Update downloader.py
replaced . with _
* Update downloader.py
fixed linting errors
It makes sense to report swap and memory in the same unit and MiB is
more useful considering Home Assistant may be running on lower end
hardware (Raspberry Pi for example) where 100MiB resolution is not
adequate.
* Added vesync platform
Support for power toggling, current power, and daily energy kWh
* Adds vesync to requirements file.
* Reorder vesync item in requirements_all.txt from gen_requirements_all
* Removes unnecessary global values that are not used in this component
* Removes try/catch from setup_platform -no throws. Guard check login()
* Remove unnecessary boolean convert
* Fix indentation of log messages
* Add spotcrime.py to dev
* Modify sensor to accept user API key
* Update Spotcrime to 1.0.3 in requirements_all.txt
* Fix line 76 (97 > 79 characters)
* Fix lint errors
* already in the default schema
* these are already globally disabled
* require a single entity id
* remove unused import
* w h i t e s p a c e
* actually keep it
* it is a string
* use a generator expression
* 💄
* Revert "💄"
This reverts commit 81c08bb732.
* Revert "actually keep it"
This reverts commit 0d92d3afb2.
* Revert "remove unused import"
This reverts commit 8a166208e4.
* Revert "already in the default schema"
This reverts commit 9173de4fd3.
* we're already ensuring defaults with the platform schema
* Also lint working tree files
When performing a git diff of upstream/dev..., git is diffing against
the current HEAD, but does not include working tree files. By manually
calculating a merge-base SHA to diff against, git will still diff those
files.
* Don't pylint tests files, since we don't in CI
* Use merge base for lazytox
* Simplify files changed header
* Sensor template don't exit early on TemplateError
* Add friendly name unknown state test
* Also track entites from attribute templates
* Use set instead of list
With homeassistant 0.65.0 the filter sensor is introduced. Now there
is a common way to filter the peaks comming from the readings.
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
* Add consider_home and source_type to device_tracker.see service
* Use schema instead of manual validation
* Extend schema to validate all keys
* Fix style
* Set battery level to int
* Marks Devices unavailable if they 'vanish' and clears media
* Fixed PEP8 complaint
* Fixed Linting
* Lint Fix
* Fix redine of id
* More lint fixes
* Removed redundant loop for setting availability of client
Renamed '_is_device_available' to '_available'
Renamed 'available_ids' to 'available_client_ids'
* removed whitespace per houndCI
* Add camera proxy
* Fix additional tox linting issues
* Trivial cleanup
* update to new async/await methods rather than decorators. Other minor fixes from code review
* Get zha switch and binary_sensor state on startup
* Removed unused var
* Make zha switch report status
* Use right method name
* Formatting fix
* Updates to match latest dev
* PR feedback updates
* Use async for cluster commands
* Marks Devices unavailable if they 'vanish' and clears media
* Fixed PEP8 complaint
* Fixed Linting
* Lint Fix
* Fix redine of id
* More lint fixes
* Removed redundant loop for setting availability of client
Renamed '_is_device_available' to '_available'
Renamed 'available_ids' to 'available_client_ids'
* removed whitespace per houndCI
* Add consider_home and source_type to device_tracker.see service
* Use schema instead of manual validation
* Extend schema to validate all keys
* Fix style
* Set battery level to int
* Get zha switch and binary_sensor state on startup
* Removed unused var
* Make zha switch report status
* Use right method name
* Formatting fix
* Updates to match latest dev
* PR feedback updates
* Use async for cluster commands
* Add camera proxy
* Fix additional tox linting issues
* Trivial cleanup
* update to new async/await methods rather than decorators. Other minor fixes from code review
* Refactor Google Assistant
* Fix cloud test
* Fix supported features media player demo
* Fix query
* Fix execute
* Fix demo media player tests
* Add tests for traits
* Lint
* Lint
* Add integration tests
* Add more tests
* update logging
* Catch out of range temp errrors
* Fix cloud error
* Lint
* Added support for security system, switch and thermostat
* Processing review
* Only perform set call when the call didn't come from HomeKit
* Added support for alarm_code
* Take into account review remarks
* Provide tests for HomeKit security systems, switches and thermostats
* Support STATE_AUTO
* Guard if state exists
* Improve support for thermostat auto mode
* Provide both high and low at the same time for home assistant
* Set default values within accepted ranges
* Added tests for auto mode
* Fix thermostat test error
* Use attributes.get instead of indexing for safety
* Avoid hardcoded attributes in tests
* telegram_bot three platform support proxy_url and proxy_params
* add telegram_bot._initialize_bot to create the bot instance
* rename _initialize_bot to initialize_bot
* add Channels media player
* add Channels' services
* style 💄
* more 💄
* make up your mind robot
* 💄💄💄
* dump client and pull it in via a package
* ChannelsApp -> ChannelsPlayer
* load the lib
* add pychannels in requirements
* not using requests anymore
* extra line 💄
* move this here
* move this up
* 🔥
* use constants for these
* add a platform schema
* force update here
* get defaults to None
* break out after finding it
* use None for state if offline or errored
* pull in CONF_NAME
* fix syntax
* update requirements_all.txt
* :lipstick:💄💄
* 💄
* docs
* like this? ¯\(°_o)/¯
* Changed sensor attributes for GPS
the sensor is now using the correct attributes (latitued and
longitued) which enables them to show up on the map.
* added option to display the sensor on the map
the configuration will be extended by the optional 'show_on_map' flag.
Default is not display the sensor on the map.
* making the change non-breaking: old default behaviour
* removed doubled attributes for lat and lon
* Unavailable state introduced if the device isn't reachable.
* Redundancy removed.
* Pylint fixed.
* Missing space added.
* Pylint fixed.
* Use format instead of concatenation.
* Lazy discovery disabled: The Chuang Mi IR Remote Controller wants to be re-discovered every 5 minutes. As long as polling is disabled the device should be re-discovered in front of every command.
* Use a unique data key per domain.
* Named argument used and comment added.
Adds an empty unit to load averages reported by the systemmonitor
component in order to correctly identify the state as numeric.
A similar workaroud to this is already used for packet counts in the
same component.
Re #11022
* Added the Gamerscore and Tier of the account.
The tier is the subscription type of the Xbox Live account, so Silver (which is now called Free) or Gold (paid).
* Don't add the gamerscore and tier inside of the loop, since they're always the same.
* 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
* Added test for temperature fahrenheit
* Restructured tests to use more mocks
* Rearanged homekit constants
* Improved 'test_homekit_class'
* Added import statements
* Fix Pylint Test errors
* Tibber: retry if we fail to connect at startup
* Tibber: retry if we fail to connect at startup
* Tibber: retry if we fail to connect at startup
* Tibber: retry if we fail to connect at startup
* Update tibber.py
* Update tibber.py
* Unique IDs for Clients
* HoundCI cleanup
* debug output removal
* Updates from feedback
* More Updates from feedback
* More Updates from feedback
* Lint Fixes
* Add view to support backend translation fetching
* Load backend translations from component json
* Translations for season sensor
* Scripts to merge and unpack Lokalise translations
* Fix copy paste error
* Serve post-lokalise translations to frontend
* Linting
* Auto-deploy translations with Travis
* Commit post-lokalise translation files
* Split logic into more helper functions
* Fall back to English for missing keys
* Move local translation copies to `.translations`
* Linting
* Initial tests
* Remove unnecessary file check
* Convert translation helper to async/await
* Convert translation helper tests to async/await
* Use set subtraction to find missing_components
* load_translation_files use component->file mapping
* Remove duplicated resources fetching
Get to take advantage of the slick Python 3.5 dict merging here.
* Switch to live project ID
* Unique IDs for Clients
* HoundCI cleanup
* debug output removal
* Updates from feedback
* More Updates from feedback
* More Updates from feedback
* Lint Fixes
* 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
* MQTT Typing
* Tiny style change
* Fixes
I should've probably really sticked to limiting myself to static typing...
* Small fix 😩
Ok, this seriously shouldn't have happened.
* Add support for specifying custom headers for rest_command.
* Added headers configuration to behave similarly to the rest sensor.
* Replaced test_rest_command_content_type which only validated the
configuration with test_rest_command_headers which tests several
combinations of parameters that affect the request headers.
* Make color_name_to_rgb raise
* Add Light Set Color intent
* Move some methods around
* Cleanup
* Prevent 1 more func call
* Make a generic Set intent for light
* Lint
* lint
* 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
* Unavailable state introduced if the device isn't reachable.
A new configuration option "model" can be used to define the device type.
```
light:
- platform: xiaomi_miio
name: Xiaomi Philips Smart LED Ball
host: 192.168.130.67
token: da548d86f55996413d82eea94279d2ff
# Bypass of the device model detection.
# Optional but required to add an unavailable device
model: philips.light.bulb
```
New attribute "scene" and "delay_off_countdown" added.
New service xiaomi_miio_set_delay_off introduced.
* Service xiaomi_miio_set_delayed_turn_off updated. The attribute "delayed_turn_off" is a timestamp now.
* None must be a valid model.
* Math.
* Microseconds removed because of the low resolution.
* Comment updated.
* Update the ATTR_DELAYED_TURN_OFF on a deviation of 4 seconds (max latency) only.
* Import of datetime fixed.
* Typo fixed.
* pylint issues fixed.
* Naming.
* Service parameter renamed.
* New ceiling lamp model (philips.light.zyceiling) added.
* Use positive timedelta instead of seconds.
* Use a unique data key per domain.
DarkSky delivers relative humidity from 0-100% as a 0-1 decimal value,
so we convert it by multiplying by 100.0. Unfortunately, due to floating
point math, the display of a raw value of 0.29 ends up looking like
28.999999999999996% relative humidity.
This change rounds the value to two decimal places.
DarkSky delivers relative humidity from 0-100% as a 0-1 decimal value,
so we convert it by multiplying by 100.0. Unfortunately, due to floating
point math, the display of a raw value of 0.29 ends up looking like
28.999999999999996% relative humidity.
This change rounds the value to two decimal places.
* Fix Citybikes naming.
* Semantic fixes upon requests.
Entity ID generation now includes the base name (again),
resulting in preservation of the entity ID format (the change is
non-breaking)
* Use `async_generate_entity_id`.
* Fix a problem with calling `deconz.close`
The event object (`EVENT_HOMEASSISTANT_STOP`) is sent as an argument to
the callable passed to `async_listen_once`. However, `deconz.close` is a bound method
that takes no arguments. Therefore, it needs a wrapper to discard the event
object.
* Removed unnecessary code and added a docstring.
* Fix the docstring according to guidelines.
* Removed unnecessary whitespace.
* Fix a problem with calling `deconz.close`
The event object (`EVENT_HOMEASSISTANT_STOP`) is sent as an argument to
the callable passed to `async_listen_once`. However, `deconz.close` is a bound method
that takes no arguments. Therefore, it needs a wrapper to discard the event
object.
* Removed unnecessary code and added a docstring.
* Fix the docstring according to guidelines.
* Removed unnecessary whitespace.
* Next generation of Xiaomi Aqara devices added: ctrl_neutral1.aq1, ctrl_neutral2.aq1, ctrl_ln1.aq1, ctrl_ln2.aq1, ctrl_86plug.aq1
* The Aqara wireless button (3rd gen, sensor_switch.aq3) supports a click_type called "shake".
* Warning added to spot new features.
* Added cv.EntitiesDoamin(domain) validator
* Check if all entities in string or list belong to domain
* Added tests
* Use factory function and entity_ids
* Different error message
* Typo
* Added entity_domain validator for a single entity_id
* Image_processing platform now uses cv.entity_domain for source validation
* XKNX improvements: Added Scene support, added support for exposing sensors to KNX bus, added reset value option for binary switches
* fixed import
* Bumped version of KNX library (minor upgrade with two important bugfixes)
* bumped version of xknx (now without python requirement *sigh*)
* Issue #11978: fixed review comments
* Issue #11978: hound suggestion fixed:
* review comments
* made async functions async
* Addressed issues mentined by @MartinHjelmare
* removed default=None from validation schema
* ATTR_ENTITY_ID->CONF_ENTITY_ID
* moved missing function to async syntax
* pylint
* Trigger notification
* Trigger notification
* fixed review comment
* Changed version of "HAP-python" to "v1.1.7"
* Updated acc file to simplify init calls
* Code refactored and '°F' temp Sensors added
* Changed call to 'HomeAccessory' and 'HomeBridge'
* Extended function of 'add_preload_service' to add additional characteristics
* Added function to override characteristic property values
* TemperatureSensor
* Added unit
* Added calc_temperature
* Updated tests
* Fixes for mclimate accounts with not only melissa components
* Fixes melissa sensor to only use HVAC
* Bumping version to 1.0.3 and remove OP_MODE that is not supported
* Removes STATE_AUTO from translation and tests
* Merge from current dev
* Update for Sensor approach
* Update reference to state classes
* Reference stateKey correctly
* Reference stateKey
* Change deviceInfo to a dict
* Pass state to properties method
* Add state info to device_state_attributes
* Update entity name to include state name
* Update for on() off() vs light_on/off
* Flag newnames option
* Update configuration schema
* Update configuration schema
* Spell False correctly
* Rename state to statekey
* Rename statekey to stateKey
* Call new device with stateKey and newname
* Simplify use of newnames
* Add workdir to save devices
* Fix newnames config setup
* Propogate OnOffSensor to VariableSensor change
* Upgrade insteonplm version to 0.8.0
* Pass address rather than device object to platform
* Set inteon_plm data variable to PLM
* Consistant use of conn and plm
* Consistant use of conn and plm
* Proper reference to device and address
* Fixed platform setup issues
* Correct issue with missing _supported_features attr
* Properly reference self._state vs self.state
* Bump insteonplm version to 0.8.1
* Remove subplatform and map based on state name
* Correct refrence to State
* Correct reference to device.states
* Bump insteonplm to 0.8.2
* Fix format errors
* Fix format issues
* Fix trailing whitespace
* Correct format issues
* Fix format issues
* Fix format issues
* Fixed format issues
* Fixed format issues
* Move imports inside classes
* Simplify import of modules
* Correct reference to OnOffSwitch_OutletTop and bottom
* Remove unnessary references
* Fix format issues
* Code review adjustments
* Fix format issue
* Use new nameing format for groups that are not group 0x01
* Remove newname feature
* Fix binary_sensor type to default to None
* Fix device_class property to return the sensor type correctly.
* rename _device and _state to avoid conflicts with Entity
* Format long lines
* Pylint clean up
* Insteon_PLM
* lint cleanup
* Check device_override has address
* 3.4 lint clean up
* Changes per code review
* Change discovered from a list of dict to a dict
* Correct common_attributes usage
* Change discovered from a list of dict to a dict
* Add debugging message to confirm platform setup
* Debug messages
* Debug messages
* Debug async_added_to_hass
* Debug async_added_to_hass async_add_job
* Debug async_added_to_hass
* Debug devices not loading in hass
* Debug new entities not being added to hass
* Debug adding devices to hass
* Revert "3.4 lint clean up"
This reverts commit 0d8fb992b1.
* 3.4 lint clean up
* Revert "Debug adding devices to hass"
This reverts commit ec306773d4.
* Revert "Debug new entities not being added to hass"
This reverts commit 55fb724d06.
* Revert "Debug devices not loading in hass"
This reverts commit 07814b4f14.
* Revert "Debug async_added_to_hass"
This reverts commit 4963a255d8.
* Revert "Debug async_added_to_hass async_add_job"
This reverts commit 22cadff91f.
* Revert "Debug async_added_to_hass"
This reverts commit 12c5651fe4.
* Pylint clean up
* pylint cleanup
* Clean up naming
* Enhance config schema. Fix logging issue
* Reapply changes after squash
* 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`
* Fixes for mclimate accounts with not only melissa components
* Fixes melissa sensor to only use HVAC
* Bumping version to 1.0.3 and remove OP_MODE that is not supported
* Removes STATE_AUTO from translation and tests
* [WIP] Allow ignoring call service events
This allows a setting a configuration value (False by default to continue the current behavior) which will ignore call service events.
* extra spaces
removed them
* updates from PR review
* removed print
* update spacing
* updated allowed events to allow for custom events, and included some tests
* hound fixes
* Remove unused constant
* Lint
* 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
* Add unique_id to Xiaomi Aqara
* Slugify the unique ID
* Use the domain instead of a separate string
* Add underscore
* Remove unique ID from attributes
* Re-add removed attributes
* Remove domain from the unique ID
* Use type or data key
* Also make sure that the data key is not None
* Yes, it does have that member, if that check passes. Thanks pylint.
* 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
* Fixed 3 small issues in isy994 component
1. FanLincs have two nodes: one light and one fan motor. In order for each node to get detected as different Hass entity types, I removed the device-type check for FanLinc. The logic will now fall back on the uom checks which should work just fine. (An alternative approach here would be to special case FanLincs and handle them directly - but seeing as the newer 5.x ISY firmware already handles this much better using NodeDefs, I think this quick and dirty approach is fine for the older firmware.) Fixes#12030
2. Some non-dimming switches were appearing as `light`s in Hass due to an duplicate NodeDef being in the light domain filter. Removed! Fixes#12340
3. The `unqiue_id` property was throwing an error for certain entity types that don't have an `_id` property from the ISY. This issue has always been present, but was exposed by the entity registry which seems to be the first thing to actually try reading the `unique_id` property from the isy994 component.
* Fix ISY994 fan detection
ISY reports "med" in the uom, not "medium"
* Add special-case for FanLincs so the light node is detected properly
* Re-add insteon-type filter for fans, which dropped in a merge error
* 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"
* Basic Homekit support
* Added Temperatur Sensor
* Added Window Cover
* Code refactored
* Added class HomeAccessory(Accessory)
* Added class HomeBridge(Bridge)
* Changed homekit imports to relative, to enable use in custom_components
* Updated requirements
* Added docs
* Other smaller changes
* Changed Homekit from entity to class
* Changes based on feedback
* Updated config schema
* Add only covers that support set_cover_position
* Addressed comments, updated to pyhap==1.1.5
* For lint: added files to gen_requirements_all
* Added codeowner
* Small change to Wrapper classes
* Moved imports to import_types, small changes
* Small changes, added tests
* Homekit class: removed add_accessory since it's already covered by pyhap
* Added test requirement: HAP-python
* Added test suit for homekit setup and interaction between HA and pyhap
* Added test suit for get_accessories function
* Test bugfix
* Added validate pincode, tests for cover and sensor types
* Added support for join and unjoin
* Added support for sleep functionality
* Fixed supported features
* Removed long lines and fixed documentation strings
* Fixed D401, imperative mood
* Added shuffle support
* Removed unnecessary log row
* Removed model, modelname and brand
* Removed descriptions
* Removed polling command on method run. This change is not needed
* Fixed merge errors
* Removed unused usings
* Pylint fixes
* Hound fixes
* Remove attr Sleep and removed white space in services.xml
* 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
* Rework Sonos media player platform for push
* Ignore play_mode from events where it is missing
* Remove unused preload helper
* Freeze SoCo version
* Updates for entity registry
* Add codeowner
* Use real soco release
* Service PTZ added
* Removed description loading during setup
* Fixed hound issues
* Changed attribute names
* Fixed pylint error
* Cleaning up the code
* Changed access to protected member to dict
* Removed new line added by mistake
* Fixed pylint error
* Fixed minors
* Fixed pylint caused by usage of create_type function
* Code made more concise
* Fixed string intendation problem
* Service name changed
* Update code to fit with the new version
* Set ptz to None if PTZ setup failed
* more precise exception used
* 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
* Enable compression when sending json to client
Make server compress json content when transmitting to client. Json is quite verbose and compresses well.
A real world example is history_graph requested data for in my case 4 temperature sensors updating every half a second for a graph over 10 days lead to 6MB json which compressed to 200KB using deflate compression.
* Rename variable to request
* Name the variable response instead of request
Accounts with multiple LaMetric devices at unreachable IPs (for example
at a different location, on a different/unroutable subnet, etc.) may
cause the notify.lametric service to fail. This update wraps the message
sending routine in a try/except clause and outputs log messages
indicating the problem.
Fixes#12450
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* fix comment
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Update yr.py
1. FanLincs have two nodes: one light and one fan motor. In order for each node to get detected as different Hass entity types, I removed the device-type check for FanLinc. The logic will now fall back on the uom checks which should work just fine. (An alternative approach here would be to special case FanLincs and handle them directly - but seeing as the newer 5.x ISY firmware already handles this much better using NodeDefs, I think this quick and dirty approach is fine for the older firmware.) Fixes#12030
2. Some non-dimming switches were appearing as `light`s in Hass due to an duplicate NodeDef being in the light domain filter. Removed! Fixes#12340
3. The `unqiue_id` property was throwing an error for certain entity types that don't have an `_id` property from the ISY. This issue has always been present, but was exposed by the entity registry which seems to be the first thing to actually try reading the `unique_id` property from the isy994 component.
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* fix comment
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Spread the load more for the yr.no sensor
* Update yr.py
* Issue 10388: Fixed platform schema min/max values of CONF_SETPOINT_SHIFT_MIN and CONF_SETPOINT_SHIFT_MAX
* readded default values for CONF_SETPOINT_SHIFT_MAX and CONF_SETPOINT_SHIFT_MIN
Bugfixes for several issues with hass.io and non-venv installations
Added passing of credentials to RTSP stream
Changed from ONVIFService to ONVIFCamera as ONVIFService didn't contain
the same error handling.
Changed method to get Stream URL from camera to a more compatible method
Added extra Error handling
It turns out I misunderstood which media_player services are available
when a media player supports StepVolume. This PR maps the Alexa
StepSpeaker messages to the volume_up and volume_down services.
Currently Alexa allows you to specify the number of steps but the media
player volume_up and volume_down services don't support this. For now I
just look to see if the steps are +/- and call up/down accordingly.
* 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.
* 🐎 Async WUnderground
* ∞ Them lines be too long
* Fix pylint warnings
* Changes according to comments
* Remove STATE_UNKNOWN
* 🔬 Fix tests
* Improve tests
* vagrant dev - force hass-AIOHTTP to not use sendfile
Ref: https://www.virtualbox.org/ticket/9069
strongly needed for `home-assistant-polymer`
* vagrant dev - python 3.4 to 3.5 by upgrade to debian-stretch
* AirVisual: Entity Registry updates and cleanup
* Small cleanup
* Owner-requested changes
* Changed hashing function
* Put a better class instatiation mechanism in place
* Small cleanup
* Reverting unintended breaking change
* Removing hashing as part of creating the unique ID
* Attempting to jumpstart Travis
Zigbee switches only contain client clusters that are meant to control server clusters on a different device/endpoint.
This device type -> cluster mapping can be found in https://www.nxp.com/docs/en/user-guide/JN-UG-3076.pdf.
The intended usage is of connecting client clusters to server clusters is described in https://products.currentbyge.com/sites/products.currentbyge.com/files/document_file/DT200-GE-Zigbee-Primer-Whitepaper.pdf
The lack of server clusters on switches has been verified using a GE ZigBee Lighting Switch 45856GE and a 45857GE dimmer.
Output from a 45856GE:
Device:
NWK: 0x0cd8
IEEE: 00:22:a3:00:00:1f:37:68
Endpoints:
1: profile=0x104, device_type=DeviceType.ON_OFF_LIGHT
Input Clusters:
Basic (0)
Identify (3)
Groups (4)
Scenes (5)
On/Off (6)
Metering (1794)
Diagnostic (2821)
Output Clusters:
Time (10)
Ota (25)
2: profile=0x104, device_type=DeviceType.ON_OFF_LIGHT_SWITCH
Input Clusters:
Basic (0)
Identify (3)
Diagnostic (2821)
Output Clusters:
Identify (3)
On/Off (6)
1. FanLincs have two nodes: one light and one fan motor. In order for each node to get detected as different Hass entity types, I removed the device-type check for FanLinc. The logic will now fall back on the uom checks which should work just fine. (An alternative approach here would be to special case FanLincs and handle them directly - but seeing as the newer 5.x ISY firmware already handles this much better using NodeDefs, I think this quick and dirty approach is fine for the older firmware.) Fixes#12030
2. Some non-dimming switches were appearing as `light`s in Hass due to an duplicate NodeDef being in the light domain filter. Removed! Fixes#12340
3. The `unqiue_id` property was throwing an error for certain entity types that don't have an `_id` property from the ISY. This issue has always been present, but was exposed by the entity registry which seems to be the first thing to actually try reading the `unique_id` property from the isy994 component.
* Checked file path with is_allowed_path() for RPi Camera
* Used cv.isfile to verify file path instead of manual checks
* Changed default file path for RPiCamera to config_dir/image.jpg
* Used tempfiles for storing RPi Camera images, if no other path is defined
* Stopped checking for whitelisted paths on temporary files
The yamaha component previously used a property named unique_id to
ensure that exactly 1 media_player was discovered per zone per
control_url. This was introduced so that hard coded devices wouldn't
be duplicated by automatically discovered devices.
In HA 0.63 unique_id became a reserved concept as part of the new
device registry, and the property was removed from the component. But
the default returns None, which had the side effect of only ever
registering a single unit + zone, the first one discovered. This was
typically the Main_Zone of the unit, but there is actually no
guaruntee of that.
This fix brings back the logic under a different property called
zone_id. This is not guarunteed to be globally stable like unique_id
is supposed to be, but it is suitable for the deduplication for yamaha
media players.
* Changed pyvera version to 0.2.41
Changed required pyvera version to 0.2.41 from 0.2.39.
The 0.2.41 supports the VeraSecure built in siren. Siren is treated as switch and can now be turned on and off. Before it was armable but generated error in Vera controller. This allows for both detecting status of Siren if triggered from within Vera and also outside controll from HA.
* Added pyvera 0.2.41 library
* Improve service by allowing to reference entity id instead of deconz id
* Change from having access to full entities to only store entity id together with deconz id
* Don't use eval, there is a dict type for voluptuous
* Use entity registry instead of keeping a local registry over entity ids
* Removed old code
* Add test for get_entry
* Bump dependency to v28
Fixed call to protected member
* Use chain to iterate over dict values
* Cleanup
* Fix hound comment
* Cleanup
* Follow refactoring of entity
* Revert to using a local registry
* Remove unused import
* self.hass is automatically available when entity is registered in hass
The yamaha component previously used a property named unique_id to
ensure that exactly 1 media_player was discovered per zone per
control_url. This was introduced so that hard coded devices wouldn't
be duplicated by automatically discovered devices.
In HA 0.63 unique_id became a reserved concept as part of the new
device registry, and the property was removed from the component. But
the default returns None, which had the side effect of only ever
registering a single unit + zone, the first one discovered. This was
typically the Main_Zone of the unit, but there is actually no
guaruntee of that.
This fix brings back the logic under a different property called
zone_id. This is not guarunteed to be globally stable like unique_id
is supposed to be, but it is suitable for the deduplication for yamaha
media players.
* nmap_tracker: don't scan on setup
A scan takes about 6 seconds so it delays HA from booting. Since
another scan is done by the device_tracker base component during setup,
there is no need to do two scans on boot.
* simplify setup
* 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
* Fix MQTT retained message not being re-dispatched
* Fix tests
* Use paho-mqtt for retained messages
* Improve code style
* Store list of subscribers
* Fix lint error
* Adhere to Home Assistant's logging standard
"Try to avoid brackets and additional quotes around the output to make it easier for users to parse the log."
- https://home-assistant.io/developers/development_guidelines/
* Add reconnect tests
* Fix lint error
* Introduce Subscription
Tests still need to be updated
* Use namedtuple for MQTT messages
... And fix issues
Accessing the config manually at runtime isn't ideal
* Fix MQTT __init__.py tests
* Updated usage of Mocks
* Moved tests that were testing subscriptions out of the MQTTComponent test, because of how mock.patch was used
* Adjusted the remaining tests for the MQTT clients new behavior - e.g. self.progress was removed
* Updated the async_fire_mqtt_message helper
* ✅ Update MQTT tests
* Re-introduce the MQTT subscriptions through the dispatcher for tests - quite ugly though... 🚧
* Update fixtures to use our new MQTT mock 🎨
* 📝 Update base code according to comments
* 🔨 Adjust MQTT test base
* 🔨 Update other MQTT tests
* 🍎 Fix carriage return in source files
Apparently test_mqtt_json.py and test_mqtt_template.py were written on Windows. In order to not mess up the diff, I'll just redo the carriage return.
* 🎨 Remove unused import
* 📝 Remove fire_mqtt_client_message
* 🐛 Fix using python 3.6 method
What's very interesting is that 3.4 didn't fail on travis...
* 🐛 Fix using assert directly
* Attempt fixing check_config script test flakiness
* Fix logging
* remove cleanup as Python will exit
* Make sure we don't enqueue magicmocks
* Lint
* Reinstate cleanup as it broke secret tests
* Fix some rfxtrx devices with multiple sensors
Some combined temperature/humidity sensors send one packet for each of
their sensors. Without this fix one of the home assistant sensors would
always display an unknown value.
* Add comment
* Correct time on recorder loaded values in statistics sensor
Previously, the current time was used when initial values was loaded
form the recorder component. This changes that to use the stored time
from recorder instead.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Expose min / max age of values in the statistics sensor
This is very useful when doing derived calculations, for example in a
template sensor.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Fix duplicate entity_ids in System Monitor
This fix makes it so `_percent` is appended to the `entity_id` of the following 3 resources, in order to make the `entity_id` unique:
- disk_use_percent
- memory_use_percent
- swap_use_percent
* match entity_id to resource name
Match entity_id to resource name, to make resulting entity_id more predictable
* match entity_id to more resource names
match entity_id to more resource names
* Add unique_id property
* Revert "Add unique_id property"
This reverts commit c213ac360e.
* Added timestamp at the end of the iTunes API URL from where HA retrieves the artwork, so that it's not cached, as the URL exposed by the API never changes
* Rearranged imports according to pylint
* Added content_id in media file URL instead of timestamp, according to Paulus' suggestion
* added more debug logging for sensor.alpha_vantage
* fixed typo in log statement, more fine grained logging
* Capitalized first character in log statement
* replaced quotes as proposed by @OttoWinter
* Add a processing queue to influxdb
* Updates after reviews
* Remove lint
* Move retry loop to thread class
* Move constant calculation out of loop
* Deprecate retry_queue_limit
* Simplify entity update
* Split entity platform from entity component
* Decouple entity platform from entity component
* Always include unit of measurement again
* Lint
* Fix test
* Add wake on lan capability to philips TV
* Update requirements_all.txt
* Fix line length issues.
* Replace wake on lan with turn on script for philips TV
* rerun requirements script
* 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
* Added support for Canary live stream view
* Updated requirements
* - Fixed lint error
* Addressed PR comment
* - Disabled polling for Canary camera as suggested in PR comment
- Live session is now renewed every time camera is retrieved and min time between session renewal is 90 seconds
* Add error handling to TP-LInk LED state set
Handles errors when setting the LED state of TP-Link sockets.
If the socket is unavailable then the raised exception will cause the
compoent to not be added to HA.
* Move LED state setting out of __init__
* Implemented play_media
Panasonic Viera TV has a full blown Web Browser that can play any media
* media stop
* format checks
* added SUPPORT_*
* bump version
* Tks @rytilahti
* one too many
* fix generic_thermostat bug when restore state from HA start up
if you don't set "initial_operation_mode" in config, you will get
`self._enabled = True` when init GenericThermostat. And then you will
miss the `if self._current_operation != STATE_OFF` statement and the
self._enabled still keep `True`. That's the problem
* add a test to describe the restore case
* 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
* Fix tado overlay end state
Previously, when tado ended an overlay state itself, say because a timer
expired or a scheduled temperature change ocurred, the tado climate
component would not return to Smart Schedule mode. This change fixes
that issue
* Correct tado state after multiple rapid updates
Previosuly, making two changes to tado climate within 10 seconds, for
example setting operation mode to Tado mode, then changing the
temperature, would leave the entity showing the incorrect state for up
to a minute.
This change forces an unthrottled update after setting the climate
state, which fixes the issue
* Fix comment formatting
* Added Channel attribute to webos media pplayer
* webostv: Current TV channel display as media_title
* Added displaying information about the current TV channel for WebOS platform
* Fixed PEP8 requirements
* 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
The module `asyncio.test_utils` has been removed from Python in the 3.7 branch, because it was intended to be a private module for internal testing of asyncio. For more information, see the upstream bug report at https://bugs.python.org/issue32273 and the upstream PR at https://github.com/python/cpython/pull/4785.
For this commit, I have migrated the small amount of functionality that was being used from the `asyncio.test_utils` directly into the `RunThreadsafeTests` Class. To see the original `asyncio.test_utils.TestCase` class, which I pulled some functionality from, please see: https://github.com/python/cpython/blob/3.6/Lib/asyncio/test_utils.py#L440
Note: In addition to being broken in 3.7, this test case also seems to be broken in Python 3.6.4 when using Docker. This PR fixes the test when run in docker.
To reproduce: `./script/test_docker -- tests/util/test_async.py`
failing output (prior to this commit):
```
... trimmed ...
py36 runtests: PYTHONHASHSEED='3262989550'
py36 runtests: commands[0] | py.test --timeout=9 --duration=10 --cov --cov-report= tests/util/test_async.py
Test session starts (platform: linux, Python 3.6.4, pytest 3.3.1, pytest-sugar 0.9.0)
rootdir: /usr/src/app, inifile: setup.cfg
plugins: timeout-1.2.1, sugar-0.9.0, cov-2.5.1, aiohttp-0.3.0
timeout: 9.0s method: signal
―――――――――――――――――― ERROR collecting tests/util/test_async.py ――――――――――――――――――――――――
ImportError while importing test module '/usr/src/app/tests/util/test_async.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/util/test_async.py:3: in <module>
from asyncio import test_utils
/usr/local/lib/python3.6/asyncio/test_utils.py:36: in <module>
from test import support
E ImportError: cannot import name 'support'
```
* added media_stop
VLC was missing the media_stop. The pause was present, but starting the same file result in resuming the file instead of start over new
* Corrected style issues
Style issues and added Support Flag to Support VLC
* fixed other style issues
* remove trailing whitespace
* Fix detection of mobile browsers
* Move break
* Add Mobile browsers to list
`Mobile Safari` is covered by iOS and `Opera Mini` does not support es6
... And Edge doesn't even work on desktop for me...
* Fixing demo platform to use support_flags
* Fixed tests as well
* Moved humidity low / high as always available based on defaults
* Updated demo platform to show more combinations
* Entity#unique_id defaults to None
* Initial commit entity registry
* Clean up unique_id property
* Lint
* Add tests to entity component
* Lint
* Restore some unique ids
* Spelling
* Remove use of IP address for unique ID
* Add tests
* Add tests
* Fix tests
* Add some docs
* Add one more test
* Fix new test…
* google_assistant: Refactor query_device
The previous code had issues where domains could break out and end up
with weird brightness values and we weren't enforcing the `on` and
`oneline` keys in the response.
* google_assistant: Add media_player to query test
* Handling of payload not for this entity.
The update state-method should not be called if the payload is not intended for this entity.
* Fixing linter errors
* Adding warning for case when no matching payload is found
* Refactor alexa smart_home tests
The previous tests had a lot of copy pasta due to a lack of expressions
for higher-level assertions. I'm hoping this makes it more reasonable to
extend all interfaces to support properties.
* Lint
* sensor.deutsche_bahn: add only_direct option
This adds the `only_direct` option to the HA interface as provided by the schiene class.
* fix line length
as requested by @houndci-bot and @fabaff
* No line breaks needed
* Refactor Alexa Smart Home API
Having an object per interface will make it easier to support
properties.
Ideally, properties are reported in context in all responses. However
current implementation reports them only in response to a ReportState
request. This seems to work sufficiently. As long as the device is
opened in the Alexa app, Amazon will poll the device state every few
seconds with a ReportState request.
* Report properties for some Alexa interfaces
Fixes (mostly) #11874.
Other interfaces will need properties implemented as well.
Implementing properties for just PowerController seems sufficient to
eliminate the "There was a problem." error for any device that supports
it, even if other interfaces are supported. Of course the additional
properties will be reported incorrectly in the Alexa app.
Includes a minor bugfix: `reportable` was previously placed incorrectly
in the responses, so Amazon was ignoring it.
Having an object per interface will make it easier to support
properties.
Ideally, properties are reported in context in all responses. However
current implementation reports them only in response to a ReportState
request. This seems to work sufficiently. As long as the device is
opened in the Alexa app, Amazon will poll the device state every few
seconds with a ReportState request.
* Fixed Canary temperature sensor and remapped air quality value
* Addressed review comment
* - Fixed canary tests and added more tests
- Removed py-canary requirements from tests
* Noop to trigger a build again
* - Removed py-canary requirements from tests
* Addressed PR comment
* - Updated tests
- Removed py-canary from gen_requirements_all.py
* - Fixed hound violation
* Added back py-canary to gen_requirements_all.py as it's still need in tests
* Added back py-canary to test requirements as it's still need in tests
* Address PR comment
* Base platform in place
* Logic in place
* Requirements and coverage
* Fixed some linting issues
* Small attribute reorganization
* Collaborator-requested changes round 1
* Updated documentation
* Send Alexa Smart Home responses to debug log
* Report scripts and groups as scenes to Alexa
The Alexa API docs have a couple display categories that sound relevant
to scenes or scripts:
ACTIVITY_TRIGGER: Describes a combination of devices set to a
specific state, when the state change must occur in a specific
order. For example, a “watch Neflix” scene might require the: 1. TV
to be powered on & 2. Input set to HDMI1.
SCENE_TRIGGER: Describes a combination of devices set to a specific
state, when the order of the state change is not important. For
example a bedtime scene might include turning off lights and
lowering the thermostat, but the order is unimportant.
Additionally, Alexa has a notion of scenes that support deactivation.
This is a natural fit for groups, and scripts with delays which can be
cancelled.
https://developer.amazon.com/docs/device-apis/alexa-discovery.html#display-categories
The mechanism to map entities to the Alexa Discovery response is
refactored since extending the data structures in MAPPING_COMPONENT to
implement supportsDeactivation would have added complication to what I
already found to be a confusing construct.
* Multi-Room Support for Greenwave Reality
* PEP8 Line Too Long
* Update requirements_all.txt
* Shared State Object
Shared State Object added, and implemented new function of greenwavereality to abstract complex runtimes.
* Update requirements_all.txt
* Lint issues
* Rewrite method to not trigger "Method could be a function"
* Remove unnecessary arguments for update call
* Improve foscam library exception support
Catches foscam exceptions that otherwise pollute the log. Many of these exception can safely be ignored
* Fixed line length
Fixed line length
* Changed exception and log handling
changed logging and catched only the TypeError effecting the library
* Removed unused var
Removed var
* Fix remaining issue
* 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.)
* Added documentation reference to code
* Some code clean-ups suggested by @MartinHjelmare in PR#: 11695 after merging.
* fixed minor typo in docstring
* fixed another minor typo in same docstring...
* fixed another minor typo in same docstring...
* Release worker thread while waiting for Z-wave startup
* Increase zwave startup timeout
* Adjust test
* Use asyncio.sleep in _check_awaked
* Remove lint
* Name loop parameter
* Expose Alexa Smart Home via HTTP POST
Haaska uses the deprecated v2 Alexa Smart Home payload. Exposing the v3
implementation this way allows an easy path to upgrading Haaska and
reducing code duplication with Home Assistant Cloud.
* Expose Alexa Smart Home via HTTP POST
Haaska uses the deprecated v2 Alexa Smart Home payload. Exposing the v3
implementation this way allows an easy path to upgrading Haaska and
reducing code duplication with Home Assistant Cloud.
In local testing py36 always fails on test_minimal_config on a wait
call that never completes. One difference between this test and others
in the class is the lack of a mock on `call`. With this added, the
test passes locally 100%.
* added unavailability tracker, updated sensor component
* change hass argument position according to position in binary_sensor
* added hass argument to binary_sensor, updated is_on(), it can be UNAVAILABLE now
* updated switch component to support unavailability feature
* updated light component to support unavailability feature
* updated cover component to support unavailability feature
* set _hass property
* added unavailability tracker, updated sensor component
* change hass argument position according to position in binary_sensor
* added hass argument to binary_sensor, updated is_on(), it can be UNAVAILABLE now
* updated switch component to support unavailability feature
* updated light component to support unavailability feature
* updated cover component to support unavailability feature
* set _hass property
* fixed error with wrong arguments number during callback call
* reset unavailability state on new message received from device
* use locks to fix race condition during managing _state property
* overriden state() method for some components to check for STATE_UNAVAILABLE and return it instead e.g. STATE_OFF
* fixed linter
* removed blank line
* use available() method instead of changing _state
* filter motion sensors 'heartbeat', was removed from PyXiaomiGateway
* remove self._hass, use self.hass set by HA on attach
* self.push_data now running in the event loop, use async_schedule_update_ha_state()
* merge fix
* removed accidentally added home-assistant-polymer
* bump PyXiaomiGateway version to 0.8.0
* bump PyXiaomiGateway to 0.8.0
* updated methods names and annotations
* 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
* Allow exposing sensors as temperature or humidity as 'climate' to Google Assistant
* Fixed hound
* Fixed hound
* Handled correctly unit of measurement to fix humidity
* Fixed temperature conversion for Google climate components
* Fixed temperature conversion for Google climate components
* Fixed indentation
* Fixed hound
* Fixed tests
* Fixed conversion and unit tests
* Fix sync for custom unit temperature
* Implemented requested changes
* Fix hound
* Fix linting errors
* Added success tests for sensors as climate
* Fix lint errors
The sensors are meant to be put on windows to shut down the heating when
windows are open. Having 'window' device class instead of 'opening' is
much more logical here.
* Change 'on' to 'heat' as fallback thermostat mode
'on' isn't recognised as a mode by Google Assistant, rather is used as a method to return a thermostat to a previous mode. In the case where a thermostat doesn't support the standard google modes (e.g. A homematic radiator thermostat) this means the set_temperature doesn't get returned to the user on a request.
* Update test_google_assistant.py
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
* Updated bluepy to version 1.1.4 as some issues with the native code were fixed there.
* Miflora - Added support for bluepy backend.
* miflora - now using bluepy backend on linux platforms
* fixed pylint findings
* miflora now using bluepy as default bluetooth backend and gatttool as fallback
* fixed hound complaints
* fixed pylint warning
* updated requirements
* Update miflora.py
* Make Google TTS secure
I noticed that my TTS queries were showing up in the log on my router, so I was curious if there was a way to make it secure. A quick search showed people using https instead of http (https://stackoverflow.com/questions/32053442/google-translate-tts-api-blocked), so I figure that should work. I am using hass.io, so I'm not actually sure how to test this, but its a pretty simple change.
* Fix the tts test.
* Added option to create a group for the plant and all of it's sensors so that they appear together in the UI
* fixed warnings from the hound
* added check for min_brightness over several days
* fixed hound complaints
* 1) added missing dependency on recorder
2) using group.Group instead of hass.states.async_set as requested by @pvizeli
* fixed pylint error in docstring
* changed the way the groups are created
* fixed requirements issue
* Changed the way the groups are implemented. This is proposal number 4...
* Data read from recorder only on startup.
We now only store one data point per day. If a recorder is configured, this data is initialized from the database. If not the list is empty on startup.
* added missing documentation
* fixed typo in comment
* removed group fature
* added group dependency since it's still needed
* fixed bug: now "None" is no longer added to the DailyHistory
* now also outputting unit of measurement if defined by the sensors
* removed iconss
* fixed line length
* Implemented changes requested in code reviews.
These changes affect the interface to the UI:
* renamed attribute for units of measurement to "unit_of_measurement_dict"
* renamed attribute for maximum in brightness history to "max_brightness"
* only loading the history if a brightness sensor was configured
* fixed testcase
* fixed stupid bug in check of brightness history
Also added test for this bug
* added missing docstring
* Fixed sporadic failure in test case.
Sometimes the component was created before the data was stored in the history. This lead to an empty history being read.
* removed unused import statement in testcase
* reverted change to test case
* Changed startup behavior of the component.
No failed tests after 20 local test runs.
* added missing docstring
* fixed tests
* added hass.start() to Setup
* fixed call parameters in constructor
* added time.sleep
* removed sleep
* fixed typo in variable name
* disabled loading from database as it's not stable at the moment and nobody knows why :(
* fixed flake8
* now using pytest.mark.skipif to skip test
* add pyhomematic support for ip and tiltable covers
* use cached data in current_cover_tilt_position
* check for existance not for None
* reformatting
* check node for LEVEL_2
* Service for setting a fixed scene introduced.
Fixes https://github.com/syssi/philipslight/issues/6.
Fixes https://github.com/home-assistant/home-assistant/issues/10458.
* Service description added.
* Typo fixed.
* Error message updated and naming improved.
* Name ("scene") of the method parameter aligned.
* Hound error fixed: Spaces removed.
* async_setup_platform method simplified.
* Lazy loading of service descriptions.
* Unused import removed.
* Implemented event_data_template
* The hound does not like my indentation
* Added passed variables to tests for event and svc template calls
* Moved recursive function to template.py
* Update template.py
* Update template.py
* Cleaned up service.py and fixed unit tests
* Blank lines
* Removed stray logger statement
* Blank lines again
* Signal callback isnt JSON serializable so it has to be removed before saving to conf
* Remove filtered events list which is not a part of component configuration
* 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
* Add 'last' type to min/max sensor
Now supports types: min, max, mean, last
'last' is the most recently received value from all tracked entities.
* Min/max sensor 'last' type test
* Fix min/max sensor 'last' test
* Use bluetooth_le source_type, if location was changed by beacon
* No reason to do nested ifs
* Added tests for source_type on owntracks
* Fixed The Hound
* Added test and fixed bug surfaced by test
* Wemo Dimmer Support
Add support for the Wemo Dimmer Switch
* Add newline at end of file
Re: findings from hound
* Syntax for the hound
Sorry for the excess edits, new to python
* Change order of Models
Fixed order back to ABC order
* Changes as requested
I made the changes I was comfortable with at this point, the dimmer addition now very closely mirrors what is under the switch component, at least as far as the parts necessary for the dimmer.
Any changes past these with regards to the subscription registry / callback info is probably going to be over my head, but I will try to look deeper at them if required.
* Remove unnecessary lines
Removed self.schedule_update_ha_state() from turn off / turn on
* Remove update(self)
Removed update method
* Move subscription to async_added_to_hass
* Move subscription.
* Clean up.
* Wait until the job in the executor is done
* Run gen_requirements_all script
* Only update instance attributes via callback
* 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
* Added snips.say and snips.say_action services
* Added snips.say and snips.say_action services
* Merged services.yaml changes I missed
* added tests for new service configs
* Woof
* Woof Woof
* Changed attribute names to follow hass standards.
* updated test_snips with new attribute names
* Strip off the RTS/IO ID from the entity ID
* Ignore exception thrown when the device does not provide an active state
* Send actions with a label for easier identification in the Tahoma log
* Linting
* Strip off the RTS/IO ID from the entity ID, take 2
As per suggestions, let HA do the standard initialization and assign
an appropriate entity_id, instead of overriding it with the lengthy
unique_id coming from the TaHoma devices.
* Hyperion: Add brightness, HDMI and effect support
- added brightness support to dim the hyperion light
- changed the "OFF" command to set the color to [0,0,0] after clearing all priorities.
This is neccesary to keep the light turned off when an HDMI grabber is used for ambilight with hyperion.
- added HDMI ambilight mode recognition and control.
by setting the "hdmi_priority" in your "configuration.yaml" file (defaults to 880), home assistant will now be able to recognize when the hyperion light is in HDMI ambilight mode and will change its icon to an HDMI symbol and set the status to ON.
Switching the hyperion light to HDMI ambilight mode can be done through the effect option (clears all priorities such that the HDMI grabber remains).
- added effect support for the default effects of hyperion, a custom list can be defined in the "configuration.yaml" file by using the "effect_list" option.
* Hyperion: Add brightness, HDMI and effect support
- added brightness support to dim the hyperion light
- changed the "OFF" command to set the color to [0,0,0] after clearing all priorities.
This is neccesary to keep the light turned off when an HDMI grabber is used for ambilight with hyperion.
- added HDMI ambilight mode recognition and control.
by setting the "hdmi_priority" in your "configuration.yaml" file (defaults to 880), home assistant will now be able to recognize when the hyperion light is in HDMI ambilight mode and will change its icon to an HDMI symbol and set the status to ON.
Switching the hyperion light to HDMI ambilight mode can be done through the effect option (clears all priorities such that the HDMI grabber remains).
- added effect support for the default effects of hyperion, a custom list can be defined in the "configuration.yaml" file by using the "effect_list" option.
- fixed some style issues with too long lines
* Hyperion: Add brightness, HDMI and effect support
- fixed some more indentation style issues
* Hyperion: Add brightness, HDMI and effect support
- yet more fixed visuel indent issues
* Hyperion: Add brightness, HDMI and effect support
- more visuel indents
* Hyperion: Add brightness, HDMI and effect support
- fixed invalid variable "A"
* Hyperion: Add brightness, HDMI and effect support
- remove unnececary brackets
- specify specific exceptions
* correct changing state holding attributes during a service method
Proccesed the comments of @MartinHjelmare: https://github.com/home-assistant/home-assistant/pull/11543#pullrequestreview-88328659
* indent correction
corrected tab instead of 4 spaces
* Hyperion: Add brightness, HDMI and effect support
- changed 'none' to None
- renamed "self._skip_check" to "self._skip_update"
* Add brightness, HDMI and effect support
changed checking if a list is empty from "list == []" to "not list"
* Adding support for Lutron Radio RA2 shades as cover components.
* Adding initial version of the Lutron shades component.
* Fixed line-length violation detected by Hound.
* Added snips.say and snips.say_action services
* Added snips.say and snips.say_action services
* Merged services.yaml changes I missed
* added tests for new service configs
* Woof
* Woof Woof
* Changed attribute names to follow hass standards.
* updated test_snips with new attribute names
* Added support for enable/disable motion detection
* Changed name of variable for exception, lint error
* Moved motion_detection_enabled property to the other properties
* Fix error when name is non-latin script
When the name is non-latin script (e.g. Japanese), slugify returns empty string and causes failure in a later stage. This commit fixes the issue by using default name.
* Add test
* Make the order shown in the history component match the ordering given in the configuration of included entities (if any)
* return the sorted result
* optimize sorting. since entities only appear once, we can break from a search on first find, and no copy of the list is needed
* Changed device type of media player and cover to switch
Covers and media players should not be of device type 'light'. Example: If user requests all lights to switch to off, covers are closed and media players are affected too.
* Fix test
* Make the rpi_rf component thread-safe
The previous implementation suffered from race conditions when two rpi_rf switches are triggered at the same time. This implementation uses an RLock to give one thread at a time exclusive access to the rfdevice object.
* cleanup
* fix lint
* Deprecate explicit entity_id in template platforms
* Use config validator for deprecation
* Fix copy/paste typos
* Also print the config value
* Add test for config validator
* Assert the module name that logged the message
If the `google_assistant` key exists in the config but has no
`entity_config` key under it you'll get an error.
```
File "/Users/pkates/src/home-assistant/homeassistant/components/google_assistant/http.py", line 51, in is_exposed
entity_config.get(entity.entity_id, {}).get(CONF_EXPOSE)
AttributeError: 'NoneType' object has no attribute 'get'
```
* Add 2 media_player services and 1 custom service to Squeezebox platform
* Fix pylint error
* Remove apostrophe in example
* Split method into command and parameters
* Fix Lint error
* Switch the ZoneMinder event sensor over to use the consoleEvents API, and add monitored_conditions for 'hour', 'day', 'week', 'month' and 'all'. 'all' is enabled by default to provide backward compatibility with the old behaviour.
* - Switch to new string formatting
- Remove redundant validator
* De-lint
* trying to rework device discovery. now the main component will do the getlinked and pass it to the sub-components. no longer any config needed other than what is needed to connect to the hub. device names are no longer stored. core team told us to stop using configurator to ask for names. there should be a way to set names in hass...possibly this https://home-assistant.io/docs/configuration/customizing-devices/
* fix device types
* make device names just be the isnteon device id
* revert some config changes
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* update insteon client
* linting fixes
* Error Clean up
* Update to make requested changes
* more changes
* Finish requested changes to components
* Fixing Rebase Conflicts
* fix device types
* make device names just be the isnteon device id
* revert some config changes
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* update insteon client
* linting fixes
* Error Clean up
* Update to make requested changes
* more changes
* Finish requested changes to components
* Update Insteon_Local for performance improvements
* Fix errors from get_linked
* Fix typo
* Requested changes
* Fix spacing
* Clean up
* Requested Changes
* Add options feature to Baidu TTS.
Add options feature: supported_options() and default_options() added, get_tts_audio updated to accommodate options.
* Add options feature to Baidu TTS.
Add options feature: supported_options() and default_options() added, get_tts_audio updated to accommodate options.
* Fix style
* Fix style
Change the order of content of lists and dictionaries.
* Fix style
Changed order of imports, and fixed grammar errors.
For example all metrics with unit % match humidity.
This generate correct metrics like this
# HELP nut_ups_battery_charge sensor.nut_ups_battery_charge
# TYPE nut_ups_battery_charge gauge
nut_ups_battery_charge{entity="sensor.nut_ups_battery_charge",friendly_name="NUT UPS Battery Charge"} 98.0
nut_ups_battery_charge{entity="sensor.nut_ups_battery_charge_2",friendly_name="NUT UPS Battery Charge"} 97.0
* Extended sensor alpha_vantage
* Improved error handling if symbol is not found. Now we add the symbols that were found,
* Added option to give names and currencies to symbols.
* Added support to read foreign exchange information.
* Icons are selected based on the currency (where MDI has a matching icon)
* added missing line at the end of the file...
* renamed variable as required by pylint
* Fix typos, ordering, and style
* Connection to mochad occasionally stalls on RPi and CM19A. Reconnect one switch send command.
* Formatting and exception hanling fixes
* Moved import inside the method. Logging outside the try-catch.
* Tailing whitespaces.
* MockDependency on pymochad in unit tests to resolve exceptions
* patch pymochad MochadException in unit tests to resolve exceptions
* patch pymochad MochadException in unit tests to resolve exceptions
* cleaned unused import
* lint issue fixed
* pylint issue fixed
* New features for Owntracks device_tracker
- Supporting a mapping of region names in OT to zones in HA, allowing
separate namespaces in both applications. This is especially helpful
if using one OT instance to update geofences for multiple homes.
- Creating a setting to ignore all location updates, allowing users to
rely completely on enter and leave events. I have personally always
used OT integrations with home automation this way and find it the
most reliable.
- Allowing the OT topic to be overridden in configuration
* Fixing configuration of MQTT topic, related tests
* Tests for Owntracks events_only feature
* Tests for customizing mqtt topic, region mapping
* Fixing _parse and http for owntracks custom topic
* Making tests more thorough and cleaning up lint
* 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
* Issue #11432: Do not stop initializing KNX when tunelling device cant be reached
* Issue #11432: Mark devices as unavailable if gateway cant be connected
Add the amount of remaining time before a timer is finished in its state attributes, so that it is received when fetching a timer state.
In my particular case, it allows me to correctly implement a UI for a timer when it is paused and when the UI didn't received the pause state change (which happens when the UI is started after the pause). In this case, it is impossible to show the remaining amount of time before the timer ends.
* Fix time functions would throw errors in python scripts
* Added unit test for time.strptime, change variable name to satisfy lint
* Added docstring for time attribute wrapper method to satisfy lint
* Fixed line too long lint problem
* 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
* Don't duplicate html5 registrations
If a registration is posted and another registration with the same
endpoint URL exists, update that one instead. That way, we preserve
the device name that has been configured. The previous behavior used to
append 'unnamed device' registrations over and over, leading to
multiple copies of the same registration. The endpoint URL is unique per
service worker so it is safe to update matching registrations.
* Refactor html5 registration view to not write json in the event loop
Leak sensors were using the "wet" node as a negative node, which prevented them from ever gettng a Dry status unless the user pressed the button on the hardware after every Hass reboot.
This change ignores the Wet node, as it is just always the exact inverse of the Dry node. We don't need to watch both.
* Improve support for multiple Hue bridges with lights that have the same id.
The old code pre-refactoring kept a per-bridge list of lights in a closure; my refactoring moved that to hass.data, which is convenient but caused them to conflict with each other.
Fixes#11183
* Update test_hue.py
* Fix detection of if a negative node is in use
Fix a problem where every negative node gets detected as in-use. Code was not checking the correct property.
* Allow protected access
* Call update on Sesame devices to cache initial state
* Switch to using async_add_devices
* Fix line length
* Fix Lint errors
* Fix more Lint errors
* Cache pysesame properties
* Updates from CR feedback
* Reconnect to alarmdecoder on disconnect
* Use track_point_in_time instead of call_later
* use alarmdecoder 1.13.2 which has a more robust reconnection fix
* Updated generic thermostat to respect operation_mode and added away mode
* Updated tests to include away mode and corrected init problem for sensor state
Added more tests to improve coverage and corrected again lint errors
Fixed new test by moving to correct package
Fixed bug not restoring away mode on restart
* Added support for idle on interface through state
* Added back initial_operation_mode and modified away_temp to be only one for now
* Fixed houndci-bot errors
* Added back check for None on restore temperature
* Fixed failing tests as well
* Removed unused definitions from tests
* Added use case for no initial temperature and no previously saved temperature
* 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
* fix: hmip-etrv-2 now working with homeassistant (see also pull request at pyhomematic)
* fix linting issue and typo
* address comment @pvizeli
* Only use cached data in current operation mode
* fix linting issue
* Updated plexapi to 3.0.5
* Removed removed server obj that was being used for the media URL generation as .url() is available in self._session
seasons() no longer exists -> renamed to season()
season() returns obj not list so corrected
season.index returns int, cast to str to zerofill
* Fixed Linting
* Account for User-Agent being non-existent, causing a TypeError
* Actually fix case of no user-agent with last resort
* Return es5 as last resort
* Update __init__.py
* Update __init__.py
* Do not leave remember the milk config file behind
* Fix exception in service causing service timeout
* Change max service timeout to 9 to catch services timing out
* Fix Google Sync service test
* Update and pin test requirements
* 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
Reverts energy and power unit conversions added in #10979 as they break
early devices.
A proper fix should be implemented in the pyhs100 library which should
return common units across all devices/firmwares.
* Remember the Milk - updating and completing tasks
Added new feature so that tasks can be updated and completed.
For this feature a task id must be set when creating the task.
* fixed hould complaints
* fixed review comments by @MartinHjelmare
* removed unnecessary check as proposed by @MartinHjelmare
* 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.
* Use different colour channel intensities in tests
Uses a different value for each colour channel in MQTT light tests to
properly differentiate between colour channels.
* Correct ordering of RGB channels in MQTT light
* Correct units used in TP-Link energy monioring
- Energy is measured in kWh for swtches
- Power is reported in mW for bulbs
- Energy is reported in Wh for bulbs
* TP-Ling energy: store units in attribute names
Stores the unit in the attrbute names for TP-Link devices that support
energy monitoring.
* Allow disabling the DoorBird camera live view
* Support for push notifications from DoorBird devices
* use DoorBirdPy 0.1.1 instead of 0.1.0
* Fix lint errors in DoorBird binary sensor
* Change DoorBird push notifications from binary sensor to event
* Remove DoorBird camera options
* use DoorBirdPy 0.1.2 to fix history image urls
* clean up doorbird event code and remove unused doorbird camera imports
* use async for doorbird doorbell events
* Minor changes
* Update file header
* Fix my mess
* Fix docstring
* 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
* Removing need for separate Egardiaserver setup
* Fixing linting errors
* Updating egardia component based on review
* Updating egardia component based on review
* Updating egardia component based on review
* Removed return False twice based on review
Leak sensors were using the "wet" node as a negative node, which prevented them from ever gettng a Dry status unless the user pressed the button on the hardware after every Hass reboot.
This change ignores the Wet node, as it is just always the exact inverse of the Dry node. We don't need to watch both.
* Huge ISY994 platform cleanup, fixes support for 5.0.10 firmware
# * No more globals - store on hass.data
# * Parent ISY994 component handles categorizing nodes in to Hass components, rather than each individual domain filtering all nodes themselves
# * Remove hidden string, replace with ignore string. Hidden should be done via the customize block; ignore fully prevents the node from getting a Hass entity
# * Removed a few unused methods in the ISYDevice class
# * Cleaned up the hostname parsing
# * Removed broken logic in the fan Program component. It was setting properties that have no setters
# * Added the missing SUPPORTED_FEATURES to the fan component to indicate that it can set speed
# * Added better error handling and a log warning when an ISY994 program entity fails to initialize
# * Cleaned up a few instances of unecessarily complicated logic paths, and other cases of unnecessary logic that is already handled by base classes
* Use `super()` instead of explicit base class calls
* Move `hass` argument to first position
* Use str.format instead of string addition
* Move program structure building and validation to component
Removes the need for a bunch of duplicate exception handling in each individual platform
* Fix climate nodes, fix climate names, add config to disable climate
Sensor platform was crashing when the ISY reported climate nodes. Logic has been fixed. Also added a config option to prevent climate sensors from getting imported from the ISY. Also replace the underscore from climate node names with spaces so they default to friendly names.
* Space missing in error message
* Fix string comparison to use `==`
* Explicitly check for attributes rather than catch AttributeError
Also removes two stray debug lines
* Remove null checks on hass.data, as they are always null at this point
* Enable more alarm decoder attributes, including chime status and ready status
* Expose chime service in the alarm decoder component
* Fix line length linting issue
* Fix spacing lint issue
* Update PR based on reviewer requests
* Update based on linting catches
* Fix descriptions include from async to sync
* Store raw state of RF sensors from alarmdecoder
* Fix resync. Fix issue with RFID not being truly optional
* Breakdown RF attributes per bit
* Preserve import style
* alexa: Add handling for covers
Covers don't support either cover.turn_on or homeassistant.turn_on so
use cover.[open|close]_cover.
* alexa: Add tests for covers
* Cleaned up '_clear_media()'
* Moved media Type to new method
* renamed "clear_media()' to ' clear_media_details()'
reset 'app_name' (Library Name) in clear_media_details
moved thumbs to '_set_media_image()'
* Moved playback info into setmedia type as it was just used for the next anyway
* Moved library name & image download to only happen if session and player active as else no point anyway
* Fixed Linting issue
* Some tweaks to clean up unintended complexity
* Removed redundant declarations
* Fixed whitespace
* Revert "Fixed whitespace"
This reverts commit 0985445c47.
* Revert "Removed redundant declarations"
This reverts commit 6f9d5a85b0.
* Improve support for multiple Hue bridges with lights that have the same id.
The old code pre-refactoring kept a per-bridge list of lights in a closure; my refactoring moved that to hass.data, which is convenient but caused them to conflict with each other.
Fixes#11183
* Update test_hue.py
* Call update on Sesame devices to cache initial state
* Switch to using async_add_devices
* Fix line length
* Fix Lint errors
* Fix more Lint errors
* Cache pysesame properties
* Updates from CR feedback
* added functionality to save/restore snapshots to monoprice platform
* renamed monoprice_snapshot, monoprice_restore to snapshot, restore
This is to simplify refactoring of snapshot/restore functionality for monoprice, snapcast and sonos in the future
* Revert "Adding MotionIP to BinarySensors for HMIP-SMI (#11268)"
This reverts commit c94cc34a8f.
* Revert "Bugfix: 10509 - http is hard coded in plex sensor (#11072)"
This reverts commit 901d4b5489.
* Revert "Fix handling zero values for state_on/state_off (#11264)"
This reverts commit 2e4e3a42cc.
* Revert "Fix inverted sensors on the concord232 binary sensor component (#11261)"
This reverts commit b866687cd7.
* Revert "Proper Steam game names and small fixes (#11182)"
This reverts commit 7faa94046c.
* Revert "Bugfix homematic available modus (#11256)"
This reverts commit 1d579587c1.
* Revert "Fix detection of if a negative node is in use (#11255)"
This reverts commit b28bfad496.
* Revert "added myself to become code owner for miflora and plant (#11251)"
This reverts commit e0682044f0.
* Revert "Add workaround for running tox on Windows platforms (#11188)"
This reverts commit 81f1a65fae.
* Revert "Upgrade to new miflora version 0.2.0 (#11250)"
This reverts commit 8efc4b5ba9.
* Revert "homematic: add username and password to interface config schema (#11214)"
This reverts commit b4e2537de3.
* Revert "Backup configuration files before overwriting (#11216)"
This reverts commit 90e25a6dfb.
* Adding MotionIP to BinarySensors for HMIP-SMI
My HmIP-SMI (Homematic IP Motion Sensor) only shows "ILLUMINATION" and no MOTION, because the binary values are not recognized. The "old" homematic-motion detectors are working well showing motion, too.
I found out that "MotionIP" was missing at the binary_sensors - after adding "Motion" and "Motion Detection Activated" are shown.
* Removed trailing blanks
removed trailing blanks from my previous change
* Use constant for offline state
* Use constant for no game name
* Rename trade and play constant their proper names
Trade and Play are not the correct names for the states. For instance
Play might be seens as the user is actually is playing, which is not
correct as there is no such state is returned from the Steam API.
Just having "trade" does not say much about what is happening and
might be misintepreted that the user is currently trading, which is not
correct either.
We instead use the names from the underlying library for naming the
states [1]
[1] 2e518ad84f/steam/user.py (L109)
* Get the proper game name if no extra info is given from the api
The third `current_game` parameter that was used before hold
extra information about the game that is being played. This might
contain the game name, it might also be empty. The correct way to
get the game name is to fetch it from the API depending on the
game id that might be returned in the `current_game` attribute if
the user is playing a game.
To not break existing implementations we keep the functionality
to first go with the extra information and only then fetch the proper
game name.
* Refactor getting game name to its own function
This cleans up the code and removed "ugly" else statements
from the sensor and makes the game fetching easier to read.
* Let state constant values be lower snake case
* Return None instead of 'None' when no current game exists
* Initialize steam app list only once to benefit form caching
* Return None as state attributes if no current game is present
* Fix detection of if a negative node is in use
Fix a problem where every negative node gets detected as in-use. Code was not checking the correct property.
* Allow protected access
* Extend Threshold binary sensor to support ranges
- Adds support for ranges
- Threshold type (lower, upper, range) is defined by supplied
thresholds (lower, upper)
- Adds verbose status/position relative to threshold as attribute
(position)
* Minor changes (ordering, names, etc.)
* Update name
* Update name
* Fix statistics sensor mean and median when only one sample is available.
With only one data point stddev and variance throw an exception.
This would clear the (valid) mean and median calculations.
Separate the try..catch blocks for one-or-more and two-or-more stats so
that this doesn't happen.
Test this with a new sampling_size_1 test.
* test_statistics trivial whitespace fix
Sonos Playbar and Playbase devices support Night Sound and Speech Enhancement
effects when playing from sources such as a TV. Adds a new service "sonos_set_option"
whichs accepts boolean options to control these audio features.
Sonos Playbar and Playbase devices support Night Sound and Speech Enhancement
effects when playing from sources such as a TV. Adds a new service "sonos_set_option"
whichs accepts boolean options to control these audio features.
* Fix X10 commands for mochad light turn on
This commit attempts to address issues that a lot of people are having
with the x10 light component. Originally this was written to use the
xdim (extended dim) X10 command. However, not every X10 dimmer device
supports the xdim command. Additionally, it turns out the number of
dim/brighness levels the X10 device supports is device specific and
there is no way to detect this (given the mostly 1 way nature of X10)
To address these issues, this commit removes the usage of xdim and
instead relies on using the 'on' command and the 'dim' command. This
should work on all x10 light devices. In an attempt to address the
different dim/brightness levels supported by different devices this
commit also adds a new optional config value, 'brightness_levels', to
specify if it's either 32, 64, or 256. By default 32 levels are used
as this is the normal case and what is documented by mochad.
Fixes#8943
* make code more readable
* fix style
* fix lint
* fix tests
* Fix X10 commands for mochad light turn on
This commit attempts to address issues that a lot of people are having
with the x10 light component. Originally this was written to use the
xdim (extended dim) X10 command. However, not every X10 dimmer device
supports the xdim command. Additionally, it turns out the number of
dim/brighness levels the X10 device supports is device specific and
there is no way to detect this (given the mostly 1 way nature of X10)
To address these issues, this commit removes the usage of xdim and
instead relies on using the 'on' command and the 'dim' command. This
should work on all x10 light devices. In an attempt to address the
different dim/brightness levels supported by different devices this
commit also adds a new optional config value, 'brightness_levels', to
specify if it's either 32, 64, or 256. By default 32 levels are used
as this is the normal case and what is documented by mochad.
Fixes#8943
* make code more readable
* fix style
* fix lint
* fix tests
* Fire events for ISY994 control events
This allows hass to react directly to Insteon button presses (on switches and remotes), including presses, double-presses, and long holds
* Move change event subscription to after entity is added to hass
The event handler method requires `self.hass` to exist, which doesn't have a value until the async_added_to_hass method is called. Should eliminate a race condition.
* Overhaul binary sensors in ISY994 to be functional "out of the box"
We now smash all of the subnodes from the ISY994 in to one Hass binary_sensor, and automatically support both paradigms of state reporting that Insteon sensors can do. Sometimes a single node's state represents the sensor's state, other times two nodes are used and only "ON" events are sent from each. The logic between the two forunately do not conflict so we can support both without knowing which mode the device is in.
This also allows us to handle the heartbeat functionality that certain sensors have - we simply store the timestamp of the heartbeat as an attribute on the sensor device. It defaults to Unknown on bootup if and only if the device supports heartbeats, due to the presence of subnode 4.
* Parse the binary sensor device class from the ISY's device "type"
Now we automatically know which sensors are moisture, motion, and openings! (We also reverse the moisture sensor state, because Insteon reports ON for dry on the primary node.)
* Code review tweaks
The one material change here is that the event subscribers were moved to the `async_added_to_hass` method, as the handlers depend on things that only exist after the entity has been added.
* Handle cases where a sensor's state is unknown
When the ISY first boots up, if a battery-powered sensor has not reported in yet (due to heartbeat or a change in state), the state is unknown until it does.
* Clean up from code review
Fix coroutine await, remove unnecessary exception check, and return None when state is unknown
* Unknown value from PyISY is now -inf rather than -1
* Move heartbeat handling to a separate sensor
Now all heartbeat-compatible sensors will have a separate `binary_sensor` device that represents the battery state (on = dead)
* Add support for Unknown state, which is being added in next PyISY
PyISY will report unknown states as the number "-inf". This is implemented in the base ISY994 component, but subcomponents that override the `state` method needed some extra logic to handle it as well.
* Change a couple try blocks to explicit None checks
* Bump PyISY to 1.1.0, now that it has been published!
* Remove -inf checking from base component
The implementation of the -inf checking was improved in another branch which has been merged in to this branch already.
* Restrict negative-node and heartbeat support to known compatible types
Not all Insteon sensors use the same subnode IDs for the same things, so we need to use different logic depending on device type. Negative node and heartbeat support is now only used for leak sensors and open/close sensors.
* Use new style string formatting
* Add binary sensor detection for pre-5.x firmware
Meant to do this originally; writing documentation revealed that this requirement was missed!
* Allow using more than one keyboard remote
This sets up one thread per keyboard remote, listening for events.
* Remove enclosing block in keyboard_remote
* Remove unnecessary semantic check for keyboard_remote
The current code relies on the assumption that the first invocation will never specify no_throttle=True.
However that puts us in a pickle when writing unit tests: if we had a fictitious:
def setup_platform():
update()
@Throttle(MIN_TIME_BETWEEN_SCANS)
def update():
pass
Then given multiple tests, the second and some of subsequent tests would be throttled (depending on timing).
But we also can't change that code to call `update(no_throttle=True)' because that's not currently accepted.
This diff shouldn't change the visibile behavior of any component, but allows this extra flexibility.
* Add media progress information
* Remove unnecessary comments
* Remove datetime import
* Remove pysonyavr dependency
* Fix doc syntax (D205)
* Lint fix: no-else-return
* Don't attempt to set media progress info if program is None
* Fix Python 3.4 compatibility
* Explicitely depend on pyteleloisirs
* Only update remaining play time when it changed
* Fix floot state table
* Introduce a new Hue component that knows how to talk to a Hue bridge, but doesn't actually set up lights.
* Refactor the hue lights platform to use the HueBridge class from the hue component.
* Reimplement support for multiple bridges
* Auto discover bridges.
* Provide some migration support by showing a persistent notification.
* Address most feedback from code review.
* Call load_platform from inside HueBridge.setup passing the bridge id.
Not only this looks nicer, but it also nicely solves additional bridges being added after initial setup (e.g. pairing a second bridge should work now, I believe it required a restart before).
* Add a unit test for hue_activate_scene
* Address feedback from code review.
* After feedback from @andrey-git I was able to find a way to not import phue in tests, yay!
* Inject a mock phue in a couple of places
* 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.
All mochad devices are sharing a single socket interface. When multiple
threads are issuing requests to the mochad daemon at the same time the
write read cycle might get crossed between the threads. This is normally
not an issue for 1-way X10 devices because as long as the request issued
successfully and data is read over the socket then we know as much as
mochad will tell us (since there is no ACK from the request for most
X10 devices). However, where it does matter is on the device __init__()
because we're relying on the mochad daemon's internal state to take an
educated guess at the device's state to intialize things with. When
there are multiple devices being initialized at the same time the wires
can get crossed between and the wrong device state may be read.
To address this potential issue this commit adds locking using a
semaphore around all pairs of send_cmd() and read_data() (which is what
pymochad.device.Device.get_status() does internally) calls to the mochad
controller to ensure we're only ever dealing with a single request at a
time.
Fixesmtreinish/pymochad#4
* Updated snips to listen on new mqtt topic and use rawValue if value not present in slot
* Too late at night
* Trying to make minor changes via web
* Update test_snips.py
* Update __init__.py
* Updated wrong branch cause I'm a monkey
* 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
* initial commit of shuffle option for sonos
* added test
* Small adjustments to adhere to review requests
* Removed unnessesary setting of variable. Use shuffle state from soco instead
In a case where either (a) an incorrect source name is used, or (b) the
TV isn't currently queryable (e.g. it's off), we get tracebacks because
we assume the source that we are being asked to select exists in
self._source_list.
This makes the lookup code a little more rugged, and adds in a warning
message (in place of the current exception).
* Device tracker for meraki AP
* styles fix
* fix again
* again
* and again :)
* fix hide if away
* docs and optimization
* tests and fixes
* styles
* styles
* styles
* styles
* styles fix. Hope last
* clear track new
* changes
* fix accuracy error and requested changes
* remove meraki from .coveragerc
* tests and minor changes
* remove location
* Generic thermostat restore operation mode
* Test restore operation mode
* Fix trailing whitespace
* Fix line too long
* Fix test duplicate entity_id
* Fix test
* async_added_to_hass modify modify internal state
* Test inital_operation_mode
* More restore state tests
* Fix whitespace
* fix test_custom_setup_param
* Test "None" target temp
* 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
* Export climate metrics to Prometheus.
This adds climate_state and temperature_c metrics for each climate
device.
* Add more climate states to state_as_number
* check for none
* fix error from no store being set
* typo
* Lint
* fix default as per notes. Lint fix and make closest store None not False
* update default
* check for none
* fix error from no store being set
* typo
* Lint
* fix default as per notes. Lint fix and make closest store None not False
* update default
* Added min and Events sensor types to prometheus
* Updated prometheus client and fixed invalid swith state
* Added metric to count number of times an automation is triggered
* Removed assumption that may not apply to everybody
* Fixed tests
* Updated requirements_test_all
* Fixed unit tests
* Correction of Samsung Power OFF behaviour
Addition of a delay after powering OFF a Samsung TV, this avoid status
update from powering the TV back ON.
Deletion of update() return statement, return value not used.
* Rename self._end_of_power_off_command into self._end_of_power_off
* Removal of unused line break in Samsung TV component
* 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
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added requirement that RESTful JSON results used as attributes must be
objects, not lists.
* Expanded test coverage to test REFTful JSON attributes with and
without a value template.
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added requirement that RESTful JSON results used as attributes must be
objects, not lists.
* Expanded test coverage to test REFTful JSON attributes with and
without a value template.
* sensor.envirophat: add missing requirement (#7451)
Adding requirements that is not explicitly pulled in by the library
that manages the Enviro pHAT.
* PyPI Openzwave (#7415)
* Remove default zwave config path
PYOZW now has much more comprehensive default handling for the config
path (in src-lib/libopenzwave/libopenzwave.pyx:getConfig()). It looks in
the same place we were looking, plus _many_ more. It will certainly do a
much better job of finding the config files than we will (and will be
updated as the library is changed, so we don't end up chasing it). The
getConfig() method has been there for a while, but was subsntially
improved recently.
This change simply leaves the config_path as None if it is not
specified, which will trigger the default handling in PYOZW.
* Install python-openzwave from PyPI
As of version 0.4, python-openzwave supports installation from PyPI,
which means we can use our 'normal' dependency management tooling to
install it. Yay.
This uses the default 'embed' build (which goes and downloads
statically sources to avoid having to compile anything locally). Check
out the python-openzwave readme for more details.
* Add python-openzwave deps to .travis.yml
Python OpenZwave require the libudev headers to build. This adds the
libudev-dev package to Travis runs via the 'apt' addon for Travis.
Thanks to @MartinHjelmare for this fix.
* Update docker build for PyPI openzwave
Now that PYOZW can be install from PyPI, the docker image build process
can be simplified to remove the explicit compilation of PYOZW.
* Add datadog component (#7158)
* Add datadog component
* Improve test_invalid_config datadog test
* Use assert_setup_component for test setup
* Fix object type for default KNX port
#7429 describes a TypeError that is raised if the port is omitted in the config for the KNX component (integer is required (got type str)). This commit changes the default port from a string to an integer. I expect this will resolve that issue...
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added requirement that RESTful JSON results used as attributes must be
objects, not lists.
* Expanded test coverage to test REFTful JSON attributes with and
without a value template.
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added requirement that RESTful JSON results used as attributes must be
objects, not lists.
* Expanded test coverage to test REFTful JSON attributes with and
without a value template.
* Added support for extracting JSON attributes from RESTful values
Setting the json_attributes configuration option to true on the
RESTful sensor will cause the result of the REST request to be parsed
as a JSON string and if successful the resulting dictionary will be
used for the attributes of the sensor.
* Added requirement that RESTful JSON results used as attributes must be
objects, not lists.
* Expanded test coverage to test REFTful JSON attributes with and
without a value template.
* Fixed breaks cause by manual upstream merge.
* Added one extra blank line to make PyLint happy.
* Switched json_attributes to be a list of keys rather than a boolean.
The value of json_attributes can now be either a comma sepaated list
of key names or a YAML list of key names. Only matching keys in a
retuned JSON dictionary will be mapped to sensor attributes.
Updated test cases to handle json_attributes being a list.
Also fixed two minor issues arrising from manual merge with 0.58 master.
* Added an explicit default value to the json_attributes config entry.
* Removed self.update() from __init__() body.
* Expended unit tests for error cases of json_attributes processing.
* Align quotes
* Refactored WHOIS sensor to resolve assumed key errors
Altered it to now set an attribute key and value only if the attribute
is present in the WHOIS response. This prevents assumed keys (registrar)
from raising a KeyError on WHOIS lookups that don't contain registrar
information (onet.pl, wp.pl, for example).
* Removed non-used self._data
* WHOIS sensor now creates a new local attributes dict and overrides
* Corrected typos, refactored error cases to clear state adn attributes
* Resolved double return and refactored error logging
* Fixing missing en-gb support bug
* Microsoft TTS adding support for rate, volume, pitch and contour.
* Microsoft TTS fixing support for jp-jp.
* Fixing linting error on line 67
* make impossible things possible 🎉
* 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
* Bugfix trigger state with multible entities
* Fix numeric state
* fix lint
* fix dict
* fix unsub
* fix logic
* fix name
* fix new logic
* add test for state
* add numeric state test for unsub
* add test for multible entities
* Update numeric_state.py
* Update numeric_state.py
* Update state.py
* Fix logic for triple match
* Add clear to numeric state
* clear for state trigger
This reverts commit cadd797200.
As discussed within #10708 we should chose a different implementation. Therefore we should revert this change to avoid a breaking change.
* Implement supported_features for the climate component
* Test supported features
* Convert generic thermostat to supported features
* Max / min temperature are not features
* Fix lint
* Min / max humidity are not features
* Linting
* Remove current temperature / humidity
* Move c-hacker-style constants to boring integers. Booo!
* Refactor all the climate platforms to use the new supported_features
* Force all climate platforms to implement supported_features
* Fix mistakes
* Adapt hive platform
* Move flags into a constant
* Calm the hound
* Add support for local api connection found in TellStick Znet Lite/Pro.
Added auto discovery support for all TelldusLive devices,
changed authentication method. Breaking change!
Upgraded tellduslive dependency
Update CODEOWNERS.
* Close any open configurator when configuration done
* Add support for Telldus Local API via config (#2)
* Updated dependency (addresses issue raised by @rasmusbe in https://github.com/home-assistant/home-assistant/pull/10435#issuecomment-344719714)
* Fix requested changes
* Fixed aliases warning message
* Fixed test cases
* Changing handling for google_assistant groups to treat them as lights - amending to include user info.
* Enable brightness, RGB, etc for groups in Google Assistant
* Revert color/hue/temp settings
* Change servce from light to homeassistant
* Fixed config_units
* Convert from light to switch
* Change group to switch
* Update tests to switch instead of light for group
* Add support for logarithm in templates
This adds a 'log' filter that takes the logarithm of the given value,
with an optional base number. The base defaults to 'e' - the natural
logarithm
* Remove usage of log10 in template filter 'log'
* Add logarithm as a global
This makes it possible to write:
'{{ log(4, 2) }}'
* Update arlo.py
Include variables for custom away mode specification
* fixed line too long style problem
* fix trailing white space
* fix sending away mode command
* system_log improvements
* Don't use ModuleNotFoundError which is 3.6+
* Don't use FrameSummary which was added in 3.5
* Don't trace stack for exception logs
* Handle test error in Python 3.4
* Added ability to only load Ring camera
if the Ring Protect plan is activated.
* Fixed notification for all invalid cameras
* Fixed attribute name
* Using asyncio for persistent notifications
* Make shell_command async
Use `asyncio.subprocess` instead of `subprocess` to make the
`shell_command` component async.
Was able to migrate over existing component and tests without too many
drastic changes.
Retrieving stdout and stderr paves the way for possibly using these in
future feature enhancements.
* Remove trailing comma
* Fix lint errors
* Try to get rid of syntaxerror
* Ignore spurious pylint error
* Implement data write retry for InfluxDB
This adds an optional max_retries parameter to the InfluxDB component
to specify if and how often the component should try to send the data
if the connection failed due to an IOError.
The sending will be scheduled for a retry in 20 seconds as often as the
user specified. This can be handy for flaky getwork connections between
the DB and Homeassistant or outages like daily DSL reconnects.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add unittest for influx write retries
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add RetryOnError as helper decorator in util
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add unittests for RetryOnError
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Use RetryOnError decorator in InfluxDB
This replaces the scheduling logic in the InfluxDB component with the
RetryOnError decorator from homeassistant.util
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Make the linters happy
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Implement a queue limit for the retry decorator.
This adds a queue limit to the RetryOnError handler. It limits the
number of calls waiting for be retried. If this number is exceeded,
every new call will discard the oldest one in the queue.
* influxdb: Add the retry queue limit option.
* Make the linter happy.
* Make pylint happy
* Log exception of dropped retry
* Move RetryOnError decorator to influxdb component.
* Fix bug in logging usage
* Fix imports
* Add newlines at the end of files.
* Remove blank line
* Remove blank line
* Creates a AmcresHub object to protect some private attributes on the logs
* Uses hass.data to pass AmcrestHub to components
* Prefer constants
* Removed serializer since it's using hass.data and simplified camera entity constructor
* small cleanup
* Added fan support. Reduced number of calls to the thermostat to a minimum
* Move temp rounding to config schema
* Fixed pep8 errors
* Fix for review comments.
* removed unneeded if block
* Added missing precision attr back
* Fixed pylint errors
* Code review fixes. Fan support by model number.
* Defined circulate state
* Fix unit conversion for Sensibo A/C units
When the Sensibo component was released, there was a provision to not convert the temperature units unless "nativeTemperatureUnit" was returned with the API. I'm not sure if the API changed on Sensibo's side, but I do not get this key passed back with API requests.
This causes my current temperature to be returned in CELSIUS instead of FAHRENHEIT.
Removing this fixes it, and I can confirm the units are shown properly now.
* Update adding comment showing temperature is always in C
Adding another sensor to output the numeber of items in the SABnabd queue. This is an alternative to displaying filesize, just a preference thing, as it is more meaningfull for me the way I use SABnzdb.
Note this is my first time coding on github and I have no idea if I am doing things right, I assume that all I needed to do is add a couple of lines to the sensors available and also another line as to what to extract from the SABnzdb API, in this case I have called the sensor "queue_count" and it gets the value from the noofslots_total which as I understand - each slot is a separate download item.
hope I did this correctly - also I don't have a separate instance of home assistant running for testing so I have no way to test this code (and I don't know how I would switch to the dev channel either). As I said I am a newb!
* Refactored to new global json saving and loading
* Fixed emulated_hue tests
* Removed unnecassary error handling
* Added missing newline
* Remove unused imports
* Fixed linting error
* Moved _load_json wrapper out of the config class
* Implement entity and domain exclude/include for Alexa
* Switch to using generate_filter
* Use proper domain for turn on/off calls except for groups where we must use the generic homeassistant.turn_on/off
* travis fixes
* Untangle
* Lint
* Initial scene support
* Initial fan support
* ordering
* Initial lock support
* Scenes cant be deactivated; Correct the scene display category
* Initial input_boolean support
* Support customization of Alexa discovered entities
* Initial media player support
* Add input_boolean to tests
* Add play/pause/stop/next/previous to media player
* Add missing functions and pylint
* Set manufacturerName to Home Assistant since the value is displayed in app
* Add scene test
* Add fan tests
* Add lock test
* Fix volume logic
* Add volume tests
* settup -> setup
* Remove unused variable
* Set required scene description as per docs
* Allow setting scene category (ACTIVITY_TRIGGER/SCENE_TRIGGER)
* Add alert, automation and group support/tests
* Change display categories to match docs
* simplify down the display category props into a single prop which can be used on any entity
* Fix tests to expect proper display categories
* Add cover support
* sort things
* Use generic homeassistant domain for turn on/off
* test the facebook notification component
* respond to hound feedback
* remove unnecessary line breaks
* parse_qs not needed with requests_mock
* remove facebook notifier from .coveragerc
* Implement entity and domain exclude/include for Alexa
* Switch to using generate_filter
* Use proper domain for turn on/off calls except for groups where we must use the generic homeassistant.turn_on/off
* travis fixes
* Untangle
* Lint
* Initial scene support
* Initial fan support
* ordering
* Initial lock support
* Scenes cant be deactivated; Correct the scene display category
* Initial input_boolean support
* Support customization of Alexa discovered entities
* Initial media player support
* Add input_boolean to tests
* Add play/pause/stop/next/previous to media player
* Add missing functions and pylint
* Set manufacturerName to Home Assistant since the value is displayed in app
* Add scene test
* Add fan tests
* Add lock test
* Fix volume logic
* Add volume tests
* settup -> setup
* Remove unused variable
* Set required scene description as per docs
* Allow setting scene category (ACTIVITY_TRIGGER/SCENE_TRIGGER)
* Add alert, automation and group support/tests
* Change display categories to match docs
* simplify down the display category props into a single prop which can be used on any entity
* Fix tests to expect proper display categories
* Add cover support
* sort things
* Use generic homeassistant domain for turn on/off
* Add loglinefetch for frontend API call
* Too many blank lines
* Review changes
* review changes
* Only return a text
* Use aiohttp
* Don't do I/O in event loop
* Move lines to query and default to 0
* Small fixes
* Added logic to the alexa component for handling slot synonyms
* Moved note with long url to the top of the file
* Just made a tiny url instead of messing with Flake8
* Refactored to be more Pythonic
* Put trailing comma back
This bumps the used snapcast version to 2.0.8 and enables the new
reconnect feature that causes the component to reconnect to a server if
the connection was lost.
This fixes the ned to restart Home Assstant after a snapcast reboot, as
described in issue #10264.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* add support for color temperature and color; also add some extra deviceInfo attributes
* change so that default behaviour doesn't turn off device if the action isn't handled
* add tests
* fix lint
* more lint
* use attributes were applicable
* removed debug logging
* fix unassigned if only None returned
* report more data in QUERY
* better tests for color and temperature
* fixes after dev merge
* remove deviceInfo as not part of a device state (PR #10399)
* fix after merge
* New sensor viaggiatreno.
I've messed up the previous PR so here it is in a new one.
Should include also all corrections from @pvizeli
* fixes from PR 10522
* fixed import order
* requested changes from MartinHjelmare
* Fix ValueError exception
structure = '>{:c}'.format(data_types[register.get(CONF_DATA_TYPE)][register.get(CONF_COUNT)])
give:
ValueError: Unknown format code 'c' for object of type 'str'
* Minor typo
* Unique identity
Use unique ID for generating keys and store them in config. Fallback to
old id so existing installs will still work.
* Remove Timeouts
they don't really work. this should be fixed in pytradfri I think.
* import uuid only when necessary
* more selective import
* lint
* use load_json and save_json from util.json
* remove unnecessary imports
* use async configurator functions
* async configurator calls
* thou shalt not mixup the (a)syncs
* again: no asyncs in the syncs!
last warning...
* Update tradfri.py
* Implementation of `state_template` for the Universal media_player
* add tracking to entities in state template
* use normal config_validation
* fix tests, use defaults in platform schema, remove extra keys
* and test the new option `state_template`
* lint fixes
* no need to check attributes against None
* use `async_added_to_hass` and call `async_track_state_change` from `hass.helpers`
With the default timeout of 10 seconds, the log gets filled up with "component is taking more than 10 seconds" errors.
This should probably be fixed in some other way, but for now this reduces the problem a bit.
* Better int types support
* type
* Added optional register order
* Fix white spaces
* Fix line length
* Fix line too long
* Fix trailing whitespace
* Stylistc code fixes
* Support presence detection using Hitron Coda router
* at least 2 spaces before inline comment
* Update hitron_coda.py
* rewrote authentication code, it actually works now
* make line slightly shorter to comply with hound
* Removed hardcoded IP address
* Fix string formatting, add timeout, and use generator
* Update hitron_coda.py
* Update hitron_coda.py
* Update hitron_coda.py
* typo
* update .coveragerc
* Update stale URL
* Fix and clean lametric
* Add missing DEPENDENCIES in notify platform.
* Remove not needed method in component manager class.
* Don't overwrite notify DOMAIN.
* Return consistently depending on found devices in setup of component.
* Get new token if token expired
* Add debug log for getting new token
* Clean up
* Initial commit for request_sync functionality
* Fixes for Tox results
* Fixed all tox issues and tested locally with GA
* Review comments - api_key, conditional read descriptions
* Add test for service
* telegram_bot: Support for sending videos
Telegram python library has a sendVideo function that can be used
similar to sending photos and documents.
* fix lint issue
* fix grammar
* Add attribute to show who last un/set alarm.
This allows showing the name of the SPC user who last
issued an arm/disarm command and also allows for
automations to depend on this value.
* Optimize
* Update spc.py
* Update spc.py
* fix
* Fix test.
* Fix for removed is_state_attr.
* Simplified URL expiration calculation and fixed refresh method
* Remove support from Ring from StickupCams or floodlight cameras
* Makes lint happy
* Removed unecessary attributes
* Update nederlandse_spoorwegen.py
Make departure and arrival platforms available as state attributes
* Update nederlandse_spoorwegen.py
* Update nederlandse_spoorwegen.py
* Add an option to serve ES6 JS to clients
* Rename es6 to latest
* Fixes
* Serve JS vrsions from separate dirs
* Revert websocket API change
* Update frontend to 20171110.0
* websocket: move request to constructor
* Introduce update_hass()
* Introduce media_positions
* Version bump pymusiccast
* Fix: Unnecessary "else" after "return"
* FIX D400: First line should end with a period
* Version bump
Fixes https://github.com/home-assistant/home-assistant/issues/10411
* Improve handling and logging of unsupported owntracks message types
Added generic handlers for message types that are valid but not
supported by the HA component (lwt, beacon, etc.) and for
message types which are invalid. Valid but not supported
messages will now be logged as DEBUG. Invalid messages will
be logged as WARNING.
Supporting single "waypoint" messages in addition to the
roll-up "waypoints" messages.
Added tests around these features.
* Style fixes
* add JSON processing capabilities
* format fixes
* format fixes
* Fix according to @fabaff comment
* reverting last commit to a more sane approach
* docstring...
* still docstring...
* passed script/lint
* downgrade exception
JSONDecodeError was only introduced in Python3.5
Since we are still supporting 3.4 ValueError is the parent class of
JSONDecodeError
* Fix for telegram polling. (added pausing when error occurs)
* fix pylint error.
invalid variable name ( Exception as _e)). Don't understand why as
removing the underscore fails with my local pylint..
* fixing too short variable name.
* moved logic to `check_incoming`
* fix line too long error.
* Simplify
* Simplified URL expiration calculation and fixed refresh method
* Remove support from Ring from StickupCams or floodlight cameras
* Makes lint happy
* Removed unecessary attributes
* Add baudrate option
Baudrate is essential!
* line too long
line too long (82 > 79 characters)
* trailing whitespace
* Rename const
* Fix the missing one
* Initial commit of Vultr components
Have a working Vultr hub and binary sensor which pulls down the
following attributes of your VPS:
- Date created
- Subscription id (server id)
- Cost per month (in US$)
- Operating System installed
- IPv4 address
- label (human readable name)
- region
- number of vcpus
- which storage package chosen
- IPV6 address (if applicable)
- RAM amount
Working next on sensor and then testing / coverage.
* Added Vultr sensor for pending charges and current bandwidth. Refactored binary_sensor and hub too
* Corrected is_on bases
* Added basic tests for Vultr binary & platform
* Updated require files
* Changing test fixture to highlight different cases
* Written basic test for sensor.vultr
* Resolved linting errors and broken test
* Increase test coverage and corrected docs
* Resolved hound issues
* Revert back negative binary test
* Another hound resolve
* Refactoring and adding is switch, moving over to vultr branch
* Made Vultr components more resiliant to invalid configs
* Added negetive test for vultr binary sensor
* Added better testing of vultr sensor
* Resolved vultr platform test affecting subsequent vultr tests
* Moving VULTR components to single use design
* Added in sensor name config
* Added missing sensors var
* Resolved init data setting of sensors, added in name conf to switch
* Made the Vultr component more resiliant to startup failure with better alerting
* Various Vultr component changes
- Refactored sensor, binary_sensor, and switch to reference one subscription
- Renamed CURRENT_BANDWIDTH_GB monitored condition to CURRENT_BANDWIDTH_USED
- Improved test coverage
* Resolved local tox linting issue
* Added more testing for Vultr switch
* Improved test coverage for Vultr components
* Made PR comment changes to vultr binary sensor
* Made PR comment changes to Vultr sensor
* resolved PR comments for Vultr Switch
* Resolved vultr sensor name and improved tests
* Improved Vultr switch testing (default name formatting)
* Removed vultr hub failure checking
* 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
@@ -4,7 +4,7 @@ Everybody is invited and welcome to contribute to Home Assistant. There is a lot
The process is straight-forward.
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0)
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0)
- Fork the Home Assistant [git repository](https://github.com/home-assistant/home-assistant).
- Write the code for your device, notification service, sensor, or IoT thing.
@@ -161,12 +162,9 @@ class RfxtrxBinarySensor(BinarySensorDevice):
ifdata_bitsisnotNone:
self._masked_id=rfxtrx.get_pt2262_deviceid(
event.device.id_string.lower(),
data_bits)
def__str__(self):
"""Return the name of the sensor."""
returnself._name
event.device.id_string.lower(),data_bits)
else:
self._masked_id=None
@property
defname(self):
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.