Daten von Loxberry Plugin an MiniServer senden: UDP vs. HTTP

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • bazzman
    Extension Master
    • 24.09.2019
    • 184

    Daten von Loxberry Plugin an MiniServer senden: UDP vs. HTTP

    Hallo Zusammen

    Ich bin gerade dran ein Loxberry Plugin für meine BWT Perla Seta Entkalkungsanlage zu schreiben (siehe Thread) und mir stellt sich die Frage: Daten vom Loxberry via UDP oder HTTP an den MiniServer übermitteln?

    Was mir bekannt ist:

    UDP
    - Benötigt einen Port (Konfig im Loxberry)
    - Muss via Befehlskennung die Daten im Miniserver Extrahieren (Befehlskennung muss 1:1 dem Aufruf im Plugin übereinstimmen)

    HTTP
    - Benötigt virtuelle Eingänge (für Zahlen) resp. virtuelle Text-Eingänge (textuelle Daten)
    - MiniServer muss Daten nicht via Kennung extrahieren, Daten stehen direkt im entsprechenden Eingang zur Verfügung
    - Loxberry Plugin muss Namen der Eingänge kennen (Konfiguration)

    Bislang war mir nur UDP bekannt, den direkten Zugriff auf Eingänge via HTTP habe ich aber eben getestet und scheint auch zu klappen:
    Beispiel ein HTTP GET Request auf: http://user:xxx@192.168.1.xx/dev/sps/io/TestVI1/foo füllt mir den Text-Eingang wie erwartet mit "foo".

    Ich tendiere aktuell dazu, das Plugin mit HTTP Aufruf auf den MiniServer umzusetzen. Ich habe gesehen, dass es einige ähnliche Plugins gibt für andere Geräte, welche dem User die Wahl lassen, ob UDP oder HTTP verwendet werden soll. Gibt es Vor/Nachteile für das eine oder andere Muster?

    Vielen Dank und Grüsse
    Paolo

    PS: Sorry für die vielleicht Anfänger-Frage, aber das ist mein aktuell erstes Loxberry Plugin
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11225

    #2
    Machs per MQTT - Einfacher geht’s nicht!

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

    Kommentar

    • bazzman
      Extension Master
      • 24.09.2019
      • 184

      #3
      Zitat von Christian Fenzl
      Machs per MQTT - Einfacher geht’s nicht!
      Weiss nicht ob das wirklich einfacher ist, nochmals ein Framework/Plugin rein zu ziehen Wollte mein Plugin eigentlich so einfach wie möglich halten, da wäre das direkte Übertragen per HTTP wohl irgendwie effizienter. Aus der MQTT Gateway Plugin Beschreibung lese ich auch, dass dieser schlussendlich "einfach" virtuelle (Text-)Eingänge abfüllt. Da sehe ich jetzt nicht so den Vorteil, das noch via MQTT zu schleusen, oder doch?

      Zitat von Christian Fenzl
      Welche Programmiersprache?
      Bin aktuell in Perl am Entwickeln. Sowohl PHP als auch Perl gehören jetzt nicht zu meinen Lieblingen, aber wie ich gesehen habe gibts für Perl aufm Loxberry schon einiges mehr an Libraries und daher hab ich mal damit losgelegt (nach kurzen Versuchen mit PHP).

      In Grundzügen funktioniert das Plugin schon, sprich Kontakt zum Enthärter aufbauen inkl. Auth, Werte auslesen und parsen, jetzt fehlt einfach noch das Übermitteln an den MiniServer.

      Grüsse
      Paolo

      PS: noch eine OT Plugin Frage, vielleicht kannst du mir grad einen Pointer geben: ich hab wie in der Plugin Vorlage eine Reihe von Icons (64/128/256/512) hinterlegt, aber in der Pluginübersicht zieht mir der Loxberry diese nicht an (installiert wurden sie gemäss Log). Was muss ich noch tun, damit Loxberry weiss, dass mein Plugin eigene Icons verwendet?

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11225

        #4
        Das MQTT Gateway ist Defacto-Standard am LoxBerry, und wird früher oder später in den Core wandern. Es sind bereits im LoxBerry-Core die Funktionen, um die Verbindungsdaten vom MQTT Gateway auslesen.

        Der große Vorteil ist halt - du musst dich um nichts kümmern: Keine Miniserver-Auswahl im GUI, keine Auswahl ob HTTP oder UDP, keine Ports die der Benutzer extra in deinem Plugin konfigurieren muss, und ein standardisierter Weg (und Format), wie die Daten zum Miniserver kommen. Mit encode_json/json_encode sendest du dein ganzes Datenset als ein Paket an den MQTT-Broker oder per UDP an das MQTT Gateway. Das MQTT Gateway cached automatisch gleiche Daten.

        Gute Idee, ich mach schnell zwei Beispiele zum Senden von Daten (Perl, PHP).

        Wenn du trotzdem auf MQTT verzichten willst, dann nimm mshttp_send_mem (Perl https://www.loxwiki.eu/display/LOXBE...shttp_send_mem bzw. PHP https://www.loxwiki.eu/display/LOXBERRY/mshttp_send_mem) und du brauchst dich nicht um Encoding, http/https und IPv6 und Caching kümmern).

        lg, Christian




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

        Kommentar

      • bazzman
        Extension Master
        • 24.09.2019
        • 184

        #5
        Danke für deine Ausführungen und Erklärungen! Ich denke ich werde es in einer ersten Beta möglichst einfach machen und die mshttp-send Methode nutzen. Wenn mal alles läuft und das Plugin auch von ein paar Leuten getestet wurde, kann ich immer noch auf MQTT umstellen.

        Grüsse
        Paolo

        PS: hast du zu meinem Icon Problem (siehe oben) evtl. auch noch einen Input wo ich suchen könnte?

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11225

          #6
          Icons: Heißen die genau icon_64.png usw.?
          Sonst mal Browsercache löschen.

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

          Kommentar


          • bazzman
            bazzman kommentierte
            Kommentar bearbeiten
            Danke nach etwas reload & cache löschen hats nun auch mit den korrekten Icons geklappt
        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11225

          #7
          BTW meist ist es so, wenn es mal ein paar Leute nutzen, kannst du NICHT MEHR umstellen
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar


          • bazzman
            bazzman kommentierte
            Kommentar bearbeiten
            Hoffentlich schon solange es zumindest noch als Beta deklariert ist.
        Lädt...