Conflicts:
	homeassistant/components/sensor/modbus.py
	homeassistant/components/switch/modbus.py
pull/233/head
Vitor Espíndola 2015-08-01 10:01:37 -03:00
commit f97b7c9e61
1 changed files with 7 additions and 4 deletions

View File

@ -69,6 +69,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
class ModbusSwitch(ToggleEntity):
# pylint: disable=too-many-arguments
""" Represents a Modbus switch. """
def __init__(self, name, slave, register, bit, coil=False):
@ -108,11 +109,12 @@ class ModbusSwitch(ToggleEntity):
def turn_on(self, **kwargs):
""" Set switch on. """
if self.register_value is None:
self.update()
if self._coil:
modbus.NETWORK.write_coil(self.register, True)
else:
if self.register_value is None:
self.update()
val = self.register_value | (0x0001 << self.bit)
modbus.NETWORK.write_register(unit=self.slave,
address=self.register,
@ -120,11 +122,12 @@ class ModbusSwitch(ToggleEntity):
def turn_off(self, **kwargs):
""" Set switch off. """
if self.register_value is None:
self.update()
if self._coil:
modbus.NETWORK.write_coil(self.register, False)
else:
if self.register_value is None:
self.update()
val = self.register_value & ~(0x0001 << self.bit)
modbus.NETWORK.write_register(unit=self.slave,
address=self.register,