* 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