* use upstream RachioPy, fix manual run switches
* Update requirements for PyPi version of rachiopy
* Use upstream RachioPy 0.1.2 (partial revert of 39c6484d89)
* Revert rachiopy downgrade
* 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
* 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
* Rachio platform started
* Rachio tests
* detect bad api token
* Documentation, Code cleanup
* Docstrings end with a period, log uses %
* Fix arguments, default run time is now 10 minutes
* Fix typo, remove todo (GH issue exists)
* Revert polymer submodule commit
* Use a RachioPy version with SSL cert validation
* Update requirements
* 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
* 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
* Flux switch: avoid updates when off
Calling turn_on when the switch is already on would orphan the existing
time tracker, losing our ability to cancel it when turn_off is called.
* Cleanups
The self.is_on property can now be found from self.unsub_tracker, so
get rid of the self._state attribute.
Add an entry guard to turn_on, making further conditionals unnecessary.
* Remove global limit on white light temperature
Here are the supported temperatures of some popular bulbs:
Philips Hue: 2000K-6500K (the current 500-154 mired range)
LIFX Color 1000: 2500K-9000K
IKEA TRÅDFRI: 2200K, 2700K, 4000K
Obviously, Home Assistant cannot enforce a global limit and work properly
with all of these bulbs. So just remove the limit and leave it up to each
platform to work it out.
This commit updates the existing users and adds a clamp to Hue (where the
limit appears to have originated). It does not attempt to update other
platforms that might need extra handling of the larger range that is now
possible.
* Add min_mireds/max_mireds state attributes to lights
* Support min_mireds/max_mireds with LIFX lights
* 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
* Responsiveness
* Delay was not needed as commands does not return until done.
* Add support for cleaning maps and cleaning data
* Hound
* Docstring
* Update requirements
* Review changes
* External lib now returns the raw data.
* debug
* Sensor did not refresh
* Error handling
* Issue warning on connection error
* Update requirements
* Review changes
* Fire EVENT_HOMEASSISTANT_START automations off right away while starting
* Actually have core state be set to 'starting' during boot
* Fix correct start implementation
* Test and deprecate event automation platform on start
* Fix doc strings
* Remove shutting down exception
* More strict when to mark an instance as finished
* Add automation platform to listen for start/shutdown
* When we stop we should wait till it's all done
* Fix testing
* Fix async bugs in tests
* Only set UVLOOP when hass starts from CLI
* This hangs normal asyncio event loop
* Clean up Z-Wave node entity test
The Hook switch component currently uses username/password to get a token
from the Hook web app to use for subsequent requests. This adds an option
to specify the token directly in config.
Makes the 'password' and 'token' options mutually exclusive since
otherwise one would have to take precedence, and it seems worth
preventing people from filling their config with passwords that don't
even need to be there.
* fix WOL in docker/jail
add ip_address parameter to send_magic_packet if host specific.
in docker/jail, WOL doesn't works due to subnet broadcast issues.
* Update wake_on_lan.py
lint
* Adds support for the Lutron Caseta family of devices
* Added external requirement
* Removes unuse import
* Adds requirement to requirements_all.txt
* Removes unuse import
* fixes requirement_all.txt. by regenerating
* Cleans up syantax
* Cleans up syantax
* Cleans up syantax
* Cleans up syantax
* Shortens long line
* adds lutron_caseta component to .coveragerc
* Merges into light, removes component
* Fixes long lines
* Fixes requirement.txt
* Removes 'ERROR' log statements. Adds missing dependency
* savig work to pick up on other machine
* Enables Lutron Caseta component with Light and Switch platforms
* Add missing file to .coveragerc
* Changes based on PR review
* fixes requirements file
* Fixes install of paramiko dependency.
* Moves callback registration to
* comment changes
* Platform have no return value
* Change style for guard
* fix logic
* fix lint
* Refactor zwave discovery to entity schema
* Address PR concerns
* Split DISCOVERY_SCHEMAS into separate file
* Only check cover reverse workaround once
* Update configuration validation
With the new update, wake_on_lan requires a host key in the configuration
* cast self._host to str as requested
* Changed host key back to optional
* Added support for multiple codes executed in a row
now codes can be specified either by simply providing a single code, which will then be sent like usual, or multiple codes can be executed in a row, specified in a comma delimited format in the configuration.yaml. For example: 111111,222222,333333,444444 would mean 111111 would be sent first, followed by 222222 and 333333 and 444444.
* rpi_rf: added line breaks to not exceed 79 characters per line
* include validation for correct formatting of codes
added regex which only allows either a single number (like 1252456245) or a sequence of commas followed by another number.
* added line breaks to not exceed 79 characters per line
* fix for 'continuation line under-indented for visual indent'
* another try at 'continuation line under-indented for visual indent'
* changed from regex to list for easier maintainability
* removed unnecessary splitting of strings
- Separate attribs from coffeemaker condition
- Set power units for threshold to mW to be consistent with others
- Adjust on-time labels to be more clear
* Create zwave devices on OZW thread and only add them during discovery.
* Read and write devices dict from loop thread.
* More async
* replace callback with coroutine
* import common function instead of callin git
* Connect to PLM and process simple protocol callbacks
* Baseline commit
* Connect to PLM and process simple protocol callbacks
* Baseline commit
* Connection working again
* Async add devices is working via callback now
* Beginning to interface with PLM library for control and state
* Deal with brightness in 255 levels with library
* Change sub names to match API changes
* Remove PLM-level update callback
* Support dimmable based on underlying PLM device attributes
* Expand to non-light platforms
* Stubs for turn on and off
* Current version of Python library
* Amend to use switch device attributes
* Use asyncio endpoints for control
* Add logging line
* Bump module version to 0.7.1
* Auto-load platforms, display device info/attributes
* Unify method name for getting a device attribute
* Require Current version of insteonplm module
* Import the component function in each platform in the balloob-recommend manner
* For consistency, handle switch state as onlevel just like lights
* Use level 0xff for on state, even with binary switches
Observing the behavior of a 2477S switch, it looks like even the non-dimmable
devices use 0x00 and 0xff for off/on respectively. I was using 0x01 for on
previously, but that yields unnecessary state change callbacks when message
traffic ends up flipping the onlevel from 0xff to 0x01 or 0x01 to 0xff.
* Use sensorstate attribute for sensor onoff
* Move new device callback to devices attribute
* Add support for platform override on a device
* Bump version of insteonplm module
* Default overrides is an empty list
* Avoid calling private methods when doing common attributes
* Remove unused CONF_DEBUG for now
* flake8 and pylint code cleanup
* Move get_component to local function where it is needed
* Update to include insteonplm module.
* New files for insteon_plm component
* Legitimate class doctring instead of stub
* Docstring changes.
* Style changes as requested by @SEJeff
* Changes requested by @pvizeli
* Add @callback decorator to callback functions
* Opportunistic platform loading triggered by qualifying device detection
Instead of loading all the constituent platforms that comprise the insteon_plm
component, instead we defer and wait until we receive a callback for a device
that requires the platform.
* First round of not using values directly
* Round two
* lint
* Round four
* Conflict
* Round five
* Update zwave.py
* round six
* Docstring
* flakywakie
* Fetch values in constructor
* Blank line removal
* Set attributes in callback
* Docstring
* Round seven
* Ughgit add homeassistant/components/lock/zwave.py!
* Sloppy code
* Added door bell sensors
* Initial support for AC units.
* Added new device service
* Quirky Aros AC unit support
* Use super() everywhere and error checking for token request.
* Ignore camera sensors during setup of alarms.
* Added manufacturer/device attributes to all wink devices.
* Fixed style errors
* Fixed remaining lint errors.
* Initial sketches of rflink component.
* Add requirement.
* Properly load configuration.
* Bump rflink for graceful parse errors and protocol callback.
* Cleanup, documentation and linting.
* More documentation, first sensor implementation (temp & hum).
* Add brightness/dim support for newkaku protocol.
* Use separate class for dimmables.
* Make sure non-dimmable newkaku devices are turned on.
* Move some code around, add switches. Support loading from config.
* Fix bug in ignoring devices.
* Fix initial state assumption.
* Improve reliability on invalid conditions.
* Allow configuration of group for new devices.
* Sensor icons.
* Fix parsing negative numbers.
* Correct icon.
* Allow sending commands serial.
* Pluralize.
* Allow adding sensors from config.
* Fix ignoring devices and bugs in previous commit.
* Share know devices so devices from configuration don't get added as lights.
* Lookup unit from value_key.
* Remove debug.
* Start implementing event protocol in place of packet protocol.
- Added first test suite for sensors.
- This currently breaks light and switch.
* Refactor switch component to fit new rflink changes. Add test suite.
* Fix style.
* Refactor and test lights. Bring coverage to 100%.
* Use non-broken and production tested rflink module.
* Update requirements.
* Bump for logging.
* Improve readability.
* Do not use global variable but keep known device state in intended place.
* Improve docs.
* Make icon support generic.
* Disable overriding icons in config, as it belongs in customization. Only keep custom icon for entities that are able to detect a icon based on the thing they represent (sensors in this case).
* Implement configuration schema, overall refactor of magic values.
* Fix bug in config/test wait_for_ack.
* Small refactors.
* Move command logic into separate class.
* Convert command sending logic to class based pattern instead of using the event bus.
* Start not using bus for rflink event propagation to platforms.
* Do not use event bus for all entity types.
* Fire an event on the bus for every switch incoming rflink command.
* Resolve lint errors, remove some old code.
* Known devices no longer need to be registered separately.
* Log bus events.
* Event callback is a..... callback.
* Use full entity id for events.
* Move event sending to entity.
* Log incoming events.
* Make firing events optional inline with rfxtrx.
* Add foundation for signal repetition.
* Add signal repetition config and tests.
* Make plain switchable type explicitly configurable.
* Enable default entity settings for automatically added entities as well.
* Prevent default configuration leaking accross entities.
* Make sure device defaults don't get overwritten by defaults further down.
* Don't let fast state switching and repetitions turn your house into a disco.
* Make repetitions more responsive.
* Disable on/off fallback on dimmables as it currently doesn't play nice with repetitions.
* Use rflink that allows send_command_ack to be safely cancelled.
* Reduce duplication and make repeat work for non-ack.
* Implement reconnection logic.
* Improve reconnection logic.
* Also cancel repetitions when entity state is changed due to external command.
* Update requirements.
* Fix linting.
* Fix spelling.
* Don't lie.
* Fix lint.
* Support for automatically creating protocol translation (fixes spaces in device names).
* Returned support for dimmable and on/off entity.
* Duplicate code to fix linting issues with inheritance.
* Allow overriding unit of measurement from config.
* Implement echo config option for pilight
Pilight switches can get a receive code configured. If so they act on
received codes. In the current implementation "act on" means not only
to set the internal state, but also to send the code again. If the
receiver is directly parred with the switch, to act even if HA is not
running, this causes it to receive the signal twice because the HA
sends it again.
In my case this causes a dimmer to start dimming until I hit the switch
again.
This implements a "echo" argument for the receive codes that let the
user choose if a received signal should result in any sending or not.
If not, only the status of pilight will be updated.
The echo option defaults to True, as this was the default since now.
Simply set it to halse to disable this behaviour.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add documentation to set_state in switch/pilight.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Move isdevice validator under helpers.config_validation.
* Check that all persistence files are set and are unique if any is set
by user. This is necessary to avoid file name clashes.
* Check that a set persistence file has an existing and writable
directory.
* Check that a device is either a valid device file, "mqtt", or a valid
domain name or ip address.
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* incorporate remarks from users (#32)
* home-assistant-31 make mute schema better (#31)
* pycec-30 pyCEC version up (#30)
* pycec-30 pyCEC version up (#30)
* home-assistant-30 OSD display name from configuration (#30) (#33)
* Home assistant 29 (#34)
* home-assistant-29 counting from 0 (#29)
* Home assistant 31 (#35)
* home-assistant-31 add support for mute-on and mute-off (#31)
* home-assistant-31 pyCEC version up (#31)
* Home assistant 31 (#36)
* home-assistant-31 Limit OSD name to 13 chars (#31)
* home-assistant-31 Limit OSD name to 13 chars moved to CEC adapter (#31)
* home-assistant-31 version up (#31)
* home-assistant-31 formatting (#31)
* formatting
* service description
* service description
* single attribute for volume
* fixed mute on -> mute off
* moved config constant from core into component
* check cec message length when asking physical address (#38) (#38)
* cec turn on/turn off commands instead of power
* cec turn on/turn off commands instead of power
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* Add mysensors notify platform
* Make add_devices optional in platform callback function.
* Use new argument structure for all existing mysensors platforms.
* Add notify platform.
* Update mysensors gateway.
* Refactor notify setup
* Enable discovery of notify platforms.
* Update and add tests for notify component and some platforms.
* Continue setup of notify platforms if a platform fails setup.
* Remove notify tests that check platform config. These tests are not
needed when config validation is used.
* Add config validation to APNS notify platform.
* Use discovery to set up mysensors notify platform.
* Add discovery_info to get_service and update tests
* Add discovery_info as keyword argument to the get_service function
signature and update all notify platforms.
* Update existing notify tests to check config validation using test
helper.
* Add removed tests back in that checked config in apns, command_line
and file platforms, but use config validation test helper to verify
config.
* Add a test for notify file to increase coverage.
* Fix some PEP issues.
* Fix comments and use more constants
* Move apns notify service under notify domain
* platform set-up begin components
* lights seem to be getting set up properly, not sure why they aren't being added...
* typo
* Dependencies line
* toggle working
* toggle working
* added the switch to insteon_local
First commit hope to test tonight or in the morning
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* move dependency declaration before import?
* Move dependencies in Switch
* Update insteon_local.py
* wait for response
* switched the while to an if
switched the while 'cmd2' not in resp: to an if 'cmd2' not in resp: this seems to have the updater working
* Switched the while sleep loop to an if
switched the wile cmd2 not ins resp to be if cmd2 not in resp seems to be working.
* Update insteon_local.py
* import statement
Updated the import statement to import the instance of the insteon_local component not the hub Instance.
* updated import and the device assignment
update the import to import the instance of the insteon_local component not the hub.
* more changes to support the import change
* more changes to support the import change
* change to hass.data and add loop logic
* &&
* Update insteon_local.py
* Update insteon_local.py
* logic fixes and throttle
* reduce polling time
* brightness support
* import util
* hound fixes
* requirements file
* more hound fixes
* newline
* newline weirdness
* lint fixes
* more lint fixes
* switch state
* Update insteon_local.py
* log cmd2 for debugging
* assume success
* remove check for none
* fix comments
* fix comments again
* fix comments, add fixed version of lib, add support for timeout, add support for port, handle invalid login and connection problems
* fix logging exception
* fix hounceci-bot errors
* fix hounceci-bot errors
* requirements fix
* unique-id changes
* make dimmer off use saved ramp rate
* configurator working for lights
* configurator working for switches?
* configurator working for switches?
* include model names and fix lint errors
* lint fix
* fix exception order
* lint fixes
* fix lint errors
* update to use insteon local 0.38
* fix device id
* move status check to library
* move status check to library
* add SKU to setup
* lint fixes
* requirements
* linting
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Remove global variable according to hint from balloob.
* Better async/threading behavior for tellstick.
* Fix lint/style checks.
* Use hass.async_add_job
* Add ability to set rpi_rf `tx_repeats` attribute
Uses the current `rpi_rf` default of 10
Closeshome-assistant/home-assistant#5069
* Use `signal_repetitions` instead of `repeats` for consistency
* Updates TP-Link switches dependent module
Refactors code to use the new module API
* Set TP-Link Switch name from the device settings
If no name has been set in the configuration file the name set on the device will be used
* Removes default name for TP-Link switch
Fallback to device alias now works properly
* Removes logging
* Updates comment to denote support for HS200 switch
- Implemented support for covers and dimmable lights.
- Removed global object, use hass.data.
- Disabled polling via update.
- Inherit from common TelldusLiveEntity device.
- Configurable polling interval
- Use https API endpoint
- Use tellduslive package
* Pilight: dont protocol as list in COMMAND_SCHEMA
As described in bug #4637 the protocol should not be wrapped in a list
in the spec of COMMAND_SCHEMA because this causes the component to
never successfully match any received rf code.
As pointed ot in PR #4639 the easiest way to do this, is to not derive
COMMAND_SCHEMA from RF_CODE_SCHEMA and specify protocol as simple
string there.
This fixes bug #4637.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Pilight: Add "unitcode" to command schema.
This adds "unitcode" to the COMMAND_SCHEMA. It is used for example in
the brennenstuhl protocol of pilight.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* ensure_list
* CONF_ID is not required configuration for enocean lights
* Use vol.All(cv.ensure_list, [vol.Coerce(int)]) as suggested in pull request review
* Fix line too long
* 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
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Remove global variable according to hint from balloob.
* 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
* Move HTTP to own folder
* Break HTTP into middlewares
* Lint
* Split tests per middleware
* Clean up HTTP tests
* Make HomeAssistantViews more stateless
* Lint
* Make HTTP setup async
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Migrate callbacks to use schedule_update_ha_state
* Migrate MQTT sensor callback to async
* Migrate wemo to not update inside schedule_update_ha_state
* Make MQTT switch async
* Fix nx584 test
* Migrate tellstick callback
* Migrate vera callback
* Alarm control panel - manual: use async callbacks
* Run the switch rest tests that work
* Convert switch to AsnycIO
* Move update entity to service
* use time better for faster handling
* Change to suggestion from paulus
* Use new shedule_update_ha_state
* fix lint
* minimize executor calls
* Use entity_id for backend, friendly name for frontend
Closes https://github.com/home-assistant/home-assistant/issues/3434
Command line switches had the option to set a `friendly_name` reportedly
for use in the front end. However, if set, it was also being used as the
`entity_id`.
This did not seem like obvious behavior to me. This PR changes the
behavior so the entity_id is the object_id, which must already be
unique, and is an obvious place to have a very predictable slug (even if
long or unsightly), and the friendly name (if set) is used for the
display.
Example:
```yaml
switch:
platform: command_line
switches:
rf_kitchen_light_one:
command_on: switch_command on kitchen
command_off: switch_command off kitchen
command_state: query_command kitchen
value_template: '{{ value == "online" }}'
friendly_name: "Beautiful bright kitchen light!"
```
If you were using in an automation or from dev tools, would use:
`switch.rf_kitchen_light_one`, but your front end would still show `Beautiful
bright kitchen light!`
* Add new arg to test_assumed_state_should_be_true_if_command_state_is_false
* Import ENTITY_ID _FORMAT from existing, rename device_name to object_id
* Rename `device_name` to `object_id`
* Test that `entity_id` and `name` are set as expected
* Change pilight systemcode validation to integer
According to the pilight code the systemcode should be an integer and
not a string (it is an int in the pilight code). Passing this as a
string caused errors from pilight:
"ERROR: elro_800_switch: insufficient number of arguments"
This fixes#4282
* Change pilight unit-id to positive integer
According to the pilight code the unit of an entity is also evrywhere
handled as an integer. So converting and passing this as string causes
pilight not to work.
This fixes#4282
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
GATEWAYS was a dict, so would overwrite item if key was the same. This
would happen when using multiple MQTT gateways, since the device id is
the same (`mqtt`).
* Fix by changing GATEWAYS from dict into list.
* Use hass data to store mysensors gateways instead of having GATEWAYS
be a global.
* Fixes in TP-Link Switch logging 0 values on init
On init of component the emeter would log to influxdb and possibly other inputs a 0 value, instead of not logging anything.
Initial polling should circumvent that behavior and avoid logging inconsistencies.
* Refactors update call in __init__
* Initial submission of LiteJet integration.
* Add LiteJet switch pressed automation trigger. (State changes are too slow to catch a press-release.)
Add LiteJet scene, replacing commented out code that treated these as lights.
Include LiteJet numbers in the device state so that it is easy to lookup entity -> number.
* Fix missing global.
* Allow light's brightness to be set explicitly.
* Support optional 'ignore' key to ignore prefixes of loads, switches, and scenes that weren't configured for use in the LiteJet system.
* Fix lint errors and warnings.
* Cleanup header comments.
Default to not creating LiteJet switches as these are generally not useful.
* Lint fixes.
* Fixes from pull request feedback.
* Use hass.data instead of globals for data storage.
* Fix lint warnings.
* Add link to docs
* Fix link
* Update line breaks
* Update ordering
* Align vera platofrm to only use add_devices
(instead od add_devices_callback)
* Remove line break
* Use consts
* Update ordering
* Update ordering
* Use const, create default name, use string formatting
* Update ordering
* Use const
* Update import style
* Update ordering and line breaks
* update line breaks
* Set default port
* Set defaults and update ordering
* Update ordering
* Minor style updates
* Update ordering, defaults, line breaks, and readability
* Use constants
* Add line breaks
* use string formatting
* Update line breaks
* Update logger
* successfully tested the "remote temperature mode" switch for the radio thermostat
* removed logging and interpreted None as Off.
* turn_off value is also templated now -- can depend on state
Also, undid accidental removal of error logging.
* ensured backward compatibility of config file
if value_template is not provided, the update function behaves as before
* ran autopep8 --in-place
* fixed another complaint of tox
* addressed the comments of balloob
* undid acccidental log.error to log.info
* timeout : 50 -> 10
* added a timeout parameter
* removed the stray '-', better names for the failure case
* string comparisons after .lower(), as suggested by balloob
* addressed balloob's latest requests
* making flake happy
* value_template --> is_on_template in config file
* moved CONF_IS_ON_TEMPLATE to local file
* null checks
* addressed flake error
* properly comparing template text when is_on is not a template.