Ankündigung

Einklappen
Keine Ankündigung bisher.

XML an Loxone weitergeben

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

  • #16
    Hallo zusammen,
    auch ich habe Probleme mit zwei Werten welche ich aus einer Openweathermap xml auslesen möchte und zwar die Bewölkung in Prozent von morgen und über morgen,

    meine Befhelskennung ist für den morgigen Wert:
    \i<clouds value="\i\i<clouds value="\i" all="\i\v
    und für den übermorgigen Wert:
    \i<clouds value="\i\i<clouds value="\i\i<clouds value="\i" all="\i\v

    untenstehnd das xml.

    <weatherdata>
    <location>
    <name>Laufenburg</name>
    <type/>
    <country>CH</country>
    <timezone/>
    <location altitude="0" latitude="47.5605" longitude="8.0602" geobase="geonames" geobaseid="2880121"/>
    </location>
    <credit/>
    <meta>
    <lastupdate/>
    <calctime>0.0124</calctime>
    <nextupdate/>
    </meta>
    <sun rise="2018-10-22T05:57:09" set="2018-10-22T16:26:23"/>
    <forecast>
    <time day="2018-10-22">
    <symbol number="800" name="Klarer Himmel" var="01d"/>
    <precipitation/>
    <windDirection deg="62" code="ENE" name="East-northeast"/>
    <windSpeed mps="2.62" name="Light breeze"/>
    <temperature day="14.3" min="3.79" max="14.3" night="3.79" eve="9.14" morn="11.66"/>
    <pressure unit="hPa" value="975.73"/>
    <humidity value="76" unit="%"/>
    <clouds value="Klarer Himmel" all="0" unit="%"/>
    </time>
    <time day="2018-10-23">
    <symbol number="500" name="Leichter Regen" var="10d"/>
    <precipitation/>
    <windDirection deg="290" code="WNW" name="West-northwest"/>
    <windSpeed mps="1.67" name="Light breeze"/>
    <temperature day="10.11" min="0.06" max="11.18" night="5.42" eve="7.97" morn="0.06"/>
    <pressure unit="hPa" value="978.93"/>
    <humidity value="82" unit="%"/>
    <clouds value="Klarer Himmel" all="0" unit="%"/>
    </time>
    <time day="2018-10-24">
    <symbol number="500" name="Leichter Regen" var="10d"/>
    <precipitation value="0.31" type="rain"/>
    <windDirection deg="260" code="W" name="West"/>
    <windSpeed mps="2.06" name="Light breeze"/>
    <temperature day="12.2" min="3.62" max="12.28" night="4.52" eve="9.73" morn="3.62"/>
    <pressure unit="hPa" value="975.94"/>
    <humidity value="82" unit="%"/>
    <clouds value="Überwiegend bewölkt" all="36" unit="%"/>
    </time>
    <time day="2018-10-25">
    <symbol number="500" name="Leichter Regen" var="10d"/>
    <precipitation/>
    <windDirection deg="357" code="" name=""/>
    <windSpeed mps="1.41" name="Calm"/>
    <temperature day="10.78" min="1.98" max="12.36" night="2.59" eve="6.33" morn="1.98"/>
    <pressure unit="hPa" value="969.41"/>
    <humidity value="90" unit="%"/>
    <clouds value="Überwiegend bewölkt" all="32" unit="%"/>
    </time>
    <time day="2018-10-26">
    <symbol number="500" name="Leichter Regen" var="10d"/>
    <precipitation value="1.4" type="rain"/>
    <windDirection deg="198" code="SSW" name="South-southwest"/>
    <windSpeed mps="1.59" name=""/>
    <temperature day="10.11" min="-0.84" max="10.11" night="6.99" eve="5.95" morn="-0.84"/>
    <pressure unit="hPa" value="964.76"/>
    <humidity value="0" unit="%"/>
    <clouds value="Überwiegend bewölkt" all="75" unit="%"/>
    </time>
    <time day="2018-10-27">
    <symbol number="501" name="Mäßiger Regen" var="10d"/>
    <precipitation value="4.11" type="rain"/>
    <windDirection deg="246" code="WSW" name="West-southwest"/>
    <windSpeed mps="2.68" name="Light breeze"/>
    <temperature day="5.39" min="0.71" max="5.39" night="0.71" eve="1.74" morn="4.48"/>
    <pressure unit="hPa" value="959.6"/>
    <humidity value="0" unit="%"/>
    <clouds value="Überwiegend bewölkt" all="65" unit="%"/>
    </time>
    <time day="2018-10-28">
    <symbol number="600" name="Mäßiger Schnee" var="13d"/>
    <precipitation value="2.07" type="rain"/>
    <windDirection deg="336" code="NNW" name="North-northeast"/>
    <windSpeed mps="1.7" name="Light breeze"/>
    <temperature day="4.56" min="0.53" max="4.56" night="0.59" eve="1.21" morn="0.53"/>
    <pressure unit="hPa" value="964.09"/>
    <humidity value="0" unit="%"/>
    <clouds value="Überwiegend bewölkt" all="57" unit="%"/>
    </time>
    </forecast>
    </weatherdata>

    bin für jeden Tip dankbar.
    Liebe Grüsse
    Thomas

    Kommentar


    • Christian Fenzl
      Christian Fenzl kommentierte
      Kommentar bearbeiten
      Der findige LoxBerry-Benutzer verwendet das "Command Recognition"-Plugin https://www.loxwiki.eu/x/-gA_Ag ;-)
      Sonst wäre es gut, das XML hier hochzuladen, damit man das wirklich testen kann - oder zumindest in CODE-Tags.

  • #17
    Hallo,
    Ich vermute mal, dass Du andere Werte auslesen kannst.
    Die Rohdaten müssen natürlich exakt sein.
    Deine Befehlskennung ist aber in jedem Fall nicht richtig, da du eine Suche mittels i immer mit \i abschliessen musst.
    Beispiel:
    iSuchtext\i

    Sofern das die Rohdaten sind müsste folgendes passen:
    Befehlskennung ist für den morgigen Wert:
    \i<clouds value="\i\i<clouds value="\i\iall="\i\v
    und für den übermorgigen Wert:
    \i<clouds value="\i\i<clouds value="\i\i<clouds value="\i\iall="\i\v

    oder etwas einfacher:
    Befehlskennung ist für den morgigen Wert:
    clouds value\iclouds value\i\iall="\i\v
    und für den übermorgigen Wert:
    clouds value\iclouds value\i\iclouds value\i\iall="\i\v
    lg Romildo

    Kommentar


    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Was heißt einfacher?? Der erste Begriff darf nicht gesucht werden, da er von sich aus schon gesucht wird.

    • romildo
      romildo kommentierte
      Kommentar bearbeiten
      Doch, auch der erste Begriff darf über '\iSuche\i' gesucht werden, man darf nur nicht den ersten \ weglassen.

  • #18
    Hallo Romildo,
    danke dir für deine schnelle Antwort, leider halte ich bei beiden Varianten immer noch keine Werte. Ja es handelt sich hier um die Rohdaten welche ich gepostet habe und ja ich lese schon von mehreren Zeilen jeweils die ersten Werte aus und das funktioniert bsp. mit Windeschwindigkeit Morgen:
    \i<windSpeed mps="\i\i<windSpeed mps="\i\v
    LG Thomas

    Kommentar


    • #19
      Du musst da schon mindestens die Abfragezykluszeit abwarten.
      Kann es sein, dass Du nicht lange genug gewartet hast?
      lg Romildo

      Kommentar


      • #20
        Hallo Romildo,

        der Abfragezyklus ist 600s habe jetzt 2h gewartet aber immer noch keine Werte. Habe das xml zum testen ist nun hochgeladen aber als txt umbenannt da xml nicht als Anhang erlaubt sind. Danke an alle!!!

        LG Thomas
        Angehängte Dateien

        Kommentar


        • #21
          ich glaub mich tritt ein Pferd, jetzt habe ich plötzlich Werte ohne was weiter zu ändern....aktuelle Befehlskennungen:
          clouds value\iclouds value\i\iall="\i\v
          und
          clouds value\iclouds value\i\iclouds value\i\iall="\i\v
          sorry und Danke an Alle
          LG Thomas

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Dann hat sich aber auch die daily.txt verändert.
            In der daily.txt aus #20 kommt nähmlich bei der ersten Abfrage der Wert 0 und bei der zweiten der Wert 36 und genauso steht es auch drin.

        • #22
          hab zwar das aktuellste xml hochgeladen aber die werte sind doch identisch. heute 0, morgen 0, übermorgen 36

          aber dabke dir vielmals

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            ich habe nur die beiden Abfragen, also die Werte von morgen und übermorgen, angesehen, ob sie identisch sind, weiss ich nicht da Du ja keine angegeben hast. Den Wert 0 habe ich nicht als Wert angesehen, da ja auch eine 0 kommt, wenn der Befehl falsch ist.
            Ja, so ist alles identisch.
            Bitte gerne.

        • #23
          Hallöle an alle die hier tätig waren, ich bin gerade auf Ähnliche Probleme gestoßen und der Lox Support macht nur schwammige Aussagen, evtl. könnt ihr hier helfen.

          Situation:
          Ein XML File hat nur eine Zeile als Inhalt. Der Inhalt ist in Hexadezimal in dem XML

          Inhalt konkret (ohne die Leerzeichen):
          OK02 13 1a 00 04 0c 05 21 24 00 00 00 00 00 00 14 68 74 5c 00 00 62 0a 00 bb 01 00 00 00 44 03

          Wenn ich diesen jetzt verwerten möchte nehme ich die Befehlskennung des Virtuellen HTTP Eingang.

          Verwende ich:
          OK\h Erhalte ich 17411
          Die 17411 wären somit die letzten 4 Werte von hexadezimal in Dezimal umgerechnet, sprich 4403 in Hex ergibt 17411 in Dezimal.

          Diese Umrechnung möchte ich nutzen.

          Ich benötige aus einem ähnlichen XML die Werte im Byte 6 und Byte 7.
          XML wäre dann:
          OK 02 15 15 00 24 50 ae 04 a6 ff db 00 40 00 00 00 00 00 00 cf ef 00 0 80 03

          Byte 6 = ae
          Byte 7 = 04

          Ich habe schon einge Syntax probiert ohne erfolg:

          z.B.
          OK\s12\h --> gibt 0


          Tipps?

          Einzeln Auslesen geht mit:
          OK\s12\1 --> dann erhält man den ASCII Wert als Dezimal a=97
          OK\s13\1 --> e= 101
          OK\s14\1 --> 0=48
          OK\s15\1 --> 4=52

          Weitere Frage:
          Kann man das irgendwie in Loxone umrechnen sodass ich den richtigen Dezimalwert erhalte?

          Kommentar


          • #24
            Dieser Link könnte zutreffend sein -

            Hallo zusammen, ich habe eine kleines Problem..... Ich möchte eine bestimmte Wertestelle aus meinem UDP virtuellen FHEM Eingang von meinem FHEM Reading des Homematic Heizungsthermostaten auslesen. Ich bekomme es aber nicht hin. Ich habe das einen Screenshot angefügt, um zu zeigen welcher String in der Loxone ankommt: Ich


            Eine ähnliche Situation wird bei Post #7 gestellt.
            Die Antwort ist bei Beitrag #14.
            Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

            Kommentar


            • sonorobby
              sonorobby kommentierte
              Kommentar bearbeiten
              DAnkeschön ich probiere mein Glück

          • #25
            Tico : Die Formel funtioniert leider nur für GROßBUCHSTABEN. Weisst Du ob an diese erweitern kann für die Kleinbuchstaben?
            In meinem Fall habe ich die Antwort immer in hexadezimal aber Kleinbuchstaben z.B. 04ae

            This works only with CAPITAL Letters, So in my case i have the letters always in small letters as hex value. Is there a way to implent also the small letters?

            Kommentar


            • #26
              In dem Beispiel von Tico wird das doch genau erklärt. Es geht um den ASCII Code des Buchstaben. Es ist sogar die ASCII Tabelle enthalten. Bei HEX Werten können nur a-f enthalten sein. Was kannst Du denn da nicht finden?
              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

              Kommentar


              • sonorobby
                sonorobby kommentierte
                Kommentar bearbeiten
                @svethi: Genau das was Tico in seiner Antwort jetzt beantwortet hat GROSS und KLEIN Buchstaben

              • svethi
                svethi kommentierte
                Kommentar bearbeiten
                Genau und das auch noch sehr, sehr ausführlich;-)

            • #27
              Die Formel macht für jedes Zeichen folgendes, um einen Wert von 0-15 zu erhalten.

              0 = ASCII 48 - 48 = 0
              1 = ASCII 49 - 48 = 1
              2 = ASCII 50 - 48 = 2
              3 = ASCII 51 - 48 = 3
              4 = ASCII 52 - 48 = 4
              5 = ASCII 53 - 48 = 5
              6 = ASCII 54 - 48 = 6
              7 = ASCII 55 - 48 = 7
              8 = ASCII 56 - 48 = 8
              9 = ASCII 57 - 48 = 9

              A = ASCII 65 - 55 = 10
              B = ASCII 66 - 55 = 11
              C = ASCII 67 - 55 = 12
              D = ASCII 68 - 55 = 13
              E = ASCII 69 - 55 = 14
              F = ASCII 70 - 55 = 15

              Es verwendet eine logarithmische Funktion, um zu bestimmen, ob 48 oder 55 subtrahiert werden.

              Wir müssen überprüfen, ob die logarithmische Funktion für Kleinbuchstaben a-f funktioniert.



              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Table results.png
Ansichten: 342
Größe: 41,8 KB
ID: 192409




              Die logarithmische Funktion ist also noch in Ordnung und muss nicht geändert werden.

              Großbuchstaben A, B, C, D, E, F = ASCII-Werte 65, 66, 67, 68, 69, 70.
              Kleinbuchstaben a, b, c, d, e, f = ASCII-Werte 97, 98, 99, 100, 101, 102.

              a = ASCII 97 - 87 = 10
              b = ASCII 98 - 87 = 11
              c = ASCII 99 - 87 = 12
              d = ASCII 100 - 87 = 13
              e = ASCII 101 - 87 = 14
              f = ASCII 102 - 87 = 15

              Wo also 55 in der Formel erscheint, tauschen wir stattdessen gegen 87.




              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: More explanation.png
Ansichten: 333
Größe: 53,0 KB
ID: 192410



              Also, zum Schluss

              Formel mit Großbuchstaben hexadezimal -
              Code:
              ((int(I1 / 256) - 55) * int(log((int(I1 / 256) - 48) * 0,9 + 1)) + (int(I1 / 256) - 48) * (1 - int(log((int(I1 / 256) - 48) * 0,9 + 1)))) * 16 + ((I1 - int(I1 / 256) * 256 - 55) * int(log((I1 - int(I1 / 256) * 256 - 48) * 0,9 + 1 )) + (I1 - int(I1 / 256) * 256 - 48) * (1 - int(log((I1 - int(I1 / 256) * 256 - 48) * 0,9 + 1))))

              Formel mit Kleinbuchstaben hexadezimal -
              Code:
              ((int(I1 / 256) - 87) * int(log((int(I1 / 256) - 48) * 0,9 + 1)) + (int(I1 / 256) - 48) * (1 - int(log((int(I1 / 256) - 48) * 0,9 + 1)))) * 16 + ((I1 - int(I1 / 256) * 256 - 87) * int(log((I1 - int(I1 / 256) * 256 - 48) * 0,9 + 1 )) + (I1 - int(I1 / 256) * 256 - 48) * (1 - int(log((I1 - int(I1 / 256) * 256 - 48) * 0,9 + 1))))
              Ich werde dies in das Wiki aufnehmen.
              Zuletzt geändert von Tico; 02.03.2019, 05:55.
              Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

              Kommentar


              • sonorobby
                sonorobby kommentierte
                Kommentar bearbeiten
                WUNDERBAR Thank you very much! Das FUNKTIONIERT einwandfrei.


                Eine Frage noch: Kann die Formel auch auf 4 Stellen erweitert werden?

                Beispiel:

                Mein String sieht so aus:
                OK021515002450ae04a6ffdb00b0040000000000000cfe0000 f803

                Ich benötige Byte6 und Byte7 (nach OK)
                ae04 (HEX) --> 44548 (Dez)

                Ich benötige aber den Hexwert UMGEKEHRT sprich Byte7 und Byte6
                04ae (HEX) --> 1198 (Dez)



                Probiert habe ich eineige Kombinationen ohne Erfolg:
                Befehlskennung: OK\s12\2\1\2\1 = 445
                Befehlskennung: OK\s12\2\1\4\3 = 50541694

                Mit einem Status Baustein kann ich das Problem lösen, wäre schicker wenn es eine Formel geben würde

                Achso: Oder wenn die Formel auf EIN Zeichen geändert werden kann dann wäre es ebenfalls einfacher, sprich a(HEX)=97(ASCII)=10(DEZ)
                Zuletzt geändert von sonorobby; 02.03.2019, 10:06.

              • Tico
                Tico kommentierte
                Kommentar bearbeiten
                Gern geschehen. Leider sind meine mathematischen Fähigkeiten an ihre Grenzen gestoßen. Ich danke Aleq für seine sehr gute Erklärung, damit ich den Kleinbuchstaben neu interpretieren kann.

            • #28
              sonorobby
              Hier noch eine andere ähnliche Lösungsvariante.
              Formel:
              Code:
              (I1-48-SIGN(INT((I1-48)/10))*(I1-48)+SIGN(INT((I1-48)/10))*(I1-87))+(I2-48-SIGN(INT((I2-48)/10))*(I2-48)+SIGN(INT((I2-48)/10))*(I2-87))*16+(I3-48-SIGN(INT((I3-48)/10))*(I3-48)+SIGN(INT((I3-48)/10))*(I3-87))*256+(I4-48-SIGN(INT((I4-48)/10))*(I4-48)+SIGN(INT((I4-48)/10))*(I4-87))*4096
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: ASCII_TO_DEZ.png
Ansichten: 479
Größe: 269,5 KB
ID: 192445
              Zuletzt geändert von romildo; 02.03.2019, 13:43.
              lg Romildo

              Kommentar

            Lädt...
            X