Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Python paho mqtt - Audio Datei verschicken

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Python paho mqtt - Audio Datei verschicken

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      zeta3010 last edited by

      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

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      749
      Online

      31.7k
      Users

      79.8k
      Topics

      1.3m
      Posts

      1
      1
      651
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo