Temperatur-Logger

  • Du hast doch oben eine Datenbankabfrage gepostet:

    Wenn du an der von mir vorgegebenen Datenbankstruktur nicht herum gespielt hast, dann wurde die Datenbank vom 1wire.py Script wie folgt erzeugt:

    [code=php]
    CREATE TABLE IF NOT EXISTS data (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,location VARCHAR(255),timestamp INT(11),temp FLOAT(11),hum FLOAT(11),KEY location (location)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
    [/php]

    Und das wiederum bedeutet, dass die erste Spalte "id" ist, die zweite Spalte ist "location", die dritte Spalte ist"timestamp", die vierte Spalte ist "temp" und die fünfte Spalte ist "hum".

    Wie man der Ausgabe deiner "SELECT * FROM data;" Abfrage entnehmen kann ist die fünfte und somit letzte Spalte bei Dir leer, sie enthält keine Daten. In dieser letzten/fünften Spalte werden (sofern vorhanden) die Luftfeuchtigkeits Werte für den Humidity Chart ausgelesen.
    Du hast zudem ausschließlich das 1wire.py Script im Einsatz, welches ausschließlich "temp" behandelt und für mehr nicht vorgesehen ist.

    Also: Solange du nicht an den Scripts (python / php) herumgespielt hast, sollte es wie vorgesehen funktionieren. Die Scripts sind aufeinander abgestimmt.

    Wie du am 1wire.py siehst werden nur "temp" Werte eingetragen: https://github.com/meigrafd/HighC…er/1wire.py#L89
    Wie du am data.php entnehmen kannst wird gemäß dem 'type' die gleichnamige Spalte ausgelesen: https://github.com/meigrafd/HighC…er/data.php#L36

    Die PHP Scripte lesen nur aus.
    Das (bzw die) Python Script ist das einzige was in die Datenbank schreibt.

    DS18S20 können nur Temperatur.

  • Hallo meigrafd,

    besten Dank für Deine Antwort.

    Hier mal das von Dir benannte relevante Script mit der entspechenden Zeilen(L#98) aus 1wire.py wie es bei mir installiert ist:

    Code
    con.commit()
           cur.execute("CREATE TABLE IF NOT EXISTS data (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,location     VARCHAR(255),timestamp INT(11),temp FLOAT(11),hum FLOAT(11),KEY location (location)) ENGINE=InnoDB DEFAULT CHARSET=utf8;")

    Bem: Steht alles auf einer Zeile - habe ich hier nicht so eingefügt bekommen.

    Weiterhin Zeile #36 aus Deinem data.php:

    Code
    // Get Data from each "location"
           $result2 = query("SELECT location,timestamp,".$Type." FROM data
                            WHERE location = '".$row['location']."'

    Ich kann keine Unterschiede zu deinen Original-Script´s erkennen.

    Zitat

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Hi Ruco,[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]habe an der index.php bisher nichts verändert, so wie ich am ganzen Projekt nichts verändert habe, außer in der 1wire.py, in welcher ich die Sensor-ID´s und die Sensorbezeichnungen eingetragen habe.[/font]

    Ich habe wie bereit erwähnt nichts ververändert oder gar herumgespielt - warum auch - dazu sind meine Kentnisse nicht ausreichend.

    Was würdest Du vorschlagen, was ich tuen sollte?

    MfG - towi :danke_ATDE:

  • Da du dich ja schon ein wenig in der index.php versucht hast, ersetz die mal lieber durch eine neue. Ohne Änderungen.
    Dann ist diese Fehlerquelle schonmal ausgeschlossen.
    Die temp & hum Chart sind in DIV-Container. Wenn dieser leer ist (weil z.B. die Chart nicht generiert wird) , dann wird das div auch nicht "eingeblendet" und das andere DIV rutscht nach oben.
    Will da aber jetzt aber nicht weiter auf dieses verhalten eingehen. Ist eine andere Geschichte.
    Zumindest sieht es bis jetzt so aus als würde deine Chart nicht erstellt werden.
    Da du sie aber schon mal gesehen hast, als deine Datenbank noch leer war, tippe ich auf einen Fehler in der selbigen.


    Hast du phpmyadmin?
    Wenn nein, dann mal installieren. Ist halt einfacher.
    Dann kannst du zum testen auch bequem ein paar Werte von Hand eintragen.
    Für die Werte in "timestamp" ist sowas hilfreich: _Link_


    Was kommt eigentlich raus wenn du das 1wire.py im Terminal per Hand anstößt?

  • Ok, hab die Ausgabe gesehen.

    Muß ich doch mal die Skripte vergleichen. Ich habe nämlich nicht das " °C " dabei stehen.
    So spontan seh ich das auch nicht auf github im 1wire.py.
    Wo kommt das her?

    meigrafd
    Können Umlaute eigentlich Probleme machen?


    Momentan schaut´s mit demTemperturwerten so aus:


  • Was würdest Du vorschlagen, was ich tuen sollte?

    Ich verstehe nicht wo Dein Problem ist???

    Noch mal:

    In Deiner Datenbank sind KEINE "hum" Werte!

    Wo keine Werte da auch keine Charts!

    Das 1wire.py liest NUR "temp" Werte!

    DS18S20 können nur "temp"!

    °C ist "temp"

  • Hi,
    Das er nur temp auslesen kann weiß er doch.
    Ich glaub du verstehst ihn falsch.

    Wo keine Werte da auch keine Charts!

    Ist nicht ganz richtig. (wenn man spießig sein will)
    Die Chart sieht man, nur ohne Inhalt (also den Linien).
    Man kann also nur den Text das keine Daten vorhanden sind lesen.

    Und genau das sieht er. Allerdings nur bei der Hum-Chart.
    Die Temp-Chart ist komplett verschwunden (er hatte sie aber schon gesehen).
    Er sieht also kein weisses Feld oder sonst was.
    Als würde es nur eine einzige Chart geben, keine 2.
    Die Temp-Chart ist weg und die Hum-Chart ist nach oben gerutscht.
    Und das kam erst nachdem er Daten gesammelt hatte.
    So hab ich es verstanden.

    Er sollte mal ein Bildschirmfoto bringen.


    Zitat

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]°C ist "temp"[/font]


    Richtig, aber woher kommt die -> [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]°C <- in seiner Terminalausgabe?[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Bei mir kommt das nicht. Nur der Wert selber.[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Beispiel zum Vergleich:[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]

    Zitat

    [/font]

    Zitat


    pi@raspberrypi ~ $ /home/pi/temp.py
    Raumluft -> 19.0

  • Hallo zusammen,

    besten Dank für Eure Antworten.

    Ruco hat es nochmal treffend beschrieben, was das Problem ist:

    Zitat

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Die Temp-Chart ist weg und die Hum-Chart ist nach oben gerutscht.[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Und das kam erst nachdem er Daten gesammelt hatte.[/font]

    Ich beschreibe es nochmal etwas ausführlicher, ähnlich eines vorigen Beitrages von mit:

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Daten in [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]temp-DB[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] und keine Charts der Temperatur [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]und[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] keine Daten in [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]hum_DB[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] und eine Chart-Darstellung der Humidity(natürlich leer und ohne Kurve und Achsbeschriftung).[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Habe nochmal den CRONtab gecheckt - sieht auch gut aus , oder(?):[/font]

    Code
    Jan 18 15:27:01 raspberrypi CRON[9699]: (root) CMD (   /usr/local/sbin/1wire.py                                                                                         >/dev/null  2>&1)
    Jan 18 15:28:01 raspberrypi CRON[9749]: (root) CMD (   /usr/local/sbin/1wire.py                                                                                         >/dev/null  2>&1)
    Jan 18 15:29:01 raspberrypi CRON[9779]: (root) CMD (   /usr/local/sbin/1wire.py                                                                                         >/dev/null  2>&1)
    pi@raspberrypi:~ $ sudo grep CRON /var/log/syslog

    Und nochmal 1wire.py angestossen:

    Komisch - jetzt ohne °C???

    Fragen: Sind die location-Einträge eventuell zu lang oder sind, wie Ruco bereits fragt, die Umlaute ein Problem?
    Sollte ich die angelegte DB vielleicht nochmal löschen und würde sie durch 1wire.py wieder neu erzeugt?
    Dazu sollte ich sicherlich vorher den crontab für 1.wire.py deaktivieren oder?
    Oder kann ich noch irgendwas anderes kontrollieren?

    Da der PI nur für diese Projektnutzung vorgessehen ist, wäre natürlich eine komplette Neuinstallation des Highcharts-Projektes oder die komplette Neueinrichtung des PI eine Alternative - was meint Ihr?

    Besten Dank und mfG - towi :danke_ATDE:

  • Hi Ruco,

    ok - also etwas systematisch zurückbauen, um zu erkennen, ab welcher Neuaktivierung das Problem besteht oder behoben ist(hoffentlich!).

    PS: phpmyadmin ist bei mir zwar installiert - funktioniert aber nicht(Seite kann nicht geladen werden). Mache dei Datenbankbearbeitung(löschen) halt mit der mysql-Konsole. Will mcih damit jetzt nicht auch noch aufhalten.

    Danke erstmal - dauert jetzt etwas, weil ich erstmal den Weihnachtsbaum deinstallieren muss :rolleyes: !

    MfG - towi

  • Hallo zusammen,

    :bravo2: :bravo2: :bravo2:

    es läuft - die Temperaturgrafik mit den Kurven und der Scalierung werden angezeigt - PRIMA!!!

    Was habe ich gemacht:

    1. crontab zu 1wire.py deaktiviert (Zeileneintag in /etc/crontab gelöscht)
    2. Datenbank"measurements" gelöscht
    3. Umlaute im 1wire.py gegen Selbstlaute ausgetauscht
    4. crontab für 1wire.py wieder aktiviert (Zeileneintag in /etc/crontab ergänzt)
    5. Über mysql-Konsole kontrolliert ob Datenbank"measurements" wieder angelegt wurde und ob seit Wiederaktivierung des crontab Daten aufgezeichnet wurden >>> i.O.
    6. Kontrolle der Grafik-Darstellung der Charts zur Temperatur >>> i.O.

    Wollte hier eigentlich mal den Screenshot vom Monitor mit Chart-Darstellung poosten - habe ich jetzt aber nicht hinbekommen.

    Ob´s nun an den Umlauten gelegen hat, warum die Temp-charts nicht dargestellt wurden, kann ich momentan nicht sagen - habe jetzt keinen Bock mehr alles nochmal zu probieren.

    Will jetzt nur :sleepy:

    Bin einfach nur froh, dass es jetzt schonmal funktioniert.

    Vielleicht kann meigrafd das ja beantworten, ob´s an den Umlauten gelegen haben kann.

    Lasse das jetzt einfach mal laufe und melde mich hier in einigen Tagen nochmal.

    Nochmals besten Dank an meigrafd und Ruco - Danke!

  • Hallo zusammen,

    der Logger zeichnet ja nun testweise fleißig die Temperaturen der einzelnen Sensoren auf.

    Wie man sehen kann, werden die Charts Humidity mit eingeblendet, obwohl dort natürlich keine Werte liegen - ok.

    Das bringt mich zu der Frage, ob man die 15Temperatursensoren nicht auf diese und eventuell weitere Charts aufteilen könnte.
    Hatte gedacht, das ich ein Charts für Heizkreis, einen für Kältekreis und eventeulle nach Bedarf weitere einrichte.

    Oder könnte man das Projekt mehrfach installieren und dann nur diverse unterschiedliche DB-Tabellen füllen und beim Öffnen der Charts über den WEB_Browser diese einzelnen Werte in den Charts anzeigen.

    Weiterhin würde mich perspektivisch interessieren, ob man den Crontab des 1wire.py auch fremd-triggern kann(if-Anweisung), um nur Werte zu loggen, wenn eine Eingangsbedingung über die GPIO-Klemmen(als Eingang) vorhanden ist.

    Mfg - towi

  • Guten Tag meigrafd und towi,
    ich erlaube mir, mich hier einzuklinken, da meine Fragen identisch sind:
    Ich bin bis Beitrag 12 von tobi gekommen und habe die zitierte Meldung


    ...Sobald ich am PC den PI über dessen IP aufrufe kommt "Index of / Name .... ".
    Beim Aufruf über den PI-Browser (http://localhost/) kommt die gleiche Anzeige...


    Ich liefere schon mal meine Antwort auf die danach von meigrafd gewünschten Angaben:

    Zitat

    pi@raspberrypi ~ $ ls -la /var/www/
    total 16
    drwxr-xr-x 3 root root 4096 Feb 15 17:39 .
    drwxr-xr-x 12 root root 4096 Feb 15 17:12 ..
    drwxr-xr-x 6 www-data www-data 4096 Feb 15 17:56 charts
    -rw-r--r-- 1 root root 177 Feb 15 17:12 index.html


    und weiter:


    Ich komme alleine nicht mehr weiter und bitte um Unterstützung.
    Danke

  • Hallo zusammen,

    nach diversen Hilfestellungen durch meigrafd und Ruco in diesem Thread und in diesem : Suche Programmierer. Datenbank auslesen und visualisieren per Highcharts , wollte ich den jetzigen Stand zum Temp-Logger-Projekt unserer Wärmepumpe vorstellen:

    Das ganze sieht jetzt so aus:

    Im Nächsten Schritt werden ich die DS1820 in der WP an den entspechenden Messstellen montieren. Werde dann nach einer gewissen Testphase nochmalig zum Praxis-Test berichten.

    Vorerst schon mal besten Dank an oben genannte Helfer - :danke_ATDE: :danke_ATDE: :danke_ATDE:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!