The DTE Energy Bridge seems to return the current energy
usage randomly in either W or kW. The only way to tell the difference
is if there is a decimal or not in the result.
Also added some tests.
* rename xiaomi to xiaomi_aqara
* rename xiaomi vacuum and xiaomi phillips light to xiaomi miio
* update discovery and tests
* style
* update discovery and tests
* Still use Philips as name
* Adds the AirVisual air quality sensor platform
* Updated .coveragerc
* Removed some un-needed code
* Adding strangely-necessary pylint disable
* Removing a Python3.5-specific dict combiner method
* Restarting stuck coverage test
* Added units to AQI sensor (to get nice graph)
* Making collaborator-requested changes
* Removing unnecessary parameter from data object
* First draft of XKNX module for Home-Assistant
* XKNX does now take path of xknx.yaml as parameter
* small fix, telegram_received_callback has different signature
* changed method of registering callbacks of devices
* removed non async command lines from xknx
* telegram_received_cb not needed within HASS module
* updated requirements
* Configuration if XKNX should connect via Routing or Tunneling
* bumping version to 0.6.1
* small fix within xknx plugin
* bumped version
* XKNX-Switches are now BinarySensors and Logic from Sensor was moved to BinarySensor
* renamed Outlet to Switch
* pylint
* configuration of KNX lights via HASS config, yay!
* changed name of attribute
* Added configuration for xknx to switch component
* added support for sensors within hass configuration
* added support for climate within hass configuration
* Thermostat -> Climate
* added configuration support for binary_sensors
* renamed Shutter to Cover
* added configuration support for cover
* restructured file structure according to HASS requirements
* pylint
* pylint
* pylint
* pylint
* pylint
* pylint
* updated version
* pylint
* pylint
* pylint
* added setpoint support for climate devices
* devices are now in a different module
* more asyncio :-)
* pydocstyle
* pydocstyle
* added actions to binary_sensor
* allow more than one automation
* readded requirement
* Modifications suggested by hound
* Modifications suggested by hound
* Modifications suggested by hound
* Modifications suggested by hound
* xknx now imported as local import
* hound *sigh*
* lint
* 'fixed' coverage.
* next try for getting gen_requirements_all.py working
* removed blank line
* XKNX 0.7.1 with logging functionality, replaced some print() calls with _LOGGER
* updated requirements_all.txt
* Fixes issue https://github.com/XKNX/xknx/issues/51
* https://github.com/XKNX/xknx/issues/52 added raw access to KNX bus from HASS component.
* bumped version - 0.7.3 contains some bugfixes
* bumped version - 0.7.3 contains some bugfixes
* setting setpoint within climate device has to be async
* bumped version to 0.7.4
* bumped version
* https://github.com/XKNX/xknx/issues/48 Adding HVAC support.
* pylint suggestions
* Made target temperature and set point required attributes
* renamed value_type to type within sensor configuration
* Issue https://github.com/XKNX/xknx/issues/52 : added filter functionality for not flooding the event bus.
* suggestions by pylint
* Added notify support for knx platform.
* logging error if discovery_info is None.
* review suggestions by @armills
* line too long
* Using discovery_info to notifiy component which devices should be added.
* moved XKNX automation to main level.
* renamed xknx component to knx.
* reverted change within .coveragerc
* changed dependency
* updated docstrings.
* updated version of xknx within requirements_all.txt
* moved requirement to correct position
* renamed configuration attribute
* added @callback-decorator and async_prefix.
* added @callback decorator and async_ prefix to register_callbacks functions
* fixed typo
* pylint suggestions
* added angle position and invert_position and invert_angle to cover.knx
* typo
* bumped version within requirements_all.txt
* bumped version
* Added support for HVAC controller status
* Add Tank Utility sensor
* Fix, disable Pylint errors
* Move coverage omission to single platform section
* Do not catch unknown exceptions
* Check for invalid credentials in setup
* Update tank_utility.py
* - Fixes Fitbit error when trying to refresh oauth token
The 3rd python-fitbit module requires an extra kwarg on the FitBit
constructor called refresh_cb. The value should be a function that
accepts one argument token.
This value will be a dictionary with the keys:
'access_token', 'refresh_token', 'expires_at'
This implements a lambda refresh_cb as required by the Fitbit module
to work, however the new token will always be save manually on
every update() call.
* Simplified by calling expires_at instead reading again from dict
* Prevent error when no forecast data was available
Prevent an Error when buienradar data was available, but no forecasted data was retrieved for the requested day.
* Update buienradar.py
* Update buienradar.py
* Refactor mysensors callback and add validation
* Add mysensors entity class. The mysensors entity class inherits from
a more general mysensors device class.
* Extract mysensors name function.
* Add setup_mysensors_platform for mysensors platforms.
* Add mysensors const schemas.
* Update mysensors callback and add child validation.
* Remove gateway wrapper class.
* Add better logging for mysensors callback.
* Add discover_persistent_devices function.
* Remove discovery in mysensors component setup.
* Clean up gateway storage in hass.data.
* Update all mysensors platforms.
* Add repr for MySensorsNotificationDevice.
* Fix bug in mysensors climate target temperatures.
* Clean up platforms. Child validation simplifies assumptions in
platforms.
* Remove not needed try except statements. All messages are validated
already in pymysensors.
* Clean up logging.
* Add timer debug logging if callback is slow.
* Upgrade pymysensors to 0.11.0.
* Make dispatch callback async
* Pass tuple device_args and optional add_devices
* Also return new_devices as list instead of dictionary.
* Update fitbit.py
Add variable icon for battery status, clean up formatting for resource
names and values
* Update fitbit.py and requirements_all.txt
Fix PR comments and update client
* Update fitbit.py
Add dict map for battery levels and use icon util
* Update ios.py
Clean up battery and charging icons (MDI was missing some versions),
fix minor bug when battery level = 95%
* Update ios.py
Migrated function to battery icon util
* Inital USPS Camera expansion
* Cleanup debugging, add camera change interval
* Change to local nomail image
* Explicitly pass in date
* Move camera date info to model property
* Fix copy typo
* Fix hound line-length
* Fix lint whitespace
* Fix requirements
* Bump myusps version, clarify interval, alter update scheme
* Add units
* Code cleanup, address comments
* Use built-in scan interval, remove nomail image
* Remove logging line
* Add support for Automatic OAuth2 authentication
* Fix async conversion of configurator
* Rename method for async
* Use hass.components to get configurator component
* Fix typo
* Move session data to hidden directory
* Make configurator callback optional
* Fixed cert_expiry sensor to delay firing on HA startup
* Addressed Travis complaints
* Added imports
* Fixed cert_expiry sensor to delay firing on HA startup
* Changed comment
* Added possibilities to use template in the command_line sensor
* Minor style guideline conforms
* Minor style guideline conforms
* Added new test for template rendering
* Minor style guideline conforms
* Minor style guideline conforms
* Fixed failing testcases
* Fix style violations
* fix code pretty
* Fixed issue with routers in bridge mode
- Router in brdige mode apparently don't report all of the stats
- Re-wrote the data_format function so it's a bit easier to follow and able to log keys that aren't supported by a router in a given mode
- Changed config so that it properly ignores conditions when not explicitly listed
- Added tests to check for the above and also to verify we log that a key doesn't exist rather than throwing an exception
* Mistakenly was calling MONITORED_CONDITIONS in data_format
- Changed to be the actual config values to prevent log error
* The gateway configuration accepts a MAC address or a SID value in uppercase already.
The ringtone services accepts the same values now. I hope it will avoid confusion.
* Device support for the new wall switches with neutral lead (ctrl_ln1, ctrl_ln2) added.
* Measurement unit from pressure of weather.v1 fixed.
* Device support for sensor_magnet.aq2 added.
* Device support for sensor_motion.aq2 (motion and lux) added.
* Code reformatted.
* The ringtone service (start/stop) uses the parameter gw_mac instead of gw_sid now.
* Version of the required library updated.
* Initial support for Google Wifi/OnHub
* Moved state logic to update function of API class
- Throttle added to update
- State logic implementation is cleaner
- Modified tests to work with the new throttle on update
The citibykes API returns "null" as value for empty_slots on some
stations (see #8527). This causes the component to not process the data.
This is fixed by accepting None as valid data. The row in the frontend
is left empty if "null" was returned by the service.
fixes#8527
* Added support for temperature_offset and humidity_offset
Some DHT sensors require some offsets to work.
* Support for temperature and humidity offset
* Changed lines with 79 characters
* Moved const to dht.py from const.py
* Changed temperature_offset range
* Removed the const
const.py is at original state.
* Fixed continuation line under-indented
* Removed first round and added debug info
* Refactored Amcrest to use central hub component
* Set default streaming source to snapshot
* Simplified code by using discovery platforms
* Makes lint happy
* Update authentication method to basic
* Fixed lint issues
* Makes Amcrest hub async
* Make Amcrest hub IO synchronous and disabled ffmpeg dependency on sensor/amcrest.
* Removed async to load component
* Organized import order
* Update amcrest.py
bellows 0.3.0 changes the API to have both, renaming the attribute which used
to be for input clusters in the process.
This is in preparation for remotes.
* Fixed a bug where changing fan speed was not possible
* Bump pymodbus version to 1.3.1 to fix issue #8285
* Changed all modbus components so that they use CONF_SLAVE from const.py
* Fix checking result from a modbus transaction
* Add missing decorator
* Added modbus write coil service and added descriptions
* Removed a hiding debug print
* Initial commit - new CityBikes platform
* Several syntax fixes.
* Added imperial unit support.
* Added station list lenght validation.
* Style fixes.
* Updated requirements.
* Updated .coveragerc.
* Fixed style problems according to pylint output.
* Updated SCAN_INTERVAL value.
* Fixed station names.
Removed unnecessary calls to `slugify`.
Changed the base name to reflect the name of the bike sharing
network, instead of the more generic `citybikes`.
* Small style fix.
* Use async version of python-citybikes
* Made platform setup async.
* Made some more things async.
* Switched to constants.
* WIP: different approach to async.
* Removed python-citybikes depnedency to fix async issues.
* Removed unnecessary hidden property.
* Style fixes.
* Retry network detection.
* Style fixes, and base name usage.
* Fixes according to comments.
* Use cv.latitude instead of coercing to float.
* Updated requirements.
* Several fixes and improvements.
* Started using PlatformNotReady exception.
* Cached the networks list result to avoid unnecessary API requests.
* Switched the asyncio.timeout to use a constant.
* Refactored CityBikes API requests into a separate function
* Fixed linting errors.
* Removed unnecessary requirement.
* Fixed a bug where changing fan speed was not possible
* Bump pymodbus version to 1.3.1 to fix issue #8285
* Changed all modbus components so that they use CONF_SLAVE from const.py
* Add tube_state
Add tube_state sensor
* Final cleanup
* Make corrections
Correct PLATFORM_SCHEMA
* Fix space
* Make test pass
* Correct format of test
Test still failing, don’t understand why
* correct description
* Make test pass
Preferred method below returns None
state = self.hass.states.get('sensor.london_overground')
* Format for hound
* indent
* Make requested changes to test, not working
Test fails with:
AssertionError: assert 0 > 0
where 0 = len([])
Surely I need tube_state.setup_platform ?
* Fixed test
Config was wrong
* Change component name to london_tube
* Update name to london_underground
Make consistent
* cleanup
* Comfoconnect fan component.
* Fix linter. Don't store hass object when not needed.
* More code style.
* Rebase to dev and add to coverage ignore list.
* Use published package from pypi.
* add percentage (DPT_Scaling) KNX sensors
1. moved basic functionality to KNXSensorBaseClass instead of
KNXSensorFloatClass
2. added "if" clause in setup for a "percentage" sensor type and added KNXSensorDPTScalingClass
* support-knx-percentage-sensor: lint correction
Updated convert method base sensor class to avoid lint warning
(R201 - Method could be a function)
* added PLATFORM_SCHEMA for configuration
1. added SCHEMA extension for defined keywords
2. moved fixed data for internal settings out of sensor logic
3. moved everything into standard KNXSensor object
4. added parsing of extra config parameters in __init__
* correct lint errors on support-knx-percentage-sensor
* Open Hardware Monitor sensor
Platform which is able to connect to the JSON API of Open Hardware Monitor and adds sensors for the devices.
* Remove copyright in header, not needed.
* - Removed old code
- Fixed typo’s in comments
- Removed log spamming
- Removed code that was unnecessary
- Use requests instead of urllib
- Moved sensor update functionality to data handler, to remove unwanted constructor parameters
* Fixed typo in comment
Added tests
* Added default fixture, to stabilize tests
* - Fix for values deeper than 4 levels, no longer relies on fixed level
- Fixed tests
* Removed timer in preference of helper methods
* Moved update functionality back to Entity….
Updated SCAN INTERVAL
* Added timeout to request
Removed retry when Open Hardware Monitor API is not reachable
Fixed naming of sensors
Flow optimalisations
Fixed tests to use states
* Remove unused import
* make port mapping optional
* dependencies + improvements
* Added bytes and packets sensors from IGD
* flake8 check
* new sensor with upnp counters
* checks
* whitespaces in blank line
* requirements update
* added sensor.upnp to .coveragerc
* downgrade miniupnpc
Latest version of miniupnpc is 2.0, but pypi only has 1.9
Fortunately it is enough
* revert to non async
miniupnpc will do network calls, so this component can’t be moved to
coroutine
* hof hof
forgot to remove import ot asyncio
This will allow for dynamically updating weather states, for instance if
you wanted to use the latitude and longitude of a phone or other device
to get the weather for your current location.
* Fixed the Wind sensor following new release of netatmo-api-python
The NetAtmo PR was at:
https://github.com/jabesq/netatmo-api-python/pull/5
Essentially, this commit adds a protection when adding an incorrect
monitored conditions to avoid to fail the entire NetAtmo component,
plus for consistency reasons all conditions are now in lower case.
* Fixes following the CI tests
* Added buienradar sensor and weather
* used external library for parsing
* used external library for parsing
* updated buienradar lib to 0.4
* Make sure you import 3rd party libraries inside methods.
* Make sure you import 3rd party libraries inside methods.
* clean up code; optimized
* imports, sensor name and attributes
* updated requirements to match imports
* use asyncio for http get
* Revert "Update to dsmr_parser supporting v5 arguments."
This reverts commit 3567de4b90.
* Revert "Using dev branch until released upstream."
This reverts commit 53e8de112c.
* Revert "Give good example."
This reverts commit 4f90fc4be6.
* Revert "Allow configuring DSMR5 protocol."
This reverts commit 9fa0e14187.
* Introduced support to Netgear Arlo Cameras
* Using async_setup_platform() and applied other changes
* Removed unecessary variables
* Using asyncio for sensor/arlo
* Update arlo.py
* Removed entity_namespace
* Remove setting up an hbmqtt broker
* Don't pass loop to web.Application in tests
* Use .query instead of deprecated .GET for aiohttp requests
* Fix closing file resource
* Do not use asyncio mark
* Notify.html5 - PyJWT: Use options to disable verify
* Yamaha: Test was still using deprecated ip
* Remove pytest-asyncio
* Redesign monitored variables
Allow generating specific sensors without the need for template sensors
* Import 3rd party library inside update method
* Remove jsonpath_rw dependency
* Do not interfere with value_template or ilo_data output
Do not interfere with value_template or ilo_data output, this is now the responsibility of the user and should be handled in `configuration.yaml`
Fix UnusedImportStatement
Fix newline after function docstring
* Always output results to state
* Implemented ffmpeg option on Amcrest camera and upgraded to version 1.2.0
* Added ffmpeg arguments and binary options to Amcrest camera
* Added ffmpeg as dependencies
* Makes lint happy and fixed requirements_all.txt
* Inherent the ffmpeg.binary configuration from ffmpeg component
* Update amcrest.py
Bumped blink version to support automatic reauthorization when tokens expire. Changed the battery sensor call to a string version so that the battery reports back "Low" or "OK" rather than a cryptic integer
* Refactor sun component for correctness
* Convert datetimes to dates for astral
* Fix tests for updated code
* Fix times now that calcs are fixed
* Move sun functions to helpers
* Fix flake on new file
* Additional tweaks from review
* Update requirements
* Add support for Zigbee Home Automation
* Fewer magic numbers
* Make optional device config work
* Remove non-zha device_tracker stuff
* Always return boolean from is_on
* Only pass through JSON serializable discovery_info
* Update to bellows 0.2.4
* Fewer magic numbers in binary sensor
* Populate const structures from a function
* Update bellows to 0.2.6
* Fewer magic numbers in light
* Take all possible clusters when overriding
* Update bellows to 0.2.7
* Added the pushbullet sensor component
* Updated requirements_all.txt and .coveragerc with the new sensor
* Updated acording to houndci-bots comments
* Some more changes
* Final change by the hound (?)
* Fixes from balloobs review and from houndci-bot
This changes the sensors information to only contain one attribute
as information, and the rest as device_state_attributes.
* Added leading space to comments
* Added docstrings, removed API_KEY from log, changed imports
* The hound is at it again
* Fix remaining issues
* Fix pylint issue
The arwn platform was refactored to be asyncio friendly, however in
doing so one thing was missed which was explicitly telling hass when
something interesting has happened. This led to the very interesting
to debug issue that the state cards were all out of date, even though
the graphs were not.
* Update ios.py
as discussed. the part:
if battery_state == ios.ATTR_BATTERY_STATE_FULL:
returning_icon_level = DEFAULT_ICON_LEVEL
kinda screws up the charging icon.
i might just miss a logical solution for that though.
let me know what you think. it might not be beautiful but i think its an overall improve over the current "double battery" solution
* Update ios.py
chound fix and full_battery_charge fix
* Update ios.py
removed new line
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* merged request from robbie
* Update ios.py
* Update ios.py
* Update ios.py
* Refactored mvglive.py
This pull requests builds on the first work with the mvglive sensor:
- Refactoring the code so that multiple sensors for departures can be added
- Rewrites the transport mode restrictions ("products") to be more modular
- Fixes bugs, such as missing implementation of line restriction
- Other improvements, such as including data attribution
* Further improvements to mvglive sensor
- The API returns the property 'direction', which can be used to filter U-Bahn trains by direction without having to enter all final destinations
- The sensor icon now corresponds to the mode of transport of the next departure
* UBahnDirection refactored
U-Bahn SEV (bus replacement services) have unexpected direction values, fixed resulting bug and hound issues
* Value of 0 should not be considered `unknown`.
* Reflect disconnect state in entity states.
* Due to adding unknown state on disconnect, the amount of reconnects can sometimes be more. Test for at least 2 reconnect attempts.