Exemplo n.º 1
0
def on_message(client, userdata, msg):
    print('topic: ' + msg.topic + '\nMessage: ' + str(msg.payload))

    # Debug for checking time
    device_config_db.save_time_of_action('sub_recv_{}'.format(msg.topic))

    if ('/configuration/join_ack/' in msg.topic):
        print(' ## join_ack')
        split_topic = msg.topic.split('/')
        topic_temp_device_id = split_topic[len(split_topic) - 1]
        if (topic_temp_device_id == device_config_db.get_temp_device_id()):
            payload = json.loads(str(msg.payload.decode('utf-8')))
            device_id = payload['id']
            print('  - received device_id:', device_id)
            device_config_db.set_device_id(topic_temp_device_id, device_id)

            sub_client.subscribe("/configuration/leave_ack/" + device_id)
            sub_client.subscribe("/configuration/update_ack/" + device_id)
            sub_client.subscribe("/configuration/register_ack/" + device_id)
            sub_client.subscribe("/utilization/reply/" + device_id)

    if ('/configuration/register_ack/' in msg.topic):
        print(' ## register_ack')
        payload = json.loads(str(msg.payload.decode('utf-8')))

        if ('idList' in payload.keys()):
            for item in payload['idList']:
                for key, value in item.items():
                    device_config_db.set_register_flex_id(key, value)

    if ('/configuration/leave_ack/' in msg.topic):
        print(' ## leave_ack')

    if ('/configuration/update_ack/' in msg.topic):
        print(' ## update_ack')
Exemplo n.º 2
0
def leave(device_id, relay):
    topic = '/configuration/leave'
    payload = {"relay": relay}

    print('[leave] making payload...')
    print(' -', payload)
    print(' - publishing payload to topic:', topic+'/'+device_id)

    # Debug for checking time
    device_config_db.save_time_of_action('publish_{}'.format(topic+'/'+device_id))
    publish.single(topic+"/"+device_id, json.dumps(payload), hostname=mqtt_broker_addr, port=mqtt_port)
Exemplo n.º 3
0
def join(tempDeviceID, uniqueCodes, relay, neighbors, pubKey):
    topic = '/configuration/join'
    payload = {"uniqueCodes": uniqueCodes, "relay": relay, "neighbors": neighbors, "pubKey": pubKey}

    print('[join] making payload...')
    print(' -', payload)
    print(' - publishing payload to topic:', topic+'/'+tempDeviceID)

    # Debug for checking time
    device_config_db.save_time_of_action('publish_{}'.format(topic+"/"+tempDeviceID))
    publish.single(topic+"/"+tempDeviceID, json.dumps(payload), hostname=mqtt_broker_addr, port=mqtt_port)
Exemplo n.º 4
0
def register(device_id, register_id, register_list, relay):
    topic = '/configuration/register'
    payload = {
        'registerID': register_id,
        'registerList': register_list,
        'relay': relay }

    print('[register] making payload...')
    print(' -', payload)
    print(' - publishing payload to topic:', topic+'/'+device_id)

    # Debug for checking time
    device_config_db.save_time_of_action('publish_{}'.format(topic+'/'+device_id))
    publish.single(topic+"/"+device_id, json.dumps(payload), hostname=mqtt_broker_addr, port=mqtt_port)
Exemplo n.º 5
0
def update(device_id, update_id, attributes):
    topic = '/configuration/update'
    payload = {
        'updateID': update_id,
        'id': device_id,
        'deregister':'false',
        'attributes': attributes,
        'relay': 'none'}

    print('[update] making payload...')
    print(' -', payload)
    print(' - publishing payload to topic:', topic+'/'+device_id)

    # Debug for checking time
    device_config_db.save_time_of_action('publish_{}'.format(topic+'/'+device_id))
    publish.single(topic+"/"+device_id, json.dumps(payload), hostname=mqtt_broker_addr, port=mqtt_port)
Exemplo n.º 6
0
def send_query(device_id, query):
    print('send query:', query)
    topic = '/utilization/query'
    if (query is not None):
        payload = query
        print('[query] making payload...')
        print(' -', payload)
        print(' - publishing payload to topic:', topic + '/' + device_id)

        # Debug for checking time
        device_config_db.save_time_of_action('publish_{}'.format(topic + "/" +
                                                                 tempDeviceID))
        publish.single(topic + "/" + device_id,
                       json.dumps(payload),
                       hostname=mqtt_config.mqtt_broker_addr,
                       port=mqtt_config.mqtt_port)