Ahhh... bringt mich schon mal weiter, na ja bis auf kurz fassen.......
Muss ich mir Kurzbezeichnungen überlegen..
DANKE!!!
Ankündigung
Einklappen
Keine Ankündigung bisher.
Webseite parsen - Wie geht das mit Edomi?
Einklappen
X
-
Das Abfrageintervall würde ich auf 30 Minuten oder so setzen - dürfte genügen. Statt des Telegrammgenerators kannst du auch einfach ein System KO (Trigger) verwenden.
Die Länge der Bezeichnung eines Ausgangs ist arg begrenzt, das Motto daher: Kurz fassenEine exakte Zeichenanzahl kann ich dir nicht nennen, es handelt sich ja um eine Proportionalschrift...
Einen Kommentar schreiben:
-
Hallo André,
das sieht schon mal ganz gut aus (muss nur mal schneller kalt werden hier!!!).
DANKE DIR für den Tipp!!!
Einen Kommentar schreiben:
-
Du setzt setLogicElementStatus nicht mehr auf 0, daher geht er vermutlich nur beim allerersten Start in den Teil wo das EXEC gestartet wird.
Mach mal am Ende des EXEC ein
PHP-Code:setLogicElementStatus($id,0);
Einen Kommentar schreiben:
-
Hallo Christian,
danke für den Tipp.
Auf wieviel Minuten soll man am besten das stellen?
Wetter ist ja nicht sooo wichtig? 5- 10 min?
Noch mal eine Frage zu den LBS. Bzw. den Text im z.B. Ausgang.
LBS_242_3.jpg
Der wird ja bei mir?!?! immer abgeschnitten. Habe ich etwas überlesen wie lang der nur sein darf??
Einen Kommentar schreiben:
-
Zu Problem 2: Unter Umständen mag der Ziel-Server deine Abfragen im 6-Sekunden-Takt nicht? Viele Dienste dieser Art merken sich die IP-Adresse und lassen nur ein bestimmtes Abfrage-Intervall zu.
Einen Kommentar schreiben:
-
Erstmal DANKE ins Forum und DANKE Michael für die gute Unterstützung!!
Denn, mein erster ###[EXEC]### Baustein läuft, wenn auch mit
einigen geklauten Eintragungen und nicht sooo richtig!!
Nun habe ich noch zu zwei Problemen ein paar Fragen:
Problem 1:
Ich denke das Problem hat Michael schon angesprochen:
Ich zitiere:
(das ist genau genommen unsauber programmiert, liegt aber daran, dass die
Webseite ein falsch kodiertes °-Symbol zurückliefert)
Die Ergebnisse werden, z:b. E2=21,6?C, mit dem ? für das “ ° “ angezeigt?!?!?!?.
Nun die Fragen dazu:
1) Kann man das ° Zeichen im String, bei einer unsauberen Webseite überhaupt
reinbekommen?
2) Wenn man die Einheit bei einer unsauberen Webseite nicht bekommt, kann man
dann im LBS eine Einheit „dazu Dichten“?
Problem 2:
Ich frage den Baustein zwar zyklisch ab, aber die Werte weichen von der Webseite ab.
Nur wenn ich das Projekt neu Einspiele werden aktualisiert.
Was habe ich da wohl falsch gemacht??
LBS_242_1.jpg
Also DANKE ERSTMAL bis hierhin!!
Gruß Marcus
LBS_242_2.jpg
Einen Kommentar schreiben:
-
<besserwissermodus>Zitat von panzaeron Beitrag anzeigenPHP-Code:if (preg_match("/>AUSSENTEMPERATUR<.*?>([0-9\.,]+)\s+.C</s",$src,$matches)) {
Hinter dem \s sollte ein "quantfier" stehen der angibt wie oft der/die/das Zeichen vorkommen mag.... "+" steht hier "fuer ein oder oefter". Wegen der Eindeutigkeit und so...
Einen Kommentar schreiben:
-
Starwarsfan war schneller und hat recht, dein + bezieht sich auf die Zeichengruppe vorher und das Leerzeichen fehlt. Vorschlag von mir allerdings ebenfalls ohne Test (und ohne Einheit):
PHP-Code:if (preg_match("/>AUSSENTEMPERATUR<.*?>([0-9\.,]+)\s.C</s",$src,$matches)) {
Zuletzt geändert von panzaeron; 29.05.2016, 09:15.
Einen Kommentar schreiben:
-
Hi
Ohne es ausprobiert zu haben: In der RegEx fehlt " °", Du erwartest das "C" als zweites Zeichen nach einer Ziffer, es ist aber das dritte.
Einen Kommentar schreiben:
-
Hi, ich wollte mich jetzt auch mal mit Regexp beschäftigen und ein paar Sachen umstellen.
ich wollte folgenden Code parsen:
PHP-Code:<div class="span-11 append-1" style="float:left"><table class="info"><tr><th colspan="2" class="round-top">RAUMTEMPERATUR</th></tr> <tr class="even">
<td class="key">SOLLTEMPERATUR HK 1</td>
<td class="value">19,0 °C</td>
</tr>
</table></div><div class="span-11 prepend-1" style="float:right"><table class="info"><tr><th colspan="2" class="round-top">HEIZUNG</th></tr> <tr class="even">
<td class="key">AUSSENTEMPERATUR</td>
<td class="value">14,7 °C</td>
</tr>
PHP-Code:<?php
$src=file_get_contents("http://192.168.84.155/?s=1,0");
if (preg_match("/AUSSENTEMPERATUR.*?([0-9\.,]+.C)/s",$src,$matches)) {
print $matches[1];
}
?>
Ausgabe bleibt allerdings leer, sieht jemand wo mein Fehler liegt???
Gruß
Einen Kommentar schreiben:
-
Ich habe neulich auch eine Logic (allerdings in Python für Smarthome.py) entwickelt. Ich habe mir dazu den relevanten Quelltext aus der Website kopiert und mittels der Seite https://regex101.com erstmal die Regexp erstellt. Der Rest ist dann meistens ein Kinderspiel.
Einen Kommentar schreiben:
-
In meinem VLC LBS parse ich auch eine XML-Antwort, das ist in PHP mit SimpleXMLElement::xpath recht einfach.
Und um den gewünschten XPath-Ausdruck zu bekommen, verwende ich in Chrome das XPath Helper Plugin und wie die XPath-Syntax aufgebaut ist, ist hier ganz gut beschrieben.
Einen Kommentar schreiben:
-
Zitat von NexusCore Beitrag anzeigenIn meinem Fall ist es keine generische Webseite, ich bekomme über ne API folgende xml Struktur zurück
Einen Kommentar schreiben:
Einen Kommentar schreiben: