* Force to use access_token if hass.auth.active
* Not allow Basic auth with api_password if hass.auth.active
* Block websocket api_password auth when hass.auth.active
* Add legacy_api_password auth provider
* lint
* lint
* Only create frontend client_id once
* Check user and client_id before create refresh token
* Lint
* Follow code review comment
* Minor clenaup
* Update doc string
* Use new trusted_proxies setting for X-Forwarded-For whitelist
* Only use the last IP in the header
Per Wikipedia (https://en.wikipedia.org/wiki/X-Forwarded-For#Format):
> The last IP address is always the IP address that connects to the last proxy,
> which means it is the most reliable source of information.
* Add two additional tests
* Ignore nonsense header values instead of failing
* Address inconsistent behavior between different controllers.
Correct issue with comparison that was preventing white value slider from being shown.
* Add white mode for Flux LED
* Call _bulb.turnOn() after bulb properties have been set to prevent immediate on action
* Only use existing brightness if rgb is None to prevent unexpected recalculation of passed rgb values.
* Remove blank line
* Undo change so current brightness is used in all cases.
* Revert "Fix #14919. Should throw exception when camera stream closed by frontend (#15028)"
This reverts commit 508d0459a7.
* Revert "Fix pylintrc section order and option placements (#15120)"
This reverts commit dbae410cf4.
* Revert "Add storage helper and migrate config entries (#15045)"
This reverts commit ae51dc08bf.
* Revert "Add language to dark sky weather component (#15130)"
This reverts commit 672a3c7178.
* Add storage helper
* Migrate config entries to use the storage helper
* Make sure tests do not do I/O
* Lint
* Add versions to stored data
* Add more instance variables
* Make migrator load config if nothing to migrate
* Address comments
* Add discovery support to mqtt climate component.
* - Fix flake8 error (./homeassistant/components/climate/mqtt.py:130:1: D202 No blank lines allowed after function docstring)
- Fix test error (since climate component was expected not to work - changed it to "lock" component, which also does not have MQTT discovery support yet)
* Fix old assert statement to reflect new lock component usage
* Change invalid MQTT discovery component type from 'lock' to 'timer', since contrary to the documentation the lock component is properly supported when using MQTT discovery.
* Make configuration of invalid MQTT config component a single point of entry to prevent missing the assertion later in the code when changing.
* Add new testcases to cover not-yet-covered code paths in https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/climate/mqtt.py
* MQTT Alarm Control Panel: add retain option for publishing for cases where receiver is asleep
* MQTT Alarm Control Panel: add retain option for publishing for cases where receiver is asleep
* MQTT Alarm Control Panel: add retain option for publishing for cases where receiver is asleep
* Fix MQTT Light with RGB and Brightness
When an MQTT light is given an RGB and Brightness topic, the RGB
is scaled by the brightness *as well* as the brightness being set
This causes 255,0,0 at 50% brightness to be sent as 127,0,0 at 50%
brightness, which ends up as 63,0,0 after the RGB bulb has applied
its brightness scaling.
Fixes the same issue in mqtt, mqtt-json and mqtt-template.
Related Issue: #13725
* Add comment to mqtt_json as well
* Implement X10
* Add X10 after add_device_callback
* Ref device by id not hex and add x10OnOffSwitch name
* X10 services and add sensor device
* Correctly reference X10_HOUSECODE_SCHEMA
* Log adding of X10 devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct ref to X10 states vs devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct X10 config
* Debug x10 device additions
* Config x10 from bool to housecode char
* Pass PLM to X10 device create
* Remove PLM to call to add_x10_device
* Unconfuse x10 config and method names
* Correct spelling of x10_all_lights_off_housecode
* Bump insteonplm to 0.10.0 to support X10
* Fix MQTT Light with RGB and Brightness
When an MQTT light is given an RGB and Brightness topic, the RGB
is scaled by the brightness *as well* as the brightness being set
This causes 255,0,0 at 50% brightness to be sent as 127,0,0 at 50%
brightness, which ends up as 63,0,0 after the RGB bulb has applied
its brightness scaling.
Fixes the same issue in mqtt, mqtt-json and mqtt-template.
Related Issue: #13725
* Add comment to mqtt_json as well
* The monkeytype script takes an optional argument to specify a test
module or directory to run. Otherwise the whole test suite will run.
* Add monkeytype sqlite db to gitignore.
* Implement X10
* Add X10 after add_device_callback
* Ref device by id not hex and add x10OnOffSwitch name
* X10 services and add sensor device
* Correctly reference X10_HOUSECODE_SCHEMA
* Log adding of X10 devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct ref to X10 states vs devices
* Add X10 All Units Off, All Lights On and All Lights Off devices
* Correct X10 config
* Debug x10 device additions
* Config x10 from bool to housecode char
* Pass PLM to X10 device create
* Remove PLM to call to add_x10_device
* Unconfuse x10 config and method names
* Correct spelling of x10_all_lights_off_housecode
* Bump insteonplm to 0.10.0 to support X10
* Update condition.py
Added code that writes to warning-log what entity causes a problem when 'value cannot be processed as a number', making troubleshooting easier.
* Make a one-line warning
* Show running apps as sources for Fire TV
* Fix unnecessary 'else' after 'return' (no-else-return)
* Remove 'pylint: disable=unused-argument'
* cleanup
* Improve volume support for Vizio Smartcast
* Vizio: avoid an error when 'self._device.get_current_volume()' returns 'None'
* Improve volume support for Vizio Smartcast
* Vizio: avoid an error when 'self._device.get_current_volume()' returns 'None'
* First line should end with a period
* Expose Wemo component availability to home assistant
* Do not add availability feature to dimmer - it works differently
* Brain fade, deleted completely the wrong thing.
Revert "Do not add availability feature to dimmer - it works differently"
This reverts commit f64e717981.
* (2nd attempt) Do not add availability feature to dimmer - it works differently
Current version only supports latitude and longitude or an address for the origin and destination fields. This update allows those fields to use entity IDs of device_tracker, zone, and sensor.
* Added support for Xiaofang Camera
* Added entry for Xiaofang 1080p camera
* Code fix
* Minor comment fix
* Updated coveragerc for Xiaomi cameras
* Added Xiaomi Camera
Added Xiaomi Camera to accommodate multiple models like Yi, Xiaofang, etc.
* Minor code fix
* Minor code fix
* Added model property
* Update xiaomi.py
* Minor code fix
* Update xiaomi.py
* Update xiaomi.py
* Minor code fix
* Package requirement fix due to Version conflict
* To fix conflicts
* Update package_constraints.txt
* Minor fix
* Update xiaomi.py
* Update xiaomi.py
Changes made per comment
* Update xiaomi.py
* Don't update on add.
* Add Calendar API endpoint to get events
* Set default event color
* Fix PR comments
* Fix PR comments
* Fix PR comments
* Remote local.py file
* Use iso 8601
* Fix lint
* Fix PR comments
* Fix PR comments
* Add Support for todoist and demo calendar
* Todoist events are allday events
* Add calendar demo api endpoint test
* Register only one api endpoint for calendar
* Rename demo calendar
By default simulated sensors are relative to when they're activated,
instead we make this togglable with this new option 'relative_to_epoch',
and instead they become relative to 1970-01-01 00:00:00.
* first blood for ZhongHong HVAC Controller
* add requirements
* requirements_all.txt updated
* add zhong_hong.py to coveragerc
* add comments
* unique_id add platform name
* zhong_hong_hvac version bump to 1.0.1
* improve some coding style to match the project standard
* zhong_hong_hvac version bump to 1.0.4
* zhong_hong_hvac version require 1.0.7
* update requirements by script/gen_requirements_all.py
* zhong_hong_hvac version bump to 1.0.8
* fix startup problem
* remove unused import
* zhong_hong_hvac version bump to 1.0.9
- operation_mode: cold -> cool
* start hub listen event when all climate entities is ready
* use dispatcher to setup hub
* var name change
SIGNAL_DEVICE_SETTED_UP -> SIGNAL_DEVICE_ADDED
* async problem fix
* bugfix: set_operation_mode forget to use upper case
* stringify the exception instead of print full stack of traceback
* avoid to call str(exception) explicity
* remove unnecessary try...except clause
* remove unused import
* wink: Update to python-wink 1.8.0
This pulls in a patch to expose the GE Z-Wave in wall fan switch
as a fan component instead of a light dimmer switch component.
* Update requirements_all.txt
* Epson projector support. Version based on external library
* Epson projector support. Version based on external library
* modified epson according to MartinHjelmare review.
Added description of cmode to services.yaml
* renamed EPSON_SCHEMA to epson_schema
* removed method of getting cmode property
* removed unnecessary checks
change name of cmode service
* renamed SERVICE_ATTR_CMODE to SERVICE_SELECT_CMODE
Current uuid is ok when using only 1 snapserver
New uuid is needed when using multiple snapserver
Because the client can connect to more snapservers and
then uuid based on client MAC is not enough
* initial commit for kiwi door locks
bugfixes
improved attribute display
flake8
more style adjustments
* added session handling
flake8
* added requirements_all
reordered imports and flake8
attempt to pelase a very picky linter
also pleasing pylint now :)
* re-try the build
* added kiwi.py to .coveragerc
* reorganized datetime handling and attribute naming
* created pypi package for door lock library
* updated requirements_all.txt
* code review changes
* added async lock state reset for locking state
* refactored lat/lon attribute updates
* initial locked state changed from undefined to locked
* refactored is_locked property check
* handling authentication exception in setup_platform
* added more check in setup_platform
* code review changes: return type in setup_platform
* fixed logging issue
* event handling in main thread
* updated kiwiki-client to version 0.1.1
* renamed alias e to exc
* start arlo refactoring
* Refactored Arlo Hub to avoid uncessary and duplicated GETs to Arlo API
* Refactored Arlo camera component to avoid duplicate queries
* Added debug and error messages when video is not found
* Transformed Arlo Control Panel to Sync
* Makes linter happy
* Uses total_seconds() for scan_interval
* Added callback and fixed scan_interval issue
* Disable multiple tries and supported custom modes set in Arlo
* Bump PyArlo version to 0.1.4
* Makes lint happy
* Removed ArloHub object and added some tweaks
* Fixed hub_refresh method
* Makes lint happy
* Ajusted async syntax and added callbacks decorators
* Bump PyArlo version to 0.1.6 to include some enhacements
* Refined code
* Update mqtt_eventstream.py
Remove a line setting an internal state mqtt_eventstream.initialized to True since:
1. No other platform is doing this
2. This will create an annoying entity/item in the user interface which the user will have to explicitly hide
* Update mqtt_eventstream.py
* added new platform for the Unitymedia Horizon HD Recorder
* improve connection handling of the horizon platform
* remove unneeded parameters and fix spelling in the horizon platform
* abort or raise exception if connection to the device could not be established
* remove channel/source list and SELECT_SOURCE feature
* remove useless type check after cast and use a try block instead
* abort or raise exception if reconnect to device fails
* remove protocol specific code and restructure sending logic accordingly
* fix indentation to be pep8 complaint
* remove unused methods/properties
* fix unnecessary pylint commands and use a return to abert outside of setup_platform
* directly access config values
* Added Uptime Robot sensor
* added newline at the end and corrected doclink
* Added changes form @cdce8p
* Convert to binary_sensor
* updated requirements
* moved to correct dir
* Update uptimerobot.py
Unique id for client is generated from prefix 'snapcast_client_'
and MAC address
Unique id for group is generated from prefix 'snapcast_group_'
and UUID provided by snapcast library
When Samsung TV is idle for a period of time after issued a command,
subsequent 'turn_off' command won't turn off the TV. The issue is seen
in Samsung models with websocket as discussed in #12302.
== Reproducible Steps
1. Turn on TV (either via HA or directly).
2. Issue some commands e.g. volume ups / downs.
3. Wait for ~1 minute.
4. Issue turn_off command via HA. TV won't turn off.
5. Issue subsequent turn off commands won't turn off TV still.
6. However, issue some other commands e.g. volume ups / downs multiple
times in a row and then turn_off will turn off the TV.
== Root Cause
The underlying websocket connection opened by samsungctl get closed
after some idle time. There was no retry mechanism so issued commands
would intermittently fail but the subsequent one would succeed when
`_remote` get recreated. With `turn_off()`, however, there is an
additional call to `self.get_remote().close()` which indirectly caused
new connection to be created and then closed immediately. This causes the
component to stuck in failure mode when turn_off command is repeatly
issued.
== The Fix
Recreate the connection and retry the command if connection is closed
to avoid silent failures due to connection closed. Also set `_remote`
to None after calling close() to put it in correct state.
This fix eliminates intermittent command failure and failure mode in
turn_off().
* fixed tests: using correct camera configuration now and error handling tests must be separated out to ensure that the setup_component call is actually executed
* better error handling during setup; raising PlatformNotReady in likely recoverable cases; added tests
* Hass configuration name is optional
* Check explicitly if name is none
* Reverted back to old logic for zones configured in configuration.yaml, where many zones can have the same name
* New test to verify use case of allowing multiple zones having the same name
* Fix too long line
* reviewing this code min_temp and max_temp are always present and always in celsius
* revert change (preserve unit conversion)
* revert (due to unit conversion)
* self
* clean
* cleaner
* Hass configuration name is optional
* Check explicitly if name is none
* Reverted back to old logic for zones configured in configuration.yaml, where many zones can have the same name
* New test to verify use case of allowing multiple zones having the same name
* Fix too long line
* Add set_default_service to logger
* Fix 2-line lint error
* Add set_default_level to services.yaml
* Add tests for set_default_level
* Remove function and add else when setting default
Right now, "Hub Status" is very generic, I didn't know what component it was coming from, and the only way to tell was searching the source code to find the reference.
* Initial version of wirelesstags platform support.
* Pinned wirelesstagpy, generated requirements_all.
* Fixed temperature units in imperial units systems, make binary events more tags specific.
* Lowercased tag name during entity_id generation.
* Fixed: tag_id template for tag_binary_events, support of light sensor for homebridge.
* Minor style cleanup.
* Removed state, define_name, icon. Reworked async arm/disarm update. Removed static attrs. Introduced available property. Custom events contains components name now. Cleaned dedundant items from schema definition.
* Removed comment and beep duration from attributes. Minor cleanup of documentation comment.
* Ignoring Wemo switches linked in iOS app.
* Reworked passing data from platform to components using signals.
This commit adds a new history component for the IBM Watson IoT
Platform. The IBM Watson IoT Platform allows for tracking of devices
and analytics on top of the device data. This new component allows
users to have home assistant automatically populate a watson iot
platform board with device data from devices managed by home assistant.
* Media player: general sound mode support
* General sound mode support
* White spaces
* Add sound mode support to demo media player
* white space
* remove unnessesary code
* Add a device tracker for Freebox routers
* Automatic setup of Freebox device tracker based on discovery
* Make the Freebox device tracker asynchronous
* initial commit
* lint
* update with pyipma
* Added test
* Added test
* lint
* missing dep
* address comments
* lint
* make sure list is iterable
* don't bother with list
* mock dependency
* no need to add test requirements
* last correction
* Assign device class to nest sensors
sensor/nest.NestSensor => /nest.NestSensorDevice,
so that BinarySensor platform do not reference Sensor platform anymore
* Resolve code review comment
* Follow code review comment
* Version Requirement bump
Bump required version to 0.5 to allow component to work with Genie Mini clients using the clientAddr variable.
* Ran script/gen_requirements_all.py as requested.
* Change nest component to Cloud Push
Change sensors.nest, binary_sensors.nest and climate.nest to push mode
nest camera still need poll to update snapshot image
Also change nest component to async
* Flake8 lint
* Fix async_notify_errors, it is not a coroutine
* Fix pylint
* Fix pylint, function name should shall shorter than 32
* Use dispatcher helper instead event bus
* Use async_update_ha_state(True)
* Refactoring load_platform
Move service registration into async_setup_nest(),
resolve an issue that before the first time configuration done,
set_mode service should not be registered
* Fix an issue that authorization failure may leave a blocked thread
* Pylinting
* async_nest_update_callback => async_update_state to avoid confusion
* Move signal handler register to async_added_to_hass
* Better handle nest api error
* Remove unnecessary register for binary_sensor
* Remove unused import
* Upgrade to python-nest 4.0.1
Fix a thread race condition issue
* Address my own comments
* Address my own comment
* Add device_descriptor and device_name to keyboard event
This allows automations to identify which device has generated the
keypress. This is especially useful for bluetooth remotes to control different
devices.
* Remove line breaks
* Fix
* Starting to add attributes
* All attributes added to programs
* Basic zone attributes in place
* Added advanced properties for zones
* We shouldn't calculate the MAC with every entity
* Small fixes
* Basic framework for push in play
* I THINK IT'S WORKING
* Some state cleanup
* Restart
* Restart part 2
* Added stub for service schema
* Update
* Added services
* Small service description update
* Lint
* Updated CODEOWNERS
* Moving to async methods
* Fixed coverage test
* Lint
* Removed unnecessary hass reference
* Lint
* Lint
* Round 1 of Owner-requested changes
* Round 2 of Owner-requested changes
* Round 3 of Owner-requested changes
* Round 4 (final for now) of Owner-requested changes
* Hound
* Updated package requirements
* Lint
* Collaborator-requested changes
* Collaborator-requested changes
* More small tweaks
* One more small tweak
* Bumping Travis and Coveralls
* Option to load or not to load clip sensors on start
* Full flow
* Fix config flow and add tests
* Fix attribute dark reporting properly
* Imported and properly configured deCONZ shouldn't need extra input to create config entry
* Add pin pad to alarm panel
* Add pin pad to alarm panel
* Update regex
* Update regex
* Update regex
* Add pin pad to alarm panel
* Add pin pad to alarm panel
* Add pin pad to alarm panel
* Add pin pad to alarm panel
* Fix typos
* Fix typos
* Fix typos
* Add pin pad to alarm panel
* Fix errors
The Envisalink binary sensor was logging events with a relative
timestamp that updated every time it polled, so even when nothing
new was happening, the event log would be full of meaningless
state changes. Modify the sensor code to use an absolute time
which stays stable when there isn't new activity.
* Added the Hydrawise component.
* Fixed lint errors.
* Multiple changes due to review comments addressed.
* Simplified boolean test. Passes pylint.
* Need hydrawiser package version 0.1.1.
* Added a docstring to the device_class method.
* Addressed all review comments from MartinHjelmare.
* Changed keys to single quote. Removed unnecessary duplicate method.
* Removed unused imports.
* Changed state to lowercase snakecase.
* Changes & fixes from review comments.
* Add support for climatic devices
* Update requirements_all
* Change icon to mdi:thermostat
* Update of homematicip-rest-api lib version
* Remove all mode or state relevant things - will come later
* Add current_operation again to see proper status
* Remove STATE_PERFORMANCE import
* Remove trailing whitespace
* Update requirements file
* Fix ISY leak sensors always showing UNKNOWN until a leak is detected
Added some logic that handles both moisture sensors and door/window sensors
* Handle edge case of leak sensor status update after ISY reboot
If a leak sensor is unknown, due to a recent reboot of the ISY, the status will get updated to dry upon the first heartbeat. This status update is the only way that a leak sensor's status changes without an accompanying Control event, so we need to watch for it.
* Fixes from overnight testing
State was checking the incorrect parameter, and wasn't calling schedule update
* Remove leftover debug log line
* Remove unnecessary pylint instruction
* Remove access of protected property
We can't cast _.status directly to a bool for some unknown reason (possibly with the VarEvents library), but casting to an int then bool does work.
* removed default value from required parameter; raising PlatformNotReady when connection to nut unavailable; output human-readable state name by default
* removed superfluous sensor name part; showing human-readable form and raw value of current status in more info dialog
* introduced a new virtual sensor type based on the raw status value but used to display a human-readable form of the status
* renamed method
* format string instead of concatenation
* revert the change to the device state attributes - only output the human-readable status without the raw value
* Added platform lw12wifi for Lagute LW-12 Wifi Lights
Supported features:
* RGB colors
* Variable brightness
* 29 effects
* Changing transitions speed for animated effects
* Added lw12wifi to the list of omitted files to test
* Added lw12 module as new requirement for lw12wifi platform
* Added configuration example docstring for platform lw12wifi
* Updating code according to review in PR:
* Removed unused imports: enum, socket.
* Unused and not imported feature SUPPORT_FLASH was removed.
* Unused import lw12 in setup_platform method removed.
* Fixed indention for valuptuous.
* Changed check if effect is None.
* Removed personal debug output.
* Blocking function are not async anymore.
* Further improvements to satisfy PR.
* Unused import asyncio removed.
* Fixed: Return value and docstring no match up for `assumed_state`.
* Check if the set effect is supported, otherwise revert to normal light.
* Added describing missing docstrings to all functions.
* Adopted code to work with HS color setting.
* Syntactical change in comment.
* Removed redefinition of DOMAIN.
* Refactored lw12 controller setup: removed requirement for host and port in LW12Wifi class.
* Rewritten supported feature setup to a more static expression.
* Removed unused rgb_color property
* Fixed typo in comment for set_light_option
* Changed RGB option validation schema
* Removed instance properties as config options
* Removed optional settings to be more inline with code style.
* Removed unused option from config example
* Removal of unused import
* Added property to disable state polling for this entity.
* Raise an exception if an unknown effect was selected.
* Fixed an issue with the check for known effects.
* As we do not need to set a default, use simple accessing by key.
* Log if an unknown effect was selected.
* Added link to future documentation.
* Fix ISY leak sensors always showing UNKNOWN until a leak is detected
Added some logic that handles both moisture sensors and door/window sensors
* Handle edge case of leak sensor status update after ISY reboot
If a leak sensor is unknown, due to a recent reboot of the ISY, the status will get updated to dry upon the first heartbeat. This status update is the only way that a leak sensor's status changes without an accompanying Control event, so we need to watch for it.
* Fixes from overnight testing
State was checking the incorrect parameter, and wasn't calling schedule update
* Remove leftover debug log line
* Remove unnecessary pylint instruction
* Remove access of protected property
We can't cast _.status directly to a bool for some unknown reason (possibly with the VarEvents library), but casting to an int then bool does work.
* Wait for future mysensors gateway ready
* Add an asyncio future that is done when the gateway reports the
gateway ready message, I_GATEWAY_READY.
* This will make sure that the gateway is ready before home assistant
fires the home assistant start event. Automations can now send
messages to the gateway when home assistant is started.
* Use async timeout to wait max 15 seconds for ready gateway.
* Address comments
* Wait for future mysensors gateway ready
* Add an asyncio future that is done when the gateway reports the
gateway ready message, I_GATEWAY_READY.
* This will make sure that the gateway is ready before home assistant
fires the home assistant start event. Automations can now send
messages to the gateway when home assistant is started.
* Use async timeout to wait max 15 seconds for ready gateway.
* Address comments
After 2 months of being offline, the my.chevy website seems to be
working again. Some data structures changed in the mean time. The new
library will handle multiple cars. This involves a breaking change in
slug urls for devices where these now include the car make, model, and
year in them.
Discovery has to be delayed until after the initial site login to get
the car metadata.
Sensors that were defined via sensor_string were not getting properly identified as binary sensors when they had a uom defining them as binary (the other three methods of detecting binary sensors worked though.)
* Add Homematic IP RotaryHandleSensor support
HmIP-SRH was in the RotaryHandleSensor class and threw errors that LOWBAT and ERROR could not be found (they are LOW_BAT and SABOTAGE).
* Revert REQUIREMENTS change
* Simplify conditionals.
* Send white_value on service call.
* Remove extra blank line
* Further simplification of conditionals
* Requested changes
* Do not call getRgb if not needed
* Update log message
* make device_discovered synchronous
* small fixes from code review
* use dispatcher to update sensor state
* update switch state based on response from the device
* interpolate entity_id into dispatcher signal
* cleanup lint
* change coroutine to callback
* Added option to invert aREST pin switch logic for active low relays
* Fixed line lengths
* Changed naming and set optional invert default value.
* Fixed line length
* Removed default from get
The Universal media player inherits the states of the first child player that is not in some sort of "Off" state (including idle.) It was not considering the "unavailable" state to be off. Now it does.
* moved regular updates definition to own method to be able to override behaviour in subclass
* moved filter by max entries to own method to be able to override behaviour in subclass
* event type used when firing events to the bus now based on variable to be able to override behaviour in subclass
* feed id introduced instead of url for storing meta-data about the feed to be able to fetch the same feed from different configs with different filtering rules applied
* keep the status of the last update; continue processing the entries retrieved even if a recoverable error was detected while fetching the feed
* added test cases for feedreader component
* better explanation around breaking change
* fixing lint issues and hound violations
* fixing lint issue
* using assert_called_once_with instead of assert_called_once to make it compatible with python 3.5
* add familyhub.py camera
* fix import and REQUIREMENTS
* add to coveragerc
* fix formatting to make houndci-bot happy
* ran scripts/gen_requirements_all.py
* use CONF_IP_ADDRESS
* Revert "ran scripts/gen_requirements_all.py"
This reverts commit 3a38681d8a.
* fix library name
* add missing docstrings and enable polling
* Sort imports
zigpy now allows custom devices, which might mean that devices have cluster
objects which are not instances of the default, but may be instances of
sub-classes of the default. This fixes the check for finding single-cluster
device entities to handle sub-classes properly.
* Add priority and cycles to LaMetric
Priority can be "info", "warning" (default), or "critical" and
cycles is the number of times the message is displayed. If cycles
is set to 0 we get a persistent notification that has to be dismissed
manually.
* Fix for schema and style
* Fix for style
This commit bumps the pycmus version used by the cmus component. There
was a bug in the previous version used, 1.0.0, when running in local
mode. This was caused by a mtreinish/pycmus#1 and also was reported in
the home-assistant forums (but not as an issue):
https://community.home-assistant.io/t/cant-install-cmus-component/7961
Version 0.1.1 of pycmus fixes this issue so it should work properly for
users running cmus and home-assistant on the same machine.
* Make mysensors component async
* Use async dispatcher and discovery.
* Run I/O in executor.
* Make mysensors actuator methods async.
* Upgrade pymysensors to 0.13.0.
* Use async serial gateway.
* Use async TCP gateway.
* Use async mqtt gateway.
* Start gateway before hass start event
* Make sure gateway is started after discovery of persistent devices
and after corresponding platforms have been loaded.
* Don't wait to start gateway until after hass start.
* Bump pymysensors to 0.14.0
* Implement support for away mode and hold mode in Venstar component
* Fix Venstar humidifier capability detection
* Add option to configure humidifier control in Venstar component
* style fix: add missing space and resolve pylint issues
* Remove quotes
* Waze Travel Time: optional inclusive/exclusive filters
Added optional `inc_filter` and `excl_filter' params that allow to refine the reported routes: the first is not always the best/desired. A simple case-insensitive filtering (no regular expression) is used.
* fix line lenght
* fix spaces
* Rename var
* Fix typo
* Fix missing var
* Starting to add attributes
* All attributes added to programs
* Basic zone attributes in place
* Added advanced properties for zones
* Working to move common logic into component + dispatcher
* We shouldn't calculate the MAC with every entity
* Small fixes
* Small adjustments
* Owner-requested changes
* Restart
* Restart part 2
* Added ID attribute to each switch
* Collaborator-requested changes
* Improving icloud device tracker
* Adding config validations for new values
* Adding config validations for new values
* Moving icloud specific setup to platform schema. Setting default in platform schema.
* When zwave node's info is parsed remove it and re-add back.
* Delay value entity if not ready
* If node is ready consider it parsed even if manufacturer/product are missing.
* Add annotations
* Gogogate2 - bump version
Uses latest version of library which ensures commands to device are idempotent
* Update requirements_all
* Expose sensor temperature
* update version
* import attribute
* Set temperature
* Remove temperature attribute
Removed temperature attribute until it can be re-implemented as a separate sensor.
* Update ordering
* Fix copy-&-paste issue
* add 2 devices
io:RollerShutterUnoIOComponent
io:ExteriorVenetianBlindIOComponent
* add 2 devices
* Update tahoma.py
* Fix hounci-bot violation
* Fixed Travis CI build failure
./homeassistant/components/cover/tahoma.py:83:13: E125 continuation line with same indent as next logical line
* Fixed Travis CI build failure
E125 continuation line with same indent as next logical line
* Fixed Travis CI build failure
E127 continuation line over-indented for visual indent
* Fix indent
* Change check
* Add support for shutter contact and motion detector device
* Add support for power switch devices
* Add support for light switch device
* Cleanup binary_switch and light platform
* Update comment
I have a Hitron modem provided by Shaw communications rather than from Rogers as the Docs specify for this device_tracker but it seems like the api/code is all the same except that the login failed due to the password being passed as "pws" instead of "pwd". Making that one character change allowed HASS to read the connected device details from my Hitron modem. If this difference is actually one that stands between the Rogers-provided Hitron modems and the Shaw-provided variant, I am happy to create another device-tracker file for the Shaw modem. I just figured I would go with the simplest solution first.
* Setup all-linking service
* Remove extra line
* Remove linefeed and tab escape chars
* Add services delete_all_link, load_all_link_database and print_all_link_database
* Check if reload is set
* Confirm entity is InsteonPLMEntity before attempting to load or print ALDB
* Debug load and print ALDB
* Debug print aldb
* Debug print_aldb
* Get entity via platform
* Track Insteon entities in component
* Store entity list in hass.data
* Add entity to hass.data
* Add ref to hass in InsteonPLMEntity
* Pass hass correctly to InsteonPLMBinarySensor
* Fix reference to ALDBStatus.PARTIAL
* Print ALDB record as string
* Get ALDB record from memory address
* Reformat ALDB log output
* Add print_im_aldb service
* Remove reference to self in print_aldb_to_log
* Remove reference to self in print_aldb_to_log
* Fix spelling issue with load_all_link_database service
* Bump insteonplm to 0.9.1
* Changes from code review
* Code review changes
* Fix syntax error
* Correct reference to cv.boolean and update requirements
* Update requirements
* Fix flake8 errors
* Reload as boolean test
* Remove hass from entity init
* onkyo: add support for max volume range
* onkyo: make flake8 happy
* onkyo: fix PEP8 D205 on line 181
* onkyo: use range for max_volume configuration
* onkyo: fix line too long
* Add new device without restarting hass
* Remove debug prints
* Fix copy paste error
* Fix comments from balloob
Add tests to verify signalling with new added devices
* Fix hound comments
Add test to verify when new sensor is added
* Fix tests
* Unload entry should unsubscribe all deconz dispatchers
* Make sure mock setup also creates unsub in hass data
* Fix copy paste issue
* Lint
* Add first version of the Matrix bot
* It's a stupid but necessary change…
* Dont list it twice
* All hail the linter!
* More linter-pleasing
* Use the correct user ID
* Add expression commands
* Add tests for new validators
* Fix room alias handling
* Wording
* Defer setup
* Simplify commands
* Handle exceptions
* Update requirements
* Review
* Move login back to constructor
* Fix review comments
* Publish attributes unconditionally
Because the attribute publish command was previously hidden behind `if val:`, falsy values like False and 0.0 weren't being published, thereby making Statestream -- particularly in the case of booleans, where the first True would be retained indefinitely -- a completely worthless indicator of state.
* Change bool test to False to confirm falsy values pass
* Add unique_id to zwave node entity
* Wait 30s before adding zwave node if its unique_id is not ready
* Use only node_id in unique_id. Update name, manufacturer, and product attributes on node update.
* Add basic PostNL sensor (WIP)
* Update PostNL sensor
* Bump version
* Small updates to PostNL package based on feedback
* Remove unused import
* Pass api to sensor
* Refactor based on feedback
* Update based on feedback
* Fix feedback
* Clean up
* Bugfiix
* Bugfix
* SCAN_INTERVAL fix
* Remove unused import
* Refactor for new wrapper implementation
* Update postnl package requirement
* Change throttle logic
* Update package version
* Add new line
* Minor changes
* Change refresh time to 30 minutes
* Update requirements_all.txt
* Allow independent control of white level on flux_led component.
Also preserve brightness on color change.
* Limit white value support to RGBW mode.
* Requested changes.
* Correct liniting issues
* Formatting
* Converts RainMachine to hub model (part 2)
* Small style adjustments for consistency
* Moving MAC calculation to one-time call in component
* Removing unneeded attribute
* Bumping Travis
* Lint
* Force update continuous sensors when new measurement available.
* Added unique ID's based on coordinates, sensor type and client name.
* Fixed over-indentation (hound review)
* Revert "Added unique ID's based on coordinates, sensor type and client name."
This reverts commit 3345e67a15.
* Fix lint errors.
* Re-added unique ID's based on location.
* Removed wrong error logging.
* Removed creating UUID from unique id
* Lint
* allow to set a desired update interval for camera_proxy_stream view
* lint
* refactor into a seperate method.
Keep the handle_async_mjpeg_stream method to be overridden by platforms
so they can keep proxying the direct streams from the camera
* change descriptions
* consolidate
* lint
* travis
* async/await and force min stream interval for fallback stream.
* guard clause. Let the method raise error on interval.
* is is not =
* what to except when you're excepting
* raise ValueError, remove unnecessary 500 response
* Add more parameters for DSMR component
* Add suiting icon for power failure
* Add suiting icon for swells & sags
* Fix tab indentation -> spaces
* Fix too long lines (PEP8)
According to my observations, the "switch_energy" value displayed by Pyfritzhome is the sum of Wh over the last week since measurement.
As a result, the correct divisor for representing output as kWh would be 1000 instead of 10000.
* Add initial user foundation to Home Assistant
* Address comments
* Address comments
* Allow non-ascii passwords
* One more utf-8 hmac compare digest
* Add new line
- Instead of registering listeners in the entity __init__, do it in
async_added_to_hass to avoid errors updating an entity which isn't fully
set up yet
- Change from schedule_update_ha_state to async_schedule_update_ha_state
* Fix TypeError on round(self.humidity)
Some weather platforms postpone the first data fetch for a while on init. As a result round(self.humidity is called before it is assigned a value, producing an error. This is a fix for that.
* Rewrite to avoid false negative evaluation
As per the suggestion from @OttoWinter, rewrite to avoid matching e.g. 0.0 as false.
With Darksky allowing only 1000 API requests per day, 2 minutes retry seems to be bit closer to running over the limit and actually it did for 5 days in my account. Hence proposing a change to 5 minutes to keep the API happy and also it doesn't hurt to check the weather for every 5 mins than 2 mins someone lives in Jupiter :-P
* add initial precipitation support
* move attr to component
* remove blank line
* add forecast attributes to platform and update demo
* add tests
* break long lines
* calc lower temp correctly
* move all new attributes to component
* convert temp low only when existing
* Working but incomplete
* Remove events on unload
* Add unload test
* Fix failing sensor test
* Improve unload test
* Move DeconzEvent to init
* Fix visual under-indentation
* Update hue_api.py
add dummy group handler for logitech-pop
* Update __init__.py
add HueGroupView for logitech pop
* Update __init__.py
removed whitespace on blankline
* fix line limit and space
* fix indents
* fix more docstring and formatting issues.
* fix more whitespace issues
* Fix pylint issue
There's one particular QNAP model which sometimes return empty/null temperatures
for certain disks. This commit ensures that this model can be integrated with HASS
without causing KeyErrors or other exceptions - if this edge case is hit, the
sensor will simply show `0` instead.
Eufy device state isn't reported if the bulb is off, so avoid stamping on
the previous values if the bulb isn't going to give us useful information.
In addition, improve handling of bulb turn on if we aren't provided with a
brightness - this should avoid the bulb tending to end up with a brightness of
1 after power cycling.
Eufy device state isn't reported if the bulb is off, so avoid stamping on
the previous values if the bulb isn't going to give us useful information.
In addition, improve handling of bulb turn on if we aren't provided with a
brightness - this should avoid the bulb tending to end up with a brightness of
1 after power cycling.
* Initial commit
* Add error handling to config flow
Change unique identifyer to name
Clean up hound comments
* Ensure hass home zone is created with correct entity id
Fix failing tests
* Fix rest of tests
* Move zone tests to zone folder
Create config flow tests
* Add possibility to unload entry
* Use hass.data instead of globas
* Don't calculate configures zones every loop iteration
* No need to know about home zone during setup of entry
* Only use name as title
* Don't cache hass home zone
* Add new tests for setup and setup entry
* Break out functionality from init to zone.py
* Make hass home zone be created directly
* Make sure that config flow doesn't override hass home zone
* A newline was missing in const
* Configured zones shall not be imported
Removed config flow import functionality
Improved tests
* Recode to async version of homematicip-rest-api
* Remove blank line
* Cleanup of access point status class
* Fix to loong line
* Fix import errors
* Bugfix missing wait the _retry_task for sleep command
* Update comment
* Updates after review
* Small updates of logging and property name
* Fix DOMAIN and revert back to lowercase snakecase strings
* Fix intention and tripple double quotes
* Fix travis build
* Remove unnecessary state attributes
* Fix optional name in configuration
* Further reduction of state attributes
* Handle HomeKit configuration failure more cleanly
Add support for handling cases where HomeKit configuration fails, and give
the user more information about what to do.
* Don't consume the exception for a homekit.UnknownError
If we get an UnknownError then we should alert the user but also still
generate the backtrace so there's actually something for them to file in
a bug report.
* Use forward entry setup with light platform
* Move sensor to forward entry setup
* Use forward entry setup with binary sensors
* Use forward entry setup with scene platform
* Remove import of unused functionality
* Move deconz setup in to setup entry
Create initial negative tests for setup entry
* Fix hound comment
* Improved tests
* Add test for scene platform
* Add test for binary sensor platform
* Add test for light platform
* Add test for light platform
* Add test for sensor platform
* Fix hound comment
* More asserts on sensor types
* Handle HomeKit configuration failure more cleanly
Add support for handling cases where HomeKit configuration fails, and give
the user more information about what to do.
* Don't consume the exception for a homekit.UnknownError
If we get an UnknownError then we should alert the user but also still
generate the backtrace so there's actually something for them to file in
a bug report.
When an OpenWrt device monitored via ubus is offline, this causes the
log to be flooded with several exceptions. Avoid this by catching
requests.exceptions.ConnectionError in addition to
requests.exceptions.Timeout.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
The Lokalise server has a bug that the internal portion of key
references was misinterpreted as a symfony key, and was getting auto
converted by the convert placeholders feature. Since we don't use this
we're turning it off to work around the bug.
* Initial working config entry with discovery
* No need for else
* Make sure that imported config doesnt exist as a config entry
* Improve checks to make sure there is only instance of deconz
* Fix tests and add new tests
* Follow upstream changes
Fix case when discovery started ongoing config entry and user completes setup from other path it was possible to complete discovered config entry as well
* Add test to make sure link doesn't bypass any check for only allowing one config entry
* Dont use len to determine an empty sequence
* Cleanup
* Allways get bridgeid to use as unique identifier for bridge
* Fix colorlog on windows
Modified the way logging is initialized to fix two things.
1. If the import of `colorlog` fails the logs will still be formatted
using the expected HASS log format.
2. Ensure that `logging.basicConfig` is called AFTER `colorlog` is
imported so that the default handler generated will be writing to the
wrapped stream generated when `colorama` is initialized. This allows
colored logging to work on Windows.
Added support for a `--log-no-color` command line switch in the event
that someone just wants to disable colored log output entirely.
* Fix line lengths
* Switch default value
* implemented services for bmw remote services
* added vin to attributes of tracker
* moved component to new package
* added service description
* fixed static analysis warnings
* implemented first set of code reviews
* removed locking related services
* fixed static analysis warnings
* removed excess blank lines
* refactoring of setup() to resolve warning
"Cell variable bimmer defined in loop (cell-var-from-loop)"
* added missing docstring
* added service to update all vehicles from the server
* implemented changes requested in code review
* added check if invalid vin is entered
* Added web view for to get url
* Added web view for TTS to get url
* Added web view for TTS to get url
* Added web view for TTS to get url
* Fixed test
* added auth
* Update __init__.py
* Added ability to use FB messenger broadcast api. use 'BROADCAST' keyword for first target in the facebook notifiy component to enable.
* Added ability to use FB messenger broadcast api. use 'BROADCAST' keyword for first target in the facebook notifiy component to enable.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Added ability for broadcast messaging for facebook messenger notify platform.
* Update facebook.py
* Update facebook.py
* Update facebook.py
* Update facebook.py
* Added support for a new platform: climate.modbus
* Made changes based on code review.
* Made changes based on code review
* Made changes that were recommended in the pull request review.
* Fixed spacing line 144
* Added docstrings for the added helper functions.
* Fixed set_temperature() function to use a variable local to the function for the target temp.
* Fixed lint formatting error
* Modified logic when checking the target temperature, as well as fixing the setup_platform function
* Broadlink Sensor - switch to connection-less mode
Solved the issue with broadlink sensor that occurs when short connection loss with RM2/3 is present on poor WiFi networks.
* Update broadlink.py
* Update broadlink.py
* Update broadlink.py
* Update broadlink.py
* Update broadlink.py
* Update broadlink.py
* Update broadlink.py
* Start of development
* Add extra attributes from unifi scanner
* Store IP of the device in the state attributes with nmap
* Allow not defining get_extra_attributes method in derived classes
* Fix up Eufy handling of colour lights
The Eufy colour lights have separate colour and temperature modes, and give
much less light output when in colour mode. Brightness is also handled in
a slightly confusing way, which means that state must be maintained in
order to avoid switching the light between modes by accident. Add some
additional handling for that.
* Bump the lakeside version
This version has important bugfixes for colour bulbs.
* Hound fixes
* Adding USCIS component
* Adding Line after the class DOC
* Update : Extract USCIS logic code to Component
* Update : Extract USCIS logic code to Component
* Adding CURRENT_STATUS
* Change Error handling, remove date from attributes
* Update the Version for USCIS
* Update uscis.py
* Add support for controlling homekit lights and switches
This adds support for controlling lights and switches that expose a HomeKit
control interface, avoiding the requirement to implement protocol-specific
components.
* Comment out the homekit requirement
This needs to build native code, so leave it commented for now
* Review updates
* Make HomeKit auto-discovery optional
Add an "enable" argument to the discovery component and add a list of
optional devices types (currently just HomeKit) to discover
* Further review comments
* Update requirements_all.txt
* Fix houndci complaints
* Further review updates
* Final review fixup
* Lint fixups
* Fix discovery tests
* Further review updates
* Add support for Eufy bulbs and switches
Add support for driving bulbs and switches from the Eufy range.
* Fix hound checks
* Satisfy pylint
* Handle review comments
* Review updates and test fixes
* PyLint is a bit too aggressive
* Added feedback sound configuration
* Added feedback sound configuration
* Cleaned up feedback off
* Cleaned up whitespace
* Moved feedback pus to helper funx
* Async
* Used async_mock_service for tests
* Lint
* Support binary_sensor and device_tracker for HomeKit
* Add test for get_accessory and binary sensor
* Test service.display_name and char_detected.display_name
* Split test to improve speed
With AbodePy 0.12.3, dimmers will now work but a conversion of the brightness is required. Additionally, when a brightness value of 100 is sent to Abode, 99 is returned causing AbodePy to throw an error so this component will send 99 instead of 100.
Keeps the brightness value sent and returned from the device response consistent. However, during initialization and when a device refresh is received, Abode can return 100 thus we'll convert that case back to 99.
* Initialise filter with historical values
Added get_last_state_changes()
* fix test
* Major changes to accommodate history + time_SMA
# Conflicts:
# homeassistant/components/sensor/filter.py
* hail the hound!
* lint fixed
* less debug
* ups
* get state from the proper entity
* sensible default
* No defaults in get_last_state_changes
* list_reverseiterator instead of list
* prev_state to state
* Initialise filter with historical values
Added get_last_state_changes()
* fix test
* Major changes to accommodate history + time_SMA
# Conflicts:
# homeassistant/components/sensor/filter.py
* hail the hound!
* lint fixed
* less debug
* ups
* get state from the proper entity
* sensible default
* No defaults in get_last_state_changes
* list_reverseiterator instead of list
* prev_state to state
* update
* added window_unit
* replace isinstance with window_unit
* Add async timeout feature
* Decorator for setter methods to limit service calls to HA
* Changed to async
* Use async_call_later
* Use lastargs, async_add_job
* Use dict for lastargs
* Updated tests to stop patch
* Enable autodiscovery for mqtt cameras, BREAKING CHANGE: homogenisation topic->state_topic
* fix line too long
* fix topic->state_topic in test
* image shall not be the state of entity
* Added the ability to switch Tahoma Garage door relay.
Those are special switches that can only be pushed.
Their state is always OFF, they react to the turn_on action, perform it, but stay OFF
* fixing indents and so on
* CI fix
* fix asuswrt ap mode failure
When using ap mode, asuswrt device_tracker does dont work properly as ip can not be retrieved from wl command. This version fixed the issue.
* save 1 line code
* another 2 lines saved
* typo correction
* Use 0/1 for GPIO writes rather than true/false
GPIO pins don't appear to respond to true/false writes, and this is reflected in code elsewhere. For example, in `\components\switch\rpio_gpio.py` the following code is used:
```
def turn_on(self, **kwargs):
"""Turn the device on."""
rpi_gpio.write_output(self._port, 0 if self._invert_logic else 1)
self._state = True
self.schedule_update_ha_state()
```
This code works. Hence this PR uses 0/1 in the raspberry pi GPIO cover, instead of true/false.
* Update rpi_gpio.py
* Added support for requesting RSSI values from Bluetooth devices
* Moved Bluetooth RSSI code to separate library and imported it
* Cleaned up tuple issues
* Changed concatination of mac addresses
* Changed string formatting to use new style
* Ran gen_requirements_all.py
* Added switch component to Amcrest IP Camera.
* Fixes to new switch component after review
* Removed redundant branching, as well as requirement declaration.
* Changes to requirements after rerunning generation script
* Minor changes
* Handle turn_on situation when no color is set
As is, an error gets thrown when turn_on is called without an HS value. By adding an if statement, we only try to set RGB if an HS value is applied.
* Fix Whitespace Issues
* Made Requested Changes
* Handle turn_on situation when no color is set
As is, an error gets thrown when turn_on is called without an HS value. By adding an if statement, we only try to set RGB if an HS value is applied.
* Fix Whitespace Issues
* Made Requested Changes
* Google Maps location sharing device tracker.
* Use ConfigType and change debug logging to _LOGGER.debug()
* Update to locationsharinglib 0.3.0
* Remove unneeded lines.
* Use hass.config.path for config file location.
* Fixed remarks
* Return boolean in setup_scanner
* if tracking is disabled, the position is not set in the device tracker.
This fixes an issue with a toggling vehicle state.
* removed useless attributes
* Try config entries
* Testing
* Working flow
* Config entry text strings
* Removed manual inputs for config flow
* Support unloading of config entry
* Bump requirement to v33
* Fix comments from test
* Make sure that only one deCONZ instance can be set up
* Hass doesn't support unloading platforms yet
* Modify get_api_key to be testable
* Fix hound comments
* Add test dependency
* Add test for no key
* Bump requirement to v35
Add pydeconz to list of test components
* Don't have a check in async_setup that domain exists in hass.data
* Implement thermostat support for Alexa
* util.temperature: Support interval conversions
* Use climate.ATTR_OPERATION_MODE for Alexa thermostat mode
* Switch coroutines to async/await
* Log all Alexa error events
* update leak sensor
* Fix error when insteon state type is unknown
* Bump insteon version to 0.8.3
* Update requirements all and test
* Fix requirements conflicts due to lack of commit sync
* Requirements sync
* Rerun script/gen_requirements_all.py
* Try requirements update again
* Update requirements
* Fix Google Calendar caching when offline
Events from Google Calendar were not firing under the following
circumstances:
1. Start ha as normal with Google Calendar configured as per
instructions.
2. ha loses network connectivity to Google
3. ha attempts update of Google Calendar
4. calendar/google component throws uncaught Exception causing update
method to not return
5. (cached) Google Calendar event does not fire, remains "Off"
Catching the Exception and returning False from the update() method
causes the correct behavior (i.e., the calendar component firing the
event as scheduled using cached data).
* Add requirements
* Revert code cleanup
* Remove explicit return value from update()
* Revert "Remove explicit return value from update()"
This reverts commit 7cd77708af.
* Use MockDependency decorator
No need to whitelist google-python-api-client for a single unit test at
this point.
* update leak sensor
* Fix error when insteon state type is unknown
* Bump insteon version to 0.8.3
* Update requirements all and test
* Fix requirements conflicts due to lack of commit sync
* Requirements sync
* Rerun script/gen_requirements_all.py
* Try requirements update again
* Update requirements
* unique_ids for tradfri lights and groups
* set color temperature on CWS bulb
Cannot set_color_temp on color bulb, needs conversion from mired to hsb
* make travis happy
* change condition so we ensure color bulbs are included, change comments.
* Adds template function state_attr to get attribute from a state
Refactored is_state_attr to use new function
Adds tests for state_attr
* Fixes line too long and test bug
* Fixes pylint error
* Fixes tests and D401 lint error
* New service added to control the power mode of the yeelight
* Debug output removed.
* Strict validation of the available power modes
* Service description added
* Service parameter name fixed
* Fix Google Calendar caching when offline
Events from Google Calendar were not firing under the following
circumstances:
1. Start ha as normal with Google Calendar configured as per
instructions.
2. ha loses network connectivity to Google
3. ha attempts update of Google Calendar
4. calendar/google component throws uncaught Exception causing update
method to not return
5. (cached) Google Calendar event does not fire, remains "Off"
Catching the Exception and returning False from the update() method
causes the correct behavior (i.e., the calendar component firing the
event as scheduled using cached data).
* Add requirements
* Revert code cleanup
* Remove explicit return value from update()
* Revert "Remove explicit return value from update()"
This reverts commit 7cd77708af.
* Use MockDependency decorator
No need to whitelist google-python-api-client for a single unit test at
this point.
* 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
* 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
* Device support for the Xiaomi Air Humidifier.
* Requirements updated.
* "continuation line under-indented for visual indent" fixed.
* Make hound happy.
* Inadvertently added light.xiaomi_miio component removed from PR.
* Service descriptions added.
* One of the pylint errors fixed.
* Redundancy removed.
* pylint: disable=no-self-use added. The method signature is important here.
* Pylint fixed.
* Use a unique data key per domain.
* Review incorporated.
* Map of available attributes added.
* Pylint fixed.
Attribute "volume" added.
* Don't use the support flag bit mask as model identifier.
Determine support features and attributes at the constructor.
Use starred expressions at dicts instead of copies.
* Blank line removed.
* Use Async / await syntax.
* Make hound happy.
* Xiaomi Air Humidifier CA support added.
* Duplicate method removed.
* Air Purifier V3 support added.
* Don't abuse the system property supported_features anymore.
* python-miio version bumped.
* Clean-up.
* Additional supported features refactoring completed.
* Additional supported features renamed properly.
* Unique id added.
* Device unavailable handling improved.
* Refactoring.
* Missed const updated.
* Incomplete Air Humidifier CA support fixed.
* Review incorporated
* The Air Humidifier CA supports the operation mode "auto" - the standard version doesn't
* Attributes are part of the common set already
* Revert "Attributes are part of the common set already"
This reverts commit 40b443eba0.
* Comment added
* Service description of the set_dry_{on,off} service added
* Typo fixed
* Add @colinodell to CODEOWNERS for qnap sensor
* Bump qnapstats library to 0.2.5
This release adds better error handling for sharenames with no folder
* updated to new "b2vapi" of bimmer_connected
* updated requirements_all.txt
* updated 2 more vehicle names after rebase
* cleanup of import statements
* found one more broken name...
* removed unused constant
* cleanup of import statements 2
* 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
When lights in the hue component are used with the emulated hue component ATTR_EMULATED_HUE is still being used, which was deprecated by #9382. This updates ATTR_EMULATED_HUE to ATTR_EMULATED_HUE_HIDDEN to improve consistency and stop the deprecation warnings.
* Add sensor platform for luftdaten.info
* Add monitored conditions to platform schema
* Make monitored conditions config obligatory
* Improve inline documentation
* Import first standard libs then 3rd party libs
* Combine resource url using format
* Remove unnecessary try..except block
* Use state “None” instead of STATE_UNKNOWN
* Minor changes incl. removal of unused vars
* Add missing spaces
Value parsing in plant component throws an ValueError if values are given as floats. This commit changes int(value) to int(float(value)) to avoid this error.
* Add EntityFilter helper
* Changes in entityfilter after code review
* Convert recorder to use EntityFilter
* Fix flake/lint errors in recorder
* Update entity filter helper to return function
* Update recorder to use updated entity filter
* Better docstrings in entityfilter
* Update entityfilter.py
* MVP integration with Remember The Milk.
This version offers a service allowing you to create new issues in Remember The Milk.
* fixed pylint issue with import path
* - added files to .coveragerc as the server inerface is hard to test
- added tests for config file handling
* fixed lint error
* added missing docstrings
* removed stray edit
* fixed minor issues reported by @fabaff
* changed naming of the service, so that serveral accounts can be used
* added disclaimer
* moved service description to services.yaml
* fixed blank lines
* fixed structure of configuration
* added comment about httplib2
* renamed internal config file
* improved logging statements
* moved entry in services.yaml into separate folder.
Had to move the component itself as well.
* fixed static analysis findings
* mocked first test case
* fixed bug in config handling, fixed unit tests
* mocked second test case
* fixed line length
* fixed static analysis findings and failing test case
* also renamed file in .coveragerc
* control flow changes as requested by @balloob
* Implement adjustment
* Add color support
* fix lint
* Fix lint & use only RGB
* fix HSB + Test
* Add tests & fix bugs
* add rgb test
* add setColorTemperature
* Add color light support + tests
* Fix color temp
* use kelvin for converting
* use correct calculation
* Added timer component
* Reworked functionality a bit
* Fixed requested change
* Fixed state updates when finished
* Removing expired listeners, added events, changed services
* Added finish service
* Using timedelta parameters in start-service
* Cleanup
* Lint
* Updating state for remaining time
* Removed duration from cancel method
* Renamed service to fix disabled lint
* Some tests (incomplete)
* Relocated service descriptions
* Addressed requested changes
* Adjusted tests, added methods and events
* Added test for finish service, lint
* Code cleanp, using string states
* tzzz... one char...
* Proper usage of restore_state
* Some more cleanup
* Added ability to control when the on command is sent.
* Changed to allow only brightness command
* Code cleanup
* Added test cases for on command mode.
* Added addition test
* Changed brightness options to lower case.
* Fixed case of default value
* Remove default
This commit adds support for the odhcp DHCP server in addition to
dnsmasq. A new configuration option 'dhcp_software' has been added and
allows the user to set the server used (defaults to dnsmasq to not break
existing installations).
* OwnTracks work. Beacon logic and testcases
The existing test cases don't really make clear what is being
tested and the iBeacon / Region / Zone / Tracker thing is all
a bit confused.
I'm distinguishing a fixed-place beacon used to trigger entrance
into an HA zone (as a Region Beacon) from a beacon affixed to a
portable or mobile object (as a Mobile Beacon). The behaviors
and test cases for those usages should be different. A Region Beacon
will be named the same as a Home Assistant Zone and seeing an event
from that beacon should trigger a device tracker update related
to that zone. It would be appropriate, though unnecessary, to
configure the Region Beacon with the GPS coordinates of its static
physical location.
A Mobile Beacon is not named after any HA Zone and seeing the beacon
triggers an update in HA setting the location of the beacon to the
current device_tracker location. In this way, when my_phone sees
the beacon on my_keys, the location of my_keys is set to where
my_phone is. And when my_phone stops seeing my_keys, my_keys location
is the location of my_phone the last time it saw them.
A Mobile Beacon's GPS information should be ignored because it's
almost certain to be incorrect because the beacon moves. In fact,
beacons typcially come configured with lat/lon as 0.0/0.0 so using
the location of the beacon in an update has a nasty habit of
setting you and your keys on the bottom of the Atlantic Ocean.
Leave message handling is changed to treat mobile beacons
differently from region beacons and gps regions.
active beacons should be a set. you shouldn't end up
with multiple "active" entries for the same beacon. Let's
enforce that with the correct data structure.
Added test for real-world bug that is fixed.
A series of mobile beacon and region beacon
enter and leave events could cause a mobile
beacon to stick to the tracking device even
though it had tracked through a "leave" event.
Changed two tests to look at the size
of the 'mobile_beacons_active' structure rather
than at the object which will allow this test
to work with any sort of list, set, etc.
* Removing excess logging and unnecessary try catch.
From review on PR #10183 I've removed some info logging
that was unnecessary and I've made the suggested changes
to an if block and a try/catch.
The play_media parameters are a little bit black magic for the yamaha
platform, this explains what they are in a code comment instead of
having to go look at the yamaha platform itself.
Fixes Bug #10180
* First draft of a remove device service. Fixes https://github.com/home-assistant/home-assistant/issues/9571.
* Add device service introduced. Enables the join permission of the gateway to pair a new sub device within the next 30 seconds.
* Schema validation added and some refactoring.
* A more precise validation of the gw_mac (ffffffffffff vs. ff:ff:ff:ff:ff:ff).
* Persistent notification added to provide some feedback.
* Pylint warning disabled. The methods are used indirectly.
* CODEOWNERS reference updated.
* Add unit test for hddtemp sensor.
* Remove sample fixture and include it in the code.
* Add test to raise coverage.
* Fix bug when host is not reachable.
* Minor code cleanups.
* More code cleanups.
* Added new Clickatell SMS messaging Notify Platform
* Added new Clickatell SMS platform with layout corrections
* Added new Clickatell platform with additional layout corrections
* Added new Clickatell platform with exception handling removed
* Added new Clickatell platform with poor reference removed
* Reversed changes to dev_docker file
* Minor changes
* Add Nederlandse Spoorwegen sensor
* Remove unused 'delay' option.
* Apply requested code reviewed changes
- use constants from const.py
- ensure the configuration is a list
- verify credentials upon platform setup
- verify station input
- add True as second param to add_device
- only call add_device if at least 1 sensor was setup
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Added Base Support for Linode
* Removed unused Attr
* Corrected some Typos
* updated requirements & coveragerc
* added import to prevent var not declared errors in linter
* Fixed Typo
* Added Switch Component for Linode and corrected some errors if data was blank
* Updated api lib to hopefully remove dependancy on enum34
* Fixed Reference error
* fix pylint errors
* Update linode.py
* Update linode.py
* Update linode.py
* Update linode.py
* Add HTTP cache header to proxied media player images
With the resource actually being cacheable, preemptively extend the cache
buster key to prevent hash collisions.
While at it, change the hash from md5 to sha256 for consistency with the
access_token method.
* Remove lint
* Core POC support for polymer i18n
* Add gulp to build_frontend
* Remove frontend build
* Updated translations format
* Eliminate translation namespace from panel names
* Only register translations path in dev mode
* Support for different device types of MIIO switches: Xiaomi Smart WiFi Socket (called Plug), Xiaomi Smart Power Strip and Xiaomi Chuang Mi Plug V1.
* Line too long fixed.
* Trailing whitespace removed.
* Changes based on review.
* Line too long fixed.
* No blank lines allowed after function docstring fixed.
* The underlying library is called python-miio now. Imports and requirements updated.
* TODO comment removed. Travis complains about.
* Blank line removed.
* Code clean-up.
* Revert "Code clean-up."
This reverts commit 96b191c7a6.
* Unused platform constant removed.
* Add support for different display currencies in CoinMarkerCap sensor.
* Add test for CoinMarketCap sensor.
* Add test dependency to gen_requirements_all.
* Fix review comments: use string formatting and less string case chanes.
* Recorder exception catch for long state string
* Revert - Recorder exception catch for long state string
* Validate state length at core level
* Revert - this reverts commit 9d6bd017d9.
* Revert - Recorder exception catch for long state string
* Fix state TypeError
* Test for long state exception
* Trend sensor now uses linear regression to calculate trend
* Added numpy to trend sensor test requirements
* Added trendline tests
* Trend sensor now has max_samples attribute
* Trend sensor uses utcnow from HA utils
* Trend sensor now completes setup in async_added_to_hass
* Fixed linter issues
* Fixed broken import
* Trend tests make use of max_samples
* Added @asyncio.coroutine decorator to trend update callback
* Update trend.py
* Initial support for SNMP switch
Supports setting integer values
* Resolves styling issues
* Updates requirements
* Remove commented out import
* Changes default community to private. Fixes linting errors.
* More linter fixes and bugfix in #state()
* Refactors the code to make it simpler.
* Add Google Domains component
* Fixes for hound
* Add Google Domains tests
* Fixes for hound
* Clean up Google Domains
* Add timeout to Google Domains
* Remove whitespace from blank lines
* Update google_domains.py
* Update google_domains.py
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Changes
* Updated Requests to 2.18.4
* Updated plexapi to 3.0.3
* Removed function to convert_NA_to_None
* Removed function get_thumb_url
Type changes
* _session.player is now a list players
* na_type deprecated and to be removed
* plexapi has change na to None
Known Issues:
* Player controls currently broken
* Last location (library) stays while player idle
* Username is now Usernames and a list
* Fix for broken controls
* Removed errant print statement
* Removed depecrated na_type
* Updated Plex Sensor to use plexapi 3.0.3
Added support for Token to be used in sensor
Known Issues:
Username and Password broken for Plex Sensor use Token instead for now
* removed TODOs
* Fixes for private access violations
* Removed need for _local_client_fix
* Removed unused import and fixed parens
* Async rewrite
* Device and events now working with async core
* More async than before
* Methods have moved
* Remove check if parameter serial number is available since library handles reconnection anyway and we can expect user to set up configuration correctly
* Async rewrite
* Device and events now working with async core
* More async than before
* Methods have moved
* Remove check if parameter serial number is available since library handles reconnection anyway and we can expect user to set up configuration correctly
* Serial number is the only unique identifier, checks are still needed
* No async for setup_device
* Bump axis to 13 in preparation of friday the 13th
* Fix review comments
* Removed async after some discussions with @armills.
It wasn't possible to get past that aiohttp doesnt support digest auth, which makes it impossible to convert the full library at this point in time.
* Xiaomi Air Purifier 2 integration
* Flake8 errors fixed.
Changes based on review.
* Service domain ("fan") updated and services properly prefixed by xiaomi_miio.
* The underlying library is called python-miio now. Imports and requirements updated.
* Version bumped. The underlying library is called python-miio now.
* Fixes#10030. Extented Network Exceptions handling.
* Remove unused import. Replace ex.reason to ex.message to use custom exception instead of HTTPError
* Init commit of new whois sensor
* Updated requirements
* Resolved updated showing expired, added expired attr
* Added missing attribute in init, added whois to coveragerc
* Various PR comment changes
- Now more resiliant to invalid hostnames
- Removed various assumed STATE_UNKOWN setting
- Upfront check for valid hostname preventing the sensor starting with dud
- Resolved unit of measurement Day, Days, None issue
- Datetime formatting now done to iso 8601 standard
- Removed all expired usage, not really that useful
- Unused hass assignment
* More PR comment resolutions
- Resolved the dilemma with hosts / single host per sensor. Now running
single domain per sensor.
- Renamed host(s) to domain
* Moved coveragerc sensor location
* Re-phrased the expiration_date warning
* Resolved assumed updated_date existence
* Resolved missing indent
* Resolved discover_info typo
* Update whois.py
* add eph ember controls
* updates based on review
* remove unused import
* update to new version of pyephember
* added myself to codeowners as requested
* make codeowners alphabetical
* run fixed gen_requirements_all
* Update ephember.py
* Do not include program data in media_title if program data is undefined (None)
* Show thumbnail of currently playing program
* async setup
* Update requirements
* Initial revision of fail2ban sensor
* Verified working, added tests
* Re-factored code so that log reading isn't called for each sensor
* Lint fixes
* Removed errant reset of last ban, added test to verify bans persist through update
* Removed for loop in read_log and replaced with regex per review request
* Refactored update to use current ban array for last ban state
- also was missing return False in timer for default behavior
* Removed CONF_SCAN_INTERVAL from PLATFORM_SCHEMA.extend
- renamed DEFAULT_SCAN_INTERVAL to SCAN_INTERVAL
* SCAN_INTERVAL changed to timedelta
* Force travis rebuild (last build timed out)
* Using compiled regex now
* fixing a typo in the old library.
Should now work with both version 1 and version 2 hub
* version bump
* fix Scene shadowing
* fix requirements. (not sure whether I should commit the other generated files as well ?)
* Test including extra data on a no data trigger
* Match any dicts for default schema for event data
* Fix indentation
* Only check schema if one was configured
The default names for the feeds created by the EmonCMS component are
like 'emoncms1_feedid_10', but
- This is the display name. The ID should be lowercase and underscored,
but the display name should be readable. The ID gets derived from it
and comes out formatted correctly.
- EmonCMS lets you assign names to feeds, so it makes sense to use those
if they exist, rather than feed IDs. The ID is pretty meaningless and
basically means you have to override every name to make it readable.
- Including the ID identifying the EmonCMS instance (i.e. the '1') makes
the name clunkier and would only be useful for people with multiple
EmonCMS instances, which is likely to be an extremely small group since
one hub can run as many feeds as you need it to.
This changes the default behavior but still uses configured 'name' if
it's set, so it won't break the configuration of people who have
customized their feed names in HA config.
* Change persistent notification to avoid long text in entity state
* Tests for changed persistent notification
* Persistent notification state
* Test for component state
* Updated RussoundRNETDevice.update() to call and enhanced function that reduces network traffic
Refer to issue #6 on the Russound project
* Updated RussoundRNETDevice.update() to invoke an enhanced function to reduce network traffic
PLease see issue #6 on the russound project
* Updated REQUIREMENTS to use version 0.1.9 of the Russound component
Please refer to issue #6 on the Russound rnet project
* Corrected some minor style details to satisfy Houndbot
* Update requirements_all.txt
* Add support for multiple disks.
* Fix LINT error.
* Make disk config optional to not break existing installations.
* Change state handling as per request by @fabaff.
* Extended Ring DoorBell to support camera playback and wifi sensors
* Bump python-ringdoorbell to version 0.1.6
* Support to camera playback via ffmpeg
* Extended ringdoorbell sensors to report WiFi attributes
* Extended unittests
* Makes lint happy
* Added support to stickup cameras and fixed logic
* Fixed unittests for stickup cameras
* Makes lint happy
* Refactored attributions and removed extra refresh method.
* Update request requirement
Update request requirement from version v2.14.2 to v2.18.4
* Fix dependency vizio integration
3rd patry packages were removed from requests. Changed dependency from requests to urllib3
* forgot =
forgot = when adding the requirement
* re-run script/gen_requirements_all.py
re-run script/gen_requirements_all.py
* Unvendoring urllib3 from requests
In v2.16.0 and newer of requests they unverdored urllib3.
* undefined name 'InsecureRequestWarning'
* Removed requirement to 'urllib3==1.22
* removed import requests
* removed urllib3.exceptions.InsecureRequestWarning
removed urllib3.exceptions.InsecureRequestWarning travis lint
* Added Toon support again
* Forgot about .coveragerc
* Fixed style issues
* More styling and importing fixes
* Implemented the suggestions made by @pvizeli
* The smallest fix possible
* Removed custom names for Toon states
* Fix last push with 2 outdated lines
* Removed HOME and NOT_HOME, moved to just climate states
* Bumped dependency for better handling of smartplugs that don't report power consumption
* Implemented changes as suggested by @balloob
* Rebase, gen_requirements_all.py finally working
* Add emeter attributes.
* Remove unused attributes.
* Rework supported features so it only queries the bulb once.
* Used cached supported_features, catch errors if energy usage not reported.
I noticed the steam component "game" attribute is capitalized. This should be lowercase if I'm not mistaken.
From:
return {'Game': self._game}
To:
return {'game': self._game}
Not sure if i'm doing this correctly... apologizes if I'm not!
* using defusexml ElementTree for safer parsing of untrusted XML data
* move from core dependency to platform specific dependency
* style difference: put back end of list comma in setup.py
* Fix missing timeout for Netatmo binary sensor
This fix also merges timeout and offset because there were the same thing
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Fix lint errors
* Fix style
* added implementation for monoprice 6-zone amplifier. This implementation is based on and very similar to russoun_rnet implementaion
* updated comments and cleaned up code
* updated comments and cleaned up code
* added unit tests
* removed 'name' attribute from platform schema.
* added monoprice.py to .coveragerc
* fixed lint
* fixed lint errors
* fixed lint errors
* added monoprice to requirements_all.txt
* fixed lint errors again
* implemented change requests
* fixed lint error
* added exception handling to setup_platform()
* replaced catchall with SerialException only
* added myself to CODEOWNERS
* fixed weird merge to CODEOWNERS
* Update aioimaplib from v0.7.12 to v0.7.13
Changelog v0.7.13:
[aiolib] adds a connection lost callback [test] imapserver : added APPENDUID response for APPEND cmd [test][fix] imapserver append should add to the connected user mb [test] imapserver : more accurate building of message headers (using python email module)
* run script/gen_requirements_all.py
* http: Add headers key to json[_message]
* Add google_assistant component
This component provides API endpoints for the Actions on Google Smart
Home API to interact with Google Assistant.
* google_assistant: Re-add fan support
* google_assistant: Fix Scene handling
- The way I originally wrote the MAPPING_COMPONENT and the way it's actual
used changed so the comment was updated to match that.
- Use const's in more places
- Handle the ActivateScene command correctly
* google_assistant: Fix flakey compare test
Was failing on 3.4.2 and 3.5, this is more correct anyway.
* google_assistant: Use volume attr for media_player
* Extra check to incoming connections
The incoming connection could be other than self.db_url, because
some 'custom_component' could be making these, and then, if they're not
sqlite3 connections, an error will raise because those haven't the
`dbapi_connection.isolation_level` attrib.
* lint fix
* simplify check: isinstance test only
* Fix load of components without any config from packages
- Add 'None' to the packages config schema validation, to be able to
load components without any more configuration from yaml package files,
like `wake_on_lan`, `media_extractor` and so on.
* test the ability to load components without configuration from packages
* Cloud: connect to cloud
* Fix tests in py34
* Update warrant to 0.5.0
* Differentiate errors between unknown handler vs exception
* Lint
* Respond to cloud message to logout
* Refresh token exception handling
* Swap out bare exception for RuntimeError
* Add more tests
* Fix tests py34
* Correct capitalization inconsistency in DarkSky
All two-word sensors ("Precip Intensity," "Nearest Storm Bearing," etc) in Darksky uses title case for the friendly name of the sensor, with the exception of "Dew point."
* Implement UV Index in Darksky
* Fixed whitespace for Tox compliance
* Add unit for UV Index.
Per recommendation of reviewer, added 'UV Index' as a CONST in const.py, then used that const in both DarkSky and ISY994. It looks like BloomSky might also support UV Index and it should probably be standardized.
* Added uptime sensor for homeassistant
* Fixed pylint and flake8 errors
* Made requested changes from PR
- Fixed stale docstrings
- Changed default state to None
- Added ability for user to use hours or days
* Fixed typo
* Added unit_of_measurement check to test
* Converted to async
- Changed tests to work with async
* Minor updates
* Added TODO to illustrate my intentions
* Resolved linting issue
* Resolved bool or file validation and updated tests
The tests have been updated to include mocks to assert a temp
ca cert exists as it should for the positive tests with an
additional negative test for a file not existing being tested.
* Resolved flake8 linting issues (test docstrings)
* Communication timeout support in modbus hub.
Timeout parameter are taken from configuration and passed to pymodbus constructor.
* CONF_TYPE and CONF_TIMEOUT imported from const.py
* Expose time module in Python Scripts
* Make dt_util available in Python Scripts
* Limit methods in time module
* Add time.mktime
* Limit access to datetime
* Add warning to time.sleep
* Lint
* fix for LocationParseError in netgear platform
* added unit tests for get_scanner()
* fixed houndci-bot warnings
* fixed lint warnings
* fixed lint warnings
* fixed broken test
* removed guard clause from netgear.py
removed all discovery related code from device_tracker
removed unnecessary unit test
* removed discovery related tests
* removed unused import
* removed unused import
* Xiaomi Smart WiFi Socket and Smart Power Strip integration
* Comment updated.
* Blank line removed.
* Typo fixed.
* Version of python-mirobo bumped.
* Version of python-mirobo bumped: Lightweight API changes.
* Additional API changes.
* Library version properly pinned again.
* Platform not ready behavior fixed.
Expose the device model as sensor attribute.
Device initialized log message added. Provides device model, firmware and hardware version.
* Component renamed: switch.xiaomi_plug -> switch.xiaomi_miio
* Revise based on review: Unused code removed. Filename updated.
* Initializing statistics sensor with data from database
* fixed broken test case
* usage of recorder component is now optional, thx to @andrey-git
* added test case for initialize_from_database
* New Skybell platform with components
* Added skybell components to omit.
* Preemptively fixing lint issues (hopefully).
* Removed unused variable.
* Requested changes.
* Additional CRs
* Hopefully the last of the CR's!
* bump the pyhs100 version and fix api changes
* switch.tplink: avoid I/O during __init__
* initialize _name to None in __init__
* update requirements_all.txt for the new version
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Introduced support to Travis CI
* Added Last Build Started sensor and simplified code
* Fixed logic error
* Simplified _LOGGER.debug statement
* Introduced support to Travis CI
* Added Last Build Started sensor and simplified code
* Fixed logic error
* Simplified _LOGGER.debug statement
* Renamed parameter since the repository_names expects a list
* Refactoring code to synchronous
* Simplified variables names
* Update to 0.12.1 and sensor implementation.
* Removing unnecessary dict gets.
* Added name property to actually use the _name variable.
* Update docstring
* arlo: Add alarm control panel component
Allows importing arlo base stations as an alarm control panel
component in HA. Lets the users configure a custom home mode since
arlo does not have a built-in home mode.
* fix lint and houndci comments
* Use async_update to update the state
Move the state updating code from state() to update() since it does
I/O.
* Do not set state in __init__
Make sure that update is called by passing the second parameter to
async_add_devices.
* Order imports and fix dos-strings
- pyrainbird 0.0.9 allows the override (if ever needed) connection retry/sleep
- Forces state towards the Entity when switching the switches. Gives better UI experience.
Make sure you are running the latest version of Home Assistant before reporting an issue.
<!-- READ THIS FIRST:
- If you need additional help with this template please refer to https://www.home-assistant.io/help/reporting_issues/
- Make sure you are running the latest version of Home Assistant before reporting an issue: https://github.com/home-assistant/home-assistant/releases
- Do not report issues for components if you are using custom components: files in <config-dir>/custom_components
- This is for bugs only. Feature and enhancement requests should go in our community forum: https://community.home-assistant.io/c/feature-requests
- Provide as many details as possible. Paste logs, configuration sample and code into the backticks. Do not delete any text from this template!
-->
You should only file an issue if you found a bug. Feature and enhancement requests should go in [the Feature Requests section](https://community.home-assistant.io/c/feature-requests) of our community forum:
**Home Assistant release (`hass --version`):**
**Home Assistant release with the issue:**
<!--
- Frontend -> Developer tools -> Info
- Or use this command: hass --version
-->
**Python release (`python3 --version`):**
**Last working Home Assistant release (if known):**
@@ -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.
description:Returns message if API is up and running.
tags:
- Core
security:
- api_key:[]
responses:
200:
description:API is up and running
schema:
$ref:'#/definitions/Message'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/config:
get:
summary:API alive message
description:Returns the current configuration as JSON.
tags:
- Core
security:
- api_key:[]
responses:
200:
description:Current configuration
schema:
$ref:'#/definitions/ApiConfig'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/discovery_info:
get:
summary:Basic information about Home Assistant instance
tags:
- Core
responses:
200:
description:Basic information
schema:
$ref:'#/definitions/DiscoveryInfo'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/bootstrap:
get:
summary:Returns all data needed to bootstrap Home Assistant.
tags:
- Core
security:
- api_key:[]
responses:
200:
description:Bootstrap information
schema:
$ref:'#/definitions/BootstrapInfo'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/events:
get:
summary:Array of event objects.
description:Returns an array of event objects. Each event object contain event name and listener count.
tags:
- Events
security:
- api_key:[]
responses:
200:
description:Events
schema:
type:array
items:
$ref:'#/definitions/Event'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/services:
get:
summary:Array of service objects.
description:Returns an array of service objects. Each object contains the domain and which services it contains.
tags:
- Services
security:
- api_key:[]
responses:
200:
description:Services
schema:
type:array
items:
$ref:'#/definitions/Service'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/history:
get:
summary:Array of state changes in the past.
description:Returns an array of state changes in the past. Each object contains further detail for the entities.
tags:
- State
security:
- api_key:[]
responses:
200:
description:State changes
schema:
type:array
items:
$ref:'#/definitions/History'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/states:
get:
summary:Array of state objects.
description:|
Returns an array of state objects. Each state has the following attributes: entity_id, state, last_changed and attributes.
tags:
- State
security:
- api_key:[]
responses:
200:
description:States
schema:
type:array
items:
$ref:'#/definitions/State'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/states/{entity_id}:
get:
summary:Specific state object.
description:|
Returns a state object for specified entity_id.
tags:
- State
security:
- api_key:[]
parameters:
- name:entity_id
in:path
description:entity_id of the entity to query
required:true
type:string
responses:
200:
description:State
schema:
$ref:'#/definitions/State'
404:
description:Not found
schema:
$ref:'#/definitions/Message'
default:
description:Error
schema:
$ref:'#/definitions/Message'
post:
description:|
Updates or creates the current state of an entity.
tags:
- State
consumes:
- application/json
parameters:
- name:entity_id
in:path
description:entity_id to set the state of
required:true
type:string
- $ref:'#/parameters/State'
responses:
200:
description:State of existing entity was set
schema:
$ref:'#/definitions/State'
201:
description:State of new entity was set
schema:
$ref:'#/definitions/State'
headers:
location:
type:string
description:location of the new entity
default:
description:Error
schema:
$ref:'#/definitions/Message'
/error_log:
get:
summary:Error log
description:|
Retrieve all errors logged during the current session of Home Assistant as a plaintext response.
tags:
- Core
security:
- api_key:[]
produces:
- text/plain
responses:
200:
description:Plain text error log
default:
description:Error
schema:
$ref:'#/definitions/Message'
/camera_proxy/camera.{entity_id}:
get:
summary:Camera image.
description:|
Returns the data (image) from the specified camera entity_id.
tags:
- Camera
security:
- api_key:[]
produces:
- image/jpeg
parameters:
- name:entity_id
in:path
description:entity_id of the camera to query
required:true
type:string
responses:
200:
description:Camera image
schema:
type:file
default:
description:Error
schema:
$ref:'#/definitions/Message'
/events/{event_type}:
post:
description:|
Fires an event with event_type
tags:
- Events
security:
- api_key:[]
consumes:
- application/json
parameters:
- name:event_type
in:path
description:event_type to fire event with
required:true
type:string
- $ref:'#/parameters/EventData'
responses:
200:
description:Response message
schema:
$ref:'#/definitions/Message'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/services/{domain}/{service}:
post:
description:|
Calls a service within a specific domain. Will return when the service has been executed or 10 seconds has past, whichever comes first.
tags:
- Services
security:
- api_key:[]
consumes:
- application/json
parameters:
- name:domain
in:path
description:domain of the service
required:true
type:string
- name:service
in:path
description:service to call
required:true
type:string
- $ref:'#/parameters/ServiceData'
responses:
200:
description:List of states that have changed while the service was being executed. The result will include any changed states that changed while the service was being executed, even if their change was the result of something else happening in the system.
schema:
type:array
items:
$ref:'#/definitions/State'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/template:
post:
description:|
Render a Home Assistant template.
tags:
- Template
security:
- api_key:[]
consumes:
- application/json
produces:
- text/plain
parameters:
- $ref:'#/parameters/Template'
responses:
200:
description:Returns the rendered template in plain text.
schema:
type:string
default:
description:Error
schema:
$ref:'#/definitions/Message'
/event_forwarding:
post:
description:|
Setup event forwarding to another Home Assistant instance.
tags:
- Core
security:
- api_key:[]
consumes:
- application/json
parameters:
- $ref:'#/parameters/EventForwarding'
responses:
200:
description:It will return a message if event forwarding was setup successful.
schema:
$ref:'#/definitions/Message'
default:
description:Error
schema:
$ref:'#/definitions/Message'
delete:
description:|
Cancel event forwarding to another Home Assistant instance.
tags:
- Core
consumes:
- application/json
parameters:
- $ref:'#/parameters/EventForwarding'
responses:
200:
description:It will return a message if event forwarding was cancelled successful.
schema:
$ref:'#/definitions/Message'
default:
description:Error
schema:
$ref:'#/definitions/Message'
/stream:
get:
summary:Server-sent events
description:The server-sent events feature is a one-way channel from your Home Assistant server to a client which is acting as a consumer.
tags:
- Core
- Events
security:
- api_key:[]
produces:
- text/event-stream
parameters:
- name:restrict
in:query
description:comma-separated list of event_types to filter
required:false
type:string
responses:
default:
description:Stream of events
schema:
type:object
x-events:
state_changed:
type:object
properties:
entity_id:
type:string
old_state:
$ref:'#/definitions/State'
new_state:
$ref:'#/definitions/State'
definitions:
ApiConfig:
type:object
properties:
components:
type:array
description:List of component types
items:
type:string
description:Component type
latitude:
type:number
format:float
description:Latitude of Home Assistant server
longitude:
type:number
format:float
description:Longitude of Home Assistant server
location_name:
type:string
unit_system:
type:object
properties:
length:
type:string
mass:
type:string
temperature:
type:string
volume:
type:string
time_zone:
type:string
version:
type:string
DiscoveryInfo:
type:object
properties:
base_url:
type:string
location_name:
type:string
requires_api_password:
type:boolean
version:
type:string
BootstrapInfo:
type:object
properties:
config:
$ref:'#/definitions/ApiConfig'
events:
type:array
items:
$ref:'#/definitions/Event'
services:
type:array
items:
$ref:'#/definitions/Service'
states:
type:array
items:
$ref:'#/definitions/State'
Event:
type:object
properties:
event:
type:string
listener_count:
type:integer
Service:
type:object
properties:
domain:
type:string
services:
type:object
additionalProperties:
$ref:'#/definitions/DomainService'
DomainService:
type:object
properties:
description:
type:string
fields:
type:object
description:Object with service fields that can be called
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.