Temperaturfehler bei PHP ausgeben

  • Moin,


    ich habe bereits in einem anderen Beitrag erläutert das ich derzeit mittels eine Raspberry PI eine Temperaturüberwachung mache.

    Nun bin ich auf ein Fehler gestoßen.


    Ich habe genau 2 Sensoren, jeder Sensor misst seine eigene Temperatur.

    Und zwar ist es so, das sobald 1 Sensor fehlt, der Wert "0" angezeigt wird. Dafür aber auch der Sensor2 nicht mehr die Temperatur anzeigt sondern einfach nichts mehr ausgibt.


    Hat jemand eine Idee wie das am besten geht? Ich habe das so gemacht:


    Wenn der $sensor2 einen Wert hat, also nicht Leer ist, soll er die Temperatur vom Sensor sich holen.
    Wenn der $sensor2 aber auf "0" ist, soll der einen Fehler anzeigen, aber $sensor1 weiterhin anzeigen.


    Was er aktuell nicht macht.


    Die Temperatur habe ich so ausgegeben:

    Bekomme auch immer den Fehler:
    Notice: Undefined offset: 1 in /var/www/html/index.php on line 16

    Zeile 16 ist hier: $sensor2 = $sensor2[1] / 1000;



    Hat jemand eine Idee?


    Lieben Gruß

  • Der Ablauf wäre ja:

    Code
    $sensor2 = 1000;
    $sensor2 = $sensor2[1] / 1000;
    $sensor2 = round($sensor2, 1);

    da ja

    Code
    if(!empty($sensor2))

    nicht zutrifft. Und damit sollte dir auffallen, warum PHP dir ein Warning um die Ohren haut.

  • Das habe ich auch bereit schon versucht.
    Dann gibt er aber diesen Fehler aus.


    Aber ich habe das auch etwas falsch geschrieben sehe ich gerade. Zeile 16 ist ja

    $sensor2 = $sensor2[1] / 1000;


    Habe die Zeile ja genau 2x.

    Hier nochmal der genaue Text mit der Zeile 16


    Habe unten dementsprechend auch schon die [1] entfernt. Aber auch das war nun nicht die Lösung.

    In der Zeile 16 benötigt er ja [1] weil das die Temperatur ist, die er sich dann aus dem Linux Befehl rausholt.



    LG

  • Wichtig zu wissen, wäre, wie dies zu verstehen ist:

    Zitat

    Und zwar ist es so, das sobald 1 Sensor fehlt, der Wert "0" angezeigt wird. Dafür aber auch der Sensor2 nicht mehr die Temperatur anzeigt sondern einfach nichts mehr ausgibt.

    Was kommt vom Sensor, wenn er gestört ist? Im Gutfall etwas in der Form 't=22.7'. Wie sieht das im Fehlerfall aus? Mal mit var_dump ausgeben lassen.

  • Was wird hier bei ausgespuckt:

  • Genau, jeder Sensor hat einen eigenen Ordner. Fehlt der Sensor so löscht das System den Ordner vom Sensor in einer Zeit bis zu 2 Minuten. So klappt auch alles. Also das System funktioniert damit.


    Aber das dauert halt etwas lange. Weshalb ich das anders machen wollte.

    Mit var_dump habe ich es schon versucht.


    Sobald der Sensor weg ist, zeigt var_dump einfach eine 0 an.



    Was wird hier bei ausgespuckt:


    Das wird ausgegeben. (Wenn beide Sensoren vorhanden sind)


    html-seminar.de/woltlab/attachment/3126/


    Und einmal die Ausgabe wenn $sensor2 fehlt:

    html-seminar.de/woltlab/attachment/3127/


    Zeile 36:
    $sensor2 = $sensor2[1] / 1000;

  • Funktionier auch nicht ganz.
    Ich habe ja mittels JavaScript eine Automatische Aktualisierung gemacht. Aber er holt sich davon wohl nicht die Daten.


    Hier einmal das JavaScript aus der index.php


    Und in der index.php ebenfalls noch die Zeilen wo die werte ausgegeben werden sollen:



    Und 1x die laden.php


    $sensor1 und $sensor2 stehen ebenfalls genau so auch in der index.php

  • Kein Problem, Du brauchst nur einen bestimmten markanten Wert im Fehlerfall zu übertragen, dann kannst Du auf der Clientseite darauf reagieren und die Ausgabe z. B. mit roter Farbe oder/und einem passenden Icon zu kennzeichnen:

    Offene Frage: Der Sensor 1 kann doch wahrscheinlich auch fehlerhaft sein?


    BTW: Ich würde ja bevorzugen, den Sensor auf direktem Wege zu prüfen:

  • Es funktioniert wunderbar mit dem ersten Teil den du gesendet hast.
    Also erst einmal vielen Dank an m.scatello für die Vorlage und dann Sempervivum für die Fortsetzung ^^

    Eine Frage hätte ich noch. Ich wollte gerne noch eine Textbox einfügen die sich ebenfalls automatisch anzeigen lässt und wieder verschwindet wenn der Sensor weg ist. Hat da noch jemand eine Idee? Ich wüsste wie ich die einfügen kann, aber nicht genau wie ich das mache wenn ein Fehler vorhanden ist.


    Lg

  • Ich hatte bis vor kurzen das so:

    Wenn der Sensor fehlt, zeigt er (wie jetzt aktuell auch) anstatt die Temperatur einen Fehler an.

    Dazu habe ich ganz unten auf der Seite noch so etwas hinzugefügt:

    Code
    <div class="container">
        <div class="alert alert-danger" style="margin: 10px auto; width: 50%" role="alert">
            <b>Fehler | </b>Sensor 2 Fehlerhaft oder nicht vorhanden!
        </div>
    </div>


    Diesen Alert würde ich auch gerne automatisch anzeigen lassen, sobald der Sensor weg ist. Und wenn der Sensor wieder da ist, das dieser Alert dann auch wieder weg geht.

  • Das Sichtbarmachen im Fehlerfall ist kein Problem:

    HTML
    <div class="container" id="alert-einlass-error">
        <div class="alert alert-danger" style="margin: 10px auto; width: 50%" role="alert">
            <b>Fehler | </b>Sensor 2 Fehlerhaft oder nicht vorhanden!
        </div>
    </div>
    CSS
    #alert-einlass-error {
        display: none;
    }
    #alert-einlass-error.visi {
        display: block;
    }

    (ungetestet)

  • Wie gesagt, ungetestet. Ich hatte da einen Schreibfehler, ich glaube "errror" mit drei "r" im HTML. Checke noch Mal genau die Schreibweise. Und wenn es dann nicht funktioniert, wird einen Blick in die Console.


    Das scheint mir Bootstrap zu sein. Es könnte sein, dass solch ein Alert im Grundzustand unsichtbar ist - ich werde das untersuchen ...

Jetzt mitmachen!

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