* 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
* Extending efergy component for get the amount of energy consumed
* Changing units from kW to kWh
* Chaning units for Instant Consumption from kWh to kW
* Adding timeout for get and removing pylint config
* Update efergy.py
* 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
If the mpd client ran into an socket timeout, the socket will raise an
OSError on every further request. This adds OSError to the list of
excptions, that causes a client reconnect.
This fixes#4650
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
In media_content_id() the "id" of the current song was returned. as
stated in bug #4652 the id is only the Tracklist-Id in the current
tracklist and is omitted if the track is not part of a tracklist (what
caused the bug in the first place).
To match the semantics described in the dockstring, to return a "Content
ID", this chooses the filename of the current song as id and returns
it.
It also uses get() instead of [] to prevent KeyError.
This fixes bug #4652
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add channel switching for philips tvs.
* Disable track buttons when not watching tv.
* Undo isort config.
* Yes it does.
* Just testing some assumption on hound's flake8 behaviour.
* Revert "Just testing some assumption on hound's flake8 behaviour."
This reverts commit ff9940b39e.
* poke
* Introduced support to Amcrest IP Cameras
* Fixed lint issues
* Fixed requirements test
* * Implemented test to verify crendentials during camera setup
* Added persistent_notification in case of error when during Amcrest setup
* Homematic update with HomematicIP/HomematicWired support and multible connections
* fix bug in virtualkey service
* create new service & cleanups
* fix lint
* Pump pyhomematic 0.1.18
* Default dimmable brightness to 255 from 100
Full brightness for ISY dimmers is 255. The current 100 value turns dimmer switches on to just under half brightness. Probably just an oversight from the Sept implementation.
* Brightness change for turn_on, ramp for turn_off.
Per discussion with Teagan42 and jbcodemonkey, the brightness should rightfully be None and not an explicit value. There is a continuing issue that the ISY modules don't respect HA's brightness customization values. A new issue will be opened for this.
Additionally, turn_off was using ISY's fastoff() which didn't respect the ramping time. The default behavior should just be off().
* Implement WAQI sensor
* Corrections based on CI check.
* Updated requirements_all.txt for pwaqi==1.2
* Require latest version of pwaqi
* Initial implementation of DuneHD media player component based on pdunehd.
* Major: avoid update() in property fetch,
Major: implement source support,
Major: single device per media player instance,
Major: support for volume / mute controls
* Pythonify pdunehd.
Support media_title.
* Fix pylint.
* Further pylint.
* docstring
* Formatting and indentation.
* Change indentation to spaces.
* Update coverage and recorded requirements before PR.
* Further pylint / fake8 / pydocstyle fixes.
* Implement next / prev track,
Properly decode blu-ray playback,
Attempt to decode media title
* Fix play / pause
Linting
* Update requirements.
Fix lint.
* Fix lint and syntax error
* Yet more linting.
* Yet more linting.
* Fix lint: line too long.
* Force update of HA state.
Fixes https://github.com/home-assistant/home-assistant/issues/4389
The USB address of these devices periodically changes, causing
home-assistant to fail to read the temperature data. This PR fixes this
by re-reading the available devices on failure. I've been running this
for several days and for the first time have consistent temperature
data without having to restart home-assistant.
* 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
* Added support for media_position property to media_player + implementation for sonos.
* Pla yback progress now updates without needed state transitions in HA.
* Linting fixes
* media_position_update_at property is now a datetime.
* Minor fix.
* Linting fixes.
* 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
* start nestcam support
* start nestcam support
* introduce a access_token_cache_file
* Bare minimum to get nest thermostat loading
* occaisonally the image works
* switch to nest-aware interval for testing
* Add Nest Aware awareness
* remove duplicate error logging line
* Fix nest protect support
* address baloobot
* fix copy pasta
* fix more baloobot
* last baloobot thing for now?
* Use streaming status to determine online or not. online from nest means its on the network
* Fix temperature scale for climate
* Add support for eco mode
* Fix auto mode for nest climate
* update update current_operation and set_operation mode to use constant when possible. try to get setting something working
* remove stale comment
* unused-argument already disabled globally
* Add eco to the end, instead of after off
* Simplify conditional when the hass mode is the same as the nest one
* away_temperature became eco_temperature, and works with eco mode
* Update min/max temp based on locked temperature
* Forgot to set locked stuff during construction
* Cache image instead of throttling (which returns none), respect NestAware subscription
* Fix _time_between_snapshots before the first update
* WIP pin authorization
* Add some more logging
* Working configurator, woo. Fix some hound errors
* Updated pin workflow
* Deprecate more sensors
* Don't update during access of name
* Don't update during access of name
* Add camera brand
* Fix up some syntastic errors
* Fix ups ome hound errors
* Maybe fix some more?
* Move snapshot simulator url checking down into python-nest
* Rename _ready_to_update_camera_image to _ready_for_snapshot
* More fixes
* Set the next time a snapshot can be taken when one is taken to simplify logic
* Add a FIXME about update not getting called
* Call update during constructor, so values get set at least once
* Fix up names
* Remove todo about eco, since that's pretty nest
* thanks hound
* Fix temperature being off for farenheight.
* Fix some lint errors, which includes using a git version of python-nest with updated code
* generate requirements_all.py
* fix pylint
* Update nestcam before adding
* Fix polling of NestCamera
* Lint
* Expose isort preferences for tools.
* Adhere to pylints sorted imports requirement.
* More documentation, set typing in between stdlib and 3rd party.
This lets components declare their precision for temperatures. If
nothing is declared, we assume 0.1 C and whole integer precision in
F. Currently this supports only WHOLE, HALVES, and TENTHS for
precision, but adding other precision levels is pretty straight
forward.
This also uses proliphix as an example of changing the precision for a
platform.
Closes bug #4350
* Remove fixed throttle for binary_sensor.command_line and sensor.command_line since the scan_interval is configured trough YAML since #1059
* Clean up imports
* Add SCAN_INTERVAL=60 to put default scan_inteval back to 60
* 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
* Implement WAQI sensor
* Corrections based on CI check.
* Updated requirements_all.txt for pwaqi==1.2
* Require latest version of pwaqi
* Fix lint: single argument for .exception and no more pass statement.
* Further lint fixes.
* pydocstyle fix
* Implement rate throttle.
Data on WAQI is usually updated once an hour - make it refresh every thirty minutes.
* Implement schema validation with voluptuous.
Change exception handling scope.
Move messages to debug().
* Fix lint (empty indented line).
* Sort lines correctly.
* Fix last lint issue.
* Provide additional sensor data as received from WAQI.
Easier-to-read throttle timing.
* Additional object attributes to be unrolled later.
* 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
* used MindrustUK's version ( https://github.com/MindrustUK/python-lightify/commits/master/osramlightify.py ) from Oct 2, 2016 and changed the REQUIRMENTS line to use the fixed lightify component with thread safety fixes
* reformatted long lines
* updated osramlightify requirements in requirements_all.txt
* ran script gen_requirements_all.py
* rerun requirements gen script on linux
* fixed some inspection warnings
* zip file points to a specific commit
* no requests to lights in properties, instead instance variables are update in update method
* regenerated requirements_all.txt
* removed call to update from is_on() property
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Climate: more consistent units
* Prevent unnecessary conversion in entity component
* int -> round
* Disable Google tests because they connect to the internet
* Remove default conversion rounding F->C
* Add rounding of temp to weather comp
* Fix equality
* Maintain precision when converting temp in entity
* Revert "Disable Google tests because they connect to the internet"
This reverts commit b60485dc19.
* 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
* Added source selection for Denon AVR Media Player
* Update denon.py
* Update denon.py
* Update denon.py
* Update denon.py
* Update denon.py
slight format update (space issue and new line)
* Further update regarding formatting
* Updated the source name with lowercase
* Update denon.py
pyvera 0.2.21 fixes the fact that use of requests.get was not using a
timeout. Some times (after a few days of use) the pyvera poll loop
would hang indefinitely on a requests.get of the event interface. This
would cause the pyvera thread to hang completely. It would also
prevent graceful shutdown, as pyvera does a thread join.
The new version uses a timeout, so that we won't lock up any more.
* create light.hue_activate_scene service
This creates a light.hue_activate_scene service that takes group_name
and scene_name, and calls phue's bridge.run_scene with those
parameters. This allows calling hue bridge stored scene names by name
during automation.
This only currently works reliably in 1 hue hub configurations (which
is most of them). Phue will be further enhanced to display warnings
when it can't figure out what to do with the parameters passed in to HA.
* Update hue.py
* Add keypress & output control services to Envisalink component
Add services to allow sending custom keypresses and activating
programmable outputs on an alarm control panel.
Implemented for the Envisalink alarm, and moving to new version of
pyenvisalink to support this.
Replicated the service handler mapping code from Cover component into
Alarm Control Panel to allow handling alternative schemas if required
by new services.
* Update requirements_all.txt
* Updated services.yaml
* Removed requirement to enter code in HA UI
Incorporated changes suggested by @sriram
https://github.com/srirams/home-assistant/commit/2f8deb70cb5f3621a69b6b9
acb72f8e29123650c
Including pending state for exit/entry delay
Clarified services to use the code passed to them as a first priority,
otherwise use the code from configuration
Swapped back to using NotImplementedError for the service definitions
* - Add support for alarm_keypress to manual alarm (functions like a standard alarm keypad where entering the code disarms or arms the alarm)
- Add tests for alarm_keypress to manual alarm
- Style corrections (too many returns, comment & whitespace issues)
* Removed alarm_output_control service as unable to incorporate in the demo/test in a meaningful way
* Add keypress & output control services to Envisalink component
Add services to allow sending custom keypresses and activating
programmable outputs on an alarm control panel.
Implemented for the Envisalink alarm, and moving to new version of
pyenvisalink to support this.
Replicated the service handler mapping code from Cover component into
Alarm Control Panel to allow handling alternative schemas if required
by new services.
* Update requirements_all.txt
* Updated services.yaml
* Removed requirement to enter code in HA UI
Incorporated changes suggested by @sriram
https://github.com/srirams/home-assistant/commit/2f8deb70cb5f3621a69b6b9
acb72f8e29123650c
Including pending state for exit/entry delay
Clarified services to use the code passed to them as a first priority,
otherwise use the code from configuration
Swapped back to using NotImplementedError for the service definitions
* - Add support for alarm_keypress to manual alarm (functions like a standard alarm keypad where entering the code disarms or arms the alarm)
- Add tests for alarm_keypress to manual alarm
- Style corrections (too many returns, comment & whitespace issues)
* Removed alarm_output_control service as unable to incorporate in the demo/test in a meaningful way
* Moved the Alarm_Keypress service into Envisalink component out of the generic
* Update envisalink.py
* Update services.yaml
* 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).
* Convert switch to AsnycIO
* Move update entity to service
* use time better for faster handling
* Change to suggestion from paulus
* Use new shedule_update_ha_state
* fix lint
* minimize executor calls
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>
The linters really need to specify an exact version, because when
either flake8 or pylint release a new version, a whole lot of new
issues are caught, causing failures on the code unrelated to the
patches being pushed.
Pinning is a best practice for linters. This allows patches which move
forward the linter version to happen with any code fixes required for
it to pass.
Occassionally the values of `keys` and `p256h` are bytes objects instead of
strings. As JSON by default does not serialize bytes objects let's decode
bytes objects to unicode strings.
Resolves the registration issue mentioned in #4012.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
The linters really need to specify an exact version, because when
either flake8 or pylint release a new version, a whole lot of new
issues are caught, causing failures on the code unrelated to the
patches being pushed.
Pinning is a best practice for linters. This allows patches which move
forward the linter version to happen with any code fixes required for
it to pass.
Occassionally the values of `keys` and `p256h` are bytes objects instead of
strings. As JSON by default does not serialize bytes objects let's decode
bytes objects to unicode strings.
Resolves the registration issue mentioned in #4012.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
* 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
* Synology SSL fix & Error handling
* change handling for cookies/ssl
* fix use not deprecated functions
* fix lint
* change verify
* fix connector close to coro
* fix force close
* not needed since websession close connector too
* fix params
* fix lint
* Fix "argument of type 'NoneType' is not iterable" during discovery
When yamaha receivers are dynamically discovered, there config is
empty, which means that we need to set zone_ignore to [] otherwise the
iteration over receivers fails.
* Bump rxv library version to fix play_status bug
rxv version 0.3 will issue the play_status command even for sources
that don't support it, causing stack traces during updates when
receivers are on HDMI inputs.
This was fixed in rxv 0.3.1. Bump to fix bug #4226.
* Don't discovery receivers that we've already configured
The discovery component doesn't know anything about already configured
receivers. This means that specifying a receiver manually will make it
show up twice if you have the discovery component enabled.
This puts a platform specific work around here that ensures that if
the media_player is found, we ignore the discovery system.
* Change pilight systemcode validation to integer
According to the pilight code the systemcode should be an integer and
not a string (it is an int in the pilight code). Passing this as a
string caused errors from pilight:
"ERROR: elro_800_switch: insufficient number of arguments"
This fixes#4282
* Change pilight unit-id to positive integer
According to the pilight code the unit of an entity is also evrywhere
handled as an integer. So converting and passing this as string causes
pilight not to work.
This fixes#4282
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Synology SSL fix & Error handling
* change handling for cookies/ssl
* fix use not deprecated functions
* fix lint
* change verify
* fix connector close to coro
* fix force close
* not needed since websession close connector too
* fix params
* fix lint
* Fix "argument of type 'NoneType' is not iterable" during discovery
When yamaha receivers are dynamically discovered, there config is
empty, which means that we need to set zone_ignore to [] otherwise the
iteration over receivers fails.
* Bump rxv library version to fix play_status bug
rxv version 0.3 will issue the play_status command even for sources
that don't support it, causing stack traces during updates when
receivers are on HDMI inputs.
This was fixed in rxv 0.3.1. Bump to fix bug #4226.
* Don't discovery receivers that we've already configured
The discovery component doesn't know anything about already configured
receivers. This means that specifying a receiver manually will make it
show up twice if you have the discovery component enabled.
This puts a platform specific work around here that ensures that if
the media_player is found, we ignore the discovery system.
* Change pilight systemcode validation to integer
According to the pilight code the systemcode should be an integer and
not a string (it is an int in the pilight code). Passing this as a
string caused errors from pilight:
"ERROR: elro_800_switch: insufficient number of arguments"
This fixes#4282
* Change pilight unit-id to positive integer
According to the pilight code the unit of an entity is also evrywhere
handled as an integer. So converting and passing this as string causes
pilight not to work.
This fixes#4282
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add timeout to platform/component
* Revert "Add timeout to platform/component"
This reverts commit 280a311e48.
* Add logging data
* Change log message with paulus comments
* Set executor to 15 and help to reduce flooting async core with udpates
* fix typing
* if it a executor, wait
* address comments from paulus
* add space for style :)
* fix spell
* Update entity_component.py
* Update entity_component.py
GATEWAYS was a dict, so would overwrite item if key was the same. This
would happen when using multiple MQTT gateways, since the device id is
the same (`mqtt`).
* Fix by changing GATEWAYS from dict into list.
* Use hass data to store mysensors gateways instead of having GATEWAYS
be a global.
* 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
* Add Map support for Locative component
The Locative App on the mobile is sending an HTTP request to the
server where also the GPS location is sent.
But the GPS location was not passed to the event device_tracker.see.
Use the passed GPS location from Locative and pass it to the
device_tracker.see event.
With this the device is then also shown on the HA Map component.
* Use existing constants for latitude and longitude
Use the existing constants from homeassistant.consts:
ATTR_LATITUDE for 'latitude'
ATTR_LONGITUDE for 'longitude'
* Reuse the "yield from self.hass.loop.run_in_executor" again
* Use variable gps_location
* Add Swisscom Internet-Box device tracker
* Add Swisscom device tracker to .coveragerc
* Add timeout to requests
Fix formatting and add missing comments to pass the lint test
* Remove authentication which was not required
I realised that there was no need to be authenticated to get the
connected devices. Thanks Swisscom :/
* Moving config to a PLATFORM_SCHEMA and using voluptuous
* 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
* Added Synology DSM Sensor
* Fixed balloobbot's comments
* Fixed mistake (should have run lint and flake8 before committing
* Fixed update mechanisme according to balloobs feedback
* Requesting retest as test failure isn't related to changes made
* Update the icloud device_tracker
* addressed @kellerza 's comments
* GMTT config needs an entity_id
* renamed services
* fix cookiedir and clean up keep_alive function
* fix travis errors
* forgot a self.
* update devices after initializing the API
* changed wording
* addressed changes from @kellerza
* Syntax error solved
* Update icloud.py
* Only use account of username instead of whole username as default for account name
* use slugify instead of slug for schema
* remove Google Maps Travel Time
* Add comment from original tracker back
* Added support for Philips Tvs with JointSpace API
* Flake + Lint fixes
* Lint be like "lol fu"
* Changes as requested by reviewers, except lib-requirement
* Switched to library-usage
* lint... newline-bingo...
* Fixes in TP-Link Switch logging 0 values on init
On init of component the emeter would log to influxdb and possibly other inputs a 0 value, instead of not logging anything.
Initial polling should circumvent that behavior and avoid logging inconsistencies.
* Refactors update call in __init__
* 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.
* Initial attempt at implementation
* Adding Garadget cover component
* Updating Device to be Required
* Updating .coveragerc to exclude from testing
* Updating code review items
* Updating per 2nd code review
* Updating configuration to be more like command-line
* Initial submission of LiteJet integration.
* Add LiteJet switch pressed automation trigger. (State changes are too slow to catch a press-release.)
Add LiteJet scene, replacing commented out code that treated these as lights.
Include LiteJet numbers in the device state so that it is easy to lookup entity -> number.
* Fix missing global.
* Allow light's brightness to be set explicitly.
* Support optional 'ignore' key to ignore prefixes of loads, switches, and scenes that weren't configured for use in the LiteJet system.
* Fix lint errors and warnings.
* Cleanup header comments.
Default to not creating LiteJet switches as these are generally not useful.
* Lint fixes.
* Fixes from pull request feedback.
* Use hass.data instead of globals for data storage.
* Fix lint warnings.
* 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
* Add Emby Server media_player component
* Code cleanup, move to request sessions, generate UUID per session
* Make media image fetch more robust
* Allow for http or https
* Cleanup some Keyerror conditions found through more testing
* Move EmbyRemote to pip, update requirements
* Code cleanup, add SSL config option
* catch all errors when doing mqtt message unicode-decode.
* added AttributeError and UnicodeDecodeError to exception when decoding an mqtt message payload
* Add link to docs
* Fix link
* Update line breaks
* Update ordering
* Align vera platofrm to only use add_devices
(instead od add_devices_callback)
* Remove line break
* Use consts
* Update ordering
* Update ordering
* Use const, create default name, use string formatting
* Update ordering
* Use const
* Update import style
* Update ordering and line breaks
* update line breaks
* Set default port
* Set defaults and update ordering
* Update ordering
* Minor style updates
* Update ordering, defaults, line breaks, and readability
* Use constants
* Add line breaks
* use string formatting
* Update line breaks
* Update logger
* Fix initialization of zwave color bulbs
Zwave values can be added to the node in any order. This change allows
proper initialization when the multilevel value is added before the
color value.
* Fix incorrect rename of color command class
* Add new const (base)
* Use constant
* Remove second error message, use const, add attribution, add link
to docs, remove unused vars, and a little simplification
* Add quote
* Use const
* Add attribution, simplify the code, and use consts
* Add zone_ignore option for yamaha.
We attempt to discover all zones for yamaha receivers. There are times
when users may want to suppress some zones from showing up. When a
Zone isn't actually connected to speakers, or on some newer receivers
where Zone_4 is an HDMI only zone, that doesn't support even basic
media_player UI.
This provide a mechanism for users to do that.
Fixes#4088
* Update yamaha.py
* successfully tested the "remote temperature mode" switch for the radio thermostat
* removed logging and interpreted None as Off.
* turn_off value is also templated now -- can depend on state
Also, undid accidental removal of error logging.
* ensured backward compatibility of config file
if value_template is not provided, the update function behaves as before
* ran autopep8 --in-place
* fixed another complaint of tox
* addressed the comments of balloob
* undid acccidental log.error to log.info
* timeout : 50 -> 10
* added a timeout parameter
* removed the stray '-', better names for the failure case
* string comparisons after .lower(), as suggested by balloob
* addressed balloob's latest requests
* making flake happy
* value_template --> is_on_template in config file
* moved CONF_IS_ON_TEMPLATE to local file
* null checks
* addressed flake error
* properly comparing template text when is_on is not a template.
* Added a ThingSpeak component
* Forgot a colon. Fixed it
* Some config variables are better required
* New requirements created by the script
* Updated the .coveragerc
* Fixed small linting errors
* Removed unneccessary validation
* Even more linting error fixes
* Changed the way the component listens to state changes
* Removed unneccessary declaration of 'state' variable, referring to new_state instead
This uses the discovery code from netdisco/ha to discover yamaha
receivers. The old discovery code remains if discovery is turned of in
HA, at least for now. Though it probably is worth turning that off in
the future.
* 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
* Fixes issue #4067 - Wunderground sensor with alerts exceeds API limits
To avoid hitting the max limit of 500 calls per day, this patch keeps weather conditions being updated each 5 minutes
and weather advisories each 15 minutes.
This formula will result the following:
conditions -> 300 seconds -> 5 minutes -> 12 req/h -> 288 req/day
alerts -> 900 seconds -> 15 minutes -> 4 req/h -> 96 req/day
* Using timedelta in minutes instead seconds
* If no weather advisories were issued, state should return 0 instead Unknown
* Updated to keep on the same if statement
* Revert "Updated to keep on the same if statement"
This reverts commit 0e6a94aa0f.
* 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
* Added support for Notifications for Android TV / FireTV
* Silly me forgot to commit coverage
* Fixed pylint
* Fixed flake8
* Fixed another flake8 -.-
* Changed option 'ip' to 'host' like most other platforms do
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/
* iOS component hot fixes around component/platform loading, logging, and more
* Load device_tracker and zeroconf in deps instead of bootstraping
* Change conditional check on status code
* iOS component hot fixes around component/platform loading, logging, and more
* Load device_tracker and zeroconf in deps instead of bootstraping
* Change conditional check on status code
* Adds support for Pioneer AVR interface port number
https://community.home-assistant.io/t/support-for-pioneer-avr/503
telnetlib supports a port number so adding port as
an optional config element with a default of 23 resolves this.
* Adds timeout to Pioneer AVR
timeout in telnetlib defaults to socket._GLOBAL_DEFAULT_TIMEOUT
which is not a value, but rather a bare Object used for comparison.
telnetlib says the following about the timeout optional argument:
"The optional timeout parameter specifies a timeout in seconds
for blocking operations like the connection attempt (if not
specified, the global default timeout setting will be used)."
From the documentation for sockets:
"Sockets are by default always created in blocking mode"
Catching connect and timeout errors, logging to debug
and continuing.
* Catches timeout exceptions, logs and continues.
* Initial commit of the iOS component and platform
* Allow extra
* Add battery to identify, a new function to get devices, and load the upcoming sensor
* Add iOS sensor platform, currently for battery state & level
* Add discoverability for the iOS app
* Convert single quote to double quotes
* Load all required components and platforms when loading the iOS component for the best experience
* Unify quote style to double
* Change to hass_ios
* Update push URL, add support for logging based on status code, log rate limit updates
* Block iOS from coverage checks for now...
* Work better with password-protected Squeezebox / LMS servers, including getting file art. Refactored to only have a single method calling the telent lib. (Should make it easier to convert to the more appropriate JSON interface)
* Update squeezebox.py
* Update squeezebox.py
* Update squeezebox.py
* Update squeezebox.py
* Update squeezebox.py
* Adds energy monitoring capabilities to the TP-Link HS110
Energy monitoring works only on the HS110 model
* Reverts to using GadgetReactor's module
* Updates requirements_all.txt
* Refactors tplink switch to use attribute caching
* Update tplink.py
* Add Bbox Routeur bandwidth as sensors
Add possibility to monitor max and currently used bandwidth of your xdsl connection for Bbox Routeur
* Minor Fixes
Unit constant get back into the main sensor file
* Unused round removed
* Add support for Neato Connected robot as a switch
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add checklist items
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add missing docstring
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* [Neato] Add update function to retrieve robot state
* Add docstring for update function + catch exception when retrieving state
* Change type of HTTPError when updating state
* Fix pylint errors
* Telstra API component
* import PLATFORM_SCHEMA
* Exclude Telstra notify component in coveragerc
* fix authentication issues
* Include title in SMS if it's provided
* pass lint
* Fix many code styling issues
* Confirm credentials are correct on component setup
* Add initial SNMPv3 support for better security
* Fixed indentation errors
* Fixed flake8 E128 on row 65
* Disabled warning about too many instance-attributes
* Removed extra code, added Inclusive to make better config validation
Changelog: https://github.com/SoCo/SoCo/releases/tag/v0.12
Backwards Compatability changes:
Dropped support for Python 3.2
Methods relating to the music library (get_artists, get_album_artists, get_albums and others) have been moved to the music_library module. Instead of device.get_album_artists(), please now use device.music_library.get_album_artists() etc. Old code will continue to work for the moment, but will raise deprecation warnings
Made a hard deprecation of the Spotify plugin since the API it relied on has been deprecated and it therefore no longer worked
Dropped pylint checks for Python 2.6
* Enhance yamaha component
This enhances the yamaha component to create 1 player per zone,
instead of only one play, which provides direct control of the various
zones for the player.
It also exposes play_media for NET_RADIO sources, which allows direct
setting of that.
This requires code changes in rxv 0.2.0, so the requirement dependency
is raised.
* Support current playback metadata for NET_RADIO
When on NET RADIO, support the currently playing information.
* 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
* #3899 - Ecobee tempoeratures
* #3899 Remove unused import
* #3899 Implement min/max_temp in ecobee.py as these temperatures have to be in F for ecobee api.
* #3899 Stale print
* #3899 Use min/max_temp from base class
* #3899 Removed unused import (again) so tests pass since changing to use super class
* #3899 Fix long lines
* #3899 Install tox locally... make it happy, commit
* #3899 Remove overridden min/max_temp and instead update __init__:min/max_temp to convert to self.temperature_unit (of the thermostat) as opposed to self.unit_of_measurement (of the system), which is wrong
* Remove unused import from ecobee
* #3829 - Fixed type LowHighTuple doesn't define __round__ method issue when Nest is operating in range mode
* Testing if temperature is a tuple instead int or float
* 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
requests/urllib3 is notorious for using the INFO log level for very
DEBUG kinds of information. Given the configurability of python
logging it's actually pretty easy to just set requests to WARN by
default. This cleans out a bunch of largely unuseful log lines from
home assistant output.
Instead of globally using StrictUndefined, introduce a filter that
will trigger a render failure on undefined variables.
Use as `{{ value_json.someval | is_defined }}`.
By not successfully rendering unknown objects to an empty string
the caller provided error_value actually gets used.
This allows, for instance, the MQTT sensor to retain its state when an
unexpected or unwanted message (#2733/#3834) is received.
* Emoncms_history component, fix git mess
* - switch to track_point_in_time to send all data at foxed interval
- don't use json_dump
- switch to http post instead of http get
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
* Initial Zoneminder commit
* Fixing bug when ZM sets its function to 'None'
* Adding zoneminder to coverage
* Quick Doc fix
* Update zoneminder.py
Doc Fix
* making the url base optional
This adds a sensor component that builds sensors based on the arwn
project (https://github.com/sdague/arwn). This uses a 433mhz receiver
to collect weather data and publish it over mqtt in a well defined
schema, which home-assistant can display as sensors.
* 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
* Add files via upload
* Update .coveragerc
* test
* Update synology camera
* Use voluptuous for synology
* Use voluptuous for synology
* Use voluptuous for synology
* Use voluptuous for synology
* Conform synology to flake8
* Added Whitelist to synology
* Sync to dev branch
* Added helper function to synology
* 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
* Added additional checks which hides functions which are not support (like fans / humidity / cooling)
* Fixed pylint and flake8 errors (not test file available)
* Fixed pydocstyle error
* Refactored Code and Comments as described in pull-request
* Added additional comment and requesting retest
* Upgraded to python-nest 2.11 which contains previously hidden functions
* Cache condition in helpers.Script
The caching is a simple in-memory, per-instance dictionary.
We use __str__ to format cache keys.
This naive implementation has some disadvantages (e.g., we won't be able
to cache two conditions that contain references to
distinct-but-equivalent object instances and we don't have any control
over the size of the condition cache), but for most simple use-cases the
approach should be good enough.
Resolves#3629
* Fix docstring style
* Basic support for Netatmo welcome binary sensors
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Bug fixes and optimization for Netatmo devices
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* pylint fixes
* Bug Fixing and optimization for Netatmo devices
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add unique_id for cameras to avoid duplicate
And global config to disable discovery for netatmo devices
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* 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
The command line cover value template is optional so we
need to check it's not none before assigning hass to it.
Fixes#3649
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
The command line cover value template is optional so we
need to check it's not none before assigning hass to it.
Fixes#3649
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Initial version of "haveibeenpwned" sensor component
* 2 flake8 fixes
* remove debugging error message
* Increase scan_interval as well as throttle to make sure that during initial startup of hass the request happens with 5 seconds delays and after startup with 15 minutes delays. Scan_interval is increased also to not call update as often
* update .coveragerc
* remove (ssl) verify=False
* - use dict to keep the request values with email as key
- use track_point_in_time system to make sure data updates initially at 5 seconds between each call until all sensor's email have a result in the dict.
* fix a pylint error that happend on the py35 tests
* Add discovery support for Netatmo Weather station
Only The weather information are currently supported (No battery or wifi status supported)
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add unique_id for netatmo sensors to avoid duplicate
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Update requirements_all.txt and PEP8 fixes
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* 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
* Bugfix signhandling/services
* change from coroutine to callback
* add error handling
* fix bug with endless running
* fix unit test
* Revert "fix unit test"
This reverts commit 31135c7709.
* Disable sigterm/sighup test
* Bugfix signhandling/services
* change from coroutine to callback
* add error handling
* fix bug with endless running
* fix unit test
* Revert "fix unit test"
This reverts commit 31135c7709.
* Disable sigterm/sighup test
* 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
* Added support for MySensors cover device
* Fixed set_req not defined
* Fixed V_PERCENTAGE is str
* Removed set_cover_position
The MySensors documentation doesn’t specify when sending a V_PERCENTAGE
is allowed.
* Fixed homeassistant/components/mysensors.py line too long
* Fixed lint ATTR_POSITION imported but unused
* Use V_PERCENTAGE for MySensors cover
* Revert "Removed set_cover_position"
This reverts commit d78cb3a04d.
* Fix set_req, ATTR_POSITION not defined
* Added support for non-exactly positionable covers
* Fixed V_PERCENTAGE cast to bool
* Ported MySensors cover back to v1.4
`V_PERCENTAGE` and `V_DIMMER` are aliases just like `V_STATUS` and
`V_LIGHT`, so the code inside `MySensorsCover` doesn’t need to be
updated.
* Fixed v1.5 V_TYPES not in in v1.4 gateway SetReq
* Update Command classes and device types to Sigma SDK
* Fix some pylint
* Seperate constants to file
* Flake8
* coverage and flake8 pylint
* Add services.yaml
* Service descriptions was missing
* Spelling :)
* grammar
* Remove zwave service descriptions from main
* Add ability to change Nest mode to all available options
* Make Nest state reflect current operation not current operation mode
* Update Nest sensor to use operation mode
* Fix linting
* Revert "Make Nest state reflect current operation not current operation mode"
This reverts commit 573ba028d8.
Conflicts:
homeassistant/components/climate/nest.py
* Fixed issue #3574 - Temperature slider fixed on frontend on heat/cool mode
* Fixed target_temperature to return None when self.is_away_mode_on is True
* Add ability to change Nest mode to all available options
* Make Nest state reflect current operation not current operation mode
* Update Nest sensor to use operation mode
* Fix linting
* Revert "Make Nest state reflect current operation not current operation mode"
This reverts commit 573ba028d8.
Conflicts:
homeassistant/components/climate/nest.py
* Fixed issue #3574 - Temperature slider fixed on frontend on heat/cool mode
* Fixed target_temperature to return None when self.is_away_mode_on is True
Sep 29 00:59:22 pi hass[21333]: if self.device.measurment_scale == 'F':
Sep 29 00:59:22 pi hass[21333]: AttributeError: 'Device' object has no attribute 'measurment_scale'
Sep 29 00:59:22 pi hass[21333]: if self.device.measurment_scale == 'F':
Sep 29 00:59:22 pi hass[21333]: AttributeError: 'Device' object has no attribute 'measurment_scale'
* 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.
* Add new component for licence plates processing (OpenAlpr)
* address balloobbot comments
* add to coveragerc
* move config from device to base
* fix lint
* move local api test to voluptous
* split render engine
* change cloud_api pip string & lint
* update requirements_all.txt
* fix lint
* update cloud_api url
* convert base64 byte string to string
* Update cloudapi / add configence / add state
* fix lint
* change state to high confidence plate
* fix cloudapi
* fix local api detection
* add wraper for local api
* fix lint
* fix wrong import
* fix HAAlpr name
* update ha-alpr without async
* support only eventbased requests with interval 0
* fix minor things
* fix lint
* fix lint2
* Added play media to squeezebox
The squeezebox component can now add a URI to an existing playlist or just over write it to force a stream to play.
* Cleaned up flake8 issues with formatting.
Spacing... The end of the world! Fixed. Once day the tools will fix this on the fly, one day...
[x] ./homeassistant/components/media_player/squeezebox.py:307:1: W293 blank line contains whitespace
[x] ./homeassistant/components/media_player/squeezebox.py:366:1: W391 blank line at end of file
[x] ./homeassistant/components/media_player/squeezebox.py:366:1: W293 blank line contains whitespace
Updated SUPPORT_SQUEEZEBOX to add SUPPORT_PLAY_MEDIA
[x] ./homeassistant/components/media_player/squeezebox.py:13:1: F401 'homeassistant.components.media_player.SUPPORT_PLAY_MEDIA' imported but unused
* Updates from review
Updated the comments to indicate they are developer / API comments and not for end users.
Marked the private functions with a leading underscore (_)
* Fixed Lint issues.
202ERROR: InvocationError: '/home/travis/build/home-assistant/home-assistant/.tox/lint/bin/flake8'
203lint runtests: commands[1] | pylint homeassistant
204************* Module homeassistant.components.media_player.squeezebox
205C:322, 0: Trailing whitespace (trailing-whitespace)
* Added Support for mysensnors Climate/HVAC device
* Added Support for mysensnors-hvac device:fix pylint error
* Added Support for mysensnors-hvac device:fix pylint error2
* Fixed Issues in code as per review comments
* Fixed Linter Errors
* Fixed Linter Errors:2
* Fixed Linter Errors:2
* Fixed Linter Errors
* Fixed Linter Errors
* Fixed Linter Errors
* Added Support for MySensors HVAC| Fixed Review Comments| Removed Additional Comments
* Added Support for MySensors HVAC| Fixed Review Comments Itr2
* Changes to correctly support devices with both high and low bound temperatures
* Changed to optimize the code
* Test updating automatic
* Scan interval
* Schedule scan every time delta
* Pass around has
* Recursive issue
* Method invocation
* Oops
* Set up poll
* Default argument value
* Unused import
* Semicolon
* Fix tests
* Linting
* Unneeded throttle as it's handled by time event
* Use track time change event listener
* Disable lint rule
* Attribute removed - removing test
* Debug instead of info
* Unused import
* Add open/closed state mapping for open_cover and close_cover
* Add 'open', 'closed' for open/close_cover_tilt
* Revert "Add 'open', 'closed' for open/close_cover_tilt"
This reverts commit e45582d439.
* 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
* Added the ability to trigger the alarm.
* Bump version of pyenvisalink to 1.3
* Fixed an issue where the panic_type was not passed to the sub-components properly.
* Bump pyenvisalink version, and make default panic mode = police.
* Pass in event loop to pyenvisalink.
* Made the components play nicely with asyncio.
* Bump pyenvisalink to 1.6
* Bump up pyenvisalink, and better handle synchronous setup.
* Added the possibility to manually specify a Yamaha Receiver
* Added the possibility to manually specify a Yamaha AVR
* Using string formatting
* Hostname checks for None now
* Do not use add_devices for each if-branch separately
* Fixed linting
* Update __init__.py
addedattribute "WHITE_VALUE" to improve support for RGBW devices
* Update services.yaml
* Update __init__.py
* Update __init__.py
* Update __init__.py
* Update __init__.py
* Update __init__.py
* Update __init__.py
shortened line
* Update __init__.py
* Update __init__.py
* Add mysensors RGBW and light tests
* Activate support for mysensors RGBW devices with support for
white_value attribute.
* Add white_value support in light demo platform.
* Add tests for white_value and more for light component.
* Add tests for light demo platform.
* Fix import order in check_config.
* o added ability to exclude entities or domains from logbook
o exclude hidden entities
* fixed remaned configuration key
* - filter the events before they get passed to humanify, to separate concerns
- instead of looking at customize, look for the hidden attribute on the state change events
- access to configuration defaults to an empty list - no need to check
* - filter only events of type EVENT_STATE_CHANGED
- improve config handling
* added unit tests to cover all filter cases and logbook message creation
* Added email component
* added email sensor component
* added doc string to test class
* fixed lint error
* fixed lint error
* rename of email component
* added another block as test fails on CI
* added retry to multi email test
* added delay to retry
* added to .coveragerc
* removed sleep from tests and fixed up stale comments
* Move worker pool monitoring to be time based instead of add_job based.
* Stub out worker pool monitor during tests
* Add test for monitor worker pool.
* Improve naming
* Test stop_monitor coroutine
* Add async_create_timer test
* Finish rename create_timer
* Added support to Yahoo Finance to track the stock market within Home Assistant
* Fixed pylint issues
* Fixed formatting issues
* Fixed pep257 issues
* - Fixed URL link
- Added attributes for Yahoo Finance
* Removed price sales ATTR
* Fixed lint and flake8 issues. Added attribution to Yahoo! per https://developer.yahoo.com/attribution/
* Fix test shutdown to ensure loop/threads are clean.
We now ensure the loop is closed, it has completed, and the
executer has completed. This ensure all threads are freed
up with any test calling hass.stop().
* Fix lint issue with run_loop
* Update Ecobee state after making changes to climate
Without this, climate and sensor state will take up to 3 minutes
(the MIN_TIME_BETWEEN_UPDATES on its update throttle) to update in
the interface, which makes it more difficult to do automation around the
state.
* Use a boolean instance variable that update can check, rather than always calling update
* Add PyBluez to Dockerfile
Adds PyBluez to Dockerfile so people using Docker can run Bluetooth
devices
* Remove pip install of pybluez
Pybluez will be installed automatically when the Bluetooth device
tracker is enabled
* Add Initial version for emoncms feeds sensor
* flake8 test fixes
* pylint test fixes
* - fix bug with include_feed_id_names not assigning the name to the element in the same postion as found in include_feed_id
- a few structure changes to have less nesting (pylint fix)
- minor other changes
* update .coveragerc
* voluptuous fixes:
- exclude_feed_id and include_feed_id Exclusive group so that only one (or none) can be specified at once
- id must be positive int
- exclude_feed_id and include_feed_id must be positive int
* Fix comment so it refers to the documentation
* use string formatting
* Remove outer try
* clean up sensors.append calls
(break them out for loop)
* multiple changes like:
- rename config value "include_feed_id" to "include_only_feed_id"
- rename config value "include_feed_id_names" to "sensor_names"
- renamed config value sensor_names is now a dictionary an can also be used when renamed config value "include_only_feed_id" is not specified
- Set default value for scan_interval using the config validation
- blank lines between default, 3rd party and own imports
- removed homeassistant.util import, it was not needed anymore
* fix extended voluptuous schema
scan_interval should not be extended to PLATFORM_SCHEMA as it was already in the schema by config_validation helper so i should not add / change it. It was also causing problems reading the value from the config.
* Use Home Assistant polling
* remove statement that can never happen
* Guard clause
* Reduce instance variables
* Implemented onkyo reconnect
Connection object is cleared after a failed command. It will be
automatically recreated upon the next command running. This should allow
for failed connections to be restored.
* Remove reduntant error catching
* Run all update commands with command wrapper.
* Handle errors better
* Removed unused global
I have no idea how that got there.
* First version of the MiFlora sensor (not yet finished)
* First workign version
* Added some documentation
Get name from sensor, if not defined
* Ignore IOError
* Added force_update option
* Updated comments
* Renamed fertility to conductivity (what it really is)
* MiFlora library update
* Updated helper files
* Formatting
* Fixed pylint errors
* Removed default from monitored conditions
* Removed KeyError handling as a KeyError should never be raised
* Added a return when no data is received
* emoved unnecessary return statement
* Changed default name
* Changes quotes and string operation ( @Teagan42 )
* - number of samples for median calculation is now configurable
- set state to None if no data could be polled from sensor
* Bugfix in library
more logging
* Fixed miflora version number
* Added Sensor Support for KNX Devices
Added Sensor for KNX Group Addresses
- Temperature
- Wind Speed
- Illuminance(LUX)
Mostly to fetch from a KNX Wetterstation
* Some pylint,flake8 fixes
* Pydoc Fixes
* Fix Coverage Ordering
* Refactor KNX Sensor
Refactor to Idea from @usul27 and added Minimum Maximum
* Removed Measurement Untis from const.py
Removed needed Measurement Units from const.py and add it to
sensor\knx.py
* Change .coveragerc
* Add as Requested from @Teagan42 the new Type Names
Additional add CONF_MINIMUM and CONF_MAXIMUM
* Added Changes as Requested from @Teagan42
* Fixed the Merge Conflict, Hopefully i done it rigth :-)
* Fixed Styling
* Test updating automatic
* Scan interval
* Schedule scan every time delta
* Pass around has
* Recursive issue
* Method invocation
* Oops
* Set up poll
* Default argument value
* Unused import
* Semicolon
* Fix tests
* Linting
* Unneeded throttle as it's handled by time event
* Use track time change event listener
* Disable lint rule
* Attribute removed - removing test
* Debug instead of info
* Unused import
* Test updating automatic
* Scan interval
* Schedule scan every time delta
* Pass around has
* Recursive issue
* Method invocation
* Oops
* Set up poll
* Default argument value
* Unused import
* Semicolon
* Fix tests
* Linting
* Unneeded throttle as it's handled by time event
* Use track time change event listener
* Disable lint rule
* Attribute removed - removing test
* Debug instead of info
* Unused import
* Add event loop to the core
* Add block_till_done to HA core object
* Fix some tests
* Linting core
* Fix statemachine tests
* Core test fixes
* fix block_till_done to wait for loop and queue to empty
* fix test_core for passing, and correct start/stop/block_till_done
* Fix remote tests
* Fix tests: block_till_done
* Fix linting
* Fix more tests
* Fix final linting
* Fix remote test
* remove unnecessary import
* reduce sleep to avoid slowing down the tests excessively
* fix remaining tests to wait for non-threadsafe operations
* Add async_ doc strings for event loop / coroutine info
* Fix command line test to block for the right timeout
* Fix py3.4.2 loop var access
* Fix SERVICE_CALL_LIMIT being in effect for other tests
* Fix lint errors
* Fix lint error with proper placement
* Fix slave start to not start a timer
* Add asyncio compatible listeners.
* Increase min Python version to 3.4.2
* Move async backports to util
* Add backported async tests
* Fix linting
* Simplify Python version check
* Fix lint
* Remove unneeded try/except and queue listener appproriately.
* Fix tuple vs. list unorderable error on version compare.
* Fix version tests
* Add open/closed state mapping for open_cover and close_cover
* Add 'open', 'closed' for open/close_cover_tilt
* Revert "Add 'open', 'closed' for open/close_cover_tilt"
This reverts commit e45582d439.
* 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
* Add open/closed state mapping for open_cover and close_cover
* Add 'open', 'closed' for open/close_cover_tilt
* Revert "Add 'open', 'closed' for open/close_cover_tilt"
This reverts commit e45582d439.
* 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
* Extend schema
* Update ordering
* Add line breaks
* Align callback name with other platforms
* ALign callbackname with other platforms
* Update callback name to match other platforms
* Update callback name
* Update callback name
* Backend support for importing waypoints from owntracks as HA zones
* Added test for Owntracks waypoints import
* Backend support for importing waypoints from owntracks as HA zones
* Added test for Owntracks waypoints import
* Removed redundant assignment to CONF_WAYPOINT_IMPORT_USER
* Fixed zone test break and code style issues
* Fixed style issues
* Fixed variable scope issues for entities
* Fixed E302
* Do not install pip packages in tests
* EventBus: return function to unlisten
* Convert automation to entities with services
* Refactored zone creation based on code review feedback, enhanced configuration
* Added unit test to enhance waypoint_whitelist coverage
* Fix JSON encoder issue in recorder
* Fix tests docstring
* * Improved zone naming in waypoint import
* Added more test coverage for owntracks and zone
* Back to 0.28.0.dev0
* Code review feedback from @pavoni
* Added bitfield of features for flux_led since we are supporting effects
* Host should be optional for apcupsd component (#3072)
* Use voluptuous for file (#3049)
* Zwave climate Bugfix: if some setpoints have different units, we should fetch the o… (#3078)
* Bugfix: if some setpoints have different units, we should fetch the one that are active.
* Move order of population for first time detection
* Default to config if None unit_of_measurement
* unit fix (#3083)
* humidity slider (#3088)
* If device was off target temp was null. Default to Heating setpoint (#3091)
* Fix linting
* Upgrade pyuserinput to 0.1.11 (#3068)
* Upgrade pyowm to 2.4.0 (#3067)
* improve isfile validation check (#3101)
* Refactor notification titles to allow for them to be None, this also includes a change in Telegram to only include the title if it's present, and to use a Markdown parse mode for messages (#3100)
* Fix broken test
* rfxtrx sensor clean up
* Bitcoin sensor use warning instead of error (#3103)
* Use voluptuous for HDMI CEC & CONF_DEVICES constants (#3107)
* Update voluptuous for nest (#3109)
* Update configuration check
* Extend platform
* Fix for BLE device tracker (#3019)
* Bug fix tracked devices
* Added scan_duration configuration parameter
* fix homematic climate implementation (#3114)
* Allow 'None' MAC to be loaded from known_devices (#3102)
* Use voluptuous for xmpp (#3127)
* Use voluptuous for twitter (#3126)
* Use voluptuous for Fritzbox and DDWRT (#3122)
* Use Voluptuous for BT Home Hub (#3121)
* Use voluptuous for syslog (#3120)
* Use voluptuous for Aruba (#3119)
* Use constants, update configuration check, and ordering (Pilight) (#3118)
* Use contants, update configuration check, and ordering
* Fix pylint issue
* Migrate to voluptuous (#3113)
* Fix typo (#3108)
* Migrate to voluptuous (#3106)
* Update voluptuous (#3104)
* Climate and cover bugfix (#3097)
* Avoid None comparison for zwave cover.
* Just rely on unit from config for unit_of_measurement
* Explicit return None
* Mqtt (#11)
* Explicit return None
* Missing service and wrong service name defined
* Mqtt state was inverted, and never triggering
* Migrate to voluptuous (#3096)
* Migrate to voluptuous (#3084)
* Fixed Homematic cover (#3116)
* Migrate to voluptuous (#3069)
🐬
* Migrate to voluptuous (#3066)
🐬
* snapcast update (#3012)
* snapcast update
* snapcast update
* validate config
* use conf constants
* orvibo updates (#3006)
🐬
* Update frontend
* move units to temperature for climate zwave. wrong state was sent to mqtt cove
* Use voluptuous for instapush (#3132)
* Use voluptuous for Octoprint (#3111)
* Migrate to voluptuous
* Fix pylint issues
* Add missing docstrings (fix PEP257 issues) (#3098)
* Add missing docstrings (fix PEP257 issues)
* Finish sentence
* Updated braviatv's braviarc version to 0.3.4 (#2997)
* Updated braviarc version to 0.3.4
* Updated braviarc version to requirements_all.txt
* Use voluptuous for Acer projector switch (#3077)
🐬
* Use voluptuous for twilio (#3134)
* Use voluptuous for webostv (#3135)
* Use voluptuous for Command line platforms (#2968)
* Migrate to voluptuous
* Fix pylint issues
* Remove FIXME
* Split setup test
* Test with bootstrap
* Remove lon and lat
* Fix pylint issues
* Add coinmarketcap sensor (#3064)
* Migrate to voluptuous (#3142)
🐬
* Back out insteon hub and fan changes (#3062)
* Move details to docs (#3146)
* Update frontend
* Use constants (#3148)
* Update ordering (#3149)
* Migrate to voluptuous (#3092)
* Display the error instead of the traceback (notify.slack) (#3079)
* Display the error instead of the traceback
* Remove name for check
* Automatic ODB device tracker & device tracker attributes (#3035)
* Migrate to voluptuous (#3173)
* Add voluptuous for tomato and SNMP (#3172)
* Improve voluptuous and login errors for Asus device tracker (#3170)
* Add exclude option to nmap device tracker (#2983)
* Add exclude option to nmap device tracker
Adds an optional exclude paramater to nmap device tracker.
Devices specified in the exclude list will never be scanned
by nmap. This can help to reduce log spam.
ex:
```
device_tracker:
- platform: nmap_tracker
hosts: 10.0.0.1/24
home_interval: 1
interval_seconds: 12
consider_home: 120
track_new_devices: yes
exclude:
- 10.0.0.2
- 10.0.0.1
```
* Handle optional exclude
* Style fixed
* Added Xbox Live component (#3013)
* Added Xbox Live component
* Added Xbox Live sensor to coveralls
* Added init success checks
* Added entity id
* Adding link_names to post.message call (#3167)
If you do not turn link_names on, Slack will not highlight @channel and @username messages.
* Allow https (fixes#3150) (#3155)
* Use constants (#3156)
* Bugfix: ctach Runtime errors (#3153)
"RuntimeError: Disable scan failed" has been seen in a live installation
* Migrate to voluptuous (#3166)
🐬
* Migrate to voluptuous (#3164)
🐬
* Migrate to voluptuous (#3163)
🐬
* Migrate to voluptuous (#3162)
🐬 and 🍪 for fixing quotes!
* Exclude www_static from pydocstyle linting (#3175)
🐬
* Migrate to voluptuous (#3174)
* Migrate to voluptuous (#3171)
* Use voluptuous for mFi switch (#3168)
* Migrate to voluptuous
* Take change configuration into account
* Migrate to voluptuous (#3144)
🐬
* Add the occupancy sensor_class (#3176)
Such a complicated PR
* Update frontend
* Use voluptuous for Unifi, Ubus (#3125)
* Using alert with Hue maintains prior state (#3147)
* When using flash with hue, dont change the on/off state of the light so that it will naturally return to its previous state once flash is complete
* ATTR_FLASH not ATTR_EFFECT
* MQTT fan platform (#3095)
* Add fan.mqtt, allow brightness to be passed and mapped to a fan speed for compatibility with emulated_hue
* Pylint/Flake8 fixes
* Remove brightness
* Add more features, like custom oscillation/speed payloads and setting the speed list
* Flake8 fixes
* flake8/pylint fixes
* Use constants
* block fan.mqtt from coverage
* Fix oscillating comment
* Add Sphinx API doc generation (#3029)
* add's sphinx project to docs/ dir
* include core/helpers autodocs for API reference
* Allow reloading automation without restarting HA (#3002)
* Migrate to voluptuous (#3182)
🐬
* Migrate to voluptuous (#3179)
🐬
* Added scale and offset to the Temper component (#2853)
🐬
* Use voluptuous for BT and Owntracks device trackers (#3187)
🐬
* Correct binary_sensor.ecobee docs URL
* Use voluptuous for Hikvisioncam switch (#3184)
* Migrate to voluptuous
* Use vol.Optional
* Use voluptuous for Edimax (#3178)
🐬
* Use voluptuous for Bravia TV (#3165)
🐬
* Added support to 'effect: random' to Osram Lightify lights (#3192)
* Added support to 'effect: random' to Osram Lightify lights
* removed extra line not required
* Use voluptuous for message_bird, sendgrid (#3136)
* Try out the RTD theme
* Doc updates
* Update voluptuous for existing notify platforms (#3133)
* Update voluptuous for exists notify platforms
* fix constants
* Simple trend sensor. (#3073)
* First cut of trend sensor.
* Tidy.
* Migrate to voluptuous (#3193)
* Migrate to voluptuous (#3194)
🐬
* Migrate to voluptuous (#3197)
* Migrate to voluptuous (#3198)
🐬
* Use extend of PLATFORM_SCHEMA (#3199)
* Migrate to voluptuous (#3202)
🐬
* Updated to use the occupancy sensor_class (#3204)
🐬
* Migrate to voluptuous (#3206)
* Migrate to voluptuous (#3207)
* Migrate to voluptuous (#3208)
🐬
* Migrate to voluptuous (#3209)
🐬
* Migrate to voluptuous (#3214)
* Use voluptuous for SqueezeBox (#3212)
* Migrate to voluptuous
* Remove name
* Migrate to voluptuous and upgrade uber_rides to 0.2.5 (#3181)
* Migrate to voluptuous (#3200)
🐬
* Use Voluptuous for Luci and Netgear device trackers (#3123)
* Use Voluptuous for Luci and NEtgear device trackers
* str_schema shortcut
* Undo str_schema
* change update handling with variable for breack CCU2 (#3215)
* Update ordering (#3216)
* Docs update
* Flake8/pylint
* Add new docs requirements
* Update email validation (#3228)
🐬
* Fix email validation (fixes#3138) (#3227)
* Upgrade slacker to 0.9.25 (#3224)
* Upgrade psutil to 4.3.1 (#3223)
* Upgrade gps3 to 0.33.3 (#3222)
* Upgrade Werkzeug to 0.11.11 (#3220)
* Upgrade sendgrid to 3.4.0 (#3226)
* Bluetooth: keep looking for new devices (#3201)
* keep looking for new devices
* Update bluetooth_tracker.py
* change default value for tracking new devices
* remove commented code
* dlink switch added device state attributes and support for legacy firmware (#3211)
* Use voluptuous for free mobile (#3236)
* Use voluptuous for nma (#3241)
* Improve 1-Wire device family detection and error checking. Use volupt… (#3233)
* Improve 1-Wire device family detection and error checking. Use voluptuous
* Fix detection of gpio connected devices
* Replace rollershutter and garage door with cover, add fan (#3242)
* Use voluptuous for Alarm.com (#3229)
* Use voluptuous for gntp (#3237)
* Use voluptuous for pushbullet, pushetta and pushover (#3240)
* Migrate to voluptuous (#3230)
🐬
* Fix mFi sensors in uninitialized state (#3246)
If mFi sensors are identified but not fully assigned they can
have no tag value, and mficlient throws a ValueError to signal this.
This patch handles that case by considering such devices to always
be STATE_OFF.
* Use voluptuous for PulseAudio Loopback (#3160)
* Migrate to voluptuous
* Fix conf var
* Use voluptuous for Verisure (#3169)
* Migrate to voluptuous
* Update type and add missing config variable
* thread safe modbus (#3188)
* Upgraded fitbit to version 0.2.3 which fixed oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired) (#3244)
* update ffmpeg version to 0.10 add get image to camera (#3235)
* Migrate to voluptuous (#3234)
* fix bugfix with unique_id (#3217)
* Zwave climate fix and wink cover. (#3205)
* Fixes setpoint get was done outside loop
* zxt_120
* Wink not migrated to cover
* Clarifying debug
* too long line
* Only add 1 device entity
* Owntracks voluptuous fix (#3191)
* Zwave set temperature fix (#3221)
* If device was off set target temp would not work.
* Changed to use a workaround just for Horstmann HRT4-ZW Zwave Thermostat
* Wrong Horseman id
* style changes
* Change PR to suggestion on gitter (#3243)
* Reload groups (#3203)
* Allow reloading groups without restart
* Test to make sure automation listeners are removed.
* Remove unused imports for group tests
* Simplify group config validation
* Add prepare_reload function to entity component
* Migrate group to use entity_component.prepare_reload
* Migrate automation to use entity_component.prepare_reload
* Clean up group.get_entity_ids
* Use cv.boolean for group config validation
* fix remove listener (#3196)
* Add linux battery sensor (#3238)
* protect service data for changes in calls (#3249)
* protect service data for changes in calls
* change handling
* move MappingProxyType to service call
* Fix issue #3250 (#3253)
* Minor Ecobee changes (#3131)
* Update configuration check, ordering, and constants
* Make API key optional
* issue #3250
* Add voluptuous to ecobee (#3257)
* Use constants and update ordering (#3261)
* Add support for complex template structures to data_template (#3255)
* Improve yaml fault tolerance and handle check_config border cases (#3159)
* Use voluptuous for nx584 alarm (#3231)
* Migrate to voluptuous
* Fix pylint issue
* fastdotcom from pypi (#3269)
* Use constants and update ordering (#3268)
🐬
* Use constants and update ordering (#3267)
🐬
* Add additional template for custom date formats (#3262)
I can live with a few visual line breaks 🐬
* Use constants and update ordering (#3266)
* Updated braviatv's braviarc version to 0.3.5 (#3271)
* Use voluptuous for Device Sun Light Trigger (#3105)
* Migrate to voluptuous
* Use default
* Point to master till archive is back (#3285)
* Pi-Hole statistics sensor (#3158)
* Add Pi-Hole sensor
* Update docstrings and remove print()
* Use None for payload
* Added stuff for support range setting (#3189)
* cleanup Homematic code (#3291)
* cleanup old code
* cleanup round 2
* remove unwanted platforms
* Update frontend
* Hotfix for #3100 (#3302)
* Fix TP-Link Archer C7 long passwords (#3225)
* Fix tplink C7 long passwords
Fixes an issue where passwords longer than 15 chars could not log in to Archer C7 routers.
* Truncate in correct place
* Add comment about TP-Link C7 pass truncation
* Fix lint error
* Truncate comment at 79 chars not 80
* modbus write registers service (#3252)
* Fix bloomsky platform discovery (#3303)
* Remove dev tag
* Fix tplink C7 long passwords
Fixes an issue where passwords longer than 15 chars could not log in to Archer C7 routers.
* Truncate in correct place
* Add comment about TP-Link C7 pass truncation
* Fix lint error
* Truncate comment at 79 chars not 80
* Allow reloading groups without restart
* Test to make sure automation listeners are removed.
* Remove unused imports for group tests
* Simplify group config validation
* Add prepare_reload function to entity component
* Migrate group to use entity_component.prepare_reload
* Migrate automation to use entity_component.prepare_reload
* Clean up group.get_entity_ids
* Use cv.boolean for group config validation
* If device was off set target temp would not work.
* Changed to use a workaround just for Horstmann HRT4-ZW Zwave Thermostat
* Wrong Horseman id
* style changes
If mFi sensors are identified but not fully assigned they can
have no tag value, and mficlient throws a ValueError to signal this.
This patch handles that case by considering such devices to always
be STATE_OFF.
* Add fan.mqtt, allow brightness to be passed and mapped to a fan speed for compatibility with emulated_hue
* Pylint/Flake8 fixes
* Remove brightness
* Add more features, like custom oscillation/speed payloads and setting the speed list
* Flake8 fixes
* flake8/pylint fixes
* Use constants
* block fan.mqtt from coverage
* Fix oscillating comment
* When using flash with hue, dont change the on/off state of the light so that it will naturally return to its previous state once flash is complete
* ATTR_FLASH not ATTR_EFFECT
* Add exclude option to nmap device tracker
Adds an optional exclude paramater to nmap device tracker.
Devices specified in the exclude list will never be scanned
by nmap. This can help to reduce log spam.
ex:
```
device_tracker:
- platform: nmap_tracker
hosts: 10.0.0.1/24
home_interval: 1
interval_seconds: 12
consider_home: 120
track_new_devices: yes
exclude:
- 10.0.0.2
- 10.0.0.1
```
* Handle optional exclude
* Style fixed
* Host should be optional for apcupsd component (#3072)
* Zwave climate Bugfix: if some setpoints have different units, we should fetch the o… (#3078)
* Bugfix: if some setpoints have different units, we should fetch the one that are active.
* Move order of population for first time detection
* Default to config if None unit_of_measurement
* unit fix (#3083)
* humidity slider (#3088)
* If device was off target temp was null. Default to Heating setpoint (#3091)
* Fix for BLE device tracker (#3019)
* Bug fix tracked devices
* Added scan_duration configuration parameter
* fix homematic climate implementation (#3114)
* Allow 'None' MAC to be loaded from known_devices (#3102)
* Climate and cover bugfix (#3097)
* Avoid None comparison for zwave cover.
* Just rely on unit from config for unit_of_measurement
* Explicit return None
* Mqtt (#11)
* Explicit return None
* Missing service and wrong service name defined
* Mqtt state was inverted, and never triggering
* Fixed Homematic cover (#3116)
* Add missing docstrings (fix PEP257 issues) (#3098)
* Add missing docstrings (fix PEP257 issues)
* Finish sentence
* Merge pull request #3130 from turbokongen/zwave_fixes
Bugfix. climate and covermqt
* Back out insteon hub and fan changes (#3062)
* Bump version
* Special frontend build for 0.27.2
* Avoid None comparison for zwave cover.
* Just rely on unit from config for unit_of_measurement
* Explicit return None
* Mqtt (#11)
* Explicit return None
* Missing service and wrong service name defined
* Mqtt state was inverted, and never triggering
* Bugfix: if some setpoints have different units, we should fetch the one that are active.
* Move order of population for first time detection
* Default to config if None unit_of_measurement
* Allow user to configure server id to perform speed test against
* Don't overwrite list
* Type-o
* Convert to string
* Append lists
* str(None) => 'None' did not realize that.
* Map Modes to setpoint indexes
* Fixes devices with no thermostat mode
* another try to fix devices without mode
* another try to fix devices without mode 2
* another try to fix devices without mode 3
* fix setting setpoint for devices with no mode
* fix setting setpoint for devices with no mode
* Update attr to property and default state method
* State prop is defined in parent class
* Demo platform fan
* PyDoc
* Copy-pasta artifact
* PyDoc
* Linting
* Raise error if turn_off and turn_on not implemented
* Update demo platform
* Initial unit test commit
* Readability
* Unneeded typing
* Should inherit from fan entity
* Turn off polling
* Initial oscillating flag
* Pass HASS into demo
* Typing
* Invoke set_speed instead of setting directly
* Service update
* Update demo tests
* Forgot to block after service call.
* linting
* Test to make sure not implemented is thrown
* Is On Method test
* Update const to match string
* Update services yaml
* Toggle method
* Toggle service
* Typing
* TYPE O
* Attribute check
* Type-o
* Type-o
* Put typing back
* ToggleEntity
* Linting
* Linting
* Oops
* Stale prints
* Demo support
* Initial code for alexa_local_control.
* Added support for creating a dummy username.
* Move SSDP responses to local variables.
* Added config validation via Voluptuous.
* Modify and remove unnecessary returned emulated bridge values.
* Remove script and scene domains from default exposed domains.
* Replaced Flask with HomeAssistantWSGI.
* Fix lint errors.
* Correcting grammar and spelling in docs and comments.
* Rename alexa_local_control to emulated_hue.
* Rename emulated_hue attributes.
* Fix a bug where something marked not exposed is exposed by default.
* Make sure the UPNP responder thread cleanly stops when HASS stops.
Also fix some config loading and lint errors.
* Fixed unexposed entities still having individual state exposed.
* Started writing tests for emulated_hue.
* Fix being able to set state of non-exposed entity.
* Another test for emulated_hue.
* More tests for emulated_hue.
Also slightly simplified emulated_hue's PUT handler.
* Fix bad test, sorry :/
* Third time's the charm.
* Fix lint and value validation tests.
* Rename emulated_hue bridge name.
* Remove license and documentation from header.
* Combine two if statements.
* Style changes.
* Fixed various issues and added some constants
* Use mqtt component to enable a MySensors MQTT gateway.
* Setup the MQTT gateway if mysensors config has mqtt as a value for
the key device in the list of gateways.
* Simplify two lines in the mqtt component.
* adding pull mode and relay time
* fixing failing tests
* removed unused vars, removed trailing whitespace
* removed white space
* split line in 2
* removed whitespace and fixed indent
* undid line break
* Update rpi_gpio.py
new line so its not too long
* back to no new line
* Moved long method to a new line
* Moved comment
* moved comment to above method
* adding required blank line
* fixed variables and made them optional
misunderstood the logic at first.
* removed line for lint and removed vars that were not required
* added second blank line for class
* added new configs to platform_schema - still have same error on load
* changing string to int
* added code to covers rpi as well
* Implement support for NEST structures.
* Conform to balloobbot style preferences.
* Log to debug level rather than info level.
* Use config validation to coerce list format if supplied as string.
* Use list comprehension for more succinct code.
* Conform to project linting standards.
* First draft for cover component
* Efficiency from @martinhjelmare
* migrate demo
* migrate demo test
* migrate command_line rollershutter
* migrate command_line test
* migrate rpi_gpio garage_door
* make some abstract methods optional
* migrate homematic
* migrate scsgate
* migrate rfxtrx and test
* migrate zwave
* migrate wink
* migrate mqtt rollershutter and test
* requirements
* coverage
* Update mqtt with garage door
* Naming and cleanup
* update test_demo.py
* update demo and core
* Add deprecated warning to rollershutter and garage_door
* Naming again
* Update
* String constants
* Make sure set_position works properly in demo too
* Make sure position is not set if not available.
* Naming, and is_closed
* Update zwave.py
* requirements
* Update test_rfxtrx.py
* fix mqtt
* requirements
* fix wink version
* Fixed demo test
* naming
* Add support for notifying with Slack messages.
When creating notifications, this allows you to pass in `attachments`
with the `data`. It's an array of attachments as defined in
https://api.slack.com/docs/message-attachments
When passing in attachments, message is still required, but it's okay to
be a blank string.
* Split over multiple lines
* Make sure attachments gets assigned, even if there isn't attachment data
* Added support for serial HM-Z19 CO2 sensor
* Minor pylint bug fixes
* Added new files to .coveragerc
* Removed newline
* Changes in requirements after change of pmsensor library
* Change the implementation of default name
* Check if serial interface is working before adding the sensor
* Maximum sensor value is 5000ppm
The repository already merged the pull request adding python3 support.
root is no longer required to use the gpio.
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Clean-up, ordering, constants, and extend of schema
* Put REQUIREMENTS back and re-add line breaks
* Clean-up, ordering, constants, and extend of schema
* Extend platform
* Move secret cache out of loader so it can be referenced by other folders
* Unit test to verify secrets from another folder work & see if it overrides parent secret
* Clear secret cache after load
Current documentation suggests to use personal API tokens. This isn't
ideal because for a few reasons:
* messages will come as your own user, so it's hard to tell it's coming
from hass
* it's harder to manage if multiple people are using Slack and home
* assistant, since you'd have to coordinate rolling of it
It is possible to use Slack bot users already. Just make a new one from https://your-team.slack.com/apps/build/custom-integration, and use the token for that. You can even add an icon from the web frontend for home assistant.
However, the message will appear as a bot without a name or icon. This pull requests fixes this by passing the as_user parameter, which uses the bot user's name and icon.
One caveat is you need to invite the bot user into the room you want to
post to. This probably was an issue before though.
🎩 to @jnewland who pointed me to this in his branch
* Added support for name
Added name support and changed default name to "Forecast.io" since "Weather" had conflict with Yahoo weather and Open weather map
* Update forecast.py
* Added Bluetooth Low Energy device tracker
* Added new file(s)
* Fixed pylint errors
* Remove traling zeros from device names
* recreated deleted file
* Added requirements
* Renamed to bluetooth_le tracker
Removed gattlib from tests
Minor code cleanup
* - fixed .coveragerc bug
- changed discovery algorithm, new devices will only be added if seen 5 times to make sure
HA doesn't blow the database with devices just passing by
Currently there are only hw inputs in the sources list.
Other interesting inputs can be live tv (dvbt) and vod apps.
* add customize option for webos
* add short names for livetv, youtube, mako apps
* add current app as a source
* use large icon (largeIcon is the same as icon if doesn't exists)
* filter out hw inputs that are not connected
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Add action and callback support to html5 (#2855).
Remove registrations from the callback view since we always get the latest anyway.
We dont put an audience in the claims so we will never hit this error.
Bring tests back up to where they were before callbacks.
Only import jwt where necessary
Fix bracket spacing errors
Fix JWT decode check for loop
Remove stale comment.
Add tests for the callback system.
Shorten line
Disable pylint broad-except and change e to jwt_decode_error.
Verify expiration
Remove duplicate jwt.exceptions.DecodeError
Catch no keys matched and return False
* Switch to using registrations for callbackview instead of json_path
* Only check for URL and such if the data object actually exists
* raise instead of return
* cleanup decode_jwt
* Clean up JWT errors
* Correctly set status_code to 401
* Improve JWT by adding target to claims and attempting to check the given target for a decode match first, as well as pass the target through in the event payload.
* Add tag support and fix formatting issues
* Pass through any keys that dont apply to the payload into the notification.data dictionary
* Remove stale print
* Pass back the data dictionary if it exists
* Actually put the default url even if a notify payload dictionary doesnt exist
* pylint, flake8
* Add subscription validation
* Add validation for the callback event payload and use constants where possible
* Use HTTP_UNAUTHORIZED instead of 401
* Change callback dictionary to dict instead of cv.match_all
* Fix up tests and make subscription required
* Whoops, that test was supposed to fail
* Use the result of CALLBACK_EVENT_PAYLOAD_SCHEMA as event_payload
* Add a test for html5 callback decode_jwt where the device has been renamed since notification has been sent.
* Remove the loop through logic, assume that target is always in JWT
* Always return something instead of possibly None.
* Update frontend
* Add a group notify platform which allows sending a single notification to multiple platforms.
* Correctly sort group.py
* Clean up the payload logic
* Make name and entity id required in the schema
* Deep update the dictionary to fix a bug where data wasnt merging.
* Add notify.group tests.
* Improve docstrings.
* Change entities to services and entity_id to service
* Make service a slug without a default value
* Update tests for entities->services, entity_id->service
* vol.Any(cv.slug) -> cv.slug
* First pass on providing individual services for all possible targets that a notification platform supports.
* Add a quite hacky first version of notification groups
* Add a docstring for get_targets
* Register group service under notifygroup/ and safely check for notifygroups in config
* Remove notifygroups, because it belongs in its own PR
* Make @balloob requested changes
* get_targets()->targets
* Add tests for notify targets exposed as individual services
* If we dont have a platform name set in configuration, lets use the name of the platform instead of notify
* Fix test docstring.
* Dont use a dictionary for just one value
* No need to double slugify
* targets is now just a list of strings instead of a dict
* Support passing an email address linked to Gravatar as the picture in known_devices.
* Add a dedicated field for Gravatar
* Bring tests back up to where they were before Gravatar.
* Add tests for Gravatar.
* Retry sending the push for 1 day instead of failing instantly if the target is unavailable
* Add timestamp to push payload
* Correctly use the title and body fields for their intended purposes
* Add callback support
* Revert changes to frontend files.
* Add default URL which will open Home Assistant. Also put all the data into the data object of the payload so it is accessible in the browser. Without doing this, things like URL wouldnt be accessible.
* Flake8 and pylint fixes
* event->type
* Dont send the default url if actions exist
* flake8/pylint fixes again
* Update html5 tests
* Remove callbacks from this branch, will re-stage on a different branch
* Remove remnant of callbacks
* Add url to data dictionary if it exists instead of copying the entire data dictionary in
* flake8 fix
* Add FritzBox call monitor sensor
* Correct docstrings and suppress too few public methods warning
* Remove blank lines after docstrings
* Add blank lines after class docstrings
* Remove trailing white space
* Make daemon; add reconnect on disconnect
* HP ILO component
* HP ILO component
* Add Onboard Administrator sensor
* Add Onboard Administrator sensor
* Add period to first line
Fix D400 error on line 1
* Fix log message for deprecated temp key
* Use string formatting and pass constant variables as arguments in log
message to show correct name of config keys.
* Fix import order
* Initial work to add Chrome Push Notification support
* Remove push.js from home-assistant since it is now in Polymer
* Chrome->HTML5, general cleanup/fixes
* Make html5 generic, move manifest.json into frontend so that we can dynamically add the gcm_sender_id
* Pylint, flake8, pydocstyle frontend init
* HTML5 push fixes
* Update polymer
* Remove crypto req
* Add notify default platform.
* Fix HTML5 push
* Registration fixes
* Linting fix
* pep257 fix
* Add tests
* pep257 fix
* Update frontend
* Implemented range checking for temperature and humidity. Out-of-range values will be ignored
* Removed unused import
* Use celsius_to_fahrenheit conversion method
* Add support for GPSD
* Add gpsd.py
* Check if socket is open
* Fix pylint issue
* Rename file to be a sensor
* Update for being a sensor
* Rework for being a sensor
* Add support for new mqtt_json light platform.
* Fix W503 errors.
* Bring in feedback from @balloob.
* Add test coverage for invalid color and brightness data.
* Add coverage for transition in turn_off.
* New component to interface with a pilight-daemon for RF send/receive
* Fix bug that changed the received data, add connected flag, clean up
* New pilight switch component
* New optional whitelist filter to filter uninteressting devices
* Add pilight
* PEP8: too long lines, white spaces
* To keep up the good coverage ...
* PEP 257
* pylint enhancements
* pylint enhancements
* PEP 257
* Better HA config validation and cleanup following code review for #2742
* Fix requirenments to require fixed pilight version
* Change config validation to use voluptuous
* Pilight switch exclude not needed due to wildcard pilight exclude
* Enhance configuration parsing using voluptuous
* Added optional embedded image attachments to notify.smtp.
Also restructured a bit to minimize code duplication and add some tests.
* Fixed formatting errors.
* SMTP cleanups thanks to code review.
* Add a Foursquare component which accepts push notifications from Foursquare and provides a user checkin service
* @balloob requested fixes
* Sort .coveragerc list of components by name
* Revert "Sort .coveragerc list of components by name"
This reverts commit 997ae22576.
* Only sort Foursquare since I get conflicts otherwise
* Add Foursquare checkin service to services.yaml
* Update to latest Plex API, add music support.
* Fix PyLint errors.
* Update Plex sensor module to latest PlexAPI.
* Oops - update Python sensor import.
* According to PlexAPI docs, this is the new API for Plex Pass members.
* More pylint STFUs.
* Move pylint suppression.
* Use plexapi NA type directly.
* Pylint objects to short variable names.
The 0.3.1 version of the library includes fixes for time syncing the
thermostat under the covers when needed. All changes are done on the
library side, we just need to bump the required level in home
assistant.
* Fix: Circular dependencies of internal files
* Change: dt.date for Date and dt.datetime for DateTime
* Use NewType if available
* FIX: Wrong version test
* Remove: Date and DateTime types due to error
* Change to HomeAssistantType
* General Improvement of Typing
* Improve typing config_validation
* Improve typing script
* General Typing Improvements
* Improve NewType check
* Improve typing db_migrator
* Improve util/__init__ typing
* Improve helpers/location typing
* Regroup imports and remove pylint: disable=ungrouped-imports
* General typing improvements
Add unit symbol constants
Initial unit system object
Import more constants
Pydoc for unit system file
Import constants for configuration validation
Unit system validation method
Typing for constants
Inches are valid lengths too
Typings
Change base class to dict - needed for remote api call serialization
Validation
Use dictionary keys
Defined unit systems
Update location util to use metric instead of us fahrenheit
Update constant imports
Import defined unit systems
Update configuration to use unit system
Update schema to use unit system
Update constants
Add imports to core for unit system and distance
Type for config
Default unit system
Convert distance from HASS instance
Update temperature conversion to use unit system
Update temperature conversion
Set unit system based on configuration
Set info unit system
Return unit system dictionary with config dictionary
Auto discover unit system
Update location test for use metric
Update forecast unit system
Update mold indicator unit system
Update thermostat unit system
Update thermostat demo test
Unit tests around unit system
Update test common hass configuration
Update configuration unit tests
There should always be a unit system!
Update core unit tests
Constants typing
Linting issues
Remove unused import
Update fitbit sensor to use application unit system
Update google travel time to use application unit system
Update configuration example
Update dht sensor
Update DHT temperature conversion to use the utility function
Update swagger config
Update my sensors metric flag
Update hvac component temperature conversion
HVAC conversion for temperature
Pull unit from sensor type map
Pull unit from sensor type map
Update the temper sensor unit
Update yWeather sensor unit
Update hvac demo unit test
Set unit test config unit system to metric
Use hass unit system length for default in proximity
Use the name of the system instead of temperature
Use constants from const
Unused import
Forecasted temperature
Fix calculation in case furthest distance is greater than 1000000 units
Remove unneeded constants
Set default length to km or miles
Use constants
Linting doesn't like importing just for typing
Fix reference
Test is expecting meters - set config to meters
Use constant
Use constant
PyDoc for unit test
Should be not in
Rename to units
Change unit system to be an object - not a dictionary
Return tuple in conversion
Move convert to temperature util
Temperature conversion is now in unit system
Update imports
Rename to units
Units is now an object
Use temperature util conversion
Unit system is now an object
Validate and convert unit system config
Return the scalar value in template distance
Test is expecting meters
Update unit tests around unit system
Distance util returns tuple
Fix location info test
Set units
Update unit tests
Convert distance
DOH
Pull out the scalar from the vector
Linting
I really hate python linting
Linting again
BLARG
Unit test documentation
Unit test around is metric flag
Break ternary statement into if/else blocks
Don't use dictionary - use members
is metric flag
Rename constants
Use is metric flag
Move constants to CONST file
Move to const file
Raise error if unit is not expected
Typing
No need to return unit since only performing conversion if it can work
Use constants
Line wrapping
Raise error if invalid value
Remove subscripts from conversion as they are no longer returned as tuples
No longer tuples
No longer tuples
Check for numeric type
Fix string format to use correct variable
Typing
Assert errors raised
Remove subscript
Only convert temperature if we know the unit
If no unit of measurement set - default to HASS config
Convert only if we know the unit
Remove subscription
Fix not in clause
Linting fixes
Wants a boolean
Clearer if-block
Check if the key is in the config first
Missed a couple expecting tuples
Backwards compatibility
No like-y ternary!
Error handling around state setting
Pretty unit system configuration validation
More tuple crap
Use is metric flag
Error handling around min/max temp
Explode if no unit
Pull unit from config
Celsius has a decimal
Unused import
Check if it's a temperature before we try to convert it to a temperature
Linting says too many statements - combine lat/long in a fairly reasonable manner
Backwards compatibility unit test
Better doc
This commit adds a new config option to the heat_control thermostat
component, min_cycle_duration. Some heaters and/or ACs don't like
being constantly cycled on and off. Prior to this patch the
heat_control component can end up cycling the switch quite
frequently. (depending on how quickly the temperature changes) The
new option added is used for setting a minimum duration that must
have elapsed in either the on or off state before the thermostat will
send the service call to cycle the switch. This should enable users to
hand tune how frequently heat_control can switch the device on or off
to best suit the device being used.
This commit adds a new option to the heat_control component, ac_mode.
When set to true, this treats the toggle device as a cooler instead
of a heater. The concept being if you have a window or in-wall ac
unit that doesn't have a built-in thermostat having the home assistant
implemented thermostat would be as useful as for space heaters.
Instead of always assuming we want to change the heat, instead use the
setback attribute which sets heat / cool setback based on current HVAC
mode. This means that the proliphix thermostat will do sensible things
during cooling season.
* Added mired and kelvin mode to flux
* changed as requested
* Renamed varible
* attempt to add test for new method in flux.py
* removed line to fix lint error
* Allow multiple proximities
* Distance conversion
* Add unit of measurement and conversion to proximity
* Shorten attribute name
* Fix get unit of measurement
* Fix the km <-> m conversion
* Add type check and errors
* first path unit test around distance utility
* Fix numeric type check
* Fix conversion type-os
* Actually set the exception thrown flag
* Test for exact conversion
* More descriptive variable names
* Update method invocation to match change in method name
* Missed a couple variables
* Line continuation
* Fix linting too many return issue
* Break out proximity setup for list of proximity and for single proximity device
* Pass hass to setup function
* Check if setup succeeded for each proximity component
* Change variable name
* Break out branches in convert to avoid too many branches linting error
* Remove disable lint line
* Variables for default properties
* Combine logic
* Test loading multiple proximities for 100% code coverage on proximity component
* Unit test to reach 100%
Fail to configure proximities missing devices
* Fail first before processing
* Combine return statements
* lstrip = bad Teagan
* Utilize string formating instead of concatenation
* Fix variable reference
* Typeo
* Clean up conversion to reduce complexity
* Update unit tests to match code changes on distance util
* Test non numeric value
* Private methods, value type has already been checked.
**Pull request in [home-assistant.io](https://github.com/home-assistant/home-assistant.io) with documentation (if applicable):** home-assistant/home-assistant.io#
**Pull request in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io) with documentation (if applicable):** home-assistant/home-assistant.github.io#<home-assistant.github.ioPRnumbergoeshere>
**Example entry for `configuration.yaml` (if applicable):**
**Example entry for `configuration.yaml` (if applicable):**
```yaml
```yaml
@@ -13,9 +13,9 @@
**Checklist:**
**Checklist:**
If user exposed functionality or configuration variables are added/changed:
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.io](https://github.com/home-assistant/home-assistant.io)
- [ ] Documentation added/updated in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io)
If code communicates with devices, web services, or a:
If the code communicates with devices, web services, or third-party tools:
- [ ] Local tests with `tox` run successfully. **Your PR cannot be merged unless tests pass**
- [ ] Local tests with `tox` run successfully. **Your PR cannot be merged unless tests pass**
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
- [ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
# If the URL hasn't changed then the image hasn't changed.
# If the URL hasn't changed then the image hasn't changed.
ifself._url!=self._last_url:
ifself._url!=self._last_url:
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.