Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT Generalabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    MQTT Generalabfrage

    Hallo zusammen,
    ich habe zwei SmarthomeNG Instanzen (eine auf dem Raspberry und eine auf meinem Server). Vom Raspberry lasse ich mir die Daten per MQTT zum Server schicken. Das erfolgt jedoch immer nur bei Änderung. So kommt es dann, dass bei dem Neustart des Servers nicht immer alle Werte so vorhanden sind, wie ich es mir wünsche, da sie sich auf dem Rasberry nicht verändert haben. Aber sie entsprechend ggf. auch nicht mehr den gecachten Werten des Servers.

    Gibt es eine Möglichkeit mit einem Befehl einfach alle Daten einmal zu schicken? Kann ich da etwas auf dem Raspberry auslösen, was unabhängig von einer Wertänderung einfach alle MQTT Daten einmalig versendet und so meine Server Instanz auf den aktuellen Stand bringt?

    Danke Euch.

    #2
    Im MQTT Protokoll gibt es für solche Anwendungsfälle das Retain-Flag. Wenn dieses Flag gesetzt ist, "merkt" sich der Broker die MQTT Message und gibt sie an Clients aus, wenn diese neu starten.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Hi Msinn,
      ich habe es probiert. Habe es überall ergänzt aber die Werte bekomme ich bei Neustart eines der beiden Systeme nie. Auch habe ich mqtt_topic_out durch mqtt_topic_init ersetzt. Auch das bringt nichts. Ich habe nach wie vor auf dem Raspi bei der Wassersolltemperatur eine 60°C stehen und bei dem Server eine 0°C. Auch bei anderen Werten ist das Verhalten so.
      Erst bei Änderung wird es wie gewünscht dann auch übertragen.


      SERVER: Wert bleibt 0, kann mit den pluginspezifika viess_* nichts anfangen und verwirft die
      Code:
      ZAEHLER:
          HEIZUNG:
              WARMWASSERSOLLTEMPERATUR:
                  name: Abgastemperatur
                  type: num
                  viess_read: Warmwasser_Solltemperatur
                  viess_read_cycle: 180
                  viess_init: true
                  database: init
                  mqtt_topic_in: ZAEHLER/HEIZUNG/WARMWASSERSOLLTEMPERATUR
                  #mqtt_topic_init: ZAEHLER/HEIZUNG/WARMWASSERSOLLTEMPERATUR
                  mqtt_retain: 'True'​

      RASPI: Wert ist 60, nutzt die pluginspezifika viess_* um die Heizung auszulesen
      Code:
      ZAEHLER:
          HEIZUNG:
              WARMWASSERSOLLTEMPERATUR:
                  name: Abgastemperatur
                  type: num
                  viess_read: Warmwasser_Solltemperatur
                  viess_read_cycle: 180
                  viess_init: true
                  database: init
                  #mqtt_topic_in: ZAEHLER/HEIZUNG/WARMWASSERSOLLTEMPERATUR
                  mqtt_topic_init: ZAEHLER/HEIZUNG/WARMWASSERSOLLTEMPERATUR
                  mqtt_retain: 'True'​



      Info:
      auch eine andere Schreibweise "mqtt_retain: true" bringt keine Abhilfe. Ich denke beide Schreibweisen funktionieren.
      Zuletzt geändert von loeserman; 28.07.2024, 19:18.

      Kommentar

      Lädt...
      X