Befehlserkennung von xml Seite

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

    #1

    Befehlserkennung von xml Seite

    Moin,
    ich würde gerne den Temperaturwert aus der folgenden XML Datei bei mir in der Loxone über einen virtuellen Http Eingang einlesen. Leider klappt bei mir die Befehlserkennung nicht und der Eingang zeigt 0.0 an.

    So habe ich das konfiguriert: Klicke auf die Grafik für eine vergrößerte Ansicht

Name: virtuellereingang.png
Ansichten: 942
Größe: 35,6 KB
ID: 46212

    Ich habe schon \v und \# probiert. Und auch einfach das auslesen von primary value klappt nicht.

    Und das hier ist die XML Datei, die ich von dem Webserver einlesen möchte:

    Mit dieser XML-Datei sind anscheinend keine Style-Informationen verknüpft. Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.
    <Devices-Detail-Response><PollCount>2877</PollCount><DevicesConnected>1</DevicesConnected><LoopTime>2.972</LoopTime><DevicesConnectedChannel1>1</DevicesConnectedChannel1><DevicesConnectedChannel2 >0</DevicesConnectedChannel2><DevicesConnectedChannel3 >0</DevicesConnectedChannel3><DataErrorsChannel1>0</DataErrorsChannel1><DataErrorsChannel2>0</DataErrorsChannel2><DataErrorsChannel3>0</DataErrorsChannel3><VoltageChannel1>4.62</VoltageChannel1><VoltageChannel2>4.62</VoltageChannel2><VoltageChannel3>4.60</VoltageChannel3><VoltagePower>4.85</VoltagePower><DeviceName>OWServer_v2-Enet</DeviceName><HostName>TEMPMONITOR</HostName><MACAddress>D8:80:39:35:F7:63</MACAddress><DateTime>2016-06-24 17:22:52</DateTime><owd_DS18B20 Description="Programmable resolution thermometer"><Name>DS18B20</Name><Family>28</Family><ROMId>D5031464916DFF28</ROMId><Health>7</Health><Channel>1</Channel><RawData>A30155007FFF0C1037FF0000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000</RawData><PrimaryValue>26.1875 Deg C</PrimaryValue><Temperature Units="Centigrade">26.1875</Temperature><UserByte1 Writable="True">85</UserByte1><UserByte2 Writable="True">0</UserByte2><Resolution>12</Resolution><PowerSource>255</PowerSource></owd_DS18B20></Devices-Detail-Response>


    Über Hilfe würde ich mich sehr freuen

    Viele Grüße
    Christoph
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6320

    #2
    Was hast Du denn wie versucht?
    Da musst Du uns schon mehr bringen. Du schreibst, Du hast es mit \v und mit \# versucht. Wenn Du nur das eingibst, kann es nicht funktionieren und es ist ganz klar, dass da 0 bei rauskommt.

    Ich denke mal es geht um Temperature Units Centigrade?! Da sollte dann wohl mindestens Centigrade">\v als Befehlserkennung stehen.

    Gruß Sven

    Ah, im Bild sieht man mehr, okay, ich gehe mal davon aus, dass da eventuell noch Zeilenumbrüche im XML sind. Du musst den reinen Quelltext des XML ansehen.
    wartest Du denn auch lang genug? Im Eingang hast Du eine Zeit, in der der Eingang wieder gepollt werden soll. Diese Zeit musst Du auch beim Start warten.
    Zuletzt geändert von svethi; 25.06.2016, 10:16.
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Gast

      #3
      Moin,
      das mit dem Zeilenumbruch habe ich beachtet, vielen Dank für den Tip. Jetzt ruft er mit der Erkennung "PrimaryValue>\v" die Daten ab, allerdings werden diese nur alle 30 Minuten erfasst.
      Der Abfragezyklus steht auf 25 Sekunden.
      Mal schauen, ich suche weiter..

      Viele Grüße
      Christoph

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6320

        #4
        Vielleicht stehen ja nur alle 30Minuten neue Daten in der XML zur Verfügung
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Gast

          #5
          Wenn ich die XML Seite im Webbrowser aktualisiere, habe ich jede Sekunde aktuelle Daten wie die Uhrzeit des Devices. Die Temperatur wird alle 3 Sekunden aktualisiert.
          Meine Statistik des Eingangs sieht so aus:
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: statistik.png
Ansichten: 876
Größe: 16,3 KB
ID: 46374
          Der Virtuelle Eingang zeigt also nur sporadisch den richtigen Wert an und vor allem auch im Fehlerfall 0. Das ist für mich ein weiteres Problem, da 0 Grad auch eine plausible Temperatur ist....
          Kann ich irgendwo überprüfen, ob der virtuelle https Eingang überhaupt alle 25 Sekunden die Webseite abfragt? Gibt es eine Logdatei beim Miniserver in der ich so etwas finden kann?
          Zuletzt geändert von Gast; 27.06.2016, 11:22.

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7321

            #6
            Wireshark ist dafür ein gutes Tool
            Kein Support per PN!

            Kommentar

            • svethi
              Lebende Foren Legende
              • 25.08.2015
              • 6320

              #7
              Kann man aber auch alles im Monitor betrachten. Frage ist ja wieso da 0 kommt. Das kann entweder nur passieren wenn Du da ein Timeout eingestellt hast. Dann könntest Du allerdings auch -999 angeben, das wäre dann nicht mehr plausibel. Anderenfalls liegt das Problem wo anders und die XML ist leer, dann ist natürlich auch die Variable Null
              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

              Kommentar

              • Gast

                #8
                Hier einmal der Monitorinhalt und ein direkter Screenshot der XML Datei im Webbrowser.
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: xml-datei.png
Ansichten: 1004
Größe: 154,0 KB
ID: 46553 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Loxmonitor.png
Ansichten: 705
Größe: 303,9 KB
ID: 46554
                Was mich etwas wundert ist das Leerzeichen zwischen der IP Adresse und dem Menüpunkt (oben gelb markiert, bei stream connect)

                Kommentar

                • Jan W.
                  Lox Guru
                  • 30.08.2015
                  • 1398

                  #9
                  Das Leerzeichen ist nur zur besseren Lesbarkeit im Monitor hinzugefügt. Der Monitor zeigt an, dass regelmäßig Daten empfangen werden.

                  Installier mal auf Deinem PC Wireshark (wie oben bereits vorgeschlagen) und analysiere dann den genauen Inhalt, der zurückgesendet wird. Du kannst zunächst auf der Ethernet-Schnittstelle Deines PCs mitschneiden und alle 25 Sek im Browser die Werte abfragen. Da das nicht die realen Abfragen des Miniservers sind, könntest Du bei Bedarf noch die Kommunikation zwischen Sensor und Miniserver spiegeln, z.B. über eine Switch mit Port-Mirroring oder eine Fritz!Box, wo man die LAN Interfaces über die URL http://fritz.box/html/capture.html in eine Datei spiegeln kann. Die Datei kann man dann mit Wireshark öffnen.

                  So wie es lt. Monitor aussieht, werden 2 Antwortpakete vom Server gesendet, wahrscheinlich weil die Rawbytes sehr lang sind.

                  Gruß Jan
                  Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                  Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                  Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                  Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                  Node-RED: IKEA Tradfri

                  Kommentar

                  • Gast

                    #10
                    Ich habe bei mir versucht meine Google Nest Protect - Geräte in Loxone einzubinden. Ich habe alle Konfigurationen entsprechend der vielen Anleitungen vorgenommen und bekomme auch per Browser die entsprechende Rückmeldung:

                    {"locale":"de-DE","structure_id":"UjP0lUtefezacb_LzcnJL4jMZs4UJd ddddd9oC89CuSjwWBACVg","software_version":"3.1.4rc 3","where_id":"ZRF0GCe-TOru5zfdddddc5NYuGc9BjSl-c2KoJZddddoLeSYrKtfGSg","device_id":"tyVrcy8pzShA4 zrun47AvDzz0U4Zjph8","where_name":"Kids Room","name":"Kids Room","name_long":"Kids Room Nest Protect","is_online":true,"last_connection":"2019-03-10T17:24:40.753Z","battery_health":"ok","co_alarm_ state":"ok","smoke_alarm_state":"ok","ui_color_sta te":"green","is_manual_test_active":false,"last_ma nual_test_time":"2019-02-17T08:02:22.000Z"}
                    Ich habe in Loxone einen virtuellen Eingang angelegt und möchte folgenden Status abfragen:

                    is_online, battery_health, co_alarm_state,smoke_alarm_state, etc. auslesen

                    Ich habe laut den Foren diverse Varianten verwendet - wie bspw. \iis_online\i\s\w oder "Is_online": \ v probiert.

                    Bei mir erscheint nie true oder false sondern immer eine Zahl. Wie kann ich das lösen?

                    Im Monitor kann ich immer folgende Infos sehen (s. beigefügte Abbildung).

                    Kann mir hier jemand weiterhelfen?

                    Vielen Dank schon mal

                    Ralf



                    Angehängte Dateien

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11238

                      #11
                      Schau mal https://www.loxwiki.eu/pages/viewpag...standauswerten
                      Akkustand auswerten
                      Mit \1 bekommst du den Hexwert des ASCII-Zeichens (für t oder f)
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar


                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        d.h. ich verwende folgende Befehlskennung? - "Is_online": \1 und werte dann die ASCII - Zeichen aus? Sehe ich die ASCII - Zeichen in der LiveView?

                      • svethi
                        svethi kommentierte
                        Kommentar bearbeiten
                        Da wurde ein Artikel im Wiki verlinkt. Lese ihn doch einfach

                      • sonorobby
                        sonorobby kommentierte
                        Kommentar bearbeiten
                        Du erhälst im live view den Hex Wert des Ascii zeichens
                        Z.b. du liest den buchstaben a aus erhälst du 97.
                    • Gast

                      #12
                      Hallo sonorobby - ich habe den Parameter "ls_online":\1 gesetzt. Ich sehe im Monitor keinen Wert. Mache ich was falsch? Danke für Deine Unterstützung.
                      Angehängte Dateien

                      Kommentar


                      • sonorobby
                        sonorobby kommentierte
                        Kommentar bearbeiten
                        Filter mal nach htc
                    • Gast

                      #13
                      Hallo sonorobby, ich habe auf htc gefiltert. Bei meinem Stromspeicher kann ich die übergebenen Werte sehen. Bei den Rauchmeldern von Google Nest leider nicht. Wenn ich die Adresse im Browser eingebe, sehe ich die Rückgabewerte.
                      Angehängte Dateien

                      Kommentar

                      Lädt...