forked from home-assistant/core
Merge branch 'master' of https://github.com/vitorespindola/home-assistant
Conflicts: homeassistant/components/sensor/modbus.py homeassistant/components/switch/modbus.py
This commit is contained in:
@@ -69,6 +69,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||||||
|
|
||||||
|
|
||||||
class ModbusSwitch(ToggleEntity):
|
class ModbusSwitch(ToggleEntity):
|
||||||
|
# pylint: disable=too-many-arguments
|
||||||
""" Represents a Modbus switch. """
|
""" Represents a Modbus switch. """
|
||||||
|
|
||||||
def __init__(self, name, slave, register, bit, coil=False):
|
def __init__(self, name, slave, register, bit, coil=False):
|
||||||
@@ -108,11 +109,12 @@ class ModbusSwitch(ToggleEntity):
|
|||||||
|
|
||||||
def turn_on(self, **kwargs):
|
def turn_on(self, **kwargs):
|
||||||
""" Set switch on. """
|
""" Set switch on. """
|
||||||
|
if self.register_value is None:
|
||||||
|
self.update()
|
||||||
|
|
||||||
if self._coil:
|
if self._coil:
|
||||||
modbus.NETWORK.write_coil(self.register, True)
|
modbus.NETWORK.write_coil(self.register, True)
|
||||||
else:
|
else:
|
||||||
if self.register_value is None:
|
|
||||||
self.update()
|
|
||||||
val = self.register_value | (0x0001 << self.bit)
|
val = self.register_value | (0x0001 << self.bit)
|
||||||
modbus.NETWORK.write_register(unit=self.slave,
|
modbus.NETWORK.write_register(unit=self.slave,
|
||||||
address=self.register,
|
address=self.register,
|
||||||
@@ -120,11 +122,12 @@ class ModbusSwitch(ToggleEntity):
|
|||||||
|
|
||||||
def turn_off(self, **kwargs):
|
def turn_off(self, **kwargs):
|
||||||
""" Set switch off. """
|
""" Set switch off. """
|
||||||
|
if self.register_value is None:
|
||||||
|
self.update()
|
||||||
|
|
||||||
if self._coil:
|
if self._coil:
|
||||||
modbus.NETWORK.write_coil(self.register, False)
|
modbus.NETWORK.write_coil(self.register, False)
|
||||||
else:
|
else:
|
||||||
if self.register_value is None:
|
|
||||||
self.update()
|
|
||||||
val = self.register_value & ~(0x0001 << self.bit)
|
val = self.register_value & ~(0x0001 << self.bit)
|
||||||
modbus.NETWORK.write_register(unit=self.slave,
|
modbus.NETWORK.write_register(unit=self.slave,
|
||||||
address=self.register,
|
address=self.register,
|
||||||
|
Reference in New Issue
Block a user