Heizung Temp-Sensoren auslesen

@RWN

zu 1. zur zeit liegt die Datei bei mir auf C: emp\fp10.log (den Pfad und Namen kann ich ändern wie ich will - war nur so eingestellt und ich habe es dabei belassen)
2. ich gehe davon aus dass sie nicht gelöscht wird :wink:
3. hat immer den selben namen (die Log-Datei habe ich als Zip doch schon mal angehängt)
4. die Parameter bleiben immer gleich- evtl. kommt noch ein zweiter Pufferspeicher mal dazu (im Elternhaus), weil im Sommer kann ich mit warmen Wasser handeln :wink: - aber das steht noch in den Sternen wann ich das realisiere (war nur vom Heizungsbauer so angedacht, dass die Steuerung dann auch über „Meine“ Steuerung erfolgt).

Wenn du mir was schreibst zum auslesen bin ich natürlich scho im voraus sehr dankbar für deine Hilfe.
Natürlich nehme ich auch Hilfe von anderen an :slight_smile:

Danke

Was passiert wenn sie gelöscht wird, es geht einfach darum, irgenwann hast Du eine Menge Daten darin, die eingelesen werden müssen. Wenn ich aber die Datei nach jedem einlesen lösche, bleibt es überschaubar. Daher, wird sie wieder automatisch mit selben Namen angelegt.?

Hier ist schon mal eine Fassung, die auch Du verstehen solltest.

Hiermit hast Du deine ganzen Daten im Script, gesplittet nach einzelnen Daten, welche dann in Variablen verteilt werden.

<?
$logfile = IPS_GetKernelDir()."fp10.log"; // anpassen an relativen Pfad
if(!file_exists($logfile)) // prüfen ob Logfile vorhanden
{
    echo "Logfile nicht vorhanden";
}
else
{
    echo $logfile." letzte Aktualisierung: " . date("d.m.Y H:i:s", filemtime($logfile))."
";
    $lines = file($logfile);
    //letzte Zeile aus Log
    $letzterLog = $lines[count($lines)-1];
    //aufteilen in einzelne Daten
    $split = explode(';', $letzterLog);
    // Daten in Variablen schreiben
    SetValue(12345, $split[0]); //Datum Uhrzeit
    SetValue(23456, $split[1]); //Fühler 1
    // das ganze geht so weiter mit der richtigen Auswahl der Variablen, Float, String, Integer
    /*
    ...........
    .............
    ............
    ............
    ............
    */
    unlink(IPS_GetKernelDir()."fp10.log"); // Logfile löschen
    print_r($split);
}
?>

im Anhang die Daten wie sie im Array aussehen.

Hallo Rainer,

woooow … das ist ja ein Service.

Hab jetzt von der Arbeit aus mal über die Teamviewer auf meinen PC zugegriffen und im c: emp die Datei einfach gelöscht und kurze zeit später (wenn die 5 Sekunden rum sind) war sie wieder daaaa :slight_smile:
Ich freu mich :slight_smile:
So jetzt heim gehn und IP Symcon bestellen.

Achja mit den 250 Variablen komm ich aber erstmal aus für meine Heizungssachen.
Pro Fühlerwert brauche ich eine Variable oder??

Und mal schaun ob ich mit deinem Script zurecht komme.
Danke erstmal

Pro Wert eine Variable. Für dieses Logfile wären das jetzt 27 wobei nicht alle belegt sind.
Mit dieser Version von oben solltest Du zurecht kommen. Wenn nicht, einfach fragen.

Man kann das ganze auch ganz anderst schreiben über Array und eine Schleife aber ich denke als Anfang sollte es erstmal so reichen. :wink:

die Datei einfach gelöscht und kurze zeit später (wenn die 5 Sekunden rum sind) war sie wieder daaaa

Dann kann man, wenn die Daten geschrieben sind, die Datei einfach löschen. :cool:

Ich hab gerade mal ein wenig zeit und wollte mal das Script testen.
Da ich bis jetzt null Ahnung von IPS habe, stehe ich gleich vor dem ersten Problem.
// anpassen an relativen Pfad
$logfile = IPS_GetKernelDir().„C: emp\fp10.log“; // anpassen an relativen Pfad

und klicke nach der Änderung auf Ausführen, sagt die Scriptausgabe „Logfile nicht vorhanden“
Hier liegt definitiv meine Datei.

Bitte nicht schimpfen :slight_smile:

Danke im voraus

Hier schimpft keiner. :wink:

$logfile = "C:\	emp\\fp10.log"; // anpassen an relativen Pfad

IPS_GetKernel() ist der IPS Pfad.

danke für die schnelle Antwort
das funktioniert jetzt schon mal

kannst du mir noch folgende Zeile erklären

SetValue(12345 /[Objekt #12345 existiert nicht]/, $split[0]); //Datum Uhrzeit

SetValue ist doch die Variable?
Die muss ich doch vorher anlegen um da reinschreiben zu können.
Ich geh dann über Variable hinzufügen und vergebe der Variable einen Namen (bei die z.B. 12345)?
Das Datum sollte dann als String angelegt werden
Allen zahlen mit Float bzw. Ganzzahlen mit Integer.
Wie muss ich das $split[0] verstehen?

12345 ist die ID der Variable, nicht der Name. Die ID steht ganz links.

Ich würde für Tempwerte Float verwenden, für den Rest Integer und für das Datum String.

In $split[0] steht dein erster Array Eintrag, hier das Datum. Ersichtlich aus der Arrayausgabe durch print_r()

http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/

Hallo Zusammen,

erstmals besten Dank für dieses Script!
…hat auch mir sehr gut weitergeholfen! =)

Doch wenn ich im Webfront draufklicke, popt immer so ein Fenster auf…
…können diese Werte auch anders dargestellt werden? (Ohnen Popup?)

Dabei würde ich an eine eigene Seite denken, wie im Demo (http://www.webfront.info/) der Punkt „Räume“.

Ich hoffe Ihr versteht was ich meine! =)

LG Leo!

Hallo Klaus!
Ich habe auch eine Hanazeder SH-8 VFP und würde sie gerne mit meinem pc verbinden.
was brauche ich dazu?

Nach über 10 Jahren muss ich mal was zum php Script fragen.
Und zwar muss ich die fp10.log Datei jetzt über einen anderen PC erzeugen und ipsymcon soll darauf über ein Netzlaufwerk zugreifen. Laufwerk heißt Z und darin wird auch die fp10.log erzeugt. Ordner ist auch mit Vollzugriff ausgestattet und per Explorer kann ich darauf zugreifen.
Wieso kann ich über das Script die Datei nicht auslesen. Er sagt immer „Logfile nicht vorhanden!“
Muss ich den Pfad anders angeben?
Hat jemand eine Lösung für mich?
Danke im Voraus

also grundsätzlich würde ich über den UNC-Pfad gehen und dann probier mal folgendes:

$logfile = "//Hanazeder/fp10.log"
ansonsten
$logfile = "Z://fp10.log"

Danke dir für deine Antwort.
Aber ich hab jetzt nen ganz neuen win10-Rechner direkt neben der Heizung aufgesetzt und mittels RS232 bekomm ich die fp10.log erzeugt. Das Verzeichnis hab ich Freigegeben mit Vollzugriff „Jeder“. Ist jetzt Laufwerk Y und ich kann vom IPS-PC auch über Explorer drauf zugreifen.
Allerdings sagt das PHP-Script immer, dass kein Log-File vorhanden ist. Hab es auch mit der anderen Variante probiert - ohne Erfolg.
Hab es auch schon mit IP-Adresse probiert - kein Erfolg.
Ich versteh es nicht, warum das Script im Laufwerk Y keine Datei findet :frowning: