if cmd.verbose: print(api_auth, file=sys.stderr) # ClientAuth... client_auth = ClientAuth.load(Host) if client_auth is None: print("ClientAuth not available.", file=sys.stderr) exit(1) if cmd.verbose: print(client_auth, file=sys.stderr) # comms... pub_comms = DomainSocket( cmd.uds_pub_addr) if cmd.uds_pub_addr else StdIO() # manager... manager = TopicManager(HTTPClient(), api_auth.api_key) # check topics... unavailable = False for subscription in cmd.subscriptions: if not manager.find(subscription.topic): print("Topic not available: %s" % subscription[0], file=sys.stderr) unavailable = True if unavailable: exit(1)
print("aws_mqtt_control: %s" % client, file=sys.stderr) sys.stderr.flush() # tag... host_tag = Host.name() # ------------------------------------------------------------------------------------------------------------ # run... client.connect(auth) while True: # cmd... if cmd.interactive: line = StdIO.prompt(device_tag + ' > ') cmd_tokens = line.split() if len(line) > 0 else None else: cmd_tokens = cmd.cmd_tokens # datum... now = LocalizedDatetime.now() datum = ControlDatum.construct(host_tag, device_tag, now, cmd_tokens, key) publication = Publication(topic, datum) handler.set(publication) if cmd.verbose: print(datum, file=sys.stderr)
# bridge... discovery = Discovery(Host) bridges = discovery.find_all() if len(bridges) == 0: print("join: no bridge found", file=sys.stderr) exit(0) elif len(bridges) == 1: bridge = bridges.pop() else: for i in range(len(bridges)): print("%d: %s" % ((i + 1), bridges[i])) index = StdIO.prompt("Bridge (1 - %d) ?: " % len(bridges)) bridge = bridges[int(index) - 1] if cmd.verbose: print("join: %s" % bridge, file=sys.stderr) # manager... bridge_manager = BridgeManager(bridge.ip_address, None) # device... client = ClientDescription(ClientDescription.APP, Host.name()) device = DeviceDescription(client) if cmd.verbose: print("join: %s" % device, file=sys.stderr)
print("osio_mqtt_control: %s" % client, file=sys.stderr) sys.stderr.flush() # tag... tag = Host.name() # ------------------------------------------------------------------------------------------------------------ # run... client.connect(ClientAuth.MQTT_HOST, client_auth.client_id, client_auth.user_id, client_auth.client_password) while True: # cmd... if cmd.interactive: line = StdIO.prompt(cmd.device_tag + ' > ') cmd_tokens = line.split() if len(line) > 0 else None else: cmd_tokens = cmd.cmd_tokens # datum... now = LocalizedDatetime.now() datum = ControlDatum.construct(tag, cmd.device_tag, now, cmd_tokens, cmd.device_shared_secret) publication = Publication(cmd.device_topic, datum) handler.set(publication) if cmd.verbose: print(datum, file=sys.stderr)
if cmd.verbose: print(domain, file=sys.stderr) else: topic_path = cmd.topic_path # manager... manager = TopicManager(api_auth.api_key) # check topics... if not manager.find(topic_path): print("osio_mqtt_subscriber: Topic not available: %s" % topic_path, file=sys.stderr) exit(1) # subscribers... handler = OSIOMQTTClientHandler(StdIO(), cmd.verbose) subscriber = MQTTSubscriber(topic_path, handler.handle) # client... client = MQTTClient(subscriber) client.connect(ClientAuth.MQTT_HOST, client_auth.client_id, client_auth.user_id, client_auth.client_password) # ------------------------------------------------------------------------------------------------------------ # run... # just join subscribers while True: time.sleep(1) # ----------------------------------------------------------------------------------------------------------------