def deleteInteraction(interaction_id):
    payload = {
        'type': 'delete',
        'table': 'interactions',
        'interaction_id': interaction_id
    }
    publish.single(topic='webapp/updates',
                   hostname=getBrokerIp(),
                   payload=json.dumps(payload))
def addInteraction(vals):
    # Validate input
    neededColNames = set(getColNames('interactions'))
    neededColNames.remove('interaction_id')
    givenColNames = set(vals.keys())
    if len(neededColNames.difference(givenColNames)) != 0:
        raise Exception(
            'Error: addInteraction called with incorrect columns: ' +
            str(vals.keys()))

    payload = {'type': 'add', 'table': 'interactions', 'vals': vals}
    publish.single(topic='webapp/updates',
                   hostname=getBrokerIp(),
                   payload=json.dumps(payload))
def updateNode(serial, vals):
    if len(vals
           ) != 2 or 'display_name' not in vals or 'description' not in vals:
        raise Exception('Error: updateNode called with incorrect columns: ' +
                        str(vals.keys()))

    payload = {
        'type': 'update',
        'table': 'node_data',
        'serial': serial,
        'vals': vals
    }
    publish.single(topic='webapp/updates',
                   hostname=getBrokerIp(),
                   payload=json.dumps(payload))
コード例 #4
0
    def __init__(self, brokerIp=None):
        if brokerIp is None:
            brokerIp = getBrokerIp()

        # TODO: Error checking. What if the broker isn't up?
        # Connect to the brokerjas anonymous device
        self.conn = mqtt.Client()
        self.conn.connect(brokerIp)

        # Start the async publishing loop to manage mqtt network packets
        self.conn.loop_start()

        # After the one time connection returns, should set this val
        self.returnVal = None

        # Set callback function
        self.conn.message_callback_add('#', self._oneTimeCallback)
        self.responseTopic = None
def setNodeStatus(serial, status):
    payload = {'status': status}
    publish.single(topic='%d/status_change_request' % serial,
                   hostname=getBrokerIp(),
                   payload=json.dumps(payload))