Aufzeichnung der Temperaturwerte und Graphische Darstellung von DS18x20 Sensoren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Aufzeichnung der Temperaturwerte und Graphische Darstellung von DS18x20 Sensoren

      Hallo,

      da ich schon lange an einer Aufzeichnung bestimmter Temperaturdaten, in meinem Falle von der Heizung (Heizkörper Vor- und Rücklauftemperatur sowie Fußbodenheizung Vor- und Rücklauftemperatur und Heisswasserboilertemperatur zum einen und einige Temperaturen im Garten, habe ich mich gestern mal der Sache angenommen. Das ganze war einfacher als vorerst angenommen und lässt sich in ein bis zwei Stunden erledigen.

      Vorgegangen bin ich nach dieser Anleitung: 1-wire Temperatursensor DS1820 am Raspberry Pi (GPIO-direkt) und
      Temperaturmessung mit dem Raspberry Pi und dem 1-wire Temperatursensor DS1820 (USB-seriell)

      Eingesetzt habe ich das auf zwei SHC- Slave's. Einmal Slave Hausanschlussraum und Slave Garten. Da diese keinen Webserver mehr hatten, habe ich wie in der Anleitung Lighttpd genommen.

      Da die Anleitungen didaktisch gut aufbereitet sind, gibt es wenig zur Installation zu sagen.

      Ein paar Dinge nur.

      1. Beim Erzeugen der Datenbank mit rrdtool legt ein paar Sensoren mehr an, als ihr im Augenblick vielleicht braucht. Die Daten von 7 Sensoren erzeugen eine Datei von nur rund 600KB für ein Jahr an Daten.
      2. Mit der Eintragung des Cronjobs hatte ich Schwierigkeiten.
      3. Noch nicht vorhandene Sensoren, welche in der Datenbank aber angelegt sind, müssen im Phytonscript trotzdem angelegt sein. In der graph.pl kann man sie dann weglassen, damit sie nicht angezeigt werden.
      4. In der graph.pl wird mit dem HEXCODE die Farbe gewählt. Beispiel:
      RRDs::graph($tmpfile, @opts, "DEF:temp0=$rrd:temp0:AVERAGE", "LINE2:temp0#00FF00:Innen", "DEF:temp1=$rrd:temp1:AVERAGE", "LINE2:temp1#0000FF:Außen"Hier gibt es eine Auflistung von möglichen Farben:Rrdtool Color Palettes. Also um die Anzahl der Sensoren wie in der Anleitung zu verändern, müssen die Anpassungen beim erstellen der rrdtool Datenbank, im gettemp.py und im graph.pl gemacht werden. Übrigens, in meinen Graphen ist die Höhe auf 400 und die Breite auf 1000 gestellt.Garten Temperaturen.jpgTemperaturen Heizung.jpg
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • Aufzeichnung der Temperaturwerte und Graphische Darstellung von DS18x20 Sensoren

      Die Sensoren funktionieren trotzdem weiterhin ohne Probleme mit SHC?


      Sent from my iPhone using Tapatalk
      Gruß

      Matthias
      1x RasPi b, 3x RasPi b+, 1x RasPi 2, 2x RasPi 3, 2x RasPi Zero, 1x RadPi 4 (4GB) 1x BananaPi M1, 1x BananaPi R1, 1x BananaPi M3, 2x OrangePi Zero, 1x OrangePi One

      BTC: 1AJgWX9SXzH6wpoQ9d5HpkLcct6kAuatvJ
      NMC: N9fF4858aVWpY3Zu5xSxBV4XLvZ73D8eKV
    • Habe mich in den letzten Tagen weiter mit der Visualisierung von Sensoren beschäftigt.

      Zum einen habe ich wie oben zu sehen ist Daten in das rrdtool geschrieben und jetzt die gleichen, plus noch ein paar mehr in den Volkszähler.

      Vorweg, das parallele Auslesen und füttern der Datenbank, auch mit rrdtool und Volkszähler gleichzeitig geht zumindest auf den Slave's ohne Probleme. Aber die haben, die meiste Zeit ohnehin nichts zu tun. Sensoren am Master habe ich keine, kann es somit nicht testen. Das Auslesen von S0 impulsen via Interrupt hat auf dem Master nicht ohne Beeinträchtigung des SHC Sheduler funktioniert. Das nur nebenbei.

      Vor- und Nachteile der beiden Systeme rrdtool und Volkszähler:
      Vorteile rrdtool:
      sehr schlank, kleine Database, somit wenig Speicherverbrauch, ganz einfache Installation

      Nachteile rrdtool:

      Grafik nicht so schön, kein Zoom, insgesamt gröber

      Vorteile Volkszähler:

      Skalierbarkeit lässt keine Wünsche offen, sehr schöne Grafiken.

      Nachteile Volkszähler:

      recht komplizierte Installation wie ich finde, wachsende Datenbankgröße, Systemhungrig.

      Der Volkszähler mit myqsl ist bei mir auf einem eigenen Raspi installiert. Ich vermute, wäre er auf dem gleichen wie der SHC Master, könnte ich mir performance Probleme vorstellen.
      M.E. wäre es ideal den Volkszähler auf einem NAS (in meinem Fall Synology) zu betreiben (Speicher ohne Ende). Das wird verschiedentlich auch gemacht, habe aber keine genaue Anleitung dazu gefunden. Durch die ganzen Sicherheit Features wird das auf der Synology erschwert.

      Ich werde das mal die nächste Zeit weiter parallel beobachten. Denkbar wäre auch den Volkszähler auf einem unterforderten Slave zu betreiben und nur die myqsl Datenbank auf das NAS auszulagern. Das sollte einfacher möglich sein.

      Hier eine Grafik des Volkszählers. Die unterschiede der Pool Temperaturen kommen daher, dass die Sensoren einfach so im Garten liegen (Sonne / Schatten).

      Volkszähler.jpg
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • Update:

      Nachdem ich jetzt 4 Wochen die Daten von 10 DS18b20 und einem DHT 22 von zwei Raspi SHC Slave's und einem ESP8266 in eine Mysql Datenbank eingelesen und mit dem Volkszähler visualisiert habe, bin ich mit dem Ergebnis und der Zuverlässigkeit im vollsten zufrieden.

      Die Mysql Datenbank und der Volkszähler lief bisher auf einem Raspi 2 b+, ohne jegliche anderweitiger Installation.

      Heute bin ich mit der Datenbank und dem Volkszähler Frontend auf einen gelangweilten SHC Slave in der Garage umgezogen. Ausserdem habe ich die Mysql Datenbank auf einen 32 GB USB Stick zur Schonung der SD Karte ausgelagert. Der Raspi B+ hat sich allerdings von der Performance für die Mysql Datenbank als nicht ausreichend erwiesen. Bei einer "Zeitreise" in den Graphen waren die Ladezeiten mir zu lange.

      Daraufhin habe ich diesen Raspi B+ Slave gegen einen Raspi 2 B+ ausgetauscht. Jetzt läuft wieder alles flüssig.

      Die Konfiguration sieht jetzt so aus:

      Raspberry 2B+ mit Jessie light

      Raspi- cam
      Mysql Datenbank mit Volkszähler Frontend
      SHC Slave mit Ds18b20; PIR Sensor; 2 Magnetschalter; 4 Relais
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • Nee, bin noch nicht dazu gekommen und es wird auch noch etwas dauern.

      Ich kann Dir aber schon ein paar grobe Hinweise auf die schnelle geben:

      Volkszähler auf Raspi installieren. Anleitung über die wiki von Volkszähler.org


      software:middleware:installation [wiki.volkszaehler.org]

      Du brauchst nur die middleware, nicht den vzlogger.

      Zum Schluss PHP Admin ist noch sinnvoll, wird aber nicht benötigt.

      Wenn der Volkszähler läuft Kanäle erstellen. (Ein Kanal ist immer ein Sensor)

      Die UUID des Kanals aufschreiben. Z.B.
      aef21690-0d36-11e6-8cf9-1734c5b988cb

      Dann brauchst Du die Kennung des jeweiligen DS18x20 Wie die ausgelesen wird, kennst Du ja vom SHC.

      28-031501c053ff Die "28-" lässt Du im Script weg.

      Hier:
      $middleware = 'http://192.168.200.230/middleware.php';

      trägst Du Deine IP ein, des Raspi's auf dem der Volkszähler läuft.

      Dann trägst Du in das beigefügte Script Deine Kennung und Deine jeweilige UUID des Sensors ein.

      Das PHP Script ausführbar machen und starten. Später kannst Du es dann für den Autostart eintragen.

      Du kannst Das Script genau so übernehmen, bis auf die Sensor Id's, den UUID's und der IP. Die Bezeichnungen wie Vorlauf Heizkörper etc. kannst Du auch ändern.

      Ich habe den Volkszähler auf einem SHC Slave in der Garage am laufen, da dieser am wenigsten zu tun hat. Die Daten speichere ich auf einem 32 GB USB Stick. Wird für viele Jahre reichen, bei 9 Sensoren z.Z.

      Wie das geht schreibe ich Dir mal. Muss ich auch erst noch mal suchen. Du musst dafür in der SQL config als Speicherort den USB Stick angeben.

      Oder google mal nach SQL Datenbank auf USB Stick auslagern, oder so ähnlich.

      Das PHP File kannst Du nach belieben umbenennen. Bei mir heißt es: w1vzHA.php / Steht für 1 wire Volkszähler Hausanschlussraum.

      Das war es schon.

      Temperaturen_23_06_16.jpg
      Dateien
      • w1vzHA.php.zip

        (1,53 kB, 24 mal heruntergeladen, zuletzt: )
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • PHP Script anlegen sollte doch so gehen

      Quellcode

      1. 1. mkdir /root/sh "Order für Scripte anlegen"
      2. 2. cd /root/sh
      3. 3. sudo nano theow1POOL.php "PHP-Script anlegen"
      4. 4. chmod +x theow1POOL.php "ausführbar machen"
      5. 5. crontab -e
      6. * * * * * php5 /root/sh/theow1POOL.php > /dev/null 2>&1 "Script jede Minute ausführen"
    • nicht ganz.

      cd /usr/bin

      sudo nano theow1POOL.php "PHP-Script anlegen"

      chmod +x theow1POOL.php "ausführbar machen"

      Dein crontab ist falsch. Das script muss nur beim booten einmalig gestartet werden. Die minütige Übertragung ist schon im Script geregelt.

      Zum testen einfach mit: theow1POOL.php & starten

      Wegen dem crontab muss ich selber mal schauen, wie ich das gemacht habe.

      In etwa so: @reboot theow1POOL.php

      Ich hänge Dir noch einen Sketch für den ESP8266-01 mit DHT 22 an.

      Worauf Du achten musst ist Deine IP plus Pfad zur middleware stimmt. Sonst kommen die Daten nicht an.

      $middleware = 'http://192.168.200.230/middleware.php';

      Melde Dich, wenn Du ein Problem hast.

      Nachtrag: Nachdem ich umgezogen bin auf dem Slave, habe ich für den Volkszähler einen Ordner im www Verzeichnis angelegt.

      Der Befehl im Script mit Pfadangabe sieht dann so aus.

      $middleware = 'http://192.168.200.170/volkszaehler.org/htdocs/middleware.php';

      Du kannst den Ordner auch vz.org nennen. Wichtig ist nur, dass der Pfad zum Volkszähler im Script übereinstimmt.
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von rmjspa ()

    • Danke nochmals.
      Middleware läuft soweit.
      Jetzt komme ich nicht mehr ins SHC.
      Liegt wohl an diesem: /var/www/volkszaehler.org/htdocs/

      Hab es mal getestet, wenn ich das "volkszaehler.org/htdocs/"
      entferne und Neustarte, dann geht der Zugriff auf SHC wieder.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von premo ()

    • Wo liegt denn bei Dir der shc?

      bei mir unter /var/www/shc.......
      Volkszähler dann
      /var/www/volkszehler.....

      Du kannst jede Menge Ordner unter /var/www anlegen und jedes Programm oder html Seite unter dem jeweiligen Unterordner ansprechen.

      Die beeinflussen sich nicht.
      Z.B.
      Deine IP/shc/index.php?app=shc >>> SHC
      Deine IP /volkszaehler.org/htdocs/frontend/ >>> Volkszaehler
      Deine IP /aussencam/index.php
      usw.

      Jede Application im eigenen Unterordner von www.

      Nachtrag:

      Was hast Du denn in deiner /etc/apache2/sites-enabled/000-default.conf stehen?


      in Zeile 12 das html nach /var/www/ löschen

      sudo nano /etc/apache2/sites-enabled/000-default.conf
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von rmjspa ()

    • nein.

      Bei mir sieht das so aus:

      Quellcode

      1. pi@SlaveGarage:/var/www $ ls -la
      2. insgesamt 24
      3. drwxr-xr-x 6 root root 4096 Mai 29 10:53 .
      4. drwxr-xr-x 12 root root 4096 Mai 9 19:10 ..
      5. drwxr-xr-x 2 root root 4096 Mai 9 19:11 html
      6. drwxr-xr-x 7 www-data www-data 4096 Mai 9 20:31 rcamGarage >>> Picam
      7. drwxrwxrwx 6 root root 4096 Mai 9 19:27 shc >>> shc
      8. drwxr-xr-x 9 root root 4096 Mai 29 10:58 volkszaehler.org >>> volkszeahler
      9. pi@SlaveGarage:/var/www $
      10. pi@SlaveGarage:/var/www $ cd volkszaehler.org
      11. pi@SlaveGarage:/var/www/volkszaehler.org $ ls -la
      12. insgesamt 1832
      13. drwxr-xr-x 9 root root 4096 Mai 29 10:58 .
      14. drwxr-xr-x 6 root root 4096 Mai 29 10:53 ..
      15. -rw-r--r-- 1 root root 1558 Mai 29 10:53 composer.json
      16. -rw-r--r-- 1 root root 109736 Mai 29 10:58 composer.lock
      17. -rwxr-xr-x 1 root root 1640247 Mai 29 10:53 composer.phar
      18. -rw-r--r-- 1 root root 32472 Mai 29 10:53 COPYING
      19. -rw-r--r-- 1 root root 538 Mai 29 10:53 .editorconfig
      20. drwxr-xr-x 2 root root 4096 Mai 29 10:59 etc
      21. drwxr-xr-x 8 root root 4096 Mai 29 10:53 .git
      22. -rw-r--r-- 1 root root 81 Mai 29 10:53 .gitignore
      23. -rw-r--r-- 1 root root 112 Mai 29 10:53 .gitmodules
      24. -rw-r--r-- 1 root root 4464 Mai 29 10:53 gulpfile.js
      25. -rw-r--r-- 1 root root 170 Mai 29 10:53 .htaccess
      26. drwxr-xr-x 3 root root 4096 Mai 29 10:53 htdocs
      27. -rw-r--r-- 1 root root 845 Mai 29 10:53 INSTALL
      28. drwxr-xr-x 9 root root 4096 Mai 29 10:53 lib
      29. drwxr-xr-x 8 root root 4096 Mai 29 10:53 misc
      30. -rw-r--r-- 1 root root 835 Mai 29 10:53 package.json
      31. -rw-r--r-- 1 root root 722 Mai 29 10:53 phpunit.xml
      32. -rw-r--r-- 1 root root 2134 Mai 29 10:53 README.md
      33. drwxr-xr-x 3 root root 4096 Mai 29 10:53 test
      34. -rw-r--r-- 1 root root 4642 Mai 29 10:53 .travis.yml
      35. drwxr-xr-x 14 root root 4096 Mai 29 10:58 vendor
      36. pi@SlaveGarage:/var/www/volkszaehler.org $
      Alles anzeigen
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • rmjspa schrieb:

      Was hast Du denn in deiner /etc/apache2/sites-enabled/000-default.conf stehen?

      Quellcode

      1. <VirtualHost *:80>
      2. # The ServerName directive sets the request scheme, hostname and port that
      3. # the server uses to identify itself. This is used when creating
      4. # redirection URLs. In the context of virtual hosts, the ServerName
      5. # specifies what hostname must appear in the request's Host: header to
      6. # match this virtual host. For the default virtual host (this file) this
      7. # value is not decisive as it is used as a last resort host regardless.
      8. # However, you must set it for any further virtual host explicitly.
      9. #ServerName www.example.com
      10. ServerAdmin webmaster@localhost
      11. DocumentRoot /var/www/volkszaehler.org/htdocs/
      12. # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
      13. # error, crit, alert, emerg.
      14. # It is also possible to configure the loglevel for particular
      15. # modules, e.g.
      16. #LogLevel info ssl:warn
      17. ErrorLog ${APACHE_LOG_DIR}/error.log
      18. CustomLog ${APACHE_LOG_DIR}/access.log combined
      19. # For most configuration files from conf-available/, which are
      20. # enabled or disabled at a global level, it is possible to
      21. # include a line for only one particular virtual host. For example the
      22. # following line enables the CGI configuration for this host only
      23. # after it has been globally disabled with "a2disconf".
      24. #Include conf-available/serve-cgi-bin.conf
      25. </VirtualHost>
      26. # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
      Alles anzeigen
      VZ.JPG