MQTT Gateway input http vs udp

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Denon2002
    Smart Home'r
    • 18.08.2020
    • 34

    #1

    MQTT Gateway input http vs udp

    Hallo,

    vielleicht hat ja einer eine Idee.

    Im MQTT Pluging habe ich folgenden Input

    HTTP
    vitoconnect_heating_gas_consumption_dhw_day -> Last Value 0.2,1.3,1.3,1.4,1.4,1.4,1.1,1.6
    Wenn ich diesen Eingang im Loxone als virtuellen HTTP Text Eingang anlege erhalte ich den kompletten Wert (Last Value)

    UDP
    vitoconnect/heating/gas/consumption/dhw/day=0.2,1.3,1.3,1.4,1.4,1.4,1.1,1.6 -> MQTT:\ivitoconnect/heating/gas/consumption/dhw/day=\i\v
    Wenn ich Eintrag als virtuellen UDP Eingang anlege wird dieser Wert jedoch im Loxone nie gefüllt (er steht dauerhaft bei 0)

    Im UDP Log sehe ich das der Wert in Loxone ankommt.
    Liegt es beim UDP Port an der Befehlserkennung oder an der Einheit.
    Was müsste da jeweils drinstehen, damit der Wert auch am UDP Eingang zu sehen ist ?

    Vielen Dank im voraus.

    Hat sich erledigt -> Werte sind jetzt auf einmal sichtbar. Keine Ahnung warum und wieso. :-)
    Zuletzt geändert von Denon2002; 07.10.2021, 12:15. Grund: Problem gelöst
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6318

    #2
    Der UDP Eingang kann nur Werte verarbeiten. Du musst für jeden einzelnen Wert in der Kette eine Befehlserkennung anlegen.
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Denon2002
      Smart Home'r
      • 18.08.2020
      • 34

      #3
      Hy,

      ja das habe ich auch schon hinbekommen.
      Was mich jetzt nur stört.

      Während die http Eingänge regelmäßig aktualisiert werden, ändert sich der UDP Wert aktuell nicht. Obwohl im UDP Monitor die Werte zusehen sind.

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6318

        #4
        UDP ist im Grunde viel besser. Während Du bei HTTP Eingängen immer selbst periodisch eine Webseite mit komplettem Overhead abrufen musst obwohl sich meist nichts geändert hat und Du dennoch ein Delay hast, bekommst Du den Wert über UDP übermittelt wenn sich etwas geändert hat, ohne TCP Overhead, ohne HTTP Overhead ohne Delay mitgeteilt. ( Natürlich nur, wenn der UDP Sender das entsprechend sendet ). Dafür ist es natürlich auch so, dass die Werte auch nur neu ankommen, wenn der Sender diese neu sendet
        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
          • 11237

          #5
          Aufpassen, dass da nicht was verwechselt wird, was gar nicht zusammenhängt.

          In dem Thread geht es imho um HTTP bzw. UDP Übertragung des MQTT Gateways an den Miniserver. Weder bei HTTP noch bei UDP muss periodisch eine Webseite abgefragt werden, und sowohl bei HTTP als auch bei UDP-Übertragung werden vom MQTT Gateway nur Wertänderungen übertragen (und keine gleichen Werte). Der Overhead der HTTP-Übertragung an den Miniserver mit direktem Setzen eines VI's wird meiner Meinung nach mehr als wettgemacht im Vergleich zur UDP-Übertragung, wo der Miniserver ständig zick Textsuchen für die Befehlserkennung machen muss.

          Das HTTP, wovon Sven spricht, sind "Virtuelle HTTP Eingänge" von Loxone. Die haben mit der HTTP-Übertragung des MQTT Gateways überhaupt nichts zu tun.

          Denon2002 Warum in deiner UDP-Übertragung sich nichts ändert, kann ich nicht beantworten. Insbesondere, wenn es im Monitor angezeigt wird.
          Damit du deinen langen Wertestring zerlegen kannst, brauchst du jedenfalls HTTP-Übertragung mit einem Virtuellen Texteingang, und kannst das dann mit Befehlserkennungs-Bausteinen zerlegen.

          lg, Christian
          Zuletzt geändert von Christian Fenzl; 08.10.2021, 13:36.
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar


          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            svethi Stimmt natürlich, das kann man gleich dort zerlegen.

          • svethi
            svethi kommentierte
            Kommentar bearbeiten
            Was mir grad einfällt … vielleicht ist das ja auch der „Fehler“ von Denon2002. Beim UDP Eingang MUSS man die Daten direkt im Eingang schon zerlegen.

          • Denon2002
            Denon2002 kommentierte
            Kommentar bearbeiten
            Hallo zusammen, bei dem UPD habe ich dies als Befehlserkennung drin.
            MQTT:\ivitoconnect/heating/gas/consumption/dhw/day=\i,\i\v

            Wie oben beschrieben habe ich zum Beispiel diesen String. 0.2,1.3,1.3,1.4,1.4,1.4,1.1,1.6. Das Ergebnis sollte in diesem Beispiel 1.3 sein.
            Aber wie gesagt, per HTTP mit dem Baustein Befehlserkennung \i,\i\v funktioniert es problemlos.
        • svethi
          Lebende Foren Legende
          • 25.08.2015
          • 6318

          #6
          Diese Befehlserkennung ist falsch. \i,\i\v sucht nach dem ersten Komma und nimmt dann den Wert.
          MQTT:\ivitoconnect/heating/gas/consumption/dhw/day=\i,\i\v
          nach MQTT:, springt dann zu vitoconnect/heating/gas/consumption/dhw/day=, erwartet dann ein Komma, was es nicht gibt und dann beginnt eine neue Sprungmarke, die nie abgeschlossen wird. Ja, dies liefert definitiv keinen Wert.
          MQTT:\ivitoconnect/heating/gas/consumption/dhw/day=\i\i,\i\v
          so müsste es funktionieren. Eine von vielen Möglichkeiten
          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

          Kommentar


          • Denon2002
            Denon2002 kommentierte
            Kommentar bearbeiten
            Hallo svethi, das war es... der UPD Eingang funktioniert jetzt wunderbar. Was so ein zusätzliches "\i" doch ausmacht.
        Lädt...