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))
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))