modbus write register service

This commit is contained in:
Per SandstrÃom 2016-08-25 08:20:08 +00:00
parent 2b4f0cb5a1
commit be1981ca5d

View file

@ -31,6 +31,12 @@ IP_PORT = "port"
_LOGGER = logging.getLogger(__name__)
SERVICE_WRITE_REGISTER = "write_register"
ATTR_ADDRESS = "address"
ATTR_UNIT = "unit"
ATTR_VALUE = "value"
NETWORK = None
TYPE = None
@ -74,6 +80,16 @@ def setup(hass, config):
NETWORK.connect()
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_modbus)
# Register services for modbus
hass.services.register(DOMAIN, SERVICE_WRITE_REGISTER, write_register)
def write_register(service):
"""Write modbus register."""
unit = int(float(service.data.get(ATTR_UNIT)))
address = int(float(service.data.get(ATTR_ADDRESS)))
value = int(float(service.data.get(ATTR_VALUE)))
NETWORK.write_register(address, value, unit=unit)
hass.bus.listen_once(EVENT_HOMEASSISTANT_START, start_modbus)
return True