rename config parameter to "invert_logic"

This commit is contained in:
sfam 2015-08-26 11:03:06 +01:00
parent 930036272b
commit c8b88219b7

View File

@ -8,16 +8,16 @@ Configuration:
switch: switch:
platform: rpi_gpio platform: rpi_gpio
active_state: "HIGH" invert_logic: false
ports: ports:
11: Fan Office 11: Fan Office
12: Light Desk 12: Light Desk
Variables: Variables:
active_state invert_logic
*Optional *Optional
Defines which GPIO state corresponds to a ACTIVE switch. Default is HIGH. If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH).
ports ports
*Required *Required
@ -34,7 +34,7 @@ from homeassistant.const import (DEVICE_DEFAULT_NAME,
EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_START,
EVENT_HOMEASSISTANT_STOP) EVENT_HOMEASSISTANT_STOP)
DEFAULT_ACTIVE_STATE = "HIGH" DEFAULT_INVERT_LOGIC = False
REQUIREMENTS = ['RPi.GPIO>=0.5.11'] REQUIREMENTS = ['RPi.GPIO>=0.5.11']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -50,10 +50,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
GPIO.setmode(GPIO.BCM) GPIO.setmode(GPIO.BCM)
switches = [] switches = []
active_state = config.get('active_state', DEFAULT_ACTIVE_STATE) invert_logic = config.get('invert_logic', DEFAULT_INVERT_LOGIC)
ports = config.get('ports') ports = config.get('ports')
for port_num, port_name in ports.items(): for port_num, port_name in ports.items():
switches.append(RPiGPIOSwitch(port_name, port_num, active_state)) switches.append(RPiGPIOSwitch(port_name, port_num, invert_logic))
add_devices(switches) add_devices(switches)
def cleanup_gpio(event): def cleanup_gpio(event):
@ -71,11 +71,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
class RPiGPIOSwitch(ToggleEntity): class RPiGPIOSwitch(ToggleEntity):
""" Represents a port that can be toggled using Raspberry Pi GPIO. """ """ Represents a port that can be toggled using Raspberry Pi GPIO. """
def __init__(self, name, gpio, active_state): def __init__(self, name, gpio, invert_logic):
self._name = name or DEVICE_DEFAULT_NAME self._name = name or DEVICE_DEFAULT_NAME
self._gpio = gpio self._gpio = gpio
self._active_state = active_state self._active_state = !invert_logic
self._state = False if self._active_state == "HIGH" else True self._state = !self._active_state
# pylint: disable=no-member # pylint: disable=no-member
GPIO.setup(gpio, GPIO.OUT) GPIO.setup(gpio, GPIO.OUT)
@ -96,13 +96,13 @@ class RPiGPIOSwitch(ToggleEntity):
def turn_on(self, **kwargs): def turn_on(self, **kwargs):
""" Turn the device on. """ """ Turn the device on. """
if self._switch(True if self._active_state == "HIGH" else False): if self._switch(self._active_state):
self._state = True self._state = True
self.update_ha_state() self.update_ha_state()
def turn_off(self, **kwargs): def turn_off(self, **kwargs):
""" Turn the device off. """ """ Turn the device off. """
if self._switch(False if self._active_state == "HIGH" else True): if self._switch(!self._active_state):
self._state = False self._state = False
self.update_ha_state() self.update_ha_state()