def play_sound(site_id, file, play_id=None): if play_id is None: play_id = site_id + "-" + str(uuid.uuid1()) auth = { 'username': mqtt_client.get_user(), 'password': mqtt_client.get_pass() } binaryFile = open(file, 'rb') wav = bytearray(binaryFile.read()) paho_publisher.single("hermes/audioServer/{}/playBytes/{}".format( site_id, play_id), wav, hostname=mqtt_client.get_addr(), port=mqtt_client.get_port(), auth=auth)
global _multiDetectionsHolder # pprint(_multiDetectionsHolder) payload = json.loads(str(msg.payload.decode("utf-8", "ignore"))) if len(_multiDetectionsHolder) == 0: threading.Timer(interval=0.3, function=handleMultiDetection).start() _multiDetectionsHolder.append(payload['siteId']) def onSessionStarted(self, data, msg): # print('onSessionStarted') global _multiDetectionsHolder global _sessions # pprint(_multiDetectionsHolder) sessionId = json.loads(str(msg.payload.decode("utf-8", "ignore")))['sessionId'] _sessions[sessionId] = msg client = paho.Client("multi") client.username_pw_set(mqtt_client.get_user(), mqtt_client.get_pass()) client.connect(mqtt_client.get_addr(), mqtt_client.get_port(), 60) client.subscribe([("hermes/hotword/default/detected", 0), ("hermes/dialogueManager/sessionStarted", 0)]) client.message_callback_add('hermes/hotword/default/detected', onHotwordDetected) client.message_callback_add('hermes/dialogueManager/sessionStarted', onSessionStarted) client.loop_forever()
def get_hermes_mqtt_options(): return MqttOptions(username=mqtt_client.get_user(), password=mqtt_client.get_pass(), broker_address=mqtt_client.get_addr_port())