NEWS
Auslesen von Daten einer Webseite
-
Servus zusammen,
Die Temperaturen eines jeden Zimmers werden mir über eine Webseite zur Verfügung gestellt. Nun möchte ich diese Temperaturen in die Objekte des IO Brokers bringen. Der erste Versuch wurde über den Parser Adapter gestartet. Leider ohne Erfolg. (Evtl auch Unvermögen) Die Webseite ist in JavaScript geschrieben.
Nun zu meiner Frage. Welche Möglichkeiten bestehen noch um diese Werte zyklisch auszulesen?
Hintergrund: die Daten sollen in einer Datenbank gespeichert werden um spätere Auswertungen fahren zu können.
Für eure Hilfe wäre ich dankbar. (Vorsicht Anfänger)
-
wie sieht denn die Webseite aus?
Rechtsklick und "Seitenquelltext anzeigen" auswählen und hier posten.
Oder auch das Skript das die Webseite bereitstellt.
Was ist der Host dieser Webseite? Ein Gerät das zu den Temp-Sensoren mitgeliefert wurde?
Evtl kann dann jemand helfen mit dem Parser-Adapter, so ganz ohne zusätzliche Infos wird es eher schwierig
-
Bei Webseiten mit Javascript klappt ein Parser meist nicht.
Die Daten müssen sichtbar sein, wenn du dir den Quellcode der Webseite ansiehst.
Gruß
Rainer
-
Zuerst einmal danke für die schnellen Rückmeldungen…
Ich habe nun endeckt, dass mir die Daten auch über XML zur Verfügung gestellt werden. Somit kann ich das XML File mit dem Parser einlesen
Das Problem ist aber jetzt, dass ich die Werte teilweise orange sind und den Fehler 0x44 device error melden.
Ist hier evtl meine RegEx Funktion schuld?
<t_target_base>(\d+.\d+)</t_target_base>
T_ACTUAL><t_actual_ext>(\d+.\d+)</t_actual_ext>
<heatarea nr="1"><heatarea_mode>0</heatarea_mode><t_actual>23.5</t_actual><t_actual_ext>23.5</t_actual_ext><t_target>22.6</t_target><t_target_base>22.6</t_target_base><heatarea_state>0</heatarea_state><program_source>0</program_source><program_week>0</program_week><program_weekend>0</program_weekend><party>0</party><party_remainingtime>0</party_remainingtime><presence>0</presence><islocked>0</islocked></heatarea><heatarea nr="4"><heatarea_mode>0</heatarea_mode><t_actual>22.0</t_actual><t_actual_ext>22.0</t_actual_ext><t_target>22.0</t_target><t_target_base>22.0</t_target_base><heatarea_state>0</heatarea_state><program_source>0</program_source><program_week>0</program_week><program_weekend>0</program_weekend><party>0</party><party_remainingtime>0</party_remainingtime><presence>0</presence><islocked>0</islocked></heatarea><heatarea nr="6"><heatarea_mode>0</heatarea_mode><t_actual>22.7</t_actual><t_actual_ext>22.7</t_actual_ext><t_target>21.4</t_target><t_target_base>21.4</t_target_base><heatarea_state>0</heatarea_state><program_source>0</program_source><program_week>0</program_week><program_weekend>0</program_weekend><party>0</party><party_remainingtime>0</party_remainingtime><presence>0</presence><islocked>0</islocked></heatarea><heatarea nr="7"><heatarea_mode>0</heatarea_mode><t_actual>21.8</t_actual><t_actual_ext>21.8</t_actual_ext><t_target>20.0</t_target><t_target_base>20.0</t_target_base><heatarea_state>0</heatarea_state><program_source>0</program_source><program_week>0</program_week><program_weekend>0</program_weekend><party>0</party><party_remainingtime>0</party_remainingtime><presence>0</presence><islocked>0</islocked></heatarea><heatarea nr="8"><heatarea_mode>0</heatarea_mode><t_actual>23.5</t_actual><t_actual_ext>23.5</t_actual_ext><t_target>21.0</t_target><t_target_base>21.0</t_target_base><heatarea_state>0</heatarea_state><program_source>0</program_source><program_week>0</program_week><program_weekend>0</program_weekend><party>0</party><party_remainingtime>0</party_remainingtime><presence>0</presence><islocked>0</islocked></heatarea>
-
Ist hier evtl meine RegEx Funktion schuld? `
Was willst du denn auslesen?Dein Regex funktioniert nicht, wenn es denn eins ist.
Aufgeteilt in 2 Teile ergibt jeder 5 Ergebnisse.
Gruß
Rainer
-
wie sieht die xml aus? kannst die mal posten?
es reicht schon meist den wert anzugeben zwischen dem der wert steht
2678_xml.png -
wie sieht die xml aus? kannst die mal posten? `
Hat er bereits obenetwas kürzer geht es auch mit
SE>([^<]+)
Gruß
Rainer
-
Es soll der TARGET BASE und den ACTUAL EXT für jede Nr. ausgelesen werden.
Ich dachte die Spalte Num bedeutet, dass ich den erkannten 1 und den 3 erkannten Wert auslese.
-
Ich dachte die Spalte Num bedeutet, dass ich den erkannten 1 und den 3 erkannten Wert auslese. `
korrekt!Ich habe dir jetzt auch nur den RegEx für Target Base gegeben, der für Actual_ext sähe verkürzt so aus:
XT>([^<]+)
Was die "Gelbfärbung" deiner Werte angeht bin ich mir nicht sicher.
Ich selber habe das nicht, habe aber auch keine Dezimalwerte.
Wie ist denn der Datentyp des STATEs
Gruß
Rainer
-
TOP !!!
Vielen Dank und schon läufts
-
Die Werte werden nun auch ganz normal angezeigt
6292_2018-03-06_20-53-16.jpeg -
Danke für das Feedback.
Dann markiere den Thread bitte noch als gelöst.
Gruß
Rainer