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
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)
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
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
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)
def __init__(self, index, parent): Output.__init__(self, index, parent) _dimmer_level = 0 _lock = 0 self.dimmer_level_changed = Signal(providing_args=["value"])
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']))
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"])