#! /usr/bin/env python


from ..common.device_switch import Device_Switch
from .device_zwave_base import Device_ZWave_Base

paddle_events = {"DON", "DOF", "DIM", "BRT", "DFON", "DFOF"}


class Device_ZWave_GenericRspCtl(Device_Switch, Device_ZWave_Base):
    def __init__(self, container, device_info):
        Device_Switch.__init__(self, container, device_info.name, device_info.address)
        Device_ZWave_Base.__init__(self, device_info)

        self.add_property("paddle_action")

        value = device_info.get_property("ST", "value")
        if value:
            try:
                if int(value) > 0:
                    self.set_property("onoff", "on")
                else:
                    self.set_property("onoff", "off")
            except:
                pass

    def process_websocket_event(self, event):
        if event.control == "ST":
            if int(event.action) > 0:
                self.set_property("onoff", "on")
            else:
                self.set_property("onoff", "off")

        elif event.control in paddle_events:  # need to add other events
            self.set_property("paddle_action", event.control, True)

    def turn_on(self):
        path = "nodes/" + self.address + "/cmd/DON"
        return self.send_request(path)

    def turn_off(self):
        path = "nodes/" + self.address + "/cmd/DOF"
        return self.send_request(path)
