NEWS
Werte aus JS auslesen und in Datenpunkte einfügen
-
@fimoknete
Viel interessanter wäre herauszufinden, wie die Seite an die Daten kommt.
Da wird ja vermutlich eine Art API dahinterstecken, das man per Request abfragen könnte. -
@codierknecht im ersten Bild kann man sehen, dass die HTML einen progress txt aus dem Script bekommt. Keine Ahnung wie das funktioniert.
Kann man nicht irgendwie die Variable aus dem JS von extern mit Blocky order so auslesen?
Parser geht im iobroker nicht, GUI error. -
@fimoknete
Das ist nur der Name des CSS-Klasse.
Um was für ein Gerät handelt es sich? -
@codierknecht LiFePo4 Batterie
-
@fimoknete said in Werte aus JS auslesen und in Datenpunkte einfügen:
@melonea Könntest du mir da ein wenig unter die Arme greifen? Hab das noch nie benutzt.
Du installierst den Adapter, fügst die passende URL und Regex ein. Für die SOC Werte müsste folgendes funktionieren:
c35a2708>(.*?)%</p>
-
@melonea Vielen Dank, werde ich mal probieren wenn der iobroker adapter parser wieder läuft. produziert nur einen gui error zur zeit. ich hoffe das wird mal gelöst.
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
LiFePo4 Batterie
Na wer hätte damit gerechnet?
Verrätst Du uns auch den Hersteller?Irgendwie muss das Ding ja auch kommunizieren.
Hängt da ein BMS dran, das man ggf. anzapfen könnte?
Wie kommen denn die HTML-Dateien auf Deinen Rechner? Vom Hersteller? Ist da JS-Code drin, der irgendwie mit der Batterie kommuniziert?
Dann wäre das komplette Script interessant. Aber bitte nicht als Screenshot, sondern in Code-Tags </> oder gleich das ganze Script als Datei anhängen (wenn zu lang).Hat da eine Komponente eine IP, zu der man vielleicht die Kommunikation per WireShark mitschneiden kann?
-
@codierknecht Batterie mit BMS. Hat can und rs485 connectoren. Aktuell hängt es via can-bus und USB am Rechner. Das Monitoring Tool bekommt die Daten via serial schnittstelle com10. Die software wurde mitgeliefert.
Den Quelltext hänge ich bei Zeiten mal mit ran. Aktuell habe ich nur die Screenshots. Wenn ich wieder an der Batterie bin, extrahiere ich mal den Quelltext.
parser bringt mit kopierten Quelltext der html
in IoBroker aber
Die HTML sieht so aus. "file:///C:/Program%20Files%20(x86)/Batterie2/source/dist/index.html#/"
die untersuchte quelle hat aber einen anderen text. wie komme ich an die wirkliche HTML mit dem Text?
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Hat can und rs485 connectoren
Das klingt doch irgendwie vielversprechend.
Meine PV + Speicher kommt erst im kommenden Jahr. Darum bin da sicher nicht der richtige Ansprechpartner. Aber ich bin ziemlich zuversichtlich, dass da was geht:https://www.google.com/search?q=iobroker+batterie+rs485
Hier wird es sicher so einige geben, die Dir da weiterhelfen können.
-
@codierknecht also irgendwie verstehe ich die logik hinter dem ganzen nicht.
die html sieht in einem text editor so aus.
kein wunder das der parser nichts findet.
wo kommt denn der unterschied zu dem untersuchten quelltext der selben datei her?
hier kann ich noch Daten aufklappen und die Information abfischen.
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
also irgendwie verstehe ich die logik hinter dem ganzen nicht.
wo kommt denn der unterschied zu dem untersuchten quelltext der selben datei her?Da wird wohl das JavaScript das DOM erst zur Laufzeit verändern.
Wenn der Parser keine JS-Engine mitliefert, wird das nix.Batterie mit BMS
Ich frage nochmal nach dem Hersteller. Damit hättest Du wesentlich bessere Chancen, hier Hilfe zu erhalten.
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
Informationen nur scheibchenweise zu liefern ist nicht unbedingt hilfreich.<Edit>
Und noch ein Tipp: Denk mal darüber nach, den Titel Deines Post zu ändern.
Diejenigen die sich evtl. mit der verwendeten Technik auskennen (dazu müsste man den Hersteller kennen) werden aufgrund des Titels nicht unbedingt den Weg in diesen Thread finden.
Ein "Batteriesystem XYZ per CAN/RS485 auslesen" wäre da z.B. etwas verständlicher. -
@Codierknecht hat wahrscheinlich recht. da werden zur Laufzeit Daten nachgeladen und dann direkt ins html eingetragen.
Du könntest mal in die Web developer tools deines Browser gehen (F12),
auf den Netzwerk-Tab, dann zur Sicherheit mit F5 die Seite neu laden, dann den Suchdialog (mit STRG+F) aufrufen und nach deinem Wert suchen. Beachte, das Fließkommazahlen in javascript mit Punkt notiert werden (also anstatt 123,456 ist das dann 123.456)
Als Ergebnis erhälst du wahrscheinlich viele Fundstellen. Die musst du dann einzeln durchschauen um den eigentlichen Übertragungsort zu finden. Dann können wir weiter mit dem parser-adapter schauen.Im Sceenshot habe ich das mal mit dem Forum und dem aktuellen Thread gemacht. Da werden die Daten auch per JSON übertragen und dann erst im Browser die Seite generiert.
-
@oliverio danke, werde ich mal probieren. Ich kenne den Hersteller des BMS aber nicht. Die Batterie ist von Lanni. Ich finde den button nicht zum Titel ändern.
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
Ich kenne den Hersteller des BMS aber nicht. Die Batterie ist von Lanni
Gibt's da einen Link, oder hast Du das selbst zusammengeklöppelt?
-
@codierknecht Das ist eine Rack mounted BAtterie aus China. Die kam so wie sie ist.
Anleitung sagt zum BMS: Ich rate mal, dass es ein Daren BMS ist. Steht aber nirgends.
Es gibt noch ein ModBus protokoll mit den ganze Registern. Ich weis aber nicht, wie ich das auslesen soll. Ich kapiere nicht mal den parity check in dem Manual.
BMS_Protocol_ModBus_V1_0_2_beta1 (1).pdf -
@fimoknete
Na das ist zumindest schon mal etwas, mit dem vielleicht die ModBus-Experten hier etwas anfangen können.
Frag' mich aber nicht, wer sich da gut auskennt - ich jedenfalls leider nicht.Vielleicht können da @apollon77, @Bluefox oder @haus-automatisierung weiterhelfen?
-
@fimoknete
Wo ist das Problem?Wie hast du versucht die Batterie zu verdrahten, und wie hast du den Modbusadapter konfiguriert.
Dann brauchst du einen HEX->Dec Rechner und danach müsdte es laufen.
immer erst mit nur einer Adresse beginnen!
-
@homoran Ich hatte ein RS485 auf USB also Comm Ersatz. Wurde auch von IOBroker gefunden. Ich habe das aber nie zum laufen gebracht.
-
-
@fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:
ich finde den Wert im serial stream
was ist das?
ist das ein Modbus Tester?wie hast du den angeschlossen?
ich hab verschiedene pinouts gefunden
war bei der Batterie so etwas dabei?