* initial version of geojson platform
* unit tests for geo json platform added; smaller bugfixes and code cleanups
* fixing pylint issues
* moved all code accessing the external feed into separate library; refactored platform and tests to work with that new library
* fixing lint
* small refactorings
* Refactored units and icons for the Dyson sensors
* Adapted unit tests to the new device names and unit of measurements
* Use None as empty unit of measurement
* Unrelated overall improvements following code review
* Adapted tests to new constructors as per previous commit
* Make sure the sensors have their `hass` attribute set in the test environment
* create binary sensor even if initial update fails
* fixed broken test assertion
* fixed broken test assertion
* avoid fetching resource twice - manually in the setup_platform and then through add_devices
* raising PlatformNotReady instead of creating the sensor if the initial rest call fails; throttling the update to avoid fetching the same resource again immediately after setting up sensor
* rolled back throttling of the rest update call; can still avoid updating the binary sensor's rest resoure twice; fixed tests
* typo
* switch.zha: Schedule state update.
if turning switch On or Off operation was successful, then schedule
state update
* switch.zha: Update debug logging.
* Added Logi Circle platform, camera and sensor
* Integrated with Logo Circle API’s feature detection to exclude sensors not supported by device. Added services for recording livestream and taking a snapshot from the livestream.
* Migrated livestream snapshot and recording functionality out of home assistant components and into the logi circle API wrapper. Added services.yaml entries for logi services.
* Added new Logi sensor types, updated to latest version of `logi_circle` and tidy up in preparation for pull request.
- Renamed `logi_set_mode` to `logi_set_config`.
- Live stream recording and snapshot methods now respect whitelisted path configuration.
- Added `streaming_mode` and `speaker_volume` sensors.
- Moved model-specific turn on/off logic to `logi_circle` library.
* Renamed `logi` component domain to `logi_circle`.
* Updates based on PR feedback
* Added timeout of 15s to logi_circle initial setup requests (login and grabbing cameras).
* Added unique ID (uses MAC address for camera platform, MAC address + sensor type for sensor platform).
* Added battery level and battery charging attributes to camera.
* Removed static attributes from device_state_attributes.
* Replaced STATE_UNKNOWN with None, replaced ‘on’ & ‘off’ with STATE_ON and STATE_OFF.
* Removed redundant SCAN_INTERVAL in sensor, removed redundant hass param from async_setup_platform in camera and sensor.
* Style tweaks.
* Replaced `asyncio.wait_for` with `async_timeout` to be consistent with other components.
* Add met.no weather component
* requirements .coveragerx
* use lib
* style
* style
* renam function to _fetch_data
* Only update once per hour
* style
* Sensor values to be updated only when required (only after the train has crossed).
Looking at the documentation on https://transport.opendata.ch/docs.html, delay information is available only on stationboard, so no need to query often if there is no "real"time info.
* Bumping up version of python_opendata_transport to 0.1.4 in order to catch client errors like throttling rejection (HTTP 429)
* pleasing the hound
* bumping python_opendata_transport to 0.1.4
* De-run_forever()-ization
* Use asyncio.run (or our own implementation on Python <3.7)
* hass.start is only used by tests
* setup_and_run_hass() is now async
* Add "main" async hass.run method
* move SIGINT handling to helpers/signal.py
* add flag to .run to disable hass's signal handlers
* Teach async_start and async_stop to not step on each other
(more than necessary)
* shorten over-long lines
* restore missing "import asyncio"
* move run_asyncio to homeassistant.util.async_
* LOGGER: warn => warning
* Add "force" flag to async_stop
only useful for testing
* Add 'attrs==18.2.0' to requirements_all.txt
Required for keeping requirements_test_all.txt in sync, where it is in
turn required to prevent auto-downgrading "attrs" during "pip install"
* Fixes for mypy
* Fix "mock_signal" fixture
* Revert mistaken edit
* Flake8 fixes
* mypy fixes
* pylint fix
* Revert adding attrs== to requirements_test*.txt
solved by using "pip -c"
* Rename "run" to "async_run", as per calling conventions
* Initial commit for jewish calendar sensor
* Make check for logging errors into it's own function
* Can't use f-strings as we need to support python3.5
* Implement basic functionality: printing of date
* Update requirements_all.txt
* Allow user to specify date for sensor
* Add hdate to test requirements
* Update to match pull request
* Support date output in hebrew
* Limit languages to english and hebrew
* Add name back to sensor
* Change icon to be calendar-today
* Add multiple sensors
* Fix tests
* Make Hound happy, remove unused imported class
* hdate expects datetime.date not datetime.datetime
* Return sensor name
* Times should be returned as time object, not datetime
* Add myself to codeowners for jewish calendar component
* Return actual reading, not index
* Add more tests. Currently failing.
Will need to update hdate API and version before continuing.
* Fix weekly portion test
* Make all tests pass
* Make travis happy and add a test so it doesnt happen again
* Remove defaults in __init__ method
* Change sensor state variable to local variable in update() method
* Minor changes
* Add endpoint entity
* Fix lint error
* Add nwk address as device state attribute
* Change to ZhaDeviceEntity
* Show last_seen only if offline
* Remove obsolete _discover_endpoint_info()
* Add bunch of RouterData tests
* Avoid raising AttributeError from RouterData.__getitem__
* Use new style string formatting
* Use {key: value} instead of dict(key=value)
* Migrating out the zoneminder platform (and camera.zoneminder) to a new library
* Clean up the global variable ZM usage
* Modify camera.zoneminder to use the new Monitor class implementation
* Refactor camera.zoneminder after latest refactor in zm-py
* Implementing changes to switch.zoneminder to use zm-py native methods
* Complete migrating over sensor.zoneminder to the zm-py library
* Tweaking ZoneMinder components from code review
* Linting fixes for the zoneminder components
* Directly assign value when turning on/off in switch.zoneminder
* Changing z-wave brightness calculation to respect 0x01 and 0x02 byte
values
* adding additional line breaks to satisfy houndci
* - Update comment style for linter
- Add additional unit test to increase code coverage
* Update zwave.py
* Added support for multiple tag managers. Fixed typo for signal strength.
* Corrected broken merge.
* Fixed flake8/pylint error.
* Improved docstring.
* Allow only_cache parameter in zha.safe_read()
* Use cache_only for binary_sensor.zha initial update.
* Use cache_only for fan.zha initial update.
* Use cache_only for sensor.zha initial update.
* Use cache_only for switch.zha initial update.
* Use cache_only for light.zha initial update.
* Refactor cached only read in zha platform.
* Add zha.configure_reporting() method.
Binds a cluster and configures reporting for the specified attribute.
* git add homeassistant/components/binary_sensor/zha.py
* Refactor sensor.zha to use new 'configure_reporting() method.
* Zha configure reporting - switch (#1)
* use configure_reporting for zha switch
* lint fixes
* Rename variables/classes to properly reflect the content
* add 'default_conversations' parameter
* remove the empty message segment at the end of every message
* add 'HangoutsHelp' intent
* add hangouts/intents.py
* increasing python-websockets' version number so now it works with python 3.7
* required version for websockets increased to work with Python 3.7
* script/gen_requirements_all.py is done
* Update fan.zha platform.
switch from asyncio to async def()
catch DeliveryError exceptions
keep previous state, if reading 'fan_mode' attribute fails
* fan.zha: Use None for unknown state.
if we fail to read 'fan_mode' attribute, use None for state
* Allow create refresh_token with specific access_token_expiration
* Add token_type, client_name and client_icon
* Add unit test
* Add websocket API to create long-lived access token
* Allow URL use as client_id for long-lived access token
* Remove mutate_refresh_token method
* Use client name as id for long_lived_access_token type refresh token
* Minor change
* Do not allow duplicate client name
* Update docstring
* Remove unnecessary `list`
* Use access_token and user provided token instead of api_password
* address comments by @awarecan
* new tests
* add extra checks and test
* lint
* add comment
* Don't treat typing as an "in-between" module for import order
That was a < 3.5 era thing.
* Tighten scope of some pylint unused-import disables
To avoid isort moving a top level one around, undesirably broadening its
scope.
* Fix support for Hub version 1 (i.e. pre-2014 Hub model 2242)
* Bump insteonplm to 0.14.1
* Code review changes
* Clean up and better document set_default_port
* Simplify set_default_port based on code review
* Remove Callable type import
* Simplify port setup
fixed get_camera_type as it was originally not consuming any input, was looping with all cameras and the first camera type was retutned, modified to call cameraType using provided camera name.
* always export max_age/min_age
* downgrade errors of missing data
on start with empty recorder database these errors are logged multiple times:
ERROR (MainThread) [homeassistant.components.sensor.statistics] mean requires at least one data point
ERROR (MainThread) [homeassistant.components.sensor.statistics] variance requires at least two data points
downgrade them to debug as they are not meaningful to end users
* add change_rate attribute
this calculates the average change rate of all data points
* simplify count, reorder attribute calculation
* reorder initialization
* reorder attribute names
* don't use min/max for min_age/max_age
* add test case
* style
* style
* sort constants
* init variables with None
* add precision config setting
* round to precision
* test round
* Initial OpenTherm Gateway support.
* Fix coveragerc and requirements_all*.txt
Overall cleanup and polishing
* Make hound/flake/travis happy
* Basic improvements to comply with Home Assistant's style guidelines
Changed wording from "component" to more appropriate terms where necessary
Fixed small mistakes that snuck in during testing and/or due to my own ignorance ;)
* Fixed overwriting state property
* Fixed a bug with ROOM_SETPOINT_OVRD
Updated dependency pyotgw to latest version
* Remove unit_of_measurement from OpenThermGateway class
* Cleanup after previous commits
* Moved initialisation and configuration from async_setup_platform to async_added_to_hass
* Make travis happy
* Disable polling for this platform
Improve update flow
* Small improvements/optimisations
the two device_state_attributes don't return the current actual state (fan on/off, heat/cool), but rather the mode of the fan or thermostat (generally auto). As such this change makes the actual current state visible to the system, so you can do stuff when the fan turns on, for example. I suspect this is just a bug, but maybe it was intended NOT to be able to see the actual fan state?
* Add Smart Alarm Component
* Lint fixes
* Update coverage
* Update coverage with the correct file name
* PR Fixes. Update client version (to include timeouts). Cleaned up clien tcreation and improved authentication failure error. Added state map to replace nasty if blocks.
* PR Fixes. Update client version (to include timeouts). Cleaned up clien tcreation and improved authentication failure error. Added state map to replace nasty if blocks.
* Remove test file added in error.
* PR Fixes
* code not working
* did it all all at once
* removing debug stuff
* fixing lint issues
* fixing lint issues
* I am blind
* I felt small(80 by somthing) was to small, especily with lovelace
* fixing silly mistake
* this shouldnt be here
* made some changes
* corrrected client_id
* corrrected client_id
* less returns needed
* Fixing Small bugs and making stuff snake case
* Tweaking
* Added error handling for sense API timeouts
* Moved imports in function
* Moved imports to more appropriate function
* Change exception to custom package version
* Updated sense_energy library to 0.4.2
* fixed median was based on 1.5 minute interval, not 1 hour
* ignore median and set state from first value, when previous state was None
* update before add, removed unused 'retries' and 'ble_timeout', check if platform ready
* added missing blank line
* fixed too long line
* using modern python 3.5 features, changed comment to be less verbose
* continuation line fix
* removed DEFAULT_SCAN_INTERVAL in favor of existing SCAN_INTERVAL
* implement correct state for rflink cover
* Fix linting error
* invert logic as local testing pointed out it should be reversed
* add period at the end to satisfy the linter
* New service to load new devices from deCONZ without restarting HASS
* Do not use len to check if list is empty
* Add support for scenes to be updated as well
* Rework refresh devices method
* Fix test
* Test
* Ability to remove device
* Don't remove devices, instead remove config entry from device and entity registries
* Remove print
* Remove is not the same as unload
* Add tests
* Fix hound comment
* Add support for older Envoy models
* Stop requiring envoy model name in config
* Update to envoy_reader0.2
* Minor formatting fixes
* run script/gen_requirements_all.py
* Minor formatting fixes
* Change some strings to constants, use getattr to call function
The last_seen attribute was a datetime in the local timezone but with
no tzinfo (i.e., a "naive" datetime.) When state changes occurred it
would be printed incorrectly in homeassistant.log because
homeassistant.util.dt.as_local assumes any datetime without tzinfo is
UTC. Also most, if not all, datetime attributes are timezone aware in
UTC. So use homeassistant.util.dt.as_utc (which assumes a naive
datetime is local) to convert last_seen to a timezone aware datetime
in UTC.
A recent change caused an issue if a single static wemo device is offline and could not be reached, then the whole component would not initialize (and therefore all other wemo devices are not added).
* initial working version of a geo location component and georss platform
* ensure that custom attributes don't override built-in ones
* bugfixes and tests
* fixing tests because of introduction of new component using same fixture
* improving test cases
* removing potentially unavailable attribute from debug message output
* completing test suite
* cleaning up debug messages; sorting entries in group view by distance
* ability to define the desired state attribute and corresponding unit of measurement; sort devices in group by configured state; find centroid for map if event is defined by polygon; updated tests
* sort entries in group; code clean-ups
* fixing indentation
* added requirements of new component and platform
* fixed various lint issues
* fixed more lint issues
* introducing demo geo location platform; refactored geo location component and geo rss platform to fit
* removing geo rss events platform; added unit tests for geo location platform and demo platform
* reverting change in debug message for feedreader to avoid confusion with new geo location component
* updated requirements after removing georss platform
* removed unused imports
* fixing a lint issue and a test case
* simplifying component code; moving code into demo platform; fixing tests
* removed grouping from demo platform; small refactorings
* automating the entity id generation (the use of an entity namespace achieves the same thing)
* undoing changes made for the georss platform
* simplified test cases
* small tweaks to test case
* rounding all state attribute values
* fixing lint; removing distance from state attributes
* fixed test
* renamed add_devices to add_entities; tweaked test to gain more control over the timed update in the demo platform
* reusing utcnow variable instead of patched method
* fixed test by avoiding to make assumptions about order of list of entity ids
* adding test for the geo location event class
* Added support for Habitica
Second refactoring
Moved all config to component.
Sensors are autodiscovered.
Signed-off-by: delphi <cpp.create@gmail.com>
* Apply requested changes
Signed-off-by: delphi <cpp.create@gmail.com>
* Made event fire async. Made `sensors` config implicit and opt-out-style.
Signed-off-by: delphi <cpp.create@gmail.com>
* Removed unneeded check and await.
Signed-off-by: delphi <cpp.create@gmail.com>
* Moved into separate component package and added service.yaml
Signed-off-by: delphi <cpp.create@gmail.com>
* Fix coveralls
Signed-off-by: delphi <cpp.create@gmail.com>