Live EHZ SML Datenauswertung mit MS-Excel

  • Mit diesem Beitrag stelle ich eine komplette Hardware- und Software-Lösung bereit, mit der man sich dem Thema EHZ-SML-Datenlogging nähern und besseres Verständnis gewinnen kann.


    Ich hatte bereits vor 2 Jahren einen Beitrag geposted,in dem ich beschrieben habe, wie man einfach einen EHZ „auslesen“ und die via SML übertragenen Daten auswerten kann. Hier nochmal der Link:
    http://www.photovoltaikforum.c…-ehz-auslesen-t57405.html


    Das Thema hat sich inzwischen stark weiterentwickelt und insbesondere die Leute von Volkszähler haben zahlreiche Ideen aufgenommen und erfolgreich umgesetzt.


    Es gibt aber leider auch viele eher verwirrende Beiträge und Ideen auf den verschiedensten Seiten. Ich hoffe, dass ich mein Thema einigermaßen verständlich darstellen kann. Ich freue mich aber über jeden Kommentar und Kritik.


    Zurück zum Thema. Zunächst stellt sich immer die Frage: Wie komme ich an die Daten. In dem oben erwähnten Thread habe ich bereits eine Lösung skizziert, wie man Daten von einem EHZ in den PC einlesen kann. Und zwar über eine Standard RS232 (serielle) Schnittstelle. Ich habe im Netzt zahlreiche Schaltungen gefunden, die wahrscheinlich alle Ihre Berechtigung haben. Meiner Meinung nach und speziell für mich sind diese Ideen alle unnötig kompliziert. Ich verfolge nach wie vor eher das KISS Prinzip. Für meinen „Lesekopf“ (das Wort ist fast ein wenig zu hochtrabend) verwende ich einen Fototransistor in Emitterfolgerschaltung (Kollektorschaltung). Der Bauteilepreis liegt bei 25Cent für einen kompletten Lesekopf und der Aufbau dauert ungefähr 5 Minuten.


    Beim letzten Ansatz habe ich einen TEKT5400S verwendet. Leider konnte ich den bei Pollin nicht mehr kaufen. Ich habe daraufhin eine Versuchsreihe gestartet und mir verschiedene Fototransistoren gekauft (Reichelt/Pollin) . Diese habe ich zunächst nach den Datenblattparametern verglichen und bewertet. Anschließend habe ich alle Fototransistoren in einem Versuchsaufbau unter gleichen Rahmenbedingungen vermessen. Der Sieger war der Temic K135P von Pollin, der auch der günstigste war. Verlierer war der SFH309FA, der die geringste Empfindlichkeit aufwies. (Interessanterweise haben die Leute von Volkszähler.org diesen verwendet).


    Die Spannungsversorgung hole ich mir direkt aus der seriellen Schnittstelle via DTR und RTS. Diese habe ich über Dioden entkoppelt. Zum Stützen der Spannung setze ich einen kleinen Elko ein.


    Zum Test habe ich außerdem eine 100m lange Leitung zwischen PC und Messkopf verwendet. Damit sinkt zwar die Flankensteilheit um 5µs und die Spannung um 0,2 Volt, das hat jedoch keinerlei Auswirkung auf die benötigte Signalqualität.


    Ich habe alles mit einem Oszilloskop gemessen Bilder vom Aufbau gemacht. Die Ergebnisse habe ich in einer Excel Tabelle zusammengefasst (Siehe Link am Ende). Die gesamte Anordnung habe ich gefilmt und auf YouTube hochgeladen:


    http://youtu.be/J8mep2_8YU4


    Für die Auswertung der Daten habe ich eine Excel VBA Applikation geschrieben. Diese ist das Kernstück der Anwendung und erlaubt, Daten zu erfassen, auszuwerten und zu speichern. Als Datenquellen können bis zu 4 serielle Schnittstellen verwendet werden. Diese werden live bearbeitet. Es ist auch möglich CSV oder Binärdateien zu lesen, die z.B. mit HTerm aufgezeichnet wurden. Es sind auch 2 Demodatensätze hinterlegt, mit denen man die Funktionsweise des Programms besser verstehen kann.


    Die Daten können roh in Textdateien, oder ausgewertet direkt in Excel oder einer verbundenen MS Access Datei gespeichert werden. Inkludiert ist außerdem eine Debugging Ausgabe, mit der man bei der Dekodierung der SML Daten live zuschauen kann.


    Auswertungsbeispiele für eine Konstellation Hager-2-Richtungszähler und Hager Lieferzähler sind enthalten.
    Eine wichtige Bemerkung: Aufgrund der Implementation In Excel und auf einem PC kann die Applikation natürlich keine „Dauer-Online“ Lösung sein. Dafür ist der Stromverbrauch des PCs/Laptops zu hoch. Um sich dem Thema zu nähern oder für kürzere Perioden den Zähler auszulesen, hat man hier aber eine sehr komfortable Lösung.


    Diese Lösung ist allen anderen Angeboten zum Thema auf dem Markt mindestens ebenbürtig, da die Daten in einer offenen Konfiguration gespeichert werden und dann mit einfachen Mitteln nach Belieben selbst weiterverarbeitet werden. So kann beispielsweise sehr einfach eine Web-Lösung nachgerüstet werden.


    Für Fragen stehe ich jederzeit gerne zur Verfügung


    Viel Spass!


    Armin



    Dateien:
    Excel: http://www.montigny.info/smlExcel.zip
    Access Leer: http://www.montigny.info/smlEmpty.zip
    Access mit Daten: http://www.montigny.info/smlAccessDatabaseWithData.zip
    Transistortest: http://www.montigny.info/UntersuchungFototransistoren.pdf

  • Hallo orfix,


    die einfache Antwort ist: zu hoch (mit dem Laptop 30W-40W).


    Wie ich bereits in meinem Beitrag im zweitletzten Abschnitt angemerkt habe, stimme ich Dir zu und halte die Anwendung aufgrund des Stromverbrauch für einen Dauerbetrieb für ungeeignet. Leider.


    Aber insbesondere für Testzwecke (siehe Live Debug Parsing Output) oder mal etwas für ein paar Tage aufzuzeichnen ist es durchaus OK.


    Das interessante ist meiner Meinung nach eher die Implementation als echter byte by byte Parser. Wenn ich z.B Freesol richtig verstehe, wird dort eher pattern matching auf gepufferten Daten angewandt. Das halte ich persönlich für nicht so geeignet.


    Für mich ist die Anwendung ausreichend. Wenn ich meinen PC sowieso anmache, dann mache ich auch den Logger an. Dann ist es eh egal wie viel Strom ich verbrauche.


    Nur mal so am Rande. Ich schalte auch den Router aus, wenn der PC aus ist. Deshalb kommt eine online Speicherung für mich sowieso nicht infrage. Es ist also alles eher ein Frage der Anforderung. . . . .


    Es gibt wie immer kein schwarz und weiß. There are always different "shades of grey" :D


    Viele Grüße


    Armin

  • Hallo,


    kleiner Nachtrag. Ich habe meinen Laptop mal 1 Woche durchlaufen lassen und ein Stromkostenmeßgerät drangehängt. Die Prognose ist 55Euro pro Jahr. (Problem 24/7 Betrieb der Platten)


    Wenn man die Kosten für einen profeesionellen Logger danebenstellt..... Mmmh


    Wenn man sowieso einen Server laufen hat, dann ist der Excel/Access Logger quasi kostenlos. Und ein Server PC kann mehr als alle anderen Logger.


    Ach und dann noch. Muss man wirklich alles loggen und direkt ins Netz stellen?


    Das Messen der Werte ist eher für die zeitliche Stromverbrauchsoptimierung von zeitunabhängigen Verbrauchern wichtig. Und Waschmaschiene oder Spulmaschiene schalten? Ich weiß nicht. Also meine Frau guckt einfach am Fenster raus (auch ohne Logger) und schaltet dann die Waschmaschiene an. Das macht sie besser als jeder Homemanager. 8)


    Für mich sind Dinger wie der RPI super. 40Tacken bei Pollin und selbst erweiterbar. PDog ist ein echt supergeiles Gerät, aber für mich persönlich zu teuer. Aber jeder hat seinen persönlichen Anwendungsfall.


    Heute scheint die Sonne.


    Armin

  • Hallo Armin63,


    kannst du mir mal kurz erklären wie ich dein Excel Prog. zum laufen bring. Meine SML Daten bekomme ich mit Hterm rein, wenn ich aber das Excelprog. laufen lasse, bekomme ich irgendwie nichts angezeigt.


    Und noch was hat jemand das SML-Protokoll von Hager ehz ganz entschlüsselt. Ich finde immer nur teile davon. Mich würde z.B. aus die momentane Leistung, bzw. Leistung auf L1,L2,L3 interessieren.


    Grüße Eddy

  • Hallo Eddy,


    zunächst musst Du wissen auf welcher seriellen Schnittstelle die Daten reinkommen.


    Hterm schliessen. Excel starten. Makros müssen aktiviert sein. Dann das Arbeitsblatt "Main" auswählen und dort den Buttom "Start" anclicken. Als "Data source" musst Du dann "Com Port" wählen. Im Fenster "Available Com Ports" sollten die Com Ports stehen, die dein Computer anbietet. Du wählst dann den aktiven (Deinen) Com Port aus und clickst den "Pfeil nach rechts". Dann wandert der Com Port ins rechte Fenster.


    Damit das Programm jungfräulich wird wählst Du dann "Delete Output Worksheets".


    Repetitions auf 0 setzen (unendlich). Log period auf 2 setzen (alle 2 Sekunden).


    Dann Start drücken.


    Die Rohdaten kommen dann in die ValOutput Worksheets rein.


    Anhand des OBJ Namen musst Du die entsprechenden Werte per Excelfunktionen raussuchen lassen. In den Worksheets "Evaluation", "Hager Evaluation" und "DiagramEval" findest Du Beispiele für einee Hager Konfirguration mit 2 Zählern.


    Du kannst noch "Debugging" anmachen, dann siehst Du, wie die Bytes reinkommen und verarbeitet werden.


    Bei weiteren Fragen bitte melden.


    Gruß


    Armin

  • Hallo Armin63,


    mit der Einstellung "Debugging Ein" bekomme ich die Daten auch rein, im Worksheets "Evaluation" wird aber mit deinen Einstellungen nichts angezeigt, d.h. ich muß den OBISnamen (grüne Felder) nach meinem Protokoll anpassen, obwohl es ein hager Zähler ist?
    Gibt es da unterschiedliche OBIS Kennzeichen bei Hager?
    z.B. hab ich als "ProductionPower" keine Zeichenfolge 01 00 01 07 01 ff.
    Hast du eine konkrete Aufschlüsselung der SML von Hager?


    Gruß Eddy

  • Hallo Eddy,


    ich habe leider keine Aufschlüsselung der Hager OBIS Kennzahlen.


    Aber richtig, Du musst in den grünen Feldern die entsprechenden Kennzifferstrings einfügen.


    Das Programm ist ja vollkommen universell gehalten und funktioniuert für alle Zähler. Es parsed SML Daten und stellt das Ergebnis dar. Es weiß jedoch erstmal nix über OBIS Kennziffern. Die muss man selbst eintragen.


    Ich hoffe, das hilft.


    Gruß


    Armin


  • Hallo Armin,


    ich habe den VBA-Code der Exceldatei von 32bit auf 64bit geändert.
    nun bleibe ich an folgender Zeile im Modul "AA_Global" hängen:


    Public acs_MSAccessDatabase As DAO.Database


    Meldung:
    Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden.


    Weißt Du ob ich da noch ein addon installieren muss?


    Kenne mich mit den Datenbank - Aufrufen nicht so aus.


    Danke und Grüße