NEWS
Python paho mqtt - Audio Datei verschicken
-
Hallo zusammen,
ich möchte gerne eine .wav Datei zum Broker publishen und vom Broker subscriben.
Das Audiofile ist 3.4 MB groß. Aus Foren und Einträgen habe ich gelesen, dass man per MQTT ca 200MB verschicken kann per default und ohne Probleme.
Der Code funktioniert mit Bildern oder Textdateien super gut. Die Vorgehensweise ist:
Ich öffne die Datei und erzeuge ein ByteArray, Der ByteArray sende ich an den Broker und subscribe diesen, und schreibe den ByteArray in ein file.
Ich benutze Python 2.7 und die lib paho-mqtt
publisher
import paho.mqtt.client as mqtt topic = "/voice/" #Die Variablen sind bei mir im Skript entsprechend angepasst user = "user" pw = "passwort" host = "X.cloudmqtt.com" port = 116123 def on_message(client, obj, msg): print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload)) mqttc = mqtt.Client() mqttc.on_message = on_message mqttc.username_pw_set(user, pw) mqttc.connect(host, port) f = open("name.wav", "rb") imagestring = f.read() f.close() byteArray = bytearray(imagestring) mqttc.publish(topic, byteArray) rc = 0 while rc == 0: rc = mqttc.loop()Subscribe
import paho.mqtt.client as mqtt topic = "/voice/" #Die Variablen sind bei mir im Skript entsprechend angepasst user = "user" pw = "passwort" host = "X.cloudmqtt.com" port = 116123 def on_message(client, obj, msg): print("Write") f = open('new.wav', 'wb') f.write(msg.payload) f.close() mqttc = mqtt.Client() mqttc.on_message = on_message mqttc.username_pw_set(user, pw) mqttc.connect(host, port) mqttc.subscribe(topic, 0) rc = 0 while rc == 0: rc = mqttc.loop() print("rc: " + str(rc))Beim Subscriber bekomm ich den Fehler rc: 7 und damit bricht er den subscriber ab.
Ich danke schonmal für die Hilfe
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden