Höchsten Wert Speichern

  • Moin,


    ich habe mal eine Frage. Ich soll mittels PHP zwei Werte in einer Datei Abspeichern.


    Es handelt sich hierbei um ein Projekt, welches mit einem Raspberry Pi umgesetzt wird.

    Hierbei habe ich Zwei Temperatur Sensoren, die immer die aktuelle Temperatur aus einen Pool ermitteln.


    Das ganze soll über eine Internet Seite angezeigt werden. Die normale Temperatur funktioniert soweit auch.
    Nun soll ich noch einen 7 Tage Wert für die Höchste Temperatur und die Niedrigste Temperatur erstellen-


    Das heißt das ich meinen Sensor "Sensor1" habe. Dieser zeigt je nach Temperatur in dem Fall natürlich die aktuelle Temperatur an.


    Sagen wir mal die Temperatur ist "28,9 °C" Dieser Wert soll nun in einer ".txt" Datei gespeichert werden.

    Wenn die Temperatur auf "29 °C" hoch geht, soll eben dieser Wert eingetragen werden. Also immer den höchsten.

    Das ganze natürlich auch bei der niedrigsten Temperatur. Wenn die sagen wir "12 °C" entspricht und runter auf "10 °C" geht. Soll eben "10 °C" eingetragen werden.


    Leider funktioniert das ganze noch nicht so. Ich habe es geschafft, dass er in die Datei reinschreibt. Aber wirklich jeden Wert dafür nimmt. Also auch wenn der von "29 °C" auf "27 °C" runter geht. Aktualisiert er diesen Wert in der Datei auf "27 °C"


    Bitte nehmt es mir nicht so übel. PHP ist nicht ganz mein Gebiet ^^



    Mein Code wie ich es aktuell umgesetzt habe:




    Dann noch eine andere kleine Frage.
    Der ich wollte gerne machen, das die 7 Tage Werte jeden Sonntag angezeigt werden.

    Also wenn von Montag bis Sonntag der höchste Wert "31 °C" war. Soll der dies anzeigen. Und eine neue Datei erstellen.

    Am nächsten Sonntag wird dann die Datei mit den "31 °C" gelöscht. Und wieder eine neue erstellt.


    Also immer das Zwei Dateien vorhanden sind. Einmal die von der vorherigen Woche und eine Neue für die kommende Woche.



    Wäre sehr dankbar wenn mir jemand weiterhelfen könnte.



    Lieben Gruß

  • Danke für die Antwort.

    Ich hätte das auch gerne mit Datenbanken gemacht.
    Leider ist dies ein Projekt welches ich erhalten habe und dort ist der Wunsch eben das ganze über Dateien zu machen.

  • Du schreibst:

    Zitat

    Sagen wir mal die Temperatur ist "28,9 °C" Dieser Wert soll nun in einer ".txt" Datei gespeichert werden.

    Ich nehme mal an, der Wert, der vom Sensor kommt, ist nicht buchstabengetreu "28,9 °C" sondern der reine Zahlenwert und mit Punkt als Dezimaltrenner? Wenn nicht, könnte das erklären, warum es nicht funktioniert.

    Davon abgesehen gibt es, denke ich, auf dem Raspberry Pi irgendwelche Logausgaben. Also, um da klarer zu sehen, die betreffenden Werte, was vom Sensor kommt, ausgeben lassen.


    Edit: Ich hätte zuvor den Code genauer lesen sollen: Wenn Du mit dem Wert rechnen kannst, Division und round, muss es ja der nackte Zahlenwert sein. :)

  • hey,


    Ja tut mir leid, da habe ich ein wenig für Verwirrung gesorgt. Natürlich gibt "sensor1' nur die blanke Zahl aus ohne das Grad Zeichen. Gerundet wird auf die erste nach Komma Stelle.


    Es wird also nur sowas wie "28.9" gespeichert.


    Hat jemand eine Idee wieso der Code nicht funktioniert?


    PHP
    <?php
    $ausgabe = file_get_contents("logs.txt");
    $schreiben = fopen("logs.txt", "w");
    
    if ($sensor1 > $ausgabe) { 
    fwrite ($schreiben, $sensor1);    
    fclose ($schreiben);} 
    ?>


    Lieben Gruß

  • Nicht Rätsel raten sondern debuggen: Wie schon geschrieben, die betr. Variablen ausgeben lassen, das gibt bestimmt Hinweise, warum es nicht funktioniert. Und die Fehleranzeigen einschalten:

    PHP
    <?php
    ini_set('display_errors', '1');
    error_reporting(E_ALL);

    am Anfang des Skripts.

  • Hey,


    also es hat jetzt geklappt.

    Ich habe es nun so gemacht:


    Code
    $ausgabe = file("logs.txt")[1];
    
    if($sensor > $ausgabe) {
        $schreiben = fopen("logs.txt", "w");
        fwrite ($schreiben, "Höchste Temperatur: \n" . $sensor1);
        fclose ($schreiben);
    }    

    Nun würde ich ganz gerne noch den Wert eintragen wenn sensor1 niedriger als Ausgabe ist.

    Hat da jemand eine Idee wie ich das ganze in die Gleiche Datei eintrage?



    Lieben Gruß

  • Ja stimmt. Das kann ich auch weg lassen.

    Hat jemand dann eventuell ein Beispiel wie ich den "niedrigsten" wert, darunter schreiben kann?

    Das in der ersten Zeile der höchste und darunter der niedrigste eingetragen wird?

  • Wenn es nur zwei Werte sind, dann wäre Json doch wie "Mit Kanonen auf Spatzen schießen", oder?


    Auf die Schnelle zusammengeschraubt und ungetestet:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!