* Add support for providing color_name which accepts a CSS3 valid, human readable string such as red or blue
* Forgot the schema validation!
* ugh farcy
* use html5_parse_legacy_color for more input options
* Add webcolors==1.5 to setup.py
* Block pylint no-member errors on tuple
* add color_name_to_rgb test
* whoops
* revert changes to individual platforms
* If color_name is set, pop it off params and set rgb_color with it
* Forgot to reset wink.py
* Import the legacy function as color_name_to_rgb directly
* reset test_color.py
* Improve light services.yaml
Sonos players can be dynamically set in various modes, for example
as TV players or Line-IN or straming from radios channels, therefore
some methods could not be available, and when invoked they cause
long exceptions to be logged. This partially solves the problem
reducing the output and logging some more informative error message
* AWS SNS notify platform
* Attach kwargs as MessageAttributes
* Initial pass of AWS SQS platform
* Add Lambda notify platform
* Remove unused import
* Change single quotes to double quotes because I am crazy
* Forgot to run pydocstyle
* Improve context support for Lambda
* compress the message_attributes logic
* Added GPM Desktop Plaeyr component
* Updated requirements_all.txt
* Pylint fix
* Updated GPMDP.py to include @balloob's comments
* Updated to work with the latest version of GPMDP
* Removed setting "self._ws.recv()" as a variable
* Made line 52 shorter
* Updated to check weather it is connected or not
* Pylint and @balloob fixes
* Updated with simplified code and pylint fix
* Made `json.loads` shorter
* Pylint fix
* Update google_travel_time.py
* Update google_travel_time.py
* pylint: disable=too-many-instance-attributes
* Add the mode to the title of the sensor
* Expose the travel mode on the sensor attributes
* Big improvements to the Google Travel Time sensor. Allow passing any options that Google supports in the options dict of your configuration. Deprecate travel_mode. Change name format to show the mode
* fu farcy
* Dynamically convert departure and arrival times
* Add a warning if user provides both departure and arrival times
* Add deprecation warning for travel_mode outside options and other minor fixes
* Use a copy of options dict to not overwrite the departure/arrival times constantly.
* Remove default travel_mode, but set default options.mode to driving
* Google doesnt let us query time in the past, so if the date we generate from a time string is in the past, add 1 day
* spacing fix
* Add config validation for all possible parameters
* flake8 and pylint fixes
* Added QwikSwitch platform
farcy - worst than my english teacher
* Clean up comments
* Import only inside functions
* Moved imports, no global var, load_platform
* add_device reworked
* Only serializable content on bus
* Fixed imports & removed some logging
* Bring back the functionality that was removed in PR 1717. This includes the speedtest service and the ability to define the scan times in the configuration file. Restore default functionality of 1 scan per hour on the hour.
* remove unnecessary code.
* Allow /api/ and /api/config to be accessed without auth. If config is accessed without auth, only show minimal information. Also improves comments
* Re-enable auth on /api/ since a lot of tests get broken if it does not require auth
* Move the discovery info from /api/config to /api/discovery_info
* Flake8 fixes
"unix" timestamp is number of seconds since Jan 1, 1970 UTC.
This allows scripts that use templates to generate time
deltas in seconds if desired from state attributes such
as last_updated.
Some examples:
timestamp now is
{{ as_timestamp(now) }}
timstamp of last change is
{{ as_timestamp(states.binary_sensor.garage_door.last_changed) }}
seconds since last change is
{{ as_timestamp(now) - as_timestamp(states.binary_sensor.garage_door.last_changed) }}
* process only last 20 available entries to avoid bombing event
bus when parsing huge feeds
* trigger first update only when HA has completed startup,
allowing components to complete subscriptions to feedreader
events
* quote url in logs for better readability
* Made changes so that the mqtt configuration can accept client keys and certs for auth.
* Need to figure out how the broker_config works, it's failing tests
* Fixed it so all tests passed and ssl feature works for all brokers
which are't embedded
* Bring into line with pep8
* Added config validation which has allowed me to make the code simpler
* Add MySensorsDeviceEntity class to hold the common attributes,
properties and methods for mysensors entities.
* Inherit from MySensorsDeviceEntity class in binary_sensor, light,
sensor and switch mysensors platforms.
* Remove not needed attribute and method for const in GatewayWrapper
class. The const attribute is already set in the wrapped object.
* Clean up state property for mysensors sensor entities.
* Inherit from MySensorsLightRGB in MySensorsLightRGBW class.
* Remove use of get_component in mysensors component and platforms.
* Clean up update method in MySensorsDeviceEntity class.
* bugfix: ignore not existing property in feedreader item
* add info and debug data
* split logic in smaller and hopefully easier to understand functions
Fix test to prevent early exit of mqtt init handler when
both embedded and broker configs are present.
Signed-off-by: Gwendal Grignou <gwendal@gmail.com>
Change the zwave config default path to be valid in all but rare
edge cases. This will let that config value be truely optional.
Also check that libopenzwave is installed and print a warrning if
it cannot be found pointing at the site.
* initial support for generic 433mhz gpio adapters
* rpi-rf: refactor id_on/id_off to code_on/code_off
fits the purpose better and improves understanding
* rpi-rf: use v0.9.4
* rpi-rf: update features and dependencies to v0.9.5
includes the ability to optionally specify a protocol for each switch
* rpi-rf: remove explicit RPi.GPIO dependency
already a dependency of the rpi-rf module
* rpi-rf: make setting gpio, code_on and code_off mandatory
* rpi-rf: remove unused value_template
* rpi-rf: only enable TX once if there are switches
Prevented a switch from being turned on twice.
Made the module regex more robust.
Refactored the code to reduce the amount of network traffic to/from pulseaudio.
Fixed pylint issues
* Bump version of pymysensors to 0.6, which includes the tcp gateway.
* Update requirements_all.txt.
* Replace CONF_PORT with CONF_DEVICE and ATTR_PORT with ATTR_DEVICE.
* Add tcp_port in config.
* Try to guess if tcp or serial gateway is configured, by validating
device name as an ip address. If successful setup tcp gateway, if it
fails, setup serial gateway.
* Update device_state_attributes to show correct device, ethernet or
serial.
* set name to hyperion assets
by specifying the name in the configuration:
light kodi_xxx:
name: "Kodi XXX"
platform: hyperion
host: 192.168.1.222
port: 19444
* Update hyperion.py
fix extra space
This tracker discovers new devices on boot and tracks bluetooth devices
periodically based on interval_seconds value. Devices discovered are
stored with 'BT_' as the prefix for device mac.
Requires PyBluez
* Initial Support for EQ3 Bluetooth Smart Radiator Thermostats
* tox runs successfully
* Moved device specific stuff to bluepy_devices library
* lint fix
Some Sonos devices (e.g SUB) does not have
a upnp media renderer, but are discovered as sonos
devices. Creating a SonosDevice object from such a
device will fail.
When a sonos player goes offline an endless stream of
exceptions is raised. That happens because homeassistant keeps trying
to refresh its status.
This can happen even when a sonos player has gone offline **before**
homeassistant is started. The sonos players take some time before
realizing one of their mates is no longer online, leading to the same
stream of exceptions inside of homeassistant.
Three types of exceptions of can be raised:
- `requests.packages.urllib3.exceptions.MaxRetryError`
- `requests.packages.urllib3.exceptions.NewConnectionError`
- `TimeoutError`
It's not possible to handle all of them with a single `except` block
because they are raised in a random order and after some delays. That
means a 2nd or 3rd exception can take place while handling the 1st one.
The only solution is to check whether a a player is actually reachable
by attempting to connect to a service that must be running on it.
Also all the players in a 'unknown' state should not be polled by
homeassistant (despite of their brand).
I'm going to upstream the `_is_reachable` method I added to the
`sonos.py` file into `SoCo`. In the meantime we must ship this piece
of code with homeassistant.
Signed-off-by: Flavio Castelli <fcastelli@suse.com>
* SCSGATE: Actually cycle through all devices to register
Modify _activate_next_device function to actually cycle through self-devices_to_register instead of simply checking whether there are any and onl registering one
* Deleted extra white lines
* Add STATE_UNAVAILABLE to states that are ignored when writing to the
database. This will avoid a field type error for string if the field
already contains a different type, eg integer.
* Add test for ignored states for influxdb.
* Clean up influxdb tests.
CONF_PURGE_DAYS so it can be changed easier later.
Use 'recorder' domain instead of 'history' domain.
Pass purge_days config directly into Recorder object instead of passing
the config object around.
Issue https://github.com/balloob/home-assistant/issues/1337
When purge_days is set under the history component, recorder.py will
delete all events and states that are older than purge_days days ago.
Currently, this is only done once at start up. A vacuum command is
also run to free up the disk space sqlite would still use after deleting
records.