コード例 #1
0
    def __init__(self, ip, port=7682, username="******", password="******", device_name = "unknown"):

        #MFiRestClient.__init__(self, ip, username, password)
        UBNTWebSocketClient.__init__(self, ip, port, username, password)

        self.device_name = device_name
        self.num_outputs_changed = Signal(providing_args=["num_outputs"])
        self.outputs = []
        self.OutputClass = Output
コード例 #2
0
ファイル: MPower.py プロジェクト: SimplyAutomationized/py-mFi
class MPower(UBNTWebSocketClient):
    _lock = -1

    def __init__(self, ip, port=7682, username="******", password="******", device_name = "unknown"):

        #MFiRestClient.__init__(self, ip, username, password)
        UBNTWebSocketClient.__init__(self, ip, port, username, password)

        self.device_name = device_name
        self.num_outputs_changed = Signal(providing_args=["num_outputs"])
        self.outputs = []
        self.OutputClass = Output


    def set_output(self, port, value):
        data = {"sensors": [{"output": value, "port": port}]}
        self.send_cmd(data)

    def recv_data(self, payload):

        payloads = payload.split("}{")

        for p in payloads:
            if not p.endswith("}"):
                p += "}"
            if not p.startswith("{"):
                p = "{" + p

            try:

                data = json.loads(p)

                if "sensors" in data and len(data['sensors']) > 0:
                    status = data['sensors'][0]

                    index = status['port']
                    found = False

                    for o in self.outputs:
                        if o.index == index:
                            found = True
                            o.update(status)

                    if not found:
                        new_output = self.OutputClass(index, self)
                        self.outputs.append(new_output)
                        self.num_outputs_changed.send(sender=self.__class__, num_outputs=len(self.outputs))

            except Exception as e:
                print("explody {}", e.message)
                print("msg: {}".format(p))
                import sys, traceback
                exc_type, exc_value, exc_traceback = sys.exc_info()
                traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
                traceback.print_exception(exc_type, exc_value, exc_traceback,
                                          limit=6, file=sys.stdout)
コード例 #3
0
    def __init__(self, index, parent):
        self.index = index
        self._on = False
        self.parent = parent
        self.output_changed = Signal(providing_args=["value"])
        self.power_changed = Signal(providing_args=["value"])

        self._voltage = -1
        self._powerfactor = -1
        self._energy = -1
        self._current = -1
        self._power = -1
        self._output = -1
コード例 #4
0
    def __init__(self, index, parent):
        self.index = index
        self._output = None
        self.parent = parent
        self.output_changed = Signal(providing_args=["value"])
        self.power_changed = Signal(providing_args=["value"])

        self._voltage = -1
        self._powerfactor = -1
        self._energy = -1
        self._current = -1
        self._power = -1
        
        #need a _ready property to indicate that the output exists and has a known state
        self._ready = False
コード例 #5
0
ファイル: MPower.py プロジェクト: SimplyAutomationized/py-mFi
    def __init__(self, ip, port=7682, username="******", password="******", device_name = "unknown"):

        #MFiRestClient.__init__(self, ip, username, password)
        UBNTWebSocketClient.__init__(self, ip, port, username, password)

        self.device_name = device_name
        self.num_outputs_changed = Signal(providing_args=["num_outputs"])
        self.outputs = []
        self.OutputClass = Output
コード例 #6
0
class MPower(UBNTWebSocketClient):
    _lock = -1

    def __init__(self,
                 ip,
                 port=7682,
                 username="******",
                 password="******",
                 device_name="unknown"):

        #MFiRestClient.__init__(self, ip, username, password)
        UBNTWebSocketClient.__init__(self, ip, port, username, password)

        self.device_name = device_name
        self.num_outputs_changed = Signal(providing_args=["num_outputs"])
        self.outputs = []
        self.OutputClass = Output

    def set_output(self, port, value):
        data = {"sensors": [{"output": value, "port": port}]}
        self.send_cmd(data)

    def recv_data(self, payload):

        payloads = payload.split("}{")

        for p in payloads:
            if not p.endswith("}"):
                p += "}"
            if not p.startswith("{"):
                p = "{" + p

            try:

                data = json.loads(p)

                if "sensors" in data and len(data['sensors']) > 0:
                    status = data['sensors'][0]

                    index = status['port']
                    found = False

                    for o in self.outputs:
                        if o.index == index:
                            found = True
                            o.update(status)

                    if not found:
                        new_output = self.OutputClass(index, self)
                        self.outputs.append(new_output)
                        self.num_outputs_changed.send(sender=self.__class__,
                                                      num_outputs=len(
                                                          self.outputs))

            except Exception as e:
                print("explody {}", e.message)
                print("msg: {}".format(p))
                import sys, traceback
                exc_type, exc_value, exc_traceback = sys.exc_info()
                traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
                traceback.print_exception(exc_type,
                                          exc_value,
                                          exc_traceback,
                                          limit=6,
                                          file=sys.stdout)
コード例 #7
0
    def __init__(self, index, parent):
        Output.__init__(self, index, parent)
        _dimmer_level = 0
        _lock = 0

        self.dimmer_level_changed = Signal(providing_args=["value"])
コード例 #8
0
ファイル: signals.py プロジェクト: wbphelps/ouimeaux
from pysignals import Signal, receiver

# Work around a bug in pysignals when in the interactive interpreter
import sys
_main = sys.modules.get('__main__')
if _main:
    _main.__file__ = "__main__.py"

# Fires when a device responds to a broadcast
discovered = Signal(providing_args=["address", "headers"])

# Fires when a device is found and added to the environment
devicefound = Signal()

# Fires when a subscriber receives an event
subscription = Signal(providing_args=["type", "value"])

# Fires when a device changes state
statechange = Signal(providing_args=["state"])


@receiver(subscription)
def _got_subscription(sender, **kwargs):
    if kwargs['type'] == 'BinaryState':
        statechange.send(sender, state=int(kwargs['value']))
コード例 #9
0
from pysignals import Signal

pre_init = Signal(providing_args=["instance", "values"])
post_init = Signal(providing_args=["instance"])

pre_save = Signal(providing_args=["instance"])
post_save = Signal(providing_args=["instance", "created"])

pre_delete = Signal(providing_args=["instance"])
post_delete = Signal(providing_args=["instance"])