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)
Exemple #2
0
            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)
Exemple #3
0
        # 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)
Exemple #4
0
            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)

    # ----------------------------------------------------------------------------------------------------------------