Minimale Zeit zwischen MQTT Messages

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • GoingForGold
    Dumb Home'r
    • 26.07.2021
    • 11

    #1

    Minimale Zeit zwischen MQTT Messages

    Hallo zusammen,

    Ich habe ein par kleinere Geräte entwickelt, welche auf Grund eines Tipps aus dem Forum hier, Nachrichten an den MQTT Broker im LB senden. Der Tipp war super! So konnte ich mit Arduinos mit wenig Aufwand ein par coole Dinge machen, wie bspw. eine Wasserstandsmessung in meiner Zisterne oder auch ein Controller für meine Poolsteuerung.
    Jetzt bin ich dran einen Regensensor einzubinden (wegen der Platzierung per WiFi). Es ist ein simpler "Tipping Bucket Gauge", welcher bei einer bestimmten Regenmenge einen Impuls (Schliesskontakt/Reedswitch mit Magnet). Meine Idee war, dass ich der Einfachheit halber, diese Impulse per MQTT an den Miniserver "weiterleite", und dieser dann mit einem Zählerbaustein den Regen berechnet. Da der Arduino (in diesem Fall ein ESP8266) die meiste Zeit im Tiefschlaf ist und nur vom Regensensor geweckt wird, wollte ich vermeiden, da allzu komplizierte Berechnungen mit Zeitstempeln zu machen, und das alles dem Miniserver überlassen. Konkret heisst das, dass ich das MQTT topic rain/impulse auf 1 setze, und nach einer gewissen Zeit wieder auf 0. Der Miniserver erkennt die steigende Flanke als Impuls und zählt es.
    Das funktioniert so weit eigentlich ganz gut
    Dabei ist mir aber eine Frage aufgekommen. Und zwar ist mir aufgefallen, dass ich offensichtlich einen Wert in MQTT maximal alle ca. 20 Sekunden verändern kann. Also wenn ich die 1 sende, dann muss ich 20s warten, bis ich wieder einen neuen Wert, also die 0, senden kann. Ansonsten ignoriert Mosquitto den Wert einfach.

    Wieso ist das so? Gibt es dazu irgendwo eine Einstellung, die ich übersehe? Mir scheint es unwahrscheinlich, dass der Wert aufgrund hohen Workloads nicht verarbeitet werden kann.

    Klar, ich kann einfach diese 20s warten, respektive kann ich auch das selbe Topic abonnieren, um zu wissen, ob der Wert erfolgreich wieder auf 0 ist. Mich würde es aber trotzdem sehr interessieren, was der Grund dafür ist.

    Danke!
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6310

    #2
    Also 1. brauchst Du nicht immer wieder 0 senden. MQTT sind Nachrichten ähnlich KNX. Da kannst Du auch immer wieder einen 1 senden wenn die eintritt. Wenn Du für Loxone die Änderung benötigst, kannst Du dem Gateway sagen, dass es den Wert zurücksetzen soll. MQTT selbst hat keine Limitierung. Ich sende mir auch mehrere Stromzählerwerte alle 10s. Dass da irgendetwas den Mosquitto so auslastet, dass der die Werte nur alle 20s verarbeitet, kann ich mir nicht vorstellen
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • GoingForGold
      Dumb Home'r
      • 26.07.2021
      • 11

      #3
      Danke für die Antwort!

      Bis jetzt funktioniert es nicht, wenn der Wert dazwischen nicht einmal auf 0 war. Wir würde ich dem Gateway das sagen, dass er den Wert dazwischen auf 0 setzen soll? Mit so einem Transformer?

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6310

        #4
        Unter Incomming Overview gibts die Einstellung details und advanced settings
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11232

          #5
          Die Reset-After-Send Option bei einem MQTT-Wert setzt einen Wert wieder auf 0 zurück.

          Im Schnitt processed das MQTT Gateway ca. 20-50 MQTT-Werte pro Sekunde, wenn also ein Wert 20 Sekunden braucht, um durchzukommen, stimmt irgendwas nicht (oft etwas mit dem DNS).

          lg Christian
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • GoingForGold
            Dumb Home'r
            • 26.07.2021
            • 11

            #6
            Perfekt, danke euch! Habe es jetzt tatsächlich geschafft so. Mit der Einstellung klappts ohne Delays

            Danke!

            Kommentar

            Lädt...