Universeller OpenSource Datenlogger und Steuerzentrale

  • Hallo,


    ich habe mir überlegt, dass die nachfolgenden Ideen vielleicht weitere Leute
    interessieren könnten und animieren zum Mitmachen.


    In den vergangenen Tagen habe ich meine Solaranlage in Betrieb genommen, siehe Bild 1. Zudem habe ich damit begonnen einen Solarlogger, auf Basis von Linux, aufzubauen. Das Bild 1 zeigt ein kleines Modul(kleiner blauer Kasten), dass die Daten
    vom Wechselrichter und dem Batteriemonitor abfragt. Die Werte werden in einer Datenbank abgespeichert und dem Benutzer über eine Touchoberfläche dargestellt. Für einen besseren Eindruck siehe Bild 2,3 und 4. Somit habe ich die Möglichkeit,
    egal wo ich bin über einen Browser die Statusseite aufzurufen (Handy, Tablet, Laptop oder PC). Die Anlage ist in der Garage montiert, ich habe somit noch die Möglichkeit die Videoüberwachung auf das Display zu holen und verpasse somit die
    Lieferdienste nicht mehr, wenn ich in der Garage tüftel.


    Das ganze "Wissen" steckt im Prinzip in dem entwickelten Programm. Victron ist leider ein wenig unkooperativ gewesen was das Protokoll zum BlueSolar Grid Inverter betrifft. Für den Multiplus gibt es das Mk2 Protokoll und der BMV 700 das VE.Direct Protokoll, für den BlueSolar Grid Inverter wollten sie das Protokoll nicht rausrücken. So habe ich ein Logic Analyzer verwendet und das Protokoll reverse engineered. Das Programm unterstützt nun, die BMVs 600-702, die MPPT Laderegler von Victron
    als auch die BlueSolar Grid Inverter. Das MK2 Protkoll muss ich noch implementieren. Das wird allerdings noch eine Weile dauern, da mir momentan die Zeit fehlt. Sorry könnte mir vorstellen hier liegt das größte Interesse. Aber die Spezifikationen, sind echt unglücklich dargestellt, was die Entwicklung verzögert. Eine Darstellung in der erweiterten Backus-Naur-Form(EBNF), wäre schön gewesen.


    Und hier sind wir bei meiner Vorstellung gelandet. Ich dachte mir auf Basis von dem Tool könnte man weitere Geräte, mit den entsprechenden Protokollen, hinzufügen. So wäre man von den kommerziellen Produkten unabhängig und wäre frei in der Gestaltung. Ich persönlich mag es nicht, dass ich Daten auf fremden Rechnersysteme hinterlegen muss(GX Lösung von Victron). Ich hätte die gerne zu Hause auf meinen eigenen Rechner, welche zudem verschlüsselt ist und durch VPN überall erreichbar (Mobile Phone, Tablet, Laptop usw.)


    Ein paar Worte zum System selber, falls es Leute gibt die sich hierfür interessieren. Der kleine Blaue Kasten auf Bild 1 ist nichts weiter als ein raspberry pi mit einem 7 Zoll Touchdisplay. Kosten belaufen sich auf 35 Euro für den Pi + 10
    Euro für die speicherkarte + 50 Euro für das Display. Es gibt auch größere Displays, 12Zoll zum Beispiel.
    Am raspberry pi hängt ein USB-TTL für den BMV 700 und ein USB zu RS232 für den BlueSolar Grid Inverter. Das MK2 Teil muss ich für den Multiplus noch bestellen. Es sind auch andere Kleincomputer denkbar. Der Pi ist es eh dafür überdimensioniert, mir schwebt da eher ein Atmel XMega128 Mikrokontroller vor. Was das C Programm
    anbetrifft, sind für den Mikrokontroller ein paar Anpassungen notwendig. Mit dem PI als Prototypbasis ging es erstmal schneller und dürfte für die breite Masse auf Zustimmung stoßen. Prototypen weisen erstmal nur die Funktion nach, Effizienz und Kosten folgen dann später ;-)


    Das Programm selber ist in C geschrieben und Modular aufgebaut. Ist gibt mehrere Funktionen die sich um die Terminal Kommunikation kümmern(TTL, RS232, MK2) und die Funktionen, welche die Rohdaten vom abgefragten Gerät aufbereiten.


    Im Prinzip ist es egal welche Architektur man verwendet, sei es ARM7 für den PI, oder x86 für einen Laptop oder sonstige Geräte die dazu verwendet werden die PV Systeme abzufragen. Solange es ein gcc für die angepeilte Architektur gibt,
    sollte es passen. Die Daten selber werden dann an den Server geschickt der die Daten in der SQL Datenbank ablegt. Das wird mit dem Munin Tool erledigt, dass zeitgleich auch die Generierung der Grafiken zu den Messwerten übernimmt.
    Man muss also keine Datenbankkenntnisse haben geschweige denn SQL programmieren können. Als Frontend nutze ich eine kleine php Seite, welche von einem Apache Webserver gehostet wird. Das ganze System muss nicht dediziert wie bei
    mir sein, es kann alles auf dem PI laufen. Die Rechenleitung des kleinen Zwergs reicht völlig.


    Momentan überlege ich mir, ob ich das Programm auf GitHub hochlade und ein Projekt starte. Hierzu fehlt es an Leuten, ihr seid damit also herzlich eingeladen mit zumachen. Arbeit gibt es an allen Ecken, zum Beispiel Dokumentation (Inbetriebnahme und Einrichtung, Doku zum Quellcode), denke für den Anfang wäre englisch ganz gut. Programmierung am Backend, also dem C Programm, als auch am Frontend sprich dem derzeitigen bescheidenen Webdesign
    (php, javascript). Im Prinzip ist man frei welches Webdesignkonzept man verwendet, wär spass daran hat kann auch Typo3, Joomla oder Drupal verwenden. SSH bzw. nur das Terminal, für die UNIX Leute unter uns, kann auch eine Lösung sein.


    Auch weitere technische Entwicklungen wären möglich, man könnte sich ja vorstellen, das man mehrere Geräte hat die aber verstreut um Haus/Garage installiert sind. So müsste man ja die Daten von den verschiedenen Systemen an einer Stelle konsolidieren. Hierbei habe ich mir überlegt man könnte als Messagebus-System ZeroMQ verwenden, müsste aber implementiert werden. Vorteil, über die Socket-Kommunikation muss man sich keine Sorgen machen. Plattformunabhängig wäre es auch. Auch eine Haussteuerung wäre umsetzbar, aufgrund der Parameter die dem Programm vorliegen, könnte man was schalten. Zum Beispiel eine kleine Pumpe die die Solarzellen mit Wasser herunterkühlt, um die Leistung zu erhalten/steigern. Die Australier machen solche Sachen zum Beispiel. Ich denke da gibt es eine ganze
    Menge weitere Dinge. Wenn man zum Beispiel ein CubieTrack(3) Board einsetzt hätte man 94 GPIOs zu Verfügung. Denke das sollte für die meisten reichen.


    Tja nun seit ihr gefragt, ob was Besseres daraus wird oder ob so bleibt wie es ist. Die Lizenz vom Programm wird die GPLv3 sein. Momentan trägt das Programm den Namen VicCom, wenn jedoch an der Idee festgehalten wird sollte vielleicht
    ein geeigneter her. Nun ist es einiges an Text geworden, der bestimmt viele Fragen aufwirft, somit belasse ich es mal für den Anfang.


    Wenn der Anfang soweit läuft, könnte man vielleicht über eine eigene Rubrik nachdenken, um weitere Schritte diskutieren zu können. Hierzu muss ich aber erstmal wissen, ob überhaupt bedarf ist. Dann könnte man ggf. dies mit einem Admin klären.


    Grüße
    Phil


    Ps: Bitte lasst euch nicht von Bild 4 ablenken das sind nur Testdaten.
    Keine Angst, die Batterien wurden nicht auf 0 Volt entladen ;-)
    Die angezeigten Sonnenstunden auf Bild 2 benutze ich, um Lasten im Hausnetz zu steuern. Manchmal macht es Sinn mit der Wäsche oder Geschirrspühler zu warten da am Nächsten Tag wieder mehr Sonne zur Verfügung steht.
    Richtig, ich will mit dieser Lösung meine Eigenverbrauch optimieren, denke mal das diese Geschichte kein Datenlogger bis jetzt kann! Ansonsten her mit den Infos, vlt. kann man noch was lernen.

  • Zitat von EgOPhil

    Momentan überlege ich mir, ob ich das Programm auf GitHub hochlade und ein Projekt starte. Hierzu fehlt es an Leuten, ihr seid damit also herzlich eingeladen mit zumachen.


    Für ein Github-Projekt brauchst du ja eigentlich erstmal niemanden, es wäre aber sicher eine Voraussetzung, um Helfer zu finden.


    Falls du auch PowerRouter von Nedap unterstützen willst, kannst du dich gern hier bedienen: https://github.com/trebb/p-rout. Die Powerrouter schicken ihre Daten an einen Server des Herstellers, und in diesem Projekt werden sie abgefangen und in einer PostgreSQL-Datenbank gespeichert.


    Ich würde ggf. auch zum Testen mit dem Powerrouter zur Verfügung stehen (auf Raspberry Pi, Cubieboard 2, oder virtueller Maschine).

  • EgOPhil was willst du denn überhaupt wirklich erreichen?
    Geht ganz schön drunter und drüber was du da schreibst,
    Mit deinen ganzen technischen Begriffen kann vll. hier max. 1% was anfangen.


    Module runterkühlen - naja ...

  • Gutes Projekt .. kommt mir bekannt vor :)


    Zitat von EgOPhil


    Ein paar Worte zum System selber, falls es Leute gibt die sich hierfür interessieren. Der kleine Blaue Kasten auf Bild 1 ist nichts weiter als ein raspberry pi mit einem 7 Zoll Touchdisplay. Kosten belaufen sich auf 35 Euro für den Pi + 10
    Euro für die speicherkarte + 50 Euro für das Display. Es gibt auch größere Displays, 12Zoll zum Beispiel.


    Konstruktive Kritik, nicht in den falschen Hals bekommen.:) ,Wozu ein so großes stromfressendes Display wenn du eine Netzwerkschnittstelle hast? .. Fürs Basisgerät reicht ein 2 oder 4 zeiliges Stromsparendes Minidisplay für den Grundstatus, am besten alles über einen A Mega und extern loggen .. dann ist der lokale Stromverbrauch im kleinen mA Bereich.


    Ich seh das jetzt nicht wirklich als universellen Datenlogger wenn du das nur auf Victron beziehst ? Messwerte und Steuerung wären am besten über externe Hallsensoren zu erfassen und die Steuerung dann über Ausgangsrelais BZW Lastfets.. sonst kannst immer nur Geräte in Kombination verwenden die genau zusammen passen oder die sich Steuerung lassen ..


    Ich würde auch weggehen als Steuereinheit ein ganzes Betriebsystem als Basis zu verwenden, wenns wirklich mehr als ein Datenlogger werden soll.. sobald das zuverlässige Steuerungen würd ich auf reine HW mit C greifen .. Hab das zwar schon öfter im industriellen maschienenbereich gesehen .. allerdings nicht für Hardwaresteuerungen die permanent fehlersicher laufen..sollen


    Bezüglich Munin .. kenn ich vom Rechenzentrum, dafür ist eigentlich ja gedacht .. Grafisch finde ich aber gibt es aber wirklich besseres siehe Highcharts


    den Namen VicCom würde ich ändern den die Bezeichnung wird bereits verwendet
    http://www.viccom.org.nz

    Wohnhaus 100% OFFGRIDInsel: 13,47kwp,5xMppt,BMV700,CCGX,2xMultiplus 5000, OPzS/PzS => 4150Ah/c100/48V
    TeichInsel: 930wp, 2xVictron Mppt 100/15, BMV600, SolarixPI 1100, 400Ah/OPzS 24V

    100% PVInsel Liveview | SDM630 Logger | INSEL WIKI

    "Denn auch eine Beziehung muss wie eine Insel sein. Man muss sie nehmen, wie sie ist, in ihrer Begrenzung - eine Insel, umgeben von der wechselvollen Unbeständigkeit des Meeres, immer während vom Steigen und Fallen der Gezeiten berührt." Anne Lindbergh

  • Zitat von trebb


    Hallo trebb,


    okay auf das Angebot komme ich gerne zurück. Ich muss noch das Mk2 Protokoll implementieren, dann ist erstmal eine Sache abgeschlossen. Bin nur nächste Woche auf Dienstreise, also werden sicherlich paar Wochen noch ins Land gehen, bis ich mit Allem fertig bin.
    Der Weilen kannst du vielleicht prüfen, welche Schnittstellen das NeDap verfügt. So wie ich es verstanden habe besitzt es eine Ethernetschnittstelle ist ggf. RS232, Modbus, Can oder TTL verfügbar. Wenn ja rückt Nedap die Protokolle hierfür heraus.
    Vielleicht kannst du das herausfinden und zusammenfassen.


    Besten Dank,


    Philipp

  • Zitat von Murray

    EgOPhil was willst du denn überhaupt wirklich erreichen?
    Geht ganz schön drunter und drüber was du da schreibst,
    Mit deinen ganzen technischen Begriffen kann vll. hier max. 1% was anfangen.
    Module runterkühlen - naja ...


    Hi Murray,


    sorry der Text erscheint mir im Nachhinein auch konfus. Aber dieser sollte zeigen, was möglich ist und beschreiben wo es hingehen kann(Ideensammlung, Spinnerei). Zurück zu deiner Frage. Momentan suche ich Leute, die in ihrer Freizeit gewillt sind die Protokolle zu implementieren. Ziel ist es, dass das C Programm die Daten aus den PV-Systemen extrahiert und somit die Weiterverarbeitung der Daten ermöglicht(Bsp.: Daten in einer Datenbank speichern, oder Präsentation der Daten).
    Habe ich die Daten von meinem PV-System, kann ich mir überlegen was ich damit machen möchte. Sozusagen befinden wir uns softwaretechnisch auf der Schnittstellenebene zur Hardware.
    Wie du dir die Daten darstellst ist Abhängig von deinen Anforderungen. Beispielsweise reicht dir ein System das die Webseiten zur Verfügung stellt, damit du mit deinen Tablet die Daten betrachten kannst, oder wählst du eine Systemlösung wie ich sie zum Teil präsentiert habe.


    Wenn dich Fachbegriffe irritieren oder unklar sind lass es mich wissen. Ich versuche diese dann zu erklären.
    Grüße
    Phil

  • Zitat von pezibaer

    Gutes Projekt .. kommt mir bekannt vor :)


    Konstruktive Kritik, nicht in den falschen Hals bekommen.:) ,Wozu ein so großes stromfressendes Display wenn du eine Netzwerkschnittstelle hast? .. Fürs Basisgerät reicht ein 2 oder 4 zeiliges Stromsparendes Minidisplay für den Grundstatus, am besten alles über einen A Mega und extern loggen .. dann ist der lokale Stromverbrauch im kleinen mA Bereich.


    Das hängt damit zusammen, das mein System anderen Anforderungen unterliegt, dass mit der von dir beschriebenen Variante so noch nicht umsetzbar wäre. Das mit dem Mikrocontroller habe ich im Text erwähnt. Für einen reinen Datenlogger ist ATmega völlig ausreichend. Problem was ich derzeitig sehe, ein Mikrokontroller ist schwieriger in der Entwicklung zu handhaben. Da sollten die Protokolle getestet sein und das testing willst du nicht mit dem Mikrocontroller im ISP Debug mode erledigen geschweige denn mit einem Logic Analayzer. Daher ist ein PI zum testen Anschaffungspreis und Portabilität weitaus bequemer.
    Auch stellt sich die Frage, wie vermittelt man den Leuten das Wissen, damit sie das nachbauen können. Ist nach meiner Meinung sehr wichtig. Von daher Mikrocontroller ja aber man sollte sich im klaren sein, dass es dokumentationslastig und einiges an technischen Verständnis erfordert.


    Zitat von pezibaer


    Ich seh das jetzt nicht wirklich als universellen Datenlogger wenn du das nur auf Victron beziehst ? Messwerte und Steuerung wären am besten über externe Hallsensoren zu erfassen und die Steuerung dann über Ausgangsrelais BZW Lastfets.. sonst kannst immer nur Geräte in Kombination verwenden die genau zusammen passen oder die sich Steuerung lassen ..


    Universell wird es dann, wenn die Protokolle von verschiedenen Herstellern implementiert sind. Denke aber das du eine andere Vorstellung von universell hast, bei mir bezog sich das wording auf ein Programm, dass mit verschiedenen PV-Systemen umgehen kann.
    Viele suchen zu ihren Systemen Datenlogger die von den Wechselrichtern die Daten auslesen können. Jedoch sind diese Systeme recht teuer und selten frei in ihrer Gestaltung. Meine Idee ist es ein Opensource Projekt zu starten das diesen Missstand beseitigt.



    Zitat von pezibaer


    Ich würde auch weggehen als Steuereinheit ein ganzes Betriebsystem als Basis zu verwenden, wenns wirklich mehr als ein Datenlogger werden soll.. sobald das zuverlässige Steuerungen würd ich auf reine HW mit C greifen .. Hab das zwar schon öfter im industriellen maschienenbereich gesehen .. allerdings nicht für Hardwaresteuerungen die permanent fehlersicher laufen..sollen


    Hier hast du mich verloren, ich weiß nicht worauf du hinaus willst. Failsafe geht schon mal gar nicht, es kann lediglich das Risiko minimiert werden oder die Robustheit wird erhöhen, durch Parallelität von Systemen. Ist halt eine Frage der gesetzten Anforderungen. Aber du bist frei in deinen Entscheidungen, vielleicht kanns du deine Gedanken bzw Vorstellungen beschreiben, gegebenfalls kann man dies berücksichtigen


    Zitat von pezibaer


    Bezüglich Munin .. kenn ich vom Rechenzentrum, dafür ist eigentlich ja gedacht .. Grafisch finde ich aber gibt es aber wirklich besseres siehe Highcharts


    Wie gesagt, es gibt verschiedene Lösungen zur Präsentation von Daten, wenn man sie erstmal hat. Munin kannst du aber über die Templates anpassen. Wenn dir die Grafiken von Highcharts besser gefallen ist das gut und bringt Variation in das Projekt. Aber dann wäre es auch gut sich zu überlegen, wie die Schnittstellen vom jetzigen C Programm aussehen muss, damit du die Daten mit Highcharts verarbeiten kannst. Der nächste Schritt wäre zu beschreiben, wie man ein solches System aufbaut damit man es für sein PV-System nutzen kann. Sprich, Hey Leute ich habe auf Basis vom C -Programm(derzeitig VicCom) ein Datenloggersystem aufgebaut. Das C Programm Fragt meine PV-Komponenten ab wobei ich die Daten mit den Tool XY darstelle. Dazu benötigt ihr folgende zusätzliche Software die ihr so und so einrichten müsst damit ihr ein Datenlogger System aufbauen könnt.


    Wenn man das Frontend vom Backend strickt trennt, kann man ein universelles System zum Loggen, Präsentation und Steuern aufbauen.


    VicCom-momentan ist mir nix besseres eingefallen, aber Vorschläge sind willkommen. Wie wäre es mit "PV-Communicator"


    Grüße
    Phil

  • Hallo


    Ich will Dich in Deinem Elan nicht bremsen, aber solche Ansätze für noch einen Datenlogger hat es in verschiedenen Ausprägungen immer wieder mal gegeben.
    Warum zu Beispiel konzipierst Du Dein WR-Kommunikationsmodul nicht als Komponente für den Volkszaehler? Das ist bereits ein Datenlogger, der regelmäßig gepflegt wird und wo es einen schnellen und immer hilfreichen Support gibt.
    Für die Hausautomatisierung kann man dann FHEM verwenden, das läuft separat, ist extrem flexibel und man kann es auch ohne Volkszähler-Anbindung direkt als Logger für WR-Daten verwenden.


    Gruß
    s-s

  • Zitat von EgOPhil


    Viele suchen zu ihren Systemen Datenlogger die von den Wechselrichtern die Daten auslesen können. Jedoch sind diese Systeme recht teuer und selten frei in ihrer Gestaltung. Meine Idee ist es ein Opensource Projekt zu starten das diesen Missstand beseitigt.


    Hallo,
    zuersteinmal Glückwunsch und Respekt für Deine Entwicklung. Das blaue Kästchen an der Wand sieht Klasse aus.


    Das "recht teuer" würde ich relativ sehen. Die Verkaufspreise kommen ja nicht von ungefähr, sondern es steckt neben der Hard- und Software eine Menge Support in diesen Systemen.


    Spätestens wenn Du tagtäglich 10 bis 20 Emails erhälst, die neben Familie und Beruf in der Freizeit beantwortet werden wollen, wirst du verstehen was ich meine. Kostenlos ist eben nicht kostenlos. Jemand muss für den Support bezahlen. Wenn es die Anwender nicht tun, dann werden es der/die Entwickler und ehrenamtliche Supporter mit ihrer Freizeit bezahlen. Dessen solltest du Dir bewusst sein. Schau Dir das VZ-Projekt an. Dort gibt es einige ehrenamtliche Helfer, die seit Jahren das Projekt am Laufen halten und den Benutzern täglich helfen. Von daher finde ich Soli-Solas Idee überdenkenswert.

  • Zitat von Soli-Sola

    Hallo


    Ich will Dich in Deinem Elan nicht bremsen, aber solche Ansätze für noch einen Datenlogger hat es in verschiedenen Ausprägungen immer wieder mal gegeben.
    Warum zu Beispiel konzipierst Du Dein WR-Kommunikationsmodul nicht als Komponente für den Volkszaehler? Das ist bereits ein Datenlogger, der regelmäßig gepflegt wird und wo es einen schnellen und immer hilfreichen Support gibt.
    Für die Hausautomatisierung kann man dann FHEM verwenden, das läuft separat, ist extrem flexibel und man kann es auch ohne Volkszähler-Anbindung direkt als Logger für WR-Daten verwenden.


    Gruß
    s-s


    Hi genau um solche informationen geht es. Das mit dem Volkszähler scheint eine gute Idee zu sein. Es bleibt aber weiterhin offen, dass es eine unzahl an Herstellern von PV-Systemen gibt. Daher sind Leute gefragt, die gewillt sind die Protokolle zu implementieren. Ich möchte lediglich die untererste Schicht bereit stellen und das ist die Extraktion der Daten aus den PV-Systemen. Wie die Daten aufbereitet werden, zum Beispiel vom Volkszähler, ist mir egal. Ich werde hierzu den Entwicklern eine Mail schreiben und was sie davon halten eine Erweiterung zur erhalten, um Daten, beispielsweise von Wechselrichtern, zu extrahieren.Der Volkszähler ist ja primär ein Smartmeter Projekt von daher kann ich das vorerst nicht beantworten, ob eine Anbindung gewollt ist. Bisher kann ich nur mit einer Victronerweiterung dienen aber ich denke SMA, Nedap usw. sind auch weit verbreitet und daher von Interesse.


    Wie ihr die Daten speichert und darstellt wäre nach meiner Vorstellung am besten Software/Projekt -unabhängig. Denn vielleicht gibt es Leute die den Volkszähler nicht mögen und eine andere Darstellung ihrer Daten und deren Speicherung sich vorstellen.


    so long,
    Phil