Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [geloest] MQTT an den Sonoff-Adapter senden

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.6k

[geloest] MQTT an den Sonoff-Adapter senden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
11 Beiträge 2 Kommentatoren 3.9k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • oberfraggerO Offline
    oberfraggerO Offline
    oberfragger
    schrieb am zuletzt editiert von oberfragger
    #1

    Hi,
    ich habe bisher immer auf Tasmota gesetzt...so schön einfach. Nun will ich an den tasmota-Adapter Temperaturwerte aus dem RaspberryPi4 senden. Das ganze würde ich via Cron auslösen und dann alle 10 Minuten an den ioBroker senden. Aktuell ist noch nicht geplant irgendwas via MQTT zuschalten. Aber nicht ausgeschlossen.

    Ich kann via python the Luftfeuchtigkeit und Temperatur auf der cosole anzeigen lassen. Passt soweit. Nun will ich das mit MQTT in den ioBroker übertragen. Ich bin mir sicher das kann nict so schwer sein, eine Verbindung klappt... ein Objekt wurde auch erstellt... das wars.

    Hier mein Python Script auf dem Raspberry:

    import paho.mqtt.client as mqtt #import the client1
    broker_address="192.168.178.55"
    print("creating new instance")
    client = mqtt.Client("P1") #create new instance
    client.username_pw_set("User", "Passwort")
    print("connecting to ioBroker")
    client.connect(broker_address) #connect to broker
    print("Subscribing to topic","sonoff")
    client.subscribe("sonoff/AM2320_Humidity")
    print("Publishing message to topic","sonoff/AM2320_Humidity")
    client.publish("sonoff/AM2320_Humidity",5)
    

    So siehts im ioBroker aus:
    72a2a978-65c4-4537-bece-370099798fd8-image.png

    Und so im Log:
    b2414522-9266-4ea5-8e1b-eaff175ea611-image.png

    Warum wird der Wert nicht im ioBroker geschrieben?

    mickymM 1 Antwort Letzte Antwort
    0
    • oberfraggerO oberfragger

      Hi,
      ich habe bisher immer auf Tasmota gesetzt...so schön einfach. Nun will ich an den tasmota-Adapter Temperaturwerte aus dem RaspberryPi4 senden. Das ganze würde ich via Cron auslösen und dann alle 10 Minuten an den ioBroker senden. Aktuell ist noch nicht geplant irgendwas via MQTT zuschalten. Aber nicht ausgeschlossen.

      Ich kann via python the Luftfeuchtigkeit und Temperatur auf der cosole anzeigen lassen. Passt soweit. Nun will ich das mit MQTT in den ioBroker übertragen. Ich bin mir sicher das kann nict so schwer sein, eine Verbindung klappt... ein Objekt wurde auch erstellt... das wars.

      Hier mein Python Script auf dem Raspberry:

      import paho.mqtt.client as mqtt #import the client1
      broker_address="192.168.178.55"
      print("creating new instance")
      client = mqtt.Client("P1") #create new instance
      client.username_pw_set("User", "Passwort")
      print("connecting to ioBroker")
      client.connect(broker_address) #connect to broker
      print("Subscribing to topic","sonoff")
      client.subscribe("sonoff/AM2320_Humidity")
      print("Publishing message to topic","sonoff/AM2320_Humidity")
      client.publish("sonoff/AM2320_Humidity",5)
      

      So siehts im ioBroker aus:
      72a2a978-65c4-4537-bece-370099798fd8-image.png

      Und so im Log:
      b2414522-9266-4ea5-8e1b-eaff175ea611-image.png

      Warum wird der Wert nicht im ioBroker geschrieben?

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @oberfragger Um es gleich vorwegzunehmen - ich nutze nicht den sonoff Adapter, sondern normales MQTT. Allerdings möchte ich einfach ein paar Fragen stellen , weil ich durchaus auch Tasmota nutze und mir das "spanisch" vorkommt, dass Du hier selbst via cron irgendwas auslösen möchtest. Normalerweise hat tasmota eine MQTT Schnittstelle. Sollte sich eine Änderung in den Daten ergeben, dann sendet tasmota das automatisch. Zudem sendet tasmota automatisch einen Hearbeat an den MQTT-Broker. Also warum konfiguriert Du nicht einfach tasmota ordentlich mit den MQTT-Einstellungen?

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      oberfraggerO 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @oberfragger Um es gleich vorwegzunehmen - ich nutze nicht den sonoff Adapter, sondern normales MQTT. Allerdings möchte ich einfach ein paar Fragen stellen , weil ich durchaus auch Tasmota nutze und mir das "spanisch" vorkommt, dass Du hier selbst via cron irgendwas auslösen möchtest. Normalerweise hat tasmota eine MQTT Schnittstelle. Sollte sich eine Änderung in den Daten ergeben, dann sendet tasmota das automatisch. Zudem sendet tasmota automatisch einen Hearbeat an den MQTT-Broker. Also warum konfiguriert Du nicht einfach tasmota ordentlich mit den MQTT-Einstellungen?

        oberfraggerO Offline
        oberfraggerO Offline
        oberfragger
        schrieb am zuletzt editiert von oberfragger
        #3

        @mickym Lass dich bitte nicht von "Tasmota" ablenken. Ich nutze auf diversen Sonoffs und ESPs etc. MQTT problemlos.

        Nun möchte ich selbstständig Werte an den Sonoff-Adapter, meinetwegen auch an den MQTT-Adapter im ioBroker senden. Also keine vorgefertigte Lösung, wie sie Tasmota bietet.

        Ich lese mit dem Raspberry (der noch andere Aufgaben übernimmt) einen Sensor aus. Die Sensorwerte möchte ich gern an den ioBroker-Adapter senden.

        mickymM 1 Antwort Letzte Antwort
        0
        • oberfraggerO oberfragger

          @mickym Lass dich bitte nicht von "Tasmota" ablenken. Ich nutze auf diversen Sonoffs und ESPs etc. MQTT problemlos.

          Nun möchte ich selbstständig Werte an den Sonoff-Adapter, meinetwegen auch an den MQTT-Adapter im ioBroker senden. Also keine vorgefertigte Lösung, wie sie Tasmota bietet.

          Ich lese mit dem Raspberry (der noch andere Aufgaben übernimmt) einen Sensor aus. Die Sensorwerte möchte ich gern an den ioBroker-Adapter senden.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #4

          @oberfragger OK dann hat das aber mit Tasmota gar nichts zu tun. Vielmehr musst Du mit Deiner Software "MQTT" sprechen bzw. dessen Protokoll sprechen. Der Sonoff agiert ja was die Kommunikation betrifft - als MQTT Broker.

          Hier ist meines Erachtens der Aufbau des Protokolls: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html

          bzw. dieses wiki: https://github.com/mqtt/mqtt.org/wiki

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          oberfraggerO 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @oberfragger OK dann hat das aber mit Tasmota gar nichts zu tun. Vielmehr musst Du mit Deiner Software "MQTT" sprechen bzw. dessen Protokoll sprechen. Der Sonoff agiert ja was die Kommunikation betrifft - als MQTT Broker.

            Hier ist meines Erachtens der Aufbau des Protokolls: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html

            bzw. dieses wiki: https://github.com/mqtt/mqtt.org/wiki

            oberfraggerO Offline
            oberfraggerO Offline
            oberfragger
            schrieb am zuletzt editiert von
            #5

            @mickym Bin schon den ganzen Abend am wühlen. Ich bräucht nur von -irgendjemanden- mal ein Beispiel was funktioniert. Also "reiner MQQT-Code".
            So falsch kann ich doch nicht liegen bzw. ich verstehe nciht warum der Wert (der ja im ioBroker ankommt) einfach nicht reingeschrieben wird.

            mickymM 1 Antwort Letzte Antwort
            0
            • oberfraggerO oberfragger

              @mickym Bin schon den ganzen Abend am wühlen. Ich bräucht nur von -irgendjemanden- mal ein Beispiel was funktioniert. Also "reiner MQQT-Code".
              So falsch kann ich doch nicht liegen bzw. ich verstehe nciht warum der Wert (der ja im ioBroker ankommt) einfach nicht reingeschrieben wird.

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #6

              @oberfragger Hier gibts eine MQTT client implementierung für Python - vielleicht hast Du das aber schon implementiert.

              https://pypi.org/project/gmqtt/0.6.9/

              Ich würde trotzdem lieber den reinen MQTT Broker zum Testen nehmen und keinen Sonoff Adapter, weil Du ja nicht weißt ob der nicht irgendwas macht, um "nicht tasmota" Geräte am Verbinden hindert.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              oberfraggerO 2 Antworten Letzte Antwort
              0
              • mickymM mickym

                @oberfragger Hier gibts eine MQTT client implementierung für Python - vielleicht hast Du das aber schon implementiert.

                https://pypi.org/project/gmqtt/0.6.9/

                Ich würde trotzdem lieber den reinen MQTT Broker zum Testen nehmen und keinen Sonoff Adapter, weil Du ja nicht weißt ob der nicht irgendwas macht, um "nicht tasmota" Geräte am Verbinden hindert.

                oberfraggerO Offline
                oberfraggerO Offline
                oberfragger
                schrieb am zuletzt editiert von oberfragger
                #7

                @mickym Vermutlich haste recht dass ich vielleicht den richtigen Mqqt-Adapter nehmen sollte.

                Habe hier ein Beispiel gefunden was mein Problem gut darstellt.
                https://thingsboard.io/docs/samples/raspberry/temperature/

                Ich will aber ohne das thingsboard auskommen. Sieht aber so aus, als ob da sauch nur MQTT ist.

                Ich glaube mittlerweile dass das Zauberwort wohl "payload" heisst. Ma weiter wühlen.

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @oberfragger Hier gibts eine MQTT client implementierung für Python - vielleicht hast Du das aber schon implementiert.

                  https://pypi.org/project/gmqtt/0.6.9/

                  Ich würde trotzdem lieber den reinen MQTT Broker zum Testen nehmen und keinen Sonoff Adapter, weil Du ja nicht weißt ob der nicht irgendwas macht, um "nicht tasmota" Geräte am Verbinden hindert.

                  oberfraggerO Offline
                  oberfraggerO Offline
                  oberfragger
                  schrieb am zuletzt editiert von oberfragger
                  #8

                  @mickym Boah. Leck...
                  Ja, mit dem MQTT-Adapter klappt es! Mal wieder paar Stunden vergeudet.

                  Ich habe mal den Thingsboard-Code genommen und angepasst.
                  Jetzt habe ich ein Objekt da drin stehen. Denke mal ich kann problemlos die Werte einzeln übertragen. Zumindest sind die schon mal an der richten Stelle.

                  b8ae5d8f-c681-47a7-b606-44e9aadcff21-image.png

                  import os
                  import time
                  import sys
                  #import Adafruit_DHT as dht
                  import paho.mqtt.client as mqtt
                  import json
                  
                  THINGSBOARD_HOST = '192.168.178.55'
                  ACCESS_TOKEN = 'DHT22_DEMO_TOKEN'
                  
                  # Data capture and upload interval in seconds. Less interval will eventually hang the DHT22.
                  INTERVAL=2
                  
                  sensor_data = {'temperature': 0, 'humidity': 0}
                  
                  next_reading = time.time() 
                  
                  client = mqtt.Client("P2")
                  
                  # Set access token
                  client.username_pw_set("user", "passwort")
                  
                  # Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
                  client.connect(THINGSBOARD_HOST, 1888, 60)
                  
                  client.loop_start()
                  
                  try:
                      while True:
                  #        humidity,temperature = dht.read_retry(dht.DHT22, 4)
                  #        humidity = round(humidity, 2)
                  #        temperature = round(temperature, 2)
                          humidity = 30
                          temperature = 20
                  #        print(u"Temperature: {:g}\u00b0C, Humidity: {:g}%".format(temperature, humidity))
                          sensor_data['temperature'] = temperature
                          sensor_data['humidity'] = humidity
                  
                          # Sending humidity and temperature data to ThingsBoard
                          client.publish('AM2320', json.dumps(sensor_data), 1)
                  
                          next_reading += INTERVAL
                          sleep_time = next_reading-time.time()
                          if sleep_time > 0:
                              time.sleep(sleep_time)
                  except KeyboardInterrupt:
                      pass
                  
                  client.loop_stop()
                  client.disconnect()
                  
                  mickymM 1 Antwort Letzte Antwort
                  0
                  • oberfraggerO oberfragger

                    @mickym Boah. Leck...
                    Ja, mit dem MQTT-Adapter klappt es! Mal wieder paar Stunden vergeudet.

                    Ich habe mal den Thingsboard-Code genommen und angepasst.
                    Jetzt habe ich ein Objekt da drin stehen. Denke mal ich kann problemlos die Werte einzeln übertragen. Zumindest sind die schon mal an der richten Stelle.

                    b8ae5d8f-c681-47a7-b606-44e9aadcff21-image.png

                    import os
                    import time
                    import sys
                    #import Adafruit_DHT as dht
                    import paho.mqtt.client as mqtt
                    import json
                    
                    THINGSBOARD_HOST = '192.168.178.55'
                    ACCESS_TOKEN = 'DHT22_DEMO_TOKEN'
                    
                    # Data capture and upload interval in seconds. Less interval will eventually hang the DHT22.
                    INTERVAL=2
                    
                    sensor_data = {'temperature': 0, 'humidity': 0}
                    
                    next_reading = time.time() 
                    
                    client = mqtt.Client("P2")
                    
                    # Set access token
                    client.username_pw_set("user", "passwort")
                    
                    # Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
                    client.connect(THINGSBOARD_HOST, 1888, 60)
                    
                    client.loop_start()
                    
                    try:
                        while True:
                    #        humidity,temperature = dht.read_retry(dht.DHT22, 4)
                    #        humidity = round(humidity, 2)
                    #        temperature = round(temperature, 2)
                            humidity = 30
                            temperature = 20
                    #        print(u"Temperature: {:g}\u00b0C, Humidity: {:g}%".format(temperature, humidity))
                            sensor_data['temperature'] = temperature
                            sensor_data['humidity'] = humidity
                    
                            # Sending humidity and temperature data to ThingsBoard
                            client.publish('AM2320', json.dumps(sensor_data), 1)
                    
                            next_reading += INTERVAL
                            sleep_time = next_reading-time.time()
                            if sleep_time > 0:
                                time.sleep(sleep_time)
                    except KeyboardInterrupt:
                        pass
                    
                    client.loop_stop()
                    client.disconnect()
                    
                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @oberfragger Na das schaut doch gut aus. Glückwunsch!!!:relaxed:

                    Warum ich den Sonoff Adapter als problematisch empfunden habe, weil der sich ja bewusst mehr als nur als reiner MQTT Broker verhält bzw. nicht als Standardbroker verhält.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    oberfraggerO 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @oberfragger Na das schaut doch gut aus. Glückwunsch!!!:relaxed:

                      Warum ich den Sonoff Adapter als problematisch empfunden habe, weil der sich ja bewusst mehr als nur als reiner MQTT Broker verhält bzw. nicht als Standardbroker verhält.

                      oberfraggerO Offline
                      oberfraggerO Offline
                      oberfragger
                      schrieb am zuletzt editiert von
                      #10

                      @mickym Jupp. Ich bin nun auch am überlegen ob ich alles Devices von Sonoff zu MQTT umziehen soll. Vermutlich werde ich aber alle neuen Devices direkt mit MQTT nutzen.

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • oberfraggerO oberfragger

                        @mickym Jupp. Ich bin nun auch am überlegen ob ich alles Devices von Sonoff zu MQTT umziehen soll. Vermutlich werde ich aber alle neuen Devices direkt mit MQTT nutzen.

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @oberfragger Ich nutze grundsätzlich keine Adapter, wenn Geräte standardmäßig mqtt sprechen. Das ist für mich nur eine zusätzliche Fehlerquelle - Du musst jedem dieser mqtt-Adapter einen eigenen Port gönnen - und bist ggf. darauf angewiesen, dass im Falle der Adapter halt spezifische Dinge kann, diese auch unterstützt werden. Hier ist halt auch der Nachteil, das Du selbst Hand anlegen musst - aber bei Dir seh ich da keine Probleme.

                        Ich nutze meinen MQTT-Broker für Sonoff, Shelly und owntracks und brauche dafür keine Adapter mehr. Ich hatte allerdings auch ein Problem den MQTT-Adapter als Broker zu verwenden. Deshalb läuft auf meiner Maschine noch ein mosquitto als Server und der MQTT- Adapter als Client und das nun seit längerer Zeit sehr stabil.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        929

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe