🏡 Open source home automation that puts local control and privacy first.
Go to file
Teemu R 94be43e3e1 Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091)
* {switch,light}.tplink: use deviceid as unique id, fetch name from the device during initialization

* raise PlatformNotReady when no device is available

* Use mac instead of deviceid

* remove name option as obsolete

* Add support for configuration flow / integration

Allows activating automatic discovery of supported devices from the configuration

* Fix linting, update requirements_all.txt

* start cleaning up tplink component based on feedback

* add device info, improve config handling

* Allow overriding detected devices via configuration file

* Update requirements.txt

* Remove debug logging

* make hound happy

* Avoid I/O during init and simplify the code, remove remains of leds_on

* Fix issues based on feedback, use consistent quotation marks for device info

* add async_setup_platform emiting a deprecation warning

* Avoid blocking the I/O, check for None on features

* handle some Martin's comments, schema-validation is still missing

* use async_create_task instead of async_add_job, let core validate the schema

* simplify configuration handling by storing the configuration data separately from initialized instances

* add default values to schema, make hound happy

* with defaults set by schema, simplify the checks. add async_unload_entry

* Use constant for data structure access

* REWORD add a short note about async_unload_entry

* handle feedback from Martin, config_data is checked against Noneness

* use pop to remove the domain on unload

* First steps to add tests for the new tplink component

* embed platforms under the component directory

* Fix tests by mocking the pyhs100 internals

* Fix linting

* Test against multiple instances of devices, tidy up

* (hopefully) final linting round

* Add pyHS100 to test requirements

* log always the warnings occured during an update to make them easy to see

* revert back the warning behavior (requirement for silver level in IQS)

* Unload only when an entry is being loaded and add tests for that

Thanks @MartinHjelmare for pointing this out!

* Fix linting

* Bump the upstream lib, fixes most prominently the HSV setting on bulbs

* Test unloading for all platforms, clear the data storage instead of popping it out, making it possible to reconfigure after removal without restarting hass first

* Use class variables instead of instance variables for bulb states, required for HS220

* Use new-style format string

* Fix indenting, uppercase the mock constant

* Run black on test_init, hopefully that will finally fix the weird formatting (pycharm, pylint and hound seems to have different opinions...)
2019-02-21 20:29:07 +01:00
.github Fix broken links to code examples (#21039) 2019-02-13 17:14:59 +01:00
docs Add missing helpers (#21021) 2019-02-12 20:52:02 -06:00
homeassistant Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091) 2019-02-21 20:29:07 +01:00
script Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091) 2019-02-21 20:29:07 +01:00
tests Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091) 2019-02-21 20:29:07 +01:00
virtualization Set uvloop version consistent with hass.io (#21080) 2019-02-15 10:25:03 -08:00
.coveragerc Added device tracker support for Ubee Router (#19586) 2019-02-21 09:24:37 -08:00
.dockerignore Docker cleanup. (#8226) 2017-06-30 08:07:33 -07:00
.gitattributes Fix line endings [skipci] (#12333) 2018-02-11 23:07:28 -08:00
.gitignore Include Scripts/ directory to .gitignore - this is created by virtualenv on Windows (#18918) 2019-01-11 13:04:56 -08:00
.hound.yml Add .hound.yml 2016-11-13 11:34:09 -08:00
.ignore Include .ignore file for search utilities (#5290) 2017-01-16 22:52:53 -08:00
.readthedocs.yml Rename readthedocs file (#17718) 2018-10-23 17:39:17 +02:00
.travis.yml Try to fix coveralls unstable result (#15800) 2018-08-06 10:51:37 +02:00
CLA.md Update LICENSE.md and CLA.md to reflect the new Apache 2.0 license 2017-01-28 12:12:34 -08:00
CODEOWNERS Add self to integration sensor and utility_meter (#21226) 2019-02-20 08:34:10 +01:00
CODE_OF_CONDUCT.md Add organization docs 2017-01-22 16:21:20 -08:00
CONTRIBUTING.md Update developer doc links to developers.home-assistant.io (#16622) 2018-09-15 13:27:37 +02:00
Dockerfile Set uvloop version consistent with hass.io (#21080) 2019-02-15 10:25:03 -08:00
LICENSE.md Update license to official GitHub template (#16470) 2018-09-07 10:11:51 +02:00
MANIFEST.in Consolidate frontend (#9915) 2017-10-24 19:36:27 -07:00
README.rst Remove reviewed by hound. That's not worth a badge. 2018-12-18 11:06:30 +01:00
mypy.ini Disable assuming Optional type for values with None default (#16029) 2018-08-17 20:22:49 +02:00
pylintrc Add unnecessary-pass for pylint-update (#18985) 2018-12-04 10:45:16 +01:00
requirements_all.txt Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091) 2019-02-21 20:29:07 +01:00
requirements_docs.txt Add missing helpers (#21021) 2019-02-12 20:52:02 -06:00
requirements_test.txt Upgrade pytest to 4.2.1 (#21112) 2019-02-17 09:55:33 +01:00
requirements_test_all.txt Add support for automatic discovery of TP-Link switches, bulbs and dimmers (#18091) 2019-02-21 20:29:07 +01:00
setup.cfg Add Python 3.7 classifier (#16645) 2018-09-24 11:11:24 +02:00
setup.py Upgrade voluptuous-serialize to 2.1.0 (#21166) 2019-02-18 11:18:40 +01:00
tox.ini Add more type hints to helpers (#20811) 2019-02-07 13:34:14 -08:00

README.rst

Home Assistant |Build Status| |Coverage Status| |Chat Status|
=================================================================================

Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.

To get started:

.. code:: bash

    python3 -m pip install homeassistant
    hass --open-ui

Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://home-assistant.io/demo/>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation-2/>`__ and `documentation <https://home-assistant.io/docs/>`__.

|screenshot-states|

Featured integrations
---------------------

|screenshot-components|

The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/en/architecture_index.html>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/en/creating_component_index.html>`__.

If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

.. |Build Status| image:: https://travis-ci.org/home-assistant/home-assistant.svg?branch=master
   :target: https://travis-ci.org/home-assistant/home-assistant
.. |Coverage Status| image:: https://img.shields.io/coveralls/home-assistant/home-assistant.svg
   :target: https://coveralls.io/r/home-assistant/home-assistant?branch=master
.. |Chat Status| image:: https://img.shields.io/discord/330944238910963714.svg
   :target: https://discord.gg/c5DvZ4e
.. |screenshot-states| image:: https://raw.github.com/home-assistant/home-assistant/master/docs/screenshots.png
   :target: https://home-assistant.io/demo/
.. |screenshot-components| image:: https://raw.github.com/home-assistant/home-assistant/dev/docs/screenshot-components.png
   :target: https://home-assistant.io/components/