* Add support for writing ID3 tags to the file for improved display in media players
* Lint and async fixes
* Use mutagen instead of taglib
* Fix tests
* Add fallback for album
* Requested changes
* move import
* Fix album name
* Change default options handling
* Move to member function / minor fix
* fix style
* fix lint
* change mutagen handling
* fix lint / add name to bytesio
* Update __init__.py
* Fix test, some cleanups
* Add mutagen exeption handling, fix tests
* fix mutagen taging
* Index events time_fired to improve logbook perf.
* Updated implementation to track schema versions
* Added tests for schema migration support logic
* Rename check_schema to migrate_schema
* Prevent events about MQTT messages received to cause infinite loop when two HA instances are crossconfigured for mqtt_eventstream.
* Fix linting
* Publish all MQTT received events except incoming from eventstream. Also make it configurable.
* Initial sketches of rflink component.
* Add requirement.
* Properly load configuration.
* Bump rflink for graceful parse errors and protocol callback.
* Cleanup, documentation and linting.
* More documentation, first sensor implementation (temp & hum).
* Add brightness/dim support for newkaku protocol.
* Use separate class for dimmables.
* Make sure non-dimmable newkaku devices are turned on.
* Move some code around, add switches. Support loading from config.
* Fix bug in ignoring devices.
* Fix initial state assumption.
* Improve reliability on invalid conditions.
* Allow configuration of group for new devices.
* Sensor icons.
* Fix parsing negative numbers.
* Correct icon.
* Allow sending commands serial.
* Pluralize.
* Allow adding sensors from config.
* Fix ignoring devices and bugs in previous commit.
* Share know devices so devices from configuration don't get added as lights.
* Lookup unit from value_key.
* Remove debug.
* Start implementing event protocol in place of packet protocol.
- Added first test suite for sensors.
- This currently breaks light and switch.
* Refactor switch component to fit new rflink changes. Add test suite.
* Fix style.
* Refactor and test lights. Bring coverage to 100%.
* Use non-broken and production tested rflink module.
* Update requirements.
* Bump for logging.
* Improve readability.
* Do not use global variable but keep known device state in intended place.
* Improve docs.
* Make icon support generic.
* Disable overriding icons in config, as it belongs in customization. Only keep custom icon for entities that are able to detect a icon based on the thing they represent (sensors in this case).
* Implement configuration schema, overall refactor of magic values.
* Fix bug in config/test wait_for_ack.
* Small refactors.
* Move command logic into separate class.
* Convert command sending logic to class based pattern instead of using the event bus.
* Start not using bus for rflink event propagation to platforms.
* Do not use event bus for all entity types.
* Fire an event on the bus for every switch incoming rflink command.
* Resolve lint errors, remove some old code.
* Known devices no longer need to be registered separately.
* Log bus events.
* Event callback is a..... callback.
* Use full entity id for events.
* Move event sending to entity.
* Log incoming events.
* Make firing events optional inline with rfxtrx.
* Add foundation for signal repetition.
* Add signal repetition config and tests.
* Make plain switchable type explicitly configurable.
* Enable default entity settings for automatically added entities as well.
* Prevent default configuration leaking accross entities.
* Make sure device defaults don't get overwritten by defaults further down.
* Don't let fast state switching and repetitions turn your house into a disco.
* Make repetitions more responsive.
* Disable on/off fallback on dimmables as it currently doesn't play nice with repetitions.
* Use rflink that allows send_command_ack to be safely cancelled.
* Reduce duplication and make repeat work for non-ack.
* Implement reconnection logic.
* Improve reconnection logic.
* Also cancel repetitions when entity state is changed due to external command.
* Update requirements.
* Fix linting.
* Fix spelling.
* Don't lie.
* Fix lint.
* Support for automatically creating protocol translation (fixes spaces in device names).
* Returned support for dimmable and on/off entity.
* Duplicate code to fix linting issues with inheritance.
* Allow overriding unit of measurement from config.
* Voice command API.AI. First import
* Fixes suggested by hound
* Fixing comments
* Fix pylint and pydocstyle errors
* Change how speech is defined
Also clean some unused constants, remove card type (not used), define
a message when action is not defined and improve the message when
action is unknown.
* Change how speech is defined
Clean some constants.
Improve error messages.
Delete card type, not used.
* Tests for new Api.ai component
* Use async_add_job to python compatibility. New test to measure response time
* Add async_action option to choose between waiting or not for the action to execute
* Travis-ci needs more time
* Removed timeout tests
* Removed timeout tests
* Added apiai to .coveragerc as specified by PR doc
* Bugfix sonos / refactor of sonos function for TTS
* fix unittest
* update service yaml
* restore group of a coordinator
* use group function to evaluate
* fix state flooting
* fix comments
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Fix async_volume_up / async_volume_down (#5249)
async_volume_up / async_volume_down should be async versions of
volume_up / volume_down, not a async version of the default variants of
volume_up / volume_down.
The previous code always called into the mediaplayers set_volume_level,
and never into volume_up / volume_down.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* adding a default icon "blind" to a PowerView blinds scene. (#5210)
* adding a default icon "blind" to a PowerView blinds scene.
* Adding icon property to define blind icon. Removed it from the state attributes dict.
* fixing lint error
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Use SHA hash to make token harder to guess (#5258)
* Use SHA hash to make token harder to guess
Use hashlib SHA256 to encode object id instead of using it directly.
* Cache access token
Instead of generating a token on the fly cache it in the constructor.
* Fix lint
* Bugfix async device_tracker see callback (#5259)
* Add support for NAD receivers (#5191)
* Add support for NAD receivers
* remove self.update() in various methods
* remove setting attributes in various methods
* Change import to hass style
* Updated Config Validation, extended daily forecast to all supported types
* Fix style errors from previous commit, fix test since adding daily for all supported types
* Removed temperature from daily as it isn't supported
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Updated Config Validation, extended daily forecast to all supported types
* Fix style errors from previous commit, fix test since adding daily for all supported types
* Removed temperature from daily as it isn't supported
* Revert "Bugfix camera streams (#5306)"
This reverts commit 4b43537801.
Revert "Version bump for kodi dependency (#5307)"
This reverts commit 6abad6b76e.
Revert "Add HMWIOSwitch to sensor, binary (#5304)"
This reverts commit 2c3f55acc4.
Revert "Remove GTFS default name & string change"
This reverts commit 6000c59bb5.
Revert "Update pyhomematic 1.19 & small cleanups (#5299)"
This reverts commit a30711f1a0.
Revert "[sensor] Add Dublin bus RTPI sensor (#5257)"
This reverts commit 1219ca3c3b.
Revert "Bugfix group reload (#5292)"
This reverts commit baa8e53e66.
Revert "Support for TrackR device trackers (#5010)"
This reverts commit f7a1d63d52.
Revert "Bump pywemo version."
This reverts commit dc937cc8cf.
Revert "Upgrade to voluptuous to 0.9.3 (#5288)"
This reverts commit d12decc471.
Revert "Upgrade distro to 1.0.2 (#5291)"
This reverts commit 64800fd48c.
Revert "Don't build Adafruit_BBIO - doesn't work on all platforms. (#5281)"
This reverts commit 9a3c0c8cd3.
Revert "Convert flic to synchronous platform. (#5276)"
This reverts commit eb9b95c292.
Revert "Upgrade to aiohttp 1.2 (#4964)"
This reverts commit e68e29e03e.
Revert "Fix TCP sensor to correctly use value_template (#5211)"
This reverts commit 1cf9ae5a01.
Revert "Cleanup language support on TTS (#5255)"
This reverts commit 3f3a3bcc8a.
Revert "Add last triggered to script (#5261)"
This reverts commit 467cb18625.
Revert "Bump flux_led version and make use of PyPi package (#5267)"
This reverts commit 34a9fb01ac.
Revert "Add support for NAD receivers (#5191)"
This reverts commit 3b59e169f1.
Revert "Bugfix async device_tracker see callback (#5259)"
This reverts commit 71fddd26eb.
Revert "Use SHA hash to make token harder to guess (#5258)"
This reverts commit 922308bc1f.
* Revert "Revert "Bugfix camera streams (#5306)""
This reverts commit 2ee8c44021.
* Update darksky.py
* [image_processing/microsoft_face_verify] face recognition for automation
* Add platform for microsoft face identify
* add unittest for demo
* Add unittest for platform
* Remove SPEED_MED from fan
* Correctly use the oscillation on/off payloads for MQTT fan
* Add set_direction service documentation
* Correct function name for Wink fans
* Check for existence of the correct topic
* Enable set fan speed in emulated_hue
* features -> functions
* Final emulated_hue fan fixes
* Fix linting issues
* Revert to supported features instead of supported functions
* Fix logic
* Add a test for emulated_hue fan support
* Added Yandex SpeechKit TTS
* Added test stub
* Added two test and added property for yandex tts
* Copy all test from voice rss
* Added test vith different speaker and code style changes
* Added new line to end of file
* Url format replaced with url_params
* Add mysensors notify platform
* Make add_devices optional in platform callback function.
* Use new argument structure for all existing mysensors platforms.
* Add notify platform.
* Update mysensors gateway.
* Refactor notify setup
* Enable discovery of notify platforms.
* Update and add tests for notify component and some platforms.
* Continue setup of notify platforms if a platform fails setup.
* Remove notify tests that check platform config. These tests are not
needed when config validation is used.
* Add config validation to APNS notify platform.
* Use discovery to set up mysensors notify platform.
* Add discovery_info to get_service and update tests
* Add discovery_info as keyword argument to the get_service function
signature and update all notify platforms.
* Update existing notify tests to check config validation using test
helper.
* Add removed tests back in that checked config in apns, command_line
and file platforms, but use config validation test helper to verify
config.
* Add a test for notify file to increase coverage.
* Fix some PEP issues.
* Fix comments and use more constants
* Move apns notify service under notify domain
* Revert #4791 and fixes#4696
* Update influxDB based on PR comments
* Add migration script
* Update influxdb_migrator based on PR comments
* Add override_measurement option to influxdb_migrator
* Rename value field to state when data is string type
* Fix influxdb cloning query
* Initial commit for Wink fan support
* Added fan to discovery list
* Raise NotImplementedError and fixed is_on
* Added speed property
* Update __init__.py
* [Device Tracker] Xiaomi Mi Router integration as device tracker
This device tracker allow to track device connected to Xiaomi Router.
Parameter: host, username (default admin) and password.
* [Device Tracker] Addition of Xiaomi device tracker file in coverage
* Add teardown method to pilight tests
This is necessary to stop the HomeAssistant instance that was started
in the setUp method. Without this there happen random test failures.
This is necessary to stabilize the tests for PR #5045.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Update test_pilight.py
* Spread the traffic to yr.no servers and remove yr.no from the default config
* use unique address for yr.no
* update yr tests
* Wait 10 min extra before requesting new data
* Update config.py
* Update yr.py
* Update nx584 requirement to 0.4
There have been a few bug fixes to nx584 since 0.2, so this just updates
our requirement to pull in the newer version.
* Fix nx584 if no partitions are found
If we succeed in our connection to the panel but find no
configured partitions, then we will fall through to the bypass
probe and fail because 'zones' is never initialized. This fixes
both exception paths and adds a test that would poke it.
* Allow to specify TTS language in the service call.
* Allow to specify TTS language in the service call.
* Respect 79 char limit
* Fix "Too many blank lines"
* Fix "Too many blank lines"
* Fix "Too many blank lines"
* Change language to be optional parameter of *get_tts_audio
* Change language to be optional parameter of *get_tts_audio
* Respect 79 char limit
* Don't pass "None
* Use default of "None" for TTS language
* Use default of "None" for TTS language
* Don't pass "None"
* Change TTS cache key to be hash_lang_engine
* Change language from demo to en
* Fix wrong replace
* TTS Component / Google speech platform
* Change file backend handling / cache
* Use mimetype / rename Provider function / allow cache on service call
* Add a memcache for faster response
* Add demo platform
* First version of unittest
* Address comments
* improve error handling / address comments
* Add google unittest & check http response code
* Change url param handling
* add test for other language
* Change hash to sha256 for same hash on every os/hardware
* add unittest for receive demo data
* add test for error cases
* Test case load from file to mem over aiohttp server
* Use cache SpeechManager level, address other comments
* Add service for clear cache
* Update service.yaml
* add support for spliting google message
* change unifi dependency to pyunifi
* Change dependency to fix#4336
* Run gen_requirements_all.py script
* Changed import statement to reflect new package
* Updated test_unifiy.py with different module
* Update requirements_all.txt
* Migrate remote to async
* add coro
* remove sync from init since only used in harmony
* import ATTR from remote
* remove unused sync stuff from tests
* Add source_list to universal media player
* Expanded attirubte and command support for UMP
Added support to the universal media player
for the following:
Volume Set
Current Source
Set Source
Current Volume
The goal is to facilitate a single-card media player
that includes source selection and setting the volume
of the receiver.
Example setup:
```
media_player:
- platform: universal
name: Media Center
children:
- media_player.kodi
- media_player.cast
commands:
select_source:
service: media_player.select_source
data:
entity_id: media_player.receiver
volume_set:
service: media_player.volume_set
data:
entity_id: media_player.receiver
volume_mute:
service: media_player.volume_mute
data:
entity_id: media_player.receiver
turn_on:
service: homeassistant.turn_on
data:
entity_id: media_player.receiver
turn_off:
service: homeassistant.turn_off
data:
entity_id: media_player.receiver
attributes:
state: media_player.receiver
is_volume_muted: media_player.receiver|is_volume_muted
volume_level: media_player.receiver|volume_level
source: media_player.receiver|source
source_list: media_player.receiver|source_list
```
* Remove print statements
* Change service call back to use call_from_config
* Modified service calls to use template data
* linting fixes
* Add tests
* linting fices
* More pylinting
* Add option to hide the group card switch
* Disallow control of hidden group switches
* Revert "Disallow control of hidden group switches"
This reverts commit 75e5ddfe30.
* Changed hide_switch to control
* Fixed attributes that are lists cuasing invalid influx syntax
* Added bool and fixed mixed data type issue
* Fixed changing nearly all data types to float causing some worse influxdb errors. whoops
* Added line to end of file
* Add MAC vendor lookup for device_tracker.
* Test vendor mac lookup and fix device attribute.
* Generate requirements.
* Style.
* Use hyphen instead of underscore to satisfy 'idna'.
https://github.com/kjd/idna/issues/17
* Resort imports.
* Refactor macvendor to use macvendors.com API instead of netaddr library.
* Test vendor lookup using macvendors.com api.
* Remove debugging.
* Correct description.
* No longer needed.
* Device tracker is now an async component. Fix ddwrt tests.
* Fix linting.
* Add test case for error conditions.
* There is no reason to retry failes vendor loopups as they won't be saved to the file anyways at that point.
* Sorry, bad assumption, this only made things worse.
* Wait for async parts during setup component to complete before asserting results.
* Fix linting.
* Is generated when running 'coverage html'.
* Undo isort.
* Make aioclient_mock exception more generic.
* Only lookup mac vendor string with adding new device to known_devices.yaml.
* Undo isort.
* Revert unneeded change.
* Adjust to use new websession pattern.
* Always make sure to cleanup response.
* Use correct function to release response.
* Fix tests.
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* reworked token generation
* delete
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* reworked token generation
* delete
* readded after rebase
* cleaning up style errors
* modified .coveragerc
* moved import statements
* added more debug logging
* Added URL encoding of token received from Logitech
* Corrected import for python 3
* new pyharmony version
* new pyharmony version
* remote tests
* only write config file if not present or sync service is called
* more tests
* more tests
* bumped pyharmony version to work with new auth
* bumped pyharmony version to work with new auth
* style corrections
* harmony local auth and remote demo platform
* style fix
* PR refinements and permission issues
* forgot a blank line
* removed sync test from test_init
* removed sync test from test_init
* visual indent
* send_command test in demo platform
* Add exception handling to request call to prevent
failure in setup_platform if host is down
* update for comments
* update test for state being none
* remove unused import
* Add support for light effects
* Move PLATFORM_SCHEMA changes in light to mqtt_template
* Add effect validation
* Add unittests
* Add light effect to demo and unittests
* Use cv.string for config validation
* Use cv.ensure_list for config validation
* Fix typo
* Remove unused exception management for effect
* Add websocket API
* Add identifiers to interactions
* Allow unsubscribing event listeners
* Add support for fetching data
* Clean up handling code websockets api
* Lint
* Add Home Assistant version to auth messages
* Py.test be less verbose in tox
* Move HTTP to own folder
* Break HTTP into middlewares
* Lint
* Split tests per middleware
* Clean up HTTP tests
* Make HomeAssistantViews more stateless
* Lint
* Make HTTP setup async
* #4421 - Forced icons to be displayed via SSL to avoid Mixed Content warnings
* Fixed houndci-bot whitespace
* Using regex to replace http:// for https://
* Created assert test to verify https translation
* LiteJet: Unit tests and new trigger options held_more_than and held_less_than.
* Unit tests for the LiteJet component and associated platforms. Coverage is almost 100% -- just misses one line.
* The automation LiteJet trigger returns an empty "removal" function to ensure the automation base is happy with it. The pylitejet library doesn't actually support a real removal.
* The automation LiteJet trigger can detect hold time and act appropriately to support things like short tap or long hold.
* LiteJet: Fix indent in unit test source code.
* LiteJet: Fix test_include_switches_* unit tests on Python 3.5
* LiteJet: Remove wait for state existence from unit tests. Recent fixes to discovery make this no longer necessary.
* Removed raise statement to don't polute the user log.
Only the error message should be displayed.
Nov 22 11:28:32 tchellopi hass[20138]: 16-11-22 11:28:32 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Nov 22 11:28:32 tchellopi hass[20138]: Traceback (most recent call last):
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/tasks.py", line 241, in _step
Nov 22 11:28:32 tchellopi hass[20138]: result = coro.throw(exc)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 386, in _update_entity_states
Nov 22 11:28:32 tchellopi hass[20138]: yield from update_coro
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 213, in async_update_ha_state
Nov 22 11:28:32 tchellopi hass[20138]: yield from self.hass.loop.run_in_executor(None, self.update)
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/futures.py", line 361, in __iter__
Nov 22 11:28:32 tchellopi hass[20138]: yield self # This tells Task to wait for completion.
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
Nov 22 11:28:32 tchellopi hass[20138]: future.result()
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/futures.py", line 274, in result
Nov 22 11:28:32 tchellopi hass[20138]: raise self._exception
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Nov 22 11:28:32 tchellopi hass[20138]: result = self.fn(*self.args, **self.kwargs)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.homeassistant/custom_components/sensor/wunderground.py", line 187, in update
Nov 22 11:28:32 tchellopi hass[20138]: self.rest.update()
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 296, in wrapper
Nov 22 11:28:32 tchellopi hass[20138]: result = method(*args, **kwargs)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.homeassistant/custom_components/sensor/wunderground.py", line 222, in update
Nov 22 11:28:32 tchellopi hass[20138]: ["description"])
Nov 22 11:28:32 tchellopi hass[20138]: ValueError: you must supply a key
* Updated unittest since we are just printing the error instead raising
* Initial implemenation of DSMR component.
* Fix linting
* Remove protocol V2.2 support until merged upstream.
* Generate requirements using script.
* Use updated dsmr-parser with protocol 2.2 support.
* Add tests.
* Isort and input validation.
* Add entities for gas and actual meter reading. Error handling. Use Throttle.
* Implement non-blocking serial reader.
* Improve logging.
* Merge entities into one, add icons, fix tests for asyncio.
* Add error logging for serial reader.
* Refactoring and documentation.
- refactor asyncio reader task to make sure it stops with HA
- document general principle of this component
- refactor entity reading to be more clear
- remove cruft from split entity implementation
* Use `port` configuration key.
* DSMR V2.2 seems to conflict in explaining which tariff is high and low.
http://www.netbeheernederland.nl/themas/hotspot/hotspot-documenten/?dossierid=11010056&title=Slimme%20meter&onderdeel=Documenten
> DSMR v2.2 Final P1
>> 6.1: table vs table note
Meter Reading electricity delivered to client normal tariff) in 0,01 kWh - 1-0:1.8.1.255
Meter Reading electricity delivered to client (low tariff) in 0,01 kWh - 1-0:1.8.2.255
Note: Tariff code 1 is used for low tariff and tariff code 2 is used for normal tariff.
* Refactor to use asyncio.Protocol instead of loop+queue.
* Fix requirements
* Close transport when HA stops.
* Cleanup.
* Include as dependency for testing (until merged upstream.)
* Fix style.
* Update setup.cfg
* Add sonarr sensor and tests for sensor
* Fixed some linting errors and removed unused import
* Add SSL option for those who use SSL from within Sonarr
* Add requirements to all requirements, and sensor to coveragerc
* remove unused variable
* move methods to functions, and other lint fixes
* linting fixes
* linting is clean now
* Remove double requirement
* fix linting for docstrings, this should probably be a part of the script/lint and not just travis
* new config parameter to specify number of digits for rounding average value
* fixed two `line too long` errors
* added three new tests for the mean sensor including test for precision of mean value
* Migrate callbacks to use schedule_update_ha_state
* Migrate MQTT sensor callback to async
* Migrate wemo to not update inside schedule_update_ha_state
* Make MQTT switch async
* Fix nx584 test
* Migrate tellstick callback
* Migrate vera callback
* Alarm control panel - manual: use async callbacks
* Run the switch rest tests that work
This makes it so that media playback support for inputs is dynamically
fetched from the receiver, instead of assuming that all playback
commands work for all inputs.
Tests are added for this, using a FakeYamaha class, which has some
sample data stubbed in for key methods that need to be called. We also
include an example of the desc.xml needed to dynamically parse these
features for these tests (as this is done in platform init).
* Use entity_id for backend, friendly name for frontend
Closes https://github.com/home-assistant/home-assistant/issues/3434
Command line switches had the option to set a `friendly_name` reportedly
for use in the front end. However, if set, it was also being used as the
`entity_id`.
This did not seem like obvious behavior to me. This PR changes the
behavior so the entity_id is the object_id, which must already be
unique, and is an obvious place to have a very predictable slug (even if
long or unsightly), and the friendly name (if set) is used for the
display.
Example:
```yaml
switch:
platform: command_line
switches:
rf_kitchen_light_one:
command_on: switch_command on kitchen
command_off: switch_command off kitchen
command_state: query_command kitchen
value_template: '{{ value == "online" }}'
friendly_name: "Beautiful bright kitchen light!"
```
If you were using in an automation or from dev tools, would use:
`switch.rf_kitchen_light_one`, but your front end would still show `Beautiful
bright kitchen light!`
* Add new arg to test_assumed_state_should_be_true_if_command_state_is_false
* Import ENTITY_ID _FORMAT from existing, rename device_name to object_id
* Rename `device_name` to `object_id`
* Test that `entity_id` and `name` are set as expected
This feature needs to be enabled through the `http.use_x_forwarded_for` option,
satisfying security concerns of spoofed remote addresses in untrusted network
environments.
The testsuite was enhanced to explicitly test the functionality of the
header.
Fixes#4265.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
* Added some extra options to Weather Underground component
* Added Location and Elevation options
* Fixed if statement
* Fixed lint
* Updated tests including elevation and location
* Update wunderground.py
* Updated Emulated_Hue to send request info as variables to scripts
* Updated tests to not use the old mqtt
* Updated test to actualy use and validate the script variables
* Fixed the removal of time in a recent merge
* fixed test to not use a timer
* Bugfix windows have a other default loop now
* fix handling with 3.4.2 that not support ensure_future
* make the same as ensure_future does
* fix spell
* fix lazy test
* Add a method to throttle calls to services
This adds CallRateDelayThrottle. This is a class that provides an
decorator to throttle calls to services. Instead of the Throttle in
homeassistant.util it does this by delaying all subsequent calls
instead of just dropping them. Dropping of calls would be bad if we
call services to actual change the state of a connected hardware (like
rf controlled power plugs).
Ihe delay is done by rescheduling the call using
track_point_in_utc_time from homeassistant.helpers.event so it should
not block the mainloop at all.
* Add unittests for CallRateDelayThrottle
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Introduce a send_delay for pilight component
If pilight is used with a "pilight USB Nano" between the daemon and the
hardware, we must use a delay between sending multiple signals.
Otherwise the hardware will just skip random codes. We hit this
condition for example, if we switch a group of pilight switches on or
off. Without the delay, random switch signals will not be transmitted by
the RF transmitter.
As this seems not necessary, if the transmitter is directly connected
via GPIO, we introduce a optional configuration to set the delay.
* Add unittests for pilight send_delay handling
This adds an unittest to test the delayed calls to the send_code
service.
* Sonos responsiveness improvements (async_ coroutines, event based updating, album art caching) + Better radio station information
* Docstring fixes.
* Docstring fixes.
* Updated SoCo dependency + fixed file permissions.
* Only fetch speaker info if needed.
* PEP8 fixes
* Fixed SoCoMock.get_speaker_info to get test to pass.
* Regenerated requirements_all.txt + async fetching of album art with caching + added http_session to HomeAssistant object.
* Unit test fixed.
* Add blank line as per flake8
* Fixed media image proxy unit test.
* Removed async stuff.
* Removed last remnants of async stuff.
* Lazy initialise the worker pool
* Minimize pool initialization in core tests
* Fix tests on Python 3.4
* Remove passing in thread count to mock HASS
* Tests: Allow pool by default for threaded, disable for async
* Remove JobPriority for thread pool
* Fix wrong block_till_done
* EmulatedHue: Remove unused test code
* Zigbee: do not touch hass.pool
* Init loop in add_job
* Fix core test
* Fix random sensor test
* Use unix newlines on test_emulated_hue
This commit switches the test_emulated_hue module to use unix newlines
instead of the DOS style that were there before. (using dos2unix on
the file) This makes it consistent with the other files in the repo.
* Cleanup emulated_hue tests
Previously these tests relied on the mqtt light platform as test devices
to control with the emulated hue. However, this was pretty heavyweight
and required running an MQTT broker in the tests. Instead this commit
switches it to use the demo light platform which is strictly in memory.
Fixes#3549
* Sonos improvements: media_* properties delegate to coordinator if speaker is a slave, media_image_url and media_title now works for radio streams, source selection/list takes speaker model into account, commands on slaves delegate to coordinator.
* Fixed failing unit tests.
* BUG Message data cannot be changed thus use voluptuous to ensure format
* Pilight daemon expects JSON serializable data
Thus dict is needed and not a mapping proxy.
* Add explanation why dict as message data is needed
* Use more obvious voluptuous validation scheme
* Pylint: Trailing whitespace
* Pilight sensor component
* Python 3.4 compatibility
* D202
* Use pytest-caplog and no unittest.TestCase
* Fix setup/teardown of unittests
* Activate coverage testing
* Bugfix whitelist filter and use bugfixed pilight library
* Use newest pilight library that has a bugfix
* Add unittest for pilight hub component
* PEP257 for docstrings
* Bugfix setting device name from host name and small cleanup
- Init with connection error handling is more clear
- Comments clean-up
* PEP257
* New unittest with full coverage
* Upload missing testfixtures
* D209
* Handle double quotes in reply
* Formatting
This commit adds a new component for communicating with mochad[1] a
socket interface for the CM15A and CM19A USB X10 controllers. This
commit leverages the pymochad library to interface with a mochad socket
either on a local or remote machine. Mochad is added as as a generic
platform because it supports multiple different classes of device,
however in this patch only the switch device implemented as a starting
point. Future patches will include other devices types. (although
that's dependent on someone gaining access to those)
[1] https://sourceforge.net/projects/mochad/
* Pilight daemon expects JSON serializable data. Thus dict is needed and not a mapping proxy.
* Add explanation why dict as message data is needed
* Use pytest-caplog and no unittest.TestCase
* added push notification implementation
* some lint changes
* added docs
* added push notification implementation
* some lint changes
* added docs
* Fixed comment formatting issues
* Added requirments
* Update requirements_all.txt
* Update apns.py
* re-generated requirments_all.txt
* Added link to online docs
* added push notification implementation
* some lint changes
* added docs
* added push notification implementation
* some lint changes
* added docs
* Fixed comment formatting issues
* Added requirments
* Update requirements_all.txt
* Update apns.py
* re-generated requirments_all.txt
* Added link to online docs
* changed to use http/2 library for push notifications
* fixed lint issue
* fixed test that fails on CI
* another go at fixing test that fails on CI
* another go at fixing test that fails on CI
* another go at fixing test that fails on CI
* added missing docstring
* moved service description to main services.yaml file
* renamed apns service
If a mock's assert_called_once_with method is misspelled (e.g. asert_called_once_with) then the test will appear as passing. Therefore, this commit removes all instances of assert_called_once_with calls and replaces them with two assertions:
self.assertEqual(mock.call_count, 1)
self.assertEqual(mock.call_args, mock.call(call_args))
* first version
* First draft component entities
* Change add_entities to callback from coroutine
* Fix bug add async_prepare_reload
* Group draft v1
* group async
* bugfix
* bugfix v2
* fix lint
* fix extract_entity_ids
* fix other things
* move get_component out of executor
* bugfix
* Address minor changes
* lint
* bugfix - should work now
* make group init async only
* change update handling to old stuff
* fix group handling, remove generator from init
* fix lint
* protect loop for spaming with updates
* fix lint
* update test_group
* fix
* update group handling
* fix __init__ async trouble
* move device_tracker to new layout
* lint
* fix group unittest
* Test with coroutine
* fix bug
* now it works 💯
* ups
* first part of suggestion
* add_entities to coroutine
* change group
* convert add async_add_entity to coroutine
* fix unit tests
* fix lint
* fix lint part 2
* fix wrong import delete
* change async_update_tracked_entity_ids to coroutine
* fix
* revert last change
* fix unittest entity id
* fix unittest
* fix unittest
* fix unittest entity_component
* fix group
* fix group_test
* try part 2 to fix test_group
* fix all entity_component
* rename _process_config
* Change Group to init with factory
* fix lint
* fix lint
* fix callback
* Tweak entity component and group
* More fixes
* Final fixes
* No longer needed blocks
* Address @bbangert comments
* Add test for group.stop
* More callbacks for automation
* Added the ability to Weather Underground to track severe weather alerts
* * Added message on the advisory attr
* Updated tests
* * Making use of guard clause
* Checking multiple_alerts prior loop
* Using a better way to create dict
* Fixed issue to set to None only the object that failed
* Added unittest
* Split update() method to different calls with their one throttle control to minimize API calls
* Updated unittest and make sure the alert sensor will not return 'unknown' status'
* Removed update() method from state property
* Branch rebased and include Weather Underground attribution
* Update wunderground.py
* Relaxes the configuration options for influxdb
By default influxdb allows unauthenticated access
Home Assistant required at least username and password to be present to properly submit data to influxdb
* Removes unused import of 'copy'
The copy module was used only in the removed test case responsible for testing the missing keys
* Updates InfluxDB config schema to require user and password
Current InfluxDB (v 1.0) can work without any authentication, but when authentication is enabled both username and password should be set.
* Removes extra white space in test_influxdb.py
* added error handling to mqtt message receive if payload is not utf-8 unicode
added mqtt test for above code as well
* change permission back to 644
* attempting to test new code
* changed exception to AttributeError
fixed test for above
* fixed lint errors I made in tests....mqtt/test_init.py
* more lint fixes for my added test
* remove dual decode of MQTT payload
* convert if to try, except, else statement for mqtt payload decode
* rework mqtt unicode testing code to properly check for log file entriy on unicode decode exception
* fixed lint error
* Update test_init.py
* Add Alexa Flash Briefing Skill API support
* Set default value for text to empty string as per API docs
* Clean up existing Alexa tests
* Update configuration parsing and validation
* Add tests for the Flash Briefing API
* Update test_alexa.py
* added include and exclude functionality to history component
* fixed summary lines in test method doc.
* cleanup of query filter creation
* o improved config validation
o move move IGNORE_DOMAINS to Filter.apply()
o removed config from Last5StatesView
o Filters instance is now created on setup
o config values are processed in setup and set to the Filters instance
o function _set_filters_in_query() moved to Filters class and renamed to apply()
* added unittests for more include/exclude filter combinations
* make pylint happy
* Fixes an issue where Chromecast audio groups were not properly discovered
* Forgot to commit the main fix
* Removes unused variable
* Doesn't use a protected API anymore
* PR remarks
* Fixes tests, adds comment
* Restores line as it was in the original commit, rephrases comment
* Should fix lint issues
* Trailing whitespace
* Some more lint
* Separate platform and presentation units in climate
* Fix unit tests
Maybe
* Fix unit tests some more
Maybe
* Rename _platform_unit_of_measurement to temperature_unit
* Fix tests for renamed attribute
* Change approved_ips from string to cidr validation
Relabel to trusted_networks, better reflecting its expected inputs,
everything that ipaddress.ip_networks recognizes as an ip network
is possible:
- 127.0.0.1 (single ipv4 addresses)
- 192.168.0.0/24 (ipv4 networks)
- ::1 (single ipv6 addresses)
- 2001:DB8::/48 (ipv6 networks)
* Add support for the X-Forwarded-For header
* Rename Forecast.io platform to Dark Sky
* Upgrade to python-forecastio to 1.3.5
* Update to reflect name change (Forecast.io -> Dark Sky)
* Rename forecast to darksky
* Add async_safe annotation
* More async_run_job
* coroutine -> async_save
* Lint
* Rename async_safe -> callback
* Add tests to core for different job types
* Add one more test with different type of callbacks
* Fix typing signature for callback methods
* Fix callback service executed method
* Fix method signatures for callback
* Template platforms: create_task instead of yield from
* Automation: less yielding, more create_tasking
* Helpers.script: less yielding, more create_tasking
* Deflake logbook test
* Deflake automation reload config test
* MQTT: Use async_add_job and threaded_listener_factory
* Deflake other logbook test
* lint
* Add test for automation trigger service
* MQTT client can be called from within async
commit 220331260e9748ac8e17b3ce776330c1dfb7725b
Merge: 73d93e5c891820
Author: Robbie Trencheny <me@robbiet.us>
Date: Sun Oct 2 17:57:24 2016 -0700
Merge branch 'color_temp_for_mqtt_light' of https://github.com/alterscape/home-assistant into alterscape-color_temp_for_mqtt_light
commit c89182008a
Author: Ryan Spicer <ryanspicer@gmail.com>
Date: Sun Sep 18 23:06:34 2016 -0700
fix missing docstring.
commit e61dda4dd3
Author: Ryan Spicer <ryanspicer@gmail.com>
Date: Sun Sep 18 22:43:04 2016 -0700
fix pep8 errors and typos in tests.
commit 559d1752d2
Author: Ryan Spicer <ryanspicer@gmail.com>
Date: Sun Sep 18 21:41:07 2016 -0700
add tests for mqtt color temp support
commit 702defb932
Author: Ryan Spicer <ryanspicer@gmail.com>
Date: Sun Sep 18 20:55:07 2016 -0700
Add color temp support to mqtt lights.
* Make flux always adjust brightness of light (even when not in XY mode)
* Remove kelvin mode from flux switch
The light/turn_on service only works with mired values, kelvin values
are out of range per the schema.
* Use already defined min/max values for light/turn_on schema
* Clamp temp value to light/turn_on allowed values
* Update notify to expect a list of string targets instead of a single string
* Actually do the thing I set out to do
* Fix notify.group test to expect an array of targets
* REST platform will only use the first target in the list
* Update notify platforms to expect a list of targets
* Update notify services.yaml
* Skip RFXtrx tests unless RFXTRX=RUN
* Remove my previous hacks to slightly speed up rfxtrx
* Exclude RFXTRX tests from coverage
* Remove unused import in rfxtrx tstt
* Add close connection back to RFXtrx tests
* Typo
* Update ecobee to use only range setpoints
* Update nest to only use range setpoints
* Update demo to use only range for ecobee test device
* Update test
* Fetch unit from ecobee
* generic_thermostat did not have state
* generic_thermostat test update
* Platform schema had duplicate retain keys, which made it always set
to default.
* Optimistic state changed was inverted, due to using integer position
instead of boolean.
* Add more tests for mqtt cover.