XML an Loxone weitergeben

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

    XML an Loxone weitergeben

    Moin liebe Loxone Community,

    ihr könnt mir bestimmt weiterhelfen oder Tipps geben in welche Richtung ich suchen muß!

    Ich habe eine Honeywell EMA auf die ich per Webinterface drauf zugreifen kann.
    Dort würde ich gerne meine Fensterkontake auswerten lassen.

    Kann die XML Datei auch im Browser aufrufen lassen:


    siehe unten

    Jetzt möchte ich einfach nur den Wert RED OFF an Loxone weitergeben.

    Das heißt wenn z.B. Input nr 1 RED OFF ist soll der Loxone Eingang auf 0 und wenn RED ON ist soll der Eingang auf 1.


    Leider kann ich dort keine Zahlen werte eingeben.


    Jetzt beim schreiben fällt mir ein ich könnte eventuell Zahlen beim TEXT eingeben 1 für auf und 0 für zu.

    Kann sowas denn einfach per Loxonebefehlserkennung abgefragt werden?
    Per Zahlen scheint es ja einfach zu sein aber mit Wörten ohne PHP?!?

    Vielleicht kann mir jemand helfen in welche Richtung ich mich "Schulen" muß.

    Schon mal Danke.




    <EMZ_Input>
    <Info>
    <Headline>Zustand der EMZ Eingaenge</Headline>
    <Column1>Eingangsbezeichnung</Column1>
    <Column2>Zustand</Column2>
    <Column3>Anzeige</Column3>
    <Column4>Physik</Column4>
    <Column5>MG Nr.</Column5>
    <Poll>5000</Poll>
    </Info>
    <Input nr="1">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="2">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="3">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="4">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="5">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="6">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="7">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
    </Input>
    <Input nr="8">
    <Condition>Soll</Condition>
    <PH_Condition></PH_Condition>
    <Led>RED_OFF</Led>
    <Text></Text>
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6247

    #2
    Hallo Dancker,

    mal ganz davon abgesehen, dass ich den von Dir gewählten Titel nicht für geeignet halte, hast Du schon richtig erkannt, dass man nicht nach Wörtern suchen kann. Mit einen kleinen Trick kann man sich aber behelfen. Wörter bestehen aus Buchstaben und Buchstaben sind auch nur Zahlen/Bytes. Gibst Du jetzt in der Befehlserkennung RED_O\1 ein, bekommst Du den ASCII Code von F oder N. Wenn Du jetzt noch die Korrektur verwendest, sollte es gehen.

    Gruß Sven
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Gast

      #3
      Hallo Sven,

      viel dank schon mal für die Antwort.

      ich hab noch versucht verschiedene Befehlserkennungs ketten einzugeben, aber komme zu keiner Antwort.

      Muß ich der xml mit \ixxx\i arbeiten ?
      Das Wort steht ja zwischen den <led>Red off<led> und es sind verschiedene inputs.



      Kommentar

      • romildo
        Lebende Foren Legende
        • 25.08.2015
        • 5026

        #4
        Hallo,
        Ja so sollte es funktionieren.
        Befehlserkennung für Input 1: Input nr="1"\iRED_O\i\1
        Befehlserkennung für Input 2: Input nr="2"\iRED_O\i\1
        Für OFF bekommst Du dann eine 70 als Ergebnis, für ON eine 78.
        lg Romildo

        Kommentar

        • svethi
          Lebende Foren Legende
          • 25.08.2015
          • 6247

          #5
          Ganz wichtig ist auch das so anzugeben wie es da auch steht. Groß- und Kleinschreibung ist ebenso zu beachten wie alle Zeilenumbrüche und Sonderzeichen.
          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

          Kommentar

          • FranksBude
            Smart Home'r
            • 10.02.2016
            • 42

            #6
            Hallo - ich hänge mich hier mal ran...
            Nachdem mein Sunplug-Wechselrichter mit neuer Firmware Messwerte per http ausgibt und er seit gestern auch über ModbusRTU Daten vom Stromzähler bekommt (und ebenfalls ausgibt), wollte ich heute mal versuchen, virtuelle Eingänge in Loxone dafür anzulegen. Leider erhalte ich auch nur Nullen, finde aber den Fehler nicht.
            Im Anhang liegt die Ausgabe des Wechselrichters über einen Browser als Bild, hier habe ich mal den Quelltext reinkopiert:
            PHP-Code:
               <?xml version='1.0' encoding='UTF-8'?><root><Device Name='Sunplug eco 5.5 TL3i' Type='Inverter' Serial='754299AI005737730010' BusAddress='1' NetBiosName='INV005737730010' IpAddress='192.168.1.31' DateTime='2016-10-22T14:56:52'><Measurements><Measurement Value='231.492' Unit='V' Type='AC_Voltage1'/><Measurement Value='231.772' Unit='V' Type='AC_Voltage2'/><Measurement Value='230.538' Unit='V' Type='AC_Voltage3'/><Measurement Value='5.628' Unit='A' Type='AC_Current1'/><Measurement Value='5.608' Unit='A' Type='AC_Current2'/><Measurement Value='5.599' Unit='A' Type='AC_Current3'/><Measurement Value='3888.971' Unit='W' Type='AC_Power'/><Measurement Value='1300.858' Unit='W' Type='AC_Power1'/><Measurement Value='1296.767' Unit='W' Type='AC_Power2'/><Measurement Value='1295.333' Unit='W' Type='AC_Power3'/><Measurement Value='49.999' Unit='Hz' Type='AC_Frequency1'/><Measurement Value='49.998' Unit='Hz' Type='AC_Frequency2'/><Measurement Value='49.998' Unit='Hz' Type='AC_Frequency3'/><Measurement Value='619.000' Unit='V' Type='DC_Voltage'/><Measurement Value='6.408' Unit='A' Type='DC_Current'/><Measurement Value='3966.552' Unit='W' Type='DC_Power'/><Measurement Value='41.020' Unit='°C' Type='Temp'/><Measurement Value='545.6' Unit='W' Type='Consumption PV'/><Measurement Value='0.0' Unit='W' Type='Consumption Grid'/><Measurement Value='3342.686035' Unit='W' Type='GridPower'/><Measurement Value='100.0' Unit='%' Type='Dearting'/></Measurements></Device></root>
            Mein bisheriges Vorgehen bei Loxone:
            1. Virtuellen HTTP Eingang angelegt mit der URL http://192.168.1.31/measurements.xml
            2. Befehlserkennung in bisher getesteten drei Varianten:
            a) mit z.B. für "Consumtion Grid" Zeichenfolgensuche inklusive der vorigen Zeile:
            Code:
            Consumption PV"/><Measurement Value="\v
            b) mit z.B. für "AC Power" Springen zu einer Zeichenfolge vorher und darauf folgender Suche:
            Code:
            [I]\iAC_Current3\iValue="\v[/I]
            c) Zeichenfolgesuche wie im Quelltext angegeben, für "Consumption Grid" also:
            Code:
            [I][COLOR=#000000]Type='AC_Current3'/><Measurement Value='\v[/COLOR][/I]
            Ein bisschen blöd ist, dass die Beschreibung der Werte immer hinter dem Wert erfolgt.
            Vielleicht hilft mir ja hier jemand.

            Gruß,
            Frank



            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11080

              #7
              Beim Durchschauen des XMLs ist mir genau dein letzter Absatz durch den Kopf geschossen, bevor ich ihn gelesen habe :-)

              b) ist sicher das Ressourcenschonenste, aber deine Syntax passt nicht.

              Grundsätzlich braucht man für die erste Suche keine Such-Tags angeben.

              Also:
              Code:
              AC_Current3\iValue='\i\v
              Bei Suchen am besten aus dem Original kopieren! Z.B. suchst du nach Value=" aber es ist ein einfaches Hochkomma.
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • romildo
                Lebende Foren Legende
                • 25.08.2015
                • 5026

                #8
                Hallo Frank,
                Ich kann da nicht ganz folgen. Oben schreibst Du PHP-Code, im HTTP-Eingang ist es aber ein .xml, im Bild dann wieder ein xml?

                Da in der xml der Text nach dem Wert kommt, könntest Du ja zuerst nach dem Vorgängertext suchen und dann den nächsten Wert einlesen.
                lg Romildo

                Kommentar

                • FranksBude
                  Smart Home'r
                  • 10.02.2016
                  • 42

                  #9
                  Alles xml, nur den falschen Button geklickt.

                  Vielen Dank an Christian - jetzt habe ich schon mal Werte zum Spielen.

                  Gruß,
                  Frank

                  Kommentar

                  • romildo
                    Lebende Foren Legende
                    • 25.08.2015
                    • 5026

                    #10
                    Würde mich aber schon noch interessieren wie du da jetzt zu Werten kommst.
                    So
                    Code:
                    AC_Current3\iValue='\i\v
                    oder so
                    Code:
                    AC_Current3\iValue="\i\v
                    lg Romildo

                    Kommentar

                    • FranksBude
                      Smart Home'r
                      • 10.02.2016
                      • 42

                      #11
                      Code:
                      AC_Current3\iValue='\i\v

                      Kommentar


                      • romildo
                        romildo kommentierte
                        Kommentar bearbeiten
                        Somit müsste es dann der Wert für AC_Power sein

                        Danke für die Info.
                        Zuletzt geändert von romildo; 22.10.2016, 16:08.

                      • FranksBude
                        FranksBude kommentierte
                        Kommentar bearbeiten
                        Ja richtig, immer der in der nächsten Zeile.

                        Hast du auch den Stecagrid/SunPlug Wechselrichter?

                      • romildo
                        romildo kommentierte
                        Kommentar bearbeiten
                        Nein habe ich nicht, war rein interessehalber, da schon des Öfteren Fragen bezüglich HTTP und dessen Syntax im Forum aufgetaucht sind.
                        Dieser muss ja genau stimmen, sonst kommt da nichts und bei kopiertem Code weiss man nicht welche Zeichen da umgewandelt wurden.
                    • Gast

                      #12
                      Vielen Dank für die Hilfestellung hat alles wunderbar funktioniert und auch danke für die schnellen Antworten. Was mir jetzt auf gefallen ist das er alle 10 sekunden abfragt. Das kann man nicht irgendwie abkürzen?

                      Kommentar

                      • FranksBude
                        Smart Home'r
                        • 10.02.2016
                        • 42

                        #13
                        Es steht leider "Minimum 10s" zum Abfragezyklus bei den virtuellen Eingängen...

                        Kommentar

                        • svethi
                          Lebende Foren Legende
                          • 25.08.2015
                          • 6247

                          #14
                          HTTP Request mit Befehlserkennung in noch kürzeren Abständen?! Soll sich der MiniServer auch noch um andere Dinge kümmern, oder nur darum? In einem anderen Thread haben wir erst gelernt, dass der Timeout sogar noch viel zu gering für manche Anfrage ist.
                          Wenn die Daten schneller kommen sollen/müssen, dann müsst Ihr Euch andere Wege suchen.

                          Gruß Sven
                          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                          Kommentar

                          • Meista
                            Extension Master
                            • 20.10.2015
                            • 197

                            #15
                            Hallo Dancker,

                            vielen Dank für diese Anregung, ist leider blöd, wenn ein Wert nicht geliefert wird, fehlt in der Zeile das value= und es wird der nächste Wert angezeigt, das kann zu Verwirrungen führen.
                            Ich habe einen Kostal Piko MP plus, der wohl von Steca stammt und genau den gleichen XML Aufbau
                            Ich habe mir erlaubt das Ganze als Wiki Artikel zu verfassen: https://www.loxwiki.eu/display/LOX/K...s+XML+auslesen

                            Gruß, Oliver
                            Gruß, Oliver

                            Loxone seit 2012, 4x Miniserver (Gateway-Client), 7x Extension, 1x Relay, 3x Muti Extension Air, 3x Dimmer Ext., 2x Air Base, 2x 1-Wire/NFC, Tree mit 3x Code-Touch V2, DMX, KNX Wetterstation und div. KNX (heizungs)-Aktoren, 3x Hörmann Tormodul, Anbindung Denon HEOS, Mitsubishi Multisplit Klimaanlage, Daikin Klimaanlage, Dimplex WP, Zehnder Lüftung, 4x div. Kostal PV Wechselrichter + BYD HV und HVM Batterie, Fritzbox, Loxberry

                            Kommentar

                            Lädt...