* Add mysensors IR switch device and service
* Add MySensorsIRSwitch as child class to MySensorsSwitch.
* Add platform specific service mysensors_send_ir_code. Only call
device method in service function if device is IR device.
* Add service and required attribute to state helper to support scenes.
* Move V_IR_SEND type from sensor.mysensors to switch.mysensors
platform.
* Populate switch.services.yaml with service descriptions.
* Fix check of entity_id in service function
Since multiple entity_ids can be passed as service data, and the
entity_id service attribute is forced to a list by the service
validation schema, the check in the service function should iterate
over any entity ids.
* WSGI based request handler
with a bit of polishing
Signed-off-by: eagleamon <joseph.piron@gmail.com>
* removed stale comment and fixed version, but failed tests do not seem to be related
* removing the wrapper hack
* added in requirements file
* Found the caved in lint error..
* flux platform as a switch
* use track_time_change. broken :(
* use track_utc_time_change instead of track_time_change
* add some basic tests
* use brightness from RGB_to_xy
* config_schema validation
* back to platform schema. what was i doing?
* more broken tests :(
* 644
* fix some time bugs
* add working tests. config validation still not right
* bug fixes and more test cases.
* List entity_ids in config and only react to them
This allows us to define a list of entity_ids in the config to make the
template sensor, binary sensor and switch only react to state changes of
these entities instead of listening to all state changes.
* Forgot to import the track_state_change function
* Changed test for added entity_ids to config
* Use default MATCH_ALL and remove event_listener
* Initial support for EnOcean
Tested to work with:
- Eltako FUD61 dimmer
- Eltako FT55 battery-less switch
- Permundo PSC234 (switch and power monitor)
* Rerun gen_requirements_all.py
* 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
* 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.
* 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.
This adds an optional 'mac' configuration option to the platform which
is passed to the underlying Orvibo library. The 'mac' option is required
when the switch is connected to a different subnet to the Home Assistant
host
Arduino switch: add support for default stat and negate port functionality
Travis changes
Arduino switch: add support for default stat and negate port functionality
Because Travis was configured to have maxiimum 5 arguments allowed in functions, I changed the function constructor signature too ... Paul, 6 parameters for a function is really ok
Arduino Switch: add default state config and negate functionality
The rewrite addresses a problem with the tellstick hardware dropping
commands when too many simultaneous calls is being made from HA. Also fixes a bug when the dim level was changed externally.
This breaks previous configurations.
The new config for tellstick is
```yaml
tellstick:
signal_repetitions: X
```
Lights and Switches are detected automatically.
Sensors work like before because they do not share any functionality with the other devices and they also needs a complete other configuration.
The default configuration of the mFi controller generates self-signed
certificates which are valid for short periods of time, and which are
regnerated on start or as needed. This makes requests mad. Since most
people will be using the self-signed certificates anyway, add options
to let them choose non-TLS, or unverified connections if they want/need.
This bumps the mficlient requirement to 0.3.0 for proper handling of
verify=False.
The exception we were catching incorrectly referenced the client variable
in local scope instead of the module. Also, if we fail to connect we can
get a requests exception, so catch and handle that as well.
* Move S_LIGHT and V_LIGHT from light back to switch platform, to avoid
double devices showing.
* Remove MySensorsLightPlain class from light platform, since it's not
needed anymore.
* A light switch with only a switch, ie no dimmer or
RGB controls, will show as a regular switch device.
* Add mysensors binary sensor.
* Add discovery platforms to binary_sensor base component.
* Replace device_state_attributes with state_attributes in
binary_sensor base class.
* Fix docstrings.
* Add discovery of binary sensor to mysensors component.
* Add child.type as argument to mysensors device_class.
* Move binary sensor types from sensor to binary_sensor module.
* Fix binary_sensor attribute tests. Use state_attributes instead of
device_state_attributes.
* Make a flatter one level inheritance, with MySensorsLight as parent
with four children, one per light type.
* Break out helper methods. One per plain light, dimmer and RGB/RGBW
children and per update, turn_on and turn_off, nine in total. Put
these in the parent.
* Call the helper methods as needed from the child methods update,
turn_on and turn_off.
* Change name of MySensorsLightLight to MySensorsLightPlain.
* Fix module docstrings according to pep257.
* Change name of color util method from rgb_hex_to_list to
rgb_hex_to_rgb_list.
* Add unit tests for rgb_hex_to_rgb_list.
* Make light controllable independently with types V_LIGHT, V_DIMMER,
V_RGB and V_RGBW. V_RGBW is not implemented in the frontend yet.
* Add discovery for light platform.
* Add optimistic mode config setting for switch and light
to allow feedback state from actuator.
* Move S_LIGHT, V_LIGHT, V_STATUS types from switch to light platform.
* Change node update logging to debug from info level.
* Fix some inaccurate comments.
This is extremely useful if you want to support wemos that are on
another subnet or across a VPN. It also lets you sidestep the discovery
process, which is problematic for a lot of people and situations.
In order for this to work, we need to bump the pywemo requirement to
0.3.10, which includes my changes to make this possible.
WeMo devices can be manually configured by adding a static section to
the config, like this:
switch:
platform: wemo
static:
- 192.168.100.5
- 192.168.100.6
Most of the mFi sensors are able to reasonably provide accurate
readings to a tenth of a unit or so. This patch rounds them for
better display in the UI. Normally, I would expect this to be a view
action instead of altering the actual data emitted, but since these
values are reasonable for sensor precision, we're not really losing
anything. I followed the model from the openweathermap component, which
rounds for readability in the backend.
When we update the mFi server for the state of a switch, the new
state is not always reported immediately if we update right after
the action (the server is not RESTful).
This patch adds some internal target-state handling to report the
desired state on the next poll, allowing any subsequent polls to
override that state.
Also, bump the version requirement for mficlient to 0.2.2 to absorb
a bug fix.
* The application of the version check in unit_of_measurement was
messed up after the last refactor. Fix that again.
* An error could occur in device_state_attributes if there was a
mismatch between used value_type in the device and mysensors
version in config. Add try... except to handle that.
Bump pyvera version.
Bump pywemo version.
Add unavailable status before properly initialised for maker and insight.
Major bugfix. ``` get_bulbs ``` and similar methods were always returning empty lists.
Better unit tests have been added to https://github.com/bradsk88/python-wink to avoid this regression.
* The application of the version check in unit_of_measurement was
messed up after the last refactor. Fix that again.
* An error could occur in device_state_attributes if there was a
mismatch between used value_type in the device and mysensors
version in config. Add try... except to handle that.
Support the SCSGate device. This will allow home-assistant to interact
with BTicino/Legrand MyHome system.
Signed-off-by: Flavio Castelli <flavio@castelli.me>
To be able to handle new platforms with multiple used v_types but
single states, a new more strict mapping was required. Each s_type is
now mapped to its corresponding v_type(s) in a dict of lists.
Devices were not added without persistence enabled and restart of HA.
Node id was added to defaultdict(list) by mistake when checking if list
of defaultdict was empty.
* Fix adding devices in mysensors_callback.
* Change devices to regular dict.
Entity ids will now look like this:
sensor.philio_technology_corporation_psm021_slim_multisensor_doorwindow_sensor_7
sensor.philio_technology_corporation_psm021_slim_multisensor_luminance_7
sensor.philio_technology_corporation_psm021_slim_multisensor_motion_sensor_7
sensor.philio_technology_corporation_psm021_slim_multisensor_tamper_sensor_7
sensor.philio_technology_corporation_psm021_slim_multisensor_temperature_7
sensor.philio_technology_corporation_psm021_slim_multisensor_doorwindow_sensor_8
sensor.philio_technology_corporation_psm021_slim_multisensor_luminance_8
sensor.philio_technology_corporation_psm021_slim_multisensor_motion_sensor_8
sensor.philio_technology_corporation_psm021_slim_multisensor_tamper_sensor_8
sensor.philio_technology_corporation_psm021_slim_multisensor_temperature_8
And if there is several values of the same type in a node the instance id will be appended like this (three switches in the same device):
switch.fibaro_system_unknown_type0202_id1002_switch_9
switch.fibaro_system_unknown_type0202_id1002_switch_9_2
switch.fibaro_system_unknown_type0202_id1002_switch_9_3
* Wrap existing SerialGateway instance instead of subclassing
SerialGatewat class.
* Add S_BINARY in switch platform only in version 1.5 of mysenors api.
* Use version 0.4 of pymysensors.
* Show gateway port as state attribute.
* Fix cleaner user config.
* Remove bad disabling of linting.
* Extract default mysensors version into constant.
* Clean up selection of mysensors.CONST from version.
* Update mysensors update decorator to add devices and update values
in one go.
* Fix persistence update.
* Clean up setup of ports.
* Setup of mysensors platforms from main mysensors component.
* Clean up v_types selection in mysensors sensor platform.
* Fix s_types and v_types selection version dependency in platforms.
* Add support for multiple serial gateways.
* Fix serialization of python objects by adding dict representation of
classes.
* Add support for showing more than one child value type per entity.
The entity state is always only one value type. This is defined by
the platform value types. Value types that are not defined as the
platform value type are shown as state_attributes.
* Add more unit of measurement types.
* Clean up code.
The implementation sends /<name>?params=1 for turn_on and /<name>?params=0 for turn_off
It uses the return value of the function to determine the current state.
0=Off, 1=On
* Add a general mysensors component. This sets up the serial comm
with the gateway through pymysensors. The component also
contains a decorator function for the callback function of
mysensors platforms. Mysensors platforms should create a
function that listens for the node update event fired by the
mysensors component. This function should call another
function, that uses the decorator, and returns a dict. The dict
should contain a list of which mysensors V_TYPE values the
platform handles, the platfrom class and the add_devices
function (from setup_platform).
* Change existing mysensors sensor platform to depend on the new
mysensors component.
* Add a mysensors switch platform. The switch platform takes
advantage of new functionality from the the fork of pymysensors
https://github.com/MartinHjelmare/pymysensors, that enables the
gateway to send commands to change node child values.
* Change const and is_metric to global constants, in the mysensors
component and import const depending on the mysensors version
used.
* Change variables devices and gateway to global variables.
* Add some debug logging at INFO log level.