NEWS
PHP Skript aus Ip-Symcon übernehmen? Wer kann mir helfen?
-
Hallo.
Seit 2011 habe ich meine IPSymcon-Installation laufen und möchte jetzt auf IOBroker wechseln. Mein erstes Projekt bei IPS war es, dass ich meine Log-Datei aus der Hanazeder FP10-Heizungssteuerung auslese. Hier konnte mir dann ein PHP-Script helfen, dass die einzelnen Spalten ausliest und in Variablen schreibt. Die Log-Datei die alle 5 Sekunden von der Steuerung angelegt wird (Dateiname und Pfad kann ich festlegen), lass ich immer nach auslesen der Werte löschen.
Hatte schon versucht es mit dem PapaParse auszulesen, aber irgendwie komm ich damit nicht klar.
Kann mir jemand einen Lösungsansatz oder Denkanstoß geben?
So schaut die Log-Datei im Editor aus (mit Semikolon getrennt, mit Überschrift)
Hier der Code aus der PHP für IPS
Ansonsten bin ich schon mal begeistert, dass ich meine Hue und Homematic-Komponenten (über LAN-Adapter) schon als Objekte in IOBroker drin habe. Nächster Step wird die Visu sein, mit allen Fühlerwerten aus Heizung, HM-Fühlern, Lichtschaltern usw.
Danke schon mal im Voraus und ich freue mich auf weitere Projekte
Gruß
Matthias
-
Habe mal schnell was gemalt….
Hilft die das vielleicht ????
! var file="file:///C:/temp/log.txt"
! var xml = new XMLHttpRequest();
! rawFile.open("GET", file, false);
! rawFile.onreadystatechange = function ()
! {
! if(rawFile.readyState === 4)
! {
! if(rawFile.status === 200 || rawFile.status == 0)
! {
! var text=this.responseText;
! var lastline=text.match(/^.*\z/m)[0];
! var werte=lastline.split(";");
! }
! }
! } -
Du kannst anstatt der file url auch ein php skript aufrufen. Und die Antwort ist dann in this.responseText
Damit kannst du dann auch die Datei löschen, wenn du also ein lokalen webserver hast kannst du da die daten dann entsprechend auslesen.
anstatt file://blablu rufst du dann dann script über http://localhost/meinscript auf dort machst du ein Output / echo des Arrays als Json und parsed das dann in iobroker'(JavaScript)…. weil mit javascript exec und dann del ausführen fände ich doof..... vielleicht ist das dann ein ansatz......
-
Danke schon mal für die beiden Lösungsansätze.
Hören sich beide logisch an, aber ich kann es noch nicht mit Code lösen. Dafür fehlen mir Json oder Javascript Kenntnisse.
Server habe ich (noch) keinen laufen. Wäre dann nur für diese Datei evtl. "too much".
@ mmtnrw wo muss ich den Code einfügen? Sorry für die doofe Anfängerfrage - stehe ganz am Anfang von ioBroker.
Falls das jemand mit der Original-Datei mir mal erklären möchte, bin ich sehr dankbar.
Wenn ich es selbst nicht schaffe, bin ich gerne bereit ein Trinkgeld zu bezahlen 8-)
Danke im Voraus.
-
Wenn du mir sagst was du vor hast, so das ich das verstehen kann, kann ich dir vielleicht helfen.
Was willst du mit der Datei machen und wo sollen die Daten hin….
Das RegEx war ja schon fertig und von daher müsste ich jetzt wissen ob es in einem Intervall laufen soll oder ähnliches.
Es ist schneller programmiert wenn ich sowas bekomme:
Alle 5 Minuten:
LogDatei letzte Zeile lesen
2 Beispiel Zeilen
Daten auswerten und in ein Objekt speichern.
Beispiel wie es nachher aussehen soll.....
Ich kann mit normalen javascript nicht löschen ausser über exec und dann ist es systemabhängig ob rm oder del.
Oder aber mit NodeJS und fs weiss aber nicht ob das dann überall läuft, mein nodejs server in iobroker ist auch sehr buggy
Siehe:
Dann kann ich das auch umsetzen