Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [geloest] MQTT an den Sonoff-Adapter senden

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [geloest] MQTT an den Sonoff-Adapter senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @oberfragger last edited by 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?

      oberfragger 1 Reply Last reply Reply Quote 0
      • oberfragger
        oberfragger @mickym last edited by 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.

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @oberfragger last edited by 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

          oberfragger 1 Reply Last reply Reply Quote 0
          • oberfragger
            oberfragger @mickym last edited by

            @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.

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @oberfragger last edited by

              @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.

              oberfragger 2 Replies Last reply Reply Quote 0
              • oberfragger
                oberfragger @mickym last edited by oberfragger

                @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 Reply Last reply Reply Quote 0
                • oberfragger
                  oberfragger @mickym last edited by 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()
                  
                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @oberfragger last edited by

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

                    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.

                    oberfragger 1 Reply Last reply Reply Quote 0
                    • oberfragger
                      oberfragger @mickym last edited by

                      @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.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @oberfragger last edited by

                        @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.

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

                        Support us

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

                        874
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        2
                        11
                        3641
                        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