Energieverbrauch erfassen und auswerten Teil 1

    • Energieverbrauch erfassen und auswerten Teil 1

      Hallo,

      seit langem besteht mein Wunsch, hier erstmal Stromzähler mit S0 Schnittstelle auszuwerten. Diese gibt es als 3 Phasen und als 1 Phasen Zähler. In meinem Fall ist ein 3 Phasen Digitaler Stromzähler direkt nach dem offiziellen Stadtwerke Zähler als Zwischenzähler montiert. Weitere gibt es für eine Einliegerwohnung und dem Gartenbereich. Da diese dezentral verbaut sind, spielt die Anzahl vorerst keine Rolle.
      Prinzipiell lassen sich damit auch Wärmemengenzähler Gas- oder Wasseruhren auslesen. Voraussetzung ist immer ein S0 Ausgang, oder anderweitige Abnahme von Impulsen.

      Der auszulesende Zähler hat die besagte So Schnittstelle und liefert in meinem Fall 2000 Pulse / Kwh. Die SO Schnittstelle, bestehend aus zwei Anschlüssen (SO+ und SO-) ist auf Basis einer offenen Collector Schaltung. Somit kann der SO- mit GND und SO+ mit wiringPi 9 = Pin5 des Raspi's verbunden werden.

      Um etwaige Störungen zu filtern habe ich parallel zu der S0+ und S0- in der nähe des Raspi's einen 100nF Kondensator angeschlossen.

      Da ich nicht alle auf dem Markt befindlichen Stromzähler mit SO Schnittstelle kenne, kann man mit einem Einfachen Test ausprobieren ob derjenige geeignet ist.

      Dazu nimmt man eine Spannungsquelle z.B. 5V und verbindet SO- mit minus und den Pluspol zu einer LED > Vorwiderstand (z.B. 330 Ohm) > SO+. Ist diese richtig herum angeschlossen wird sie im Takt der vermutlich bereits am Zähler vorhandenen LED blinken.

      Damit ist der Hardwareteil abgeschlossen.

      Software:

      benötigt wird wiringPi, welches wahrscheinlich bereits auf dem Raps installiert ist.

      Das Zählen und erfassen der Pulse geschied mit dem angehängtem Program. Da dies in C geschrieben ist, muss es noch compeliert werden und es muss noch eine Datei erzeugt werden, wo später die Daten hineingeschrieben werden. Diese Datei ist eine csv Datei mit 3 Spalten. Zeit / Anzahl der Pulse pro Minute / Verbrauch in Kwh in der letzten Minute. Es wird für jede Minute eine Zeile erzeugt und um 00:00 Uhr eine neue Datei. Also pro Tag eine Datei. Z.B für heute 2016-04-02.csv

      Der Inhalt der Datei sieht dann so aus:

      Uhrzeit/Pulse/Verbrauch

      14:22;11;0.33
      14:23;11;0.33
      14:24;10;0.30
      14:25;11;0.33
      14:26;11;0.33
      14:27;10;0.30
      14:28;11;0.33

      Die Datei kann dann z.B. per FDP auf einen Rechner übertragen werden und in Excel importiert werden um damit Graphen zu erzeugen.

      Mein Ziel ist aber die Graphen in eine html Seite zu bekommen, welche dann in den SHC eingebunden ist. Hilfe hierzu ist willkommen!!!

      Zur installation:

      wiringPi setze ich voraus.

      Zuerst wird der Ordner für die csv Dateien erstellt.

      pi@SHCtest ~$ sudo mkdir strom

      Datei meinstromzaehler.c in das home Verzeichnis pi mit FTP kopieren oder mit sudo nano und hineinkopiertem Text erzeugen.

      Als nächstes muss es kompiliert werden:

      pi@SHCtest ~ $ gcc -lwiringPi -o meinstromzaehler meinstromzaehler.c

      Dann wird es nach /usr/local/bin kopiert.

      pi@SHCtest ~ $ sudo cp meinstromzaehler /usr/local/bin

      Jetzt kann das Program mit:

      pi@SHCtest ~ $ sudo meinstromzaehler

      ausgeführt werden. Später muss es noch in die Autostart eingefügt werden.

      Wenn man jetzt eine zweite Terminal session öffnet kann man die ermittelten Werte sich anschauen. Dazu:

      pi@SHCtest ~/strom $ cat 2016-04-02.csv

      eingeben. Der Name der Datei ist immer mindestens das Datum von heute. U.U. mit ls -la nachschauen.

      Autostart einrichten:

      Mit:
      ~ $ sudo nano /etc/init.d/meinstromzaehler

      Datei erzeugen und folgenden Code hineinkopieren:


      Source Code

      1. #! /bin/sh
      2. ### BEGIN INIT INFO
      3. # Provides: meinstromzaehler starten: S0-Schnittstelle per ISR auswerten und Textdatei schreiben
      4. # Required-Start:
      5. # Required-Stop:
      6. # Default-Start: 2 3 4 5
      7. # Default-Stop: 0 1 6
      8. # Short-Description: Kurze Beschreibung
      9. # Description: Längere Bechreibung
      10. ### END INIT INFO
      11. # Author: Johannes Weber (johannes@webernetz.net)
      12. # Aktionen
      13. case "$1" in
      14. start)
      15. /usr/local/bin/meinstromzaehler &
      16. # /opt/beispiel start
      17. ;;
      18. stop)
      19. killall meinstromzaehler
      20. # /opt/beispiel stop
      21. ;;
      22. restart)
      23. killall meinstromzaehler
      24. /usr/local/bin/meinstromzaehler &
      25. # /opt/beispiel restart
      26. ;;
      27. esac
      28. exit 0
      Display All
      Anschließend:


      ~ $ cd /etc/init.d

      /etc/init.d $ sudo chmod 755 meinstromzaehler


      /etc/init.d $ sudo update-rc.d meinstromzaehler defaults

      Stromzähler.jpg

      Diagram vom 03.04.16 00:00 Uhr bis 09:40 Der hohe Verbrauch links kommt von einem älteren 50 Zoll LCD TV. Rechts der spike ist die Kaffeemaschine.
      Das Programm, welches ich mir aus mehreren Quellen zusammenkopiert und ergänzt habe läuft. Sollte es dennoch Schwierigkeiten geben, kann es nur zu Fehlern beim hochladen gekommen sein.

      Dann bitte melden.

      Benutzung und vor allem Installation bzw. Modifikation am Stromnetz erfolgt auf eigene Gefahr.
      Files
      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.

      The post was edited 3 times, last by rmjspa ().