Solar Log Forum
04.02.2012 18:49 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: Forum auf Grund des Spamaufkommens auf manuelle Aktivierung neuer Benutzeraccounts umgestellt.
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Solarlogger mit SQLite / Ruby Server  (Gelesen 1032 mal)
mbarchfe
Mitglieder
Neuling
*
Offline Offline

Beiträge: 11


Profil anzeigen
« am: 01.01.2010 18:22 »

Hallo zusammen,

Ich hatte schon in einem anderen Post ( http://solarlog.ingmars-bastelecke.net/forum/index.php/topic,85.0.html) berichtet, dass ich die Daten eines Strahlungssensors mitloggen möchte. Dazu habe ich jetzt einen Prototyp erstellt (http://78.47.21.53/), der aus zwei Komponenten besteht: Erstens einer Erweiterung des solar-loggers, die das Auslesen des Strahlungssensors ermöglicht und die Daten in eine SQLlite Datenbank schreibt. Und zweitens einem Ruby Server, der neben Webseiten auch RESTful Webschnittstellen für den Up- und Download der Seiten bereitstellt. Die Webseiten enthalten eine Javascript Bibliothek, die Daten interaktiv im Browser darstellt. Zum Aufbau:
  • Anlage
      Hardware: die Wechselrichter und der Strahlungssensors sind über ein I-7561 mit einer Fritz!Box verbunden, die eine 756 kbit DSL Verbindung hat. Als Speicherplatz dient ein alter 512 MB Memorstick
      Software: Auf der Fritz!Box läuft der modifizierte Solarlogger und schreibt die Daten in eine lokale SQLite Datenbank auf dem Memorystick. Unabhängig davon läuft ein Shell-Script, das die Daten in der lokalen SQLite Datenbank über die Webschnittstelle mit dem Webserver synchronisiert. Das Script wird per cron halbstündig aufgerufen. Neben der sqlite3 Kommandozeile benötigt es curl zur Kommunikation mit der Webschnittstelle.
  • Server
      Hardware: Hetzner root server
      Software: auf dem Server läuft eine MYSql Datenbank. Die Ruby Webanwendung wird über einen Apache Webserver mit Modrails (passenger) zur Verfügung gestellt.

Ich denke, dass dieser Aufbau eine gute Entkopplung der verschiedenen Aspekte bietet: der solarlogger konzentriert sich auf das Auslesen der Geräte und das Schreiben der Daten in eine lokale Datenbank. Für mich hat das auch den Vorteil, nur wenig in C programmieren zu müssen (meine Kenntnisse sind etwas angestaubt ;-)). Die Synchronisation mit der Aussenwelt läuft separat. Dadurch kann bspw. das Logging weiterlaufen, auch wenn die DSL Verbindung mal nicht besteht. Die Berechnungen auf den Rohdaten können auf dem Server geschehen. Dieser kann dann sowohl die Rohdaten als auch die berechneten Daten per Webschnittstelle zur Verfügung stellen.

Für mich stellt sich jetzt die Frage, wie es weitergeht: Sind meine Änderungen auch für andere interessant und sollen sie ins Projekt integriert werden? Der Code steht auf github (http://github.com/mbarchfe) zur Verfügung. Er ist in einem Prototyp Zustand und müsste bei der Aufnahme ins Projekt weiter generalisiert werden. Beispielsweise sind die vom WR ausgelesenen Felder noch fest codiert. Die Änderungen am solar-logger sind im Repository solar-logger-sqlite zu finden. Dort sind meine Änderungen ausgehend von Version 0.2.1 zu finden. Der Ruby Server ist im Repository solar-logger-server.

Noch etwas zur Ruby-Server-Komponente: diese muss natürlich nicht auf einer Server-Hardware im Internet laufen. Ich sehe mehrere Möglichkeiten, ohne auszukommen:
Zum einen kann der Server auf dem heimischen PC installiert werden. Auch ohne Apache und Mysql und nur mit Ruby und SQLite. Der PC muss dann auch nicht durchlaufen sondern kann eine Synchronisation mit der Fritz!Box zu beliebigen Zeiten starten. Wahrscheinlich könnte der Server sogar auf der Fritz!Box laufen, denn Ruby steht dort auch zur Verfügung.

Auf der anderen Seite kann ich mir auch vorstellen, den Server als Service zu betreiben. Der Aufwand dafür ("Mandantenfähigkeit") wäre nicht allzu groß. Bestände den Interesse, einen solchen Service zu nutzen? Dann wären insbesondere Fragen des Daten-Backups und Datenschutzes zu stellen.

Gruß
Markus
« Letzte Änderung: 01.01.2010 18:25 von mbarchfe » Gespeichert
Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« Antworten #1 am: 01.01.2010 21:19 »

Hallo Markus,

erstmal super Arbeit die du da geleistet hast.

Leider kann ich die Grafik des Loggers nicht im IE sehen. Im Mozilla funktioniert sie jedoch und ich finde die Grafik einfach perfekt.

Und die Hetzner Webseite geht bei mir weder im IE noch im Mozilla. Schade :-(

Bei mir steht schon seit sehr langer Zeit eine Erweiterung des Solar-Loggers an nur leider hab ich überhaubt keine Zeit für sowas.
Ich hab mir deinen CODE heruntergeladen und werden das ein oder andere bei gelegenheit integrieren.

Ich denke dass dein Konnzept sehr interesand ist und für den ein oder anderen von nutzen sein könnte.
Vorallem die Lösung, dass man die Daten hin und wieder bei Gelegenheit vom Logger abhohlen kann.

Mein Vorschlag wäre deshalb, schreib doch mal ne kleine Doku, wie deine Datenbanken aufgebaut sind und wie das ganze System funktioniert.
Eventuell eine grafische Darstellung der Programmstruktur.
Ich will auch schon lange auf eine Datenbank Lösung umsteigen, nur hab ich noch keine zufriedenstellende Lösung zur DB Sicherung gefunden.

Den Server als Service zu betreiben ist denke ich keine gute Idea da gibt es schon zu viele Lösungen.
Und da dieses Projekt ja eine freie Lösung ist, denke ich nicht, dass es Leute geben wird die für einen Service bezahlen werden.


mfg


Klaus D.
Gespeichert

mbarchfe
Mitglieder
Neuling
*
Offline Offline

Beiträge: 11


Profil anzeigen
« Antworten #2 am: 02.01.2010 10:52 »

Hallo Klaus,

Ich habe die Webseiten bisher nur mit Firefox und Safari angesehen, für den IE muss ich nochmal schauen.
Was die Grafik angeht: bisher gibt es halt nur die Tagesdaten, auch mangels Masse. Als nächstes werde ich mich mal den Wochen und Monatsreports zuwenden.
Übrigens sehen die Werte momentan recht mau aus: das liegt nicht nur daran, dass Nordhessen ein trüber Standort ist ;-), sondern auch daran, dass Schnee auf dem Dach liegt und die WR unter Umständen gar nicht anspringen oder aber gar keine Leistung abgeben.

Zum Thema Backup: Bei SQLite ist das einfach: logger stoppen, Datenbank-Datei wegkopieren, logger starten.

Das wäre auch ein Vorteil eines Services: das Backup kann zentral vorgenommen werden. Im Gegensatz zu den vorhandenen kommerziellen Lösungen sehe ich auch andere Vorteile:
 - Man kann die Grafiken in eine eigene Webseite integrieren. Ich denke, dass zwar viele Leute eine Webseite oder einen Blog haben. Aber trotzdem nicht die Möglichkeit, eine Datenbank und eine Ruby Webservice frei auf einem Server zu installieren
 - Ähnliches gilt für eine App fürs Handy: das plane ich auch (ich weiss noch nicht, ob iPhone oder Android), auch hier ist der Server als Datenlieferant sinnvoll
 - Natürlich wäre es auch interessant, um bspw. die Umgebungsdaten (Strahlung und Temperatur vom Sunmeter) zentral zu sammeln und zu vergleichen

Ich denke, dass ich den Service durchaus kostenlos anbieten kann, wenn die Datenmenge nicht zu gross wird und die Upload-Intervalle nicht zu häufig werden. Bspws. Daten für ein Jahr und Uploads <10 mal pro Tag. Prinzipiell muss ich sowieso noch sehen, wie ich mit der Menge an Messdaten umgehe. Momentan gibt es zwei Tabellen, in die die Messwerte geschrieben werden. Für nur eine Anlage und 20 Jahre ist das auch OK. Mit einem passenden Index können die Werte für einen Tag performant gelesen werden. Wird dieselbe Datenbank aber ggf für hunderte von Anlagen benutzt, funktioniert dieser Ansatz nicht. Dann müsste ich die Daten bspw. tageweise archivieren. Die Daten eines gesamten Tages könnten dann als CSV, XML, JSon, egal, entweder als BLOB in der relationalen Datenbank abgelegt werden oder im Filesystem oder in einer alternativen Datenbank (key/value store).

Gruß
Markus

 
Gespeichert
mbarchfe
Mitglieder
Neuling
*
Offline Offline

Beiträge: 11


Profil anzeigen
« Antworten #3 am: 14.02.2010 14:12 »

Hallo zusammen,

Hier nochmal ein Update zu dem Thema. Ich habe inzwischen mit Klaus gesprochen, und hoffe, dass er meinen Branch vom solar-logger noch integrieren wird. Jedenfalls habe ich inzwischen soviel Doku geschrieben, dass man den Branch unter Linux installieren können sollte: http://github.com/mbarchfe/solar-logger-sqlite/blob/master/src/INSTALL

Den Server Teil habe ich jetzt in einem separaten Projekt auf github untergebracht: http://mbarchfe.github.com/plantwatchdog. Im Wiki ist jetzt auch einiges zur Installation, Konfiguration und dem Datenbankdesign zu finden.

Der Prototyp ist jetzt unter http://photovoltaik.markusbarchfeld.de zu finden und läuft auch im IE.

Eine Zusammenfassung mit noch einigen Links zu Hard- und Software findet sich jetzt hier:
http://www.markusbarchfeld.de/blog/article/2010/02/14/monitoring_of_my_photovoltaic_installation.html

Grüße
Markus
Gespeichert
Klaus D.
Globaler Moderator
Sr. Mitglied
*****
Offline Offline

Beiträge: 305

229942439
Profil anzeigen WWW
« Antworten #4 am: 14.02.2010 20:37 »

Hallo Markus,

sieht ja super aus, deine Grafik gefällt mir immer mehr.
Ich werd mal schauen, dass ich des SQLLite in den Logger rein bekomme.


mfg


Klaus
Gespeichert

Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS