Anbindung Circutor / Smilics / Wibeee Strom Messgeräte

In IPS 6.3 lese ich eine url aus, der html Text wird erfasst, aber das Javascript auf der Webseite wird nicht ausgeführt und daher fehlen die wichtigen Daten in der Antwort.

Gibt es dafür eine Möglichkeit ?
Der wwwreader verhält sich nicht wie ein Browser, er liest nur den html Code, so wie wenn ich curl verwende.

Eine Variante ausserhalb von IPS wäre mit Selenium oder Chrome-Driver die Webseite auszulesen und die Felder abzuspeichern.

Für jeden Tip bin ich dankbar.

Mal analysieren, was das Javascript macht? Vermtutlich fragt es über eine API die daten von einem anderen Server ab. Mit IP-Symcon direkt gegen diesen Server abfragen.

Danke für den Hinweis. Ich muss etwas genauer sein. Es ist ein Strommessgerät. Die aktuellen Messwerte werden per Javascript eingefügt.

Die Alternative ist, die automatische Sendung des Gerätes zu verwenden.
das Messgerät sendet in konfigurierbaren, regelmässigen Abständen seine Messdaten an einen konfigurierbaren Host / Port. Momentan sendet das Gerät dies unverschlüsselt in die Cloud Applikation.

Habe dies umkonfiguriert und auf IPS einen server-socket erstellt und mit dem Text-Parser erhalte ich nun die Werte geliefert. Es geht auch so.
Muss nun nur noch die Daten an die Cloud-App weitersenden, damit ich beide Apps habe.

Und was glaubst du wie das Javascript die Daten in die Webseite bastelt? Die kommen doch nicht aus dem nichts? Entwicklerkonsole schonmal auf der Webseite mitlaufen lassen?

Und wofür brauchst du die Hersteller-Cloud, wenn du IP-Symcon hast?

ich wusste dass diese Frage kommt: „Und wofür brauchst du die Hersteller-Cloud, wenn du IP-Symcon hast?“ Nein - brauche ich nicht mehr in Zukunft. Da habe ich momentan noch Berichte drin Verbrauch / Woche / Monat etc. Werde aber die Daten herunterladen und in IPS hochladen und dann die Bereichte konfigurieren.

Habe das Problem gelöst, mit etwas mehr beobachten. Die Webseite des Messgerätes (bzw. Javascript) lädt eine XML Datei nach und dort sind alle Messdaten schön drin. Die XML Datei herunterladen und im IPS parsen. - Fertig.

vielen Dank für die Tips.

Vielleicht magst du mal den genauen Namen der XML Datei (URI dazu) hier nennen und ein Muster und/oder dein Script einstellen? Vielleicht hilft es ja noch wem unter Nennung des Gerätenamens.

Gute Idee. Habe den Topic umbenannt.

Die Wibeee Geräte sind sehr zuverlässig und genau. Lassen sich einfach installieren über das Aufstekcen auf das Sicherungselement.
Die Integration der Wibeee Messgeräte in IPS ist auf 2 Arten möglich:

  1. Pull - Auslesung vom IPS per http-client und Textparser.
    Es muss die xml datei des Gerätes ausgelesen werden
    http://<<local ip des Messgerätes>>/en/status.xml?rnd=3424535436547777

die Zahl hinter rnd= sollte eine Zufallszahl sein, es funktioniert aber auch wenn die Zahl immer dieselbe ist.

Die Werte aus der XML Datei zu parsen ist dann einfach und selbsterklärend.

Der Vorteil an dieser Variante ist, dass man den Intervall der Abfrage selber bestimmen kann und nicht auf das „Senden“ des Messgerätes warten muss.

  1. Push vom Messgerät an den http-Server vom IPS
    Standardmässig sendet das Messgerät seine Daten an die Cloud App.
    Das funktionierte gut. Nur die neue Nest-Cloud ist Müll. Die App ist im Beta Zustand und zeigt 10 Minuten verzögert die Messwerte an, oder auch gar nichts. Fehlende Werte werden als „0“ statt als „n/a“ gewertet.

Die Wibee Geräte können über den eingebauten Webserver konfiguriert werden wohin das Messgerät die Daten schickt. Über Advanced Options die IP-Adresse des IPS Servers und den Port eintragen.

Das Messgerät sendet dann einen http GET Befehl an den IPS Server. Der Intervall ist konfigurierbar aber minimal 1 Minute.

Beispiel
/Wibeee/receiver?mac=001ec00d6920&ip=192.168.026.113&soft=3.3.111&model=WBM&time=1674493820&v1=212.548&v2=0.000&v3=0.000&vt=0.000&i1=10.372&i2=0.000&i3=0.000&it=0.000&
p1=2204.267&p2=0.000&p3=0.000&pt=0.000&a1=2075.960&a2=0.000&a3=0.000&at=0.000&r1=-737.127&r2=0.000&r3=0.000&rt=0.000&q1=50.023&q2=0.000&q3=0.000&qt=0.000&f1=0.942&f2=0.000&f3=0.000&ft=0.000&e1=70297155.425&e2=0.000&e3=0.000&et=0.000&o1=30811452.363&o2=0.000&o3=0.000&ot=0.000

Daraus lassen sich dann die Werte mit dem Textparser herauslesen.

Vielleicht kann das ja 'mal jemand brauchen.