Virtueller HTTP Eingang XML parsen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Igel18
    Dumb Home'r
    • 05.01.2016
    • 16

    Virtueller HTTP Eingang XML parsen

    Hallo zusammen,
    ich habe einen Wechselrichter (Steca) bei dem man über http diverse Messwerte abfragen kann.
    Die Abfrage liefert ein XML zurück welches ich gerne über einen virtuellen Eingang parsen würde. Hier habe ich jedoch ein Problem.

    Ich möchte in diesem XML den Value des Type AC_Power auslesen. Ich finde jedoch keine Möglichkeit im XML zurück zu "springen" oder suchen.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 17,8 KB ID: 380333
    Daher habe ich mir den Workaround überlegt.
    Ich Suche nach dem Typ AC_Current3 und nehme dann den nächsten Value Eintrag:
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 17,5 KB ID: 380334
    Das funktioniert aber leider nicht immer. Abends & Nachts wird kein Value Eintrag für AC_Power* geschickt. (Wie hier aktuell bei "GridPower".) Der nächste Value ist vom Typ AC_Frequency1. Und da steht immer 50... drin. Drum bekomme ich nachts immer 50 Watt Leistung.

    Ist nicht besonders schlimm, aber auch nicht so hübsch...

    Vielleicht hat ja jemand eine Idee wie das über den Virtuellen Eingang funktionieren könnte.

    VG
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11217

    #2
    Als LoxBerry-Entwickler würde ich natürlich einfach einen XML-Parser am LoxBerry verwenden.

    Direkt am Miniserver hätte ich aber auch einen (natürlich nicht ausprobierten) Lösungsvorschlag:

    Du lässt erstmal deinen ersten VI wie er ist - da kommt dann nachts der falsche Wert, am Tag der richtige.

    Nun erstellst du einen zweiten virtuellen Eingang mit der Befehlserkennung
    "AC_Power"
    (inklusive der Anführungszeichen, kein \v oder dergleichen)
    Den VI setzt du auf "Als Digitaleingang verwenden" = JA. Hier kommt jetzt ein ganz kurzer Impuls, wenn der String gefunden wurde. Am besten verlängerst du den Impuls mit einer Ausschaltverzögerung, die etwas länger ist als dein Abfrage Intervall.

    Schlussendlich erstellst du einen Analogwahlschalter mit dem ersten VI und 0 als Analogeingänge, und dem verlängerten Impuls als Umschalter. Wenn der Impuls 1 ist (also AC_Power vorkommt), gilt der Wert vom VI. Fällt der Impuls ab, kommt 0.

    Viel Erfolg beim Tüfteln!

    LG, Christian

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

    Kommentar

    • Igel18
      Dumb Home'r
      • 05.01.2016
      • 16

      #3
      Hallo Christian,
      danke für deine Antwort.
      Hört sich spannend an deine Idee.

      Ich habe es jetzt so gelöst, dass ich die Werte mit einem IO-Broker einlese und Parse und dann von der Loxone diesen geparsten Wert auslese...

      VG Dominik

      Kommentar

      Lädt...