* initial commit
Previous work included with no history. Sorry, I was figuring out how to use git, branches and deal with open source projects. At this point this is a working switch but with the shortcomings of each of the 8 ports causes a network query. This needs to be rewritten so that the SwitchDevice is part of a larger device group that is only queried once, saving traffic and preventing the small device from timing out.
* Device polls independent of switches now
Used anel_pwrctrl.py as a basis to extract the per-switch polling out to per-device so it can be trottled properly. Likewise, no longer touching the device independently for relay status AND relay name. Getting them both from the same statuslist() return.
* Final comments and tweaks
Lowered cycle and update time since the device update is working so well now. Effectively no timeouts anymore.
* Added dlipower to requirements
homeassistant.components.switch.digitalloggers
* Tox fixes
pydocstyle updates
* More tox errors
* Yet more tox
Removed useful future TODO and helpful details on the structure of the statuslocal list.
Good catch on not initializing .update(), though it worked.
* Blank line fix
* Added file to .coveragerc
* 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
* 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
* 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.
* 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
* 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.
* 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
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.
* 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
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).