meintechblog.de
7Aug/175

LoxBerry – Smart Meter mit IR-Lesekopf in Loxone integrieren und Stromverbrauch visualisieren

Die erste Anwendung meines frisch gebackenen LoxBerry-Systems (Anleitung zur Ersteinrichtung) ist die Integration des Stromzählers Landis & Gyre E350 in Loxone, welcher bei mir kürzlich durch die örtlichen Stadtwerke installiert wurde. Per IR-Lesekopf werden dabei sowohl derzeitige Leistung als auch Zählerstand mit dem Plugin "SmartMeter" per D0-Protokoll ausgelesen und per UDP-Nachricht an Loxone weitergereicht. Dort werden die Daten dann jeweils per "virtuellem UDP-Eingangsbefehl" entgegengenommen und schließlich über den "Verbrauchszähler"-Baustein ausgewertet und visualisiert.

Wie das im Detail funktioniert und was ich mit den Verbrauchsdaten in Zukunft anfangen möchte, ist Inhalt des nachfolgenden Blogpost.

Stromzähler mit IR-Schnittstelle

Für den hier vorgestellten Anwendungsfall wird ein Stromzähler vorausgesetzt, welcher eine IR-Schnittstelle besitzt, welche per D0- bzw. SML-Protokoll auslesbar ist - im besten Fall natürlich ohne Verschlüsselung (AES), da es sonst schwieriger wird. In meinem Fall ist das der Landis & Gyre E350 EDL21, der per D0 angesprochen werden kann. Hier muss man also etwas Glück haben, welchen Zähler die ortsansässigen Stadtwerke einsetzen. Viele "elektronische Zähler der Netzbetreiber" sind auf volkzaehler.org aufgelistet, darunter auch der E350.

Im hier genutzten SmartMeter-Plugin für LoxBerry gibt es aktuell folgende vordefinierte Profile für Stromzähler:

  • Iskra MT173 (D0-Protokoll)
  • Iskra MT173 (SML-Protokoll)
  • Iskra MT174 (D0-Protokoll)
  • Iskra MT174 (SML-Prokotoll)
  • Iskra MT175 (D0-Protokoll)
  • Iskra MT175 (SML-Protokoll)
  • Iskra MT681 (SML-Protokoll)
  • Landis & Gyre E320 (D0-Protokoll)
  • Landis & Gyre E350 (D0-Protokoll) <- mein Modell
  • Pafal 20ec3gr (D0-Protokoll)
  • Siemens TD-3511 (D0-Protokoll)

Vermutlich werden in Zukunft weitere folgen. Wer sich zum aktuellen Stand informieren und/oder direkt mit dem Plugin-Autor Michael Schlenstedt Kontakt aufnehmen möchte, kann das in diesem LoxForum-Thread tun.

Kompatibler IR-Lesekopf

Zum Auslesen des Stromzählers wird neben der Software ein kompatibler IR-Lesekopf benötigt. Das Plugin unterstützt dabei "volkszaehler"-kompatible Varianten. Wie ich es verstanden habe, lässt sich ein passender USB-Lesekopf per E-Mail auf wiki.volkszaehler.org IR-Schreib-Lesekopf bestellen. Ich habe mir aber stattdessen den Weidmann Stromzähler, Smart Meter IR (Infrarot) Schreib / Lesekopf USB (Affiliate-Link) geholt, welcher sofort lieferbar war.

Affiliate-Link

Er wird direkt mit einem USB-Kabel geliefert, um den Lesekopf an den RaspberryPi anschließen zu können.

Lustiges Detail: Das Gehäuse des Lesekopfes scheint per 3D-Drucker gefertigt worden zu sein, jedenfalls lässt die Struktur des Plastik das vermuten.

So sieht er von der anderen Seite aus.

Den IR-Leser hält man dann einfach an die passende Stelle am Stromzählers, wo er von einem Magneten direkt fixiert wird. Lediglich eine Feinjustierung ist jetzt noch notwendig, damit Lese- und Schreibköpfe direkt übereinander liegen und miteinander "sprechen" können. Das USB-Kabel sollte man etwas weiter unten nochmal am Stromzähler fixieren, damit der Leser später nicht verrutscht. So sieht es dann im fertigen Zustand aus.

Das USB-Kabel wurde dann per Leerrohr bis zum RaspberryPi im Schaltschrank geleitet, damit es nicht in direktem Kontakt mit stromführenden Leitungen kommen kann. An dieser Stelle wieder einmal der Hinweis, dass solche Arbeiten lebensgefährlich sein können und nur von Fachpersonal (Elektriker) ausgeführt werden dürfen. Für alle anderen: Finger weg und Hilfe vom Profi holen, der das Ganze installiert.

LoxBerry SmartMeter Plugin installieren

Die Installation von Plugins läuft in LoxBerry immer nach dem selben Schema ab, wie es nachfolgend am Beispiel von SmartMeter erklärt wird.

Im LoxBerry-Hauptmenü wird der Reiter "Plugin Verwaltung" aufgerufen.

Jetzt muss die passende SmartMeter-Installationsdatei manuell hochgeladen werden. Alle Plugins sind dabei im offiziellen Plugin-Verzeichnis zu finden.

Das SmartMeter-Plugin habe ich jedoch aus dem Loxforum geladen, da die dortige Version (Direktdownload) bereits das passende Profil "Landis & Gyre E320 (D0-Protokoll)" für meinen Stromzähler hatte. Anmerkung: Ich habe zwar den E350, das Profil für den E320 funktioniert aber auch ohne erkennbare Defizite.

Update vom 08.08.2017: Pluginautor Michael hat meinem Blogpost direkt zum Anlass genommen sein Plugin auf Version 0.3 anzuheben. Jetzt hat auch der E350-Zähler sein eigenes Profil erhalten. Vielen Dank!

Das als zip-Archiv heruntergeladene Plugin wird dann unter "Datei auswählen" vom Rechner gewählt (zip-Datei nicht entpacken!). Mit einem Klick auf "Installieren" startet der Installationsprozess.

Im sich jetzt öffnenden Log kann man die Installationsschritte überwachen. Nach spätestens einer Minute sollte der Prozess mit der Mitteilung "Installation erfolgreich abgeschlossen" auch schon beendet sein.

Jetzt auf "Weiter" klicken. Nach der Installation oder einem Upgrade ist generell ein Reboot angesagt, also das System jetzt erstmal neustarten.

Nach dem Reboot lässt sich das eben installierte Plugin im Hauptmenü finden.

Ein Klick auf das Icon und die Konfigurationsseite wird geladen.

SmartMeter Plugin einrichten

Hier klickt man auf den Button "Nach I/R Leseköpfen suchen" (1). Der bereits per USB am RaspberryPi angeschlossene Lesekopf "A506KKWI" sollte daraufhin direkt in das Feld "Beschreibung" eingetragen werden.

Der Eintrag "Daten per UDP senden" (2)" wird auf "An" geschaltet, damit die ausgelesenen Daten auch an Loxone übertragen werden. Wer keinen guten Grund dafür hat, lässt den Port einfach auf 7000, da bei der Auswahl von abweichenden Ports manchmal Probleme bei der Übertragung auftreten können (Loxone blockt anscheinend sogar nach Lust und Laune manche Ports).

Der Eintrag "Zähler automatisch abfragen" bleibt erstmal deaktiviert. Er kann später aktiv gesetzt werden, sobald beim gleich anschließenden Test alles ohne Problem durchläuft.

Unter "Zähler" (3) habe ich dann den für mich passenden "Landis & Gyre E320 (D0-Protocol)" ausgewählt.

Zum Schluss wird die Konfiguration noch mit "Speichern" (4) dauerhaft ins System gesichert.

Jetzt wird es spannend. Nachdem die Plugin-Seite wieder geladen ist, lässt sich per Button "Zähler manuell abfragen" ein erster Auslesevorgang starten. Nach einigen Sekunden sollte sich das Logfile füllen.

Aus dem angezeigten Text müssen jetzt die relevanten Passagen ermittelt werden.

In meinem Fall ist das zum einen der Eintrag zum Auslesen der bisher verbrauchten 1332,186 kWh: A506WWI:Consumption_Total_OBIS_1.8.0:001332.186;

Zum anderen ist das der Eintrag, welcher die aktuelle Leisten (hier von 0,7364 kW bzw. 736 W) ausgibt: "A506KKWI:Consumption_CalculatedPower_OBIS_1.99.0:0,7364;"

Diese beiden Strings jetzt in einem Textdokument zwischenspeichern, da sie später jeweils als "UDP-Befehlskennung" benötigt werden, um die Werte korrekt in Loxone entgegennehmen zu können. Details dazu gleich.

Hat das alles geklappt, wird im Plugin noch der Eintrag "Zähler automatisch abfragen" auf "Ein" geschaltet. Als Intervall habe ich jetzt einfach mal aus Testzwecken den geringsten Wert von 1 Minute gewählt. Vermutlich reicht künftig aber auch ein Wert von 5 oder 10. Da bin ich mir noch nicht wirklich sicher, was am besten bzw. praktikabelsten ist.

Einbindung in Loxone

Das Vorgehen bei der Entgegennahme von UDP-Nachrichten ist in Loxone vom Aufbau her immer gleich. Leseratten können sich alle Details dazu auch in der Loxone-Dokumentation - Kommunikation mit UDP reinziehen. Weitere Informationen sind auch im Loxwiki - UDP Eingang definieren zu finden.

In der Loxone Config wird erstmal ein "Virtueller UDP Eingang" definiert. In meinem Fall trägt der Eintrag die "Bezeichnung" "Loxberry". Als "UDP Empfangsport" ist schon standardmäßig "7000" eingetragen, was eben mit dem Eintrag aus dem SmartMeter-Plugin übereinstimmen muss.

Jetzt wird der "Loxberry"-Eintrag selektiert (1) und erstmal der "UDP Monitor" (2) geöffnet. Im Fenster unten sollten jetzt im Minutentakt neue UDP-Nachrichten vom gerade installierten LoxBerry-Plugin eintrudeln, sofern eine automatische Abfrage des Zählers eingestellt ist. Im Text sollten sich jetzt auch die bereits oben ermittelten Texteinträge für den Gesamtverbrauch (3) und die aktuelle Leistung wiederfinden.

Für jeden dieser Werte muss jetzt ein "Virtueller UDP Eingang Befehl" (4) definiert werden. Die "Befehlskennung" sieht für den Gesamtverbrauch ("Stromzähler kWh") so aus:

\iA506KKWI:Consumption_Total_OBIS_1.8.0:\i\v

In der Nachricht wird also erstmal der String A506KKWI:Consumption_Total_OBIS_1.8.0: (der vorher ermittelte) gesucht. Da der übermittelte String keine Leerzeichen enthält, muss diesem Eintrag noch ein \i vor- und nachgestellt werden, damit die Logik diesen Textteil auch tatsächlich findet. Das \v am Ende bedeutet, dass der übertragene Wert als Variable gelesen werden soll. Dieser Wert wird dann vom "Virtuellen UDP Eingangsbefehl" angezeigt und kann in Loxone später "weiterverarbeitet" werden.

Der zweite Wert für die aktuelle Leistung wird analog dazu definiert. Die "Befehlskennung" sieht für die aktuelle Leistung ("Stromzähler W") so aus:

\iA506KKWI:Consumption_CalculatedPower_OBIS_1.99.0:\i\v

Diese Befehlskennung kann natürlich je nach verwendetem Stromzähler und dessen durch die Stadtwerke vorgenommene Konfiguration abweichen.

Wie man an obigem Screenshot erkennen kann, habe ich die UDP-Eingangsbefehle an einen "Verbrauchszähler"-Baustein angeschlossen. "Stromzähler kWh" an den Input "E", wobei der Input "A: Absolutwert" im Baustein aktiviert werden muss, da die eingehenden Werte sonst addiert werden würden. "Stromzähler W" kommt an den Input "P", um die aktuelle Leistung an den Baustein zu übergeben.

Wichtig ist dabei, dass der Wert von "Stromzähler W" vorher noch umformatiert werden muss. Der Zähler liefert nämlich die Einheit "Watt", der Verbrauchszähler erwartet aber "Kilowatt" (auch wenn er den Wert später in Watt anzeigen soll). Entsprechend wird die "Korrektur" in Loxone genutzt. "Eingangswert2" wird auf "1" gestellt und "Ausgangswert2" auf "1000".

Sobald die Konfiguration in den Miniserver übertragen ist, kann das Ergebnis direkt in der Visualisierung begutachtet werden.

In der Statistik lässt sich dann ganz gut erkennen, wieviel Strom in den vergangenen Tagen verbraucht wurde.

So bekommt man recht schnell einen Eindruck davon, wieviel Strom verbraucht wird. Der gestrige Samstag war mit knapp 22 kWh mit Abstand der "Killer-Tag", hier liefen Waschmaschine, Trockner und Spülmaschine mehrfach.

Aus meinem täglichen Leben

Die Einrichtung der UDP-Eingänge in Loxone war für mich bis auf die Eingabe der korrekten UDP-Befehlskennung mit der \i-Besonderheit nichts Neues. Nach einigen Minuten war dieses anfängliche Problemchen schon vom Tisch. Über die Einrichtung des SmartMeter-Plugins in LoxBerry gibt es darüber hinaus eigentlich nicht viel zu sagen. Wie von LoxBerry versprochen, war bis auf ein paar Klicks nichts weiter zu tun - kein Terminal-Hacking o.Ä. Super!

Die Kosten für die Hardware waren zudem überschaubar, ein RPI damt Zubehör (Details dazu im Artikel LoxBerry in 10 Minuten auf dem Raspberry Pi installieren - Die ultimative Erweiterung für dein Smart Home von Loxone) und der Weidmann IR-Leser (Affiliate-Link) selbst. Fertig. Zumal man den RPI auch noch für zig andere Gelegenheiten "missbrauchen" kann. Mehr dazu in folgenden Blogposts zum Thema LoxBerry.

Was fange ich jetzt mit den Leistungs- und Verbrauchsdaten an? Erstmal bin ich jedenfalls etwas schockiert, wieviel Strom so im normalen Betrieb "verheizt" wird. :)

So werde ich jetzt nach und nach erstmal alle Standyverbraucher vom Strom nehmen, sofern niemand Zuhause ist - Evtl. lässt sich das sogar auf einzelne Räume herunterbrechen, denn wieso sollte TV, AV-Receiver und Amazon Echo sinnlos Standy-Strom vernichten, wenn sich gerade eh niemand im Wohnzimmer aufhält. Die Anwesenheitserkennung über die Präsenzmelder in Kombination mit den Türkontakten klappt jedenfalls schon mal bestens, sodass ich diese Logik mitnutzen werde, um die entsprechenden Steckdosen (jede Steckdose im Haus ist ohnehin einzeln schaltbar) vom Strom zu trennen. Geräte wie das QNAP-NAS, welches eine Menge Strom verbraucht, wird jetzt auch mal - zumindest nachts - in den Standby geschaltet. Hier brauche ich auch noch eine Schnittstelle zu Loxone, um das zu automatisieren. Vielleicht ja eine Anregung für ein neues LoxBerry-Plugin...

Daneben gibt es noch jede Menge andere Geräte (z.B. Lüftungsanlage, Hauswasserwerk oder Zirkulationspumpe für Warmwasser), welche effizienter geregelt werden können - hängt ja auch eh bereits alles an Loxone. Wobei die Zirkulationspumpe (hängt direkt an einer schaltbaren Steckdose) jetzt schon einige Regeln besitzt. Sie ist zwischen 1 und 5 Uhr immer ausgeschaltet. In der übrigen Zeit springt sie dann nur für jeweils 10 Minuten an, sobald sich jemand in der Küche oder in den Bädern aufhält. Drei Minuten nach dem Einschaltzeitpunkt der Pumpe liefert jede Wasserarmatur direkt heisses Wasser. Bisher funktioniert das bestens. Mit Sicherheit jedenfalls besser als die Oldschool-Zeitschaltur, die unser Bauträger per Zwischenstecker installiert hatte. Und das im Jahr 2017.

Es geht also langsam aber sicher weiter an die Optimierung des Stromverbrauchs und da helfen die ausgelesenen Leistungs- und Verbrauchswerte sicherlich ein gutes Stück weiter, vorallem auch um die Auswirkungen einzelner Stromsparmaßnahmen beurteilen zu können. Die technischen Voraussetzungen sind dafür jetzt jedenfalls einmal gegeben und in Loxone wird schon mal alles brav mitgeloggt, sodass die Entwicklung objektiv beobachtet werden kann.

Und noch ein allgemeines Wort zum Stromverbrauch im Smart Home. Für viele Anbieter ist "Stromsparen" ein Verkaufsargument eines Smart Home. Meiner Meinung nach schon etwas absurd, wenn man sich nur mal kurz den Mehrverbrauch ansieht, der alleine von den notwendigen Steuerelementen und deren Netzteile erzeugt wird. Da muss man im Vergleich zu einem Dump Home schon viel automatisieren und optimieren, um das auch nur ansatzweise wieder reinzuholen. Deshalb ist dieses Verkaufsargument für mich mehr Schein als Sein, vielmehr geht es im Smart Home doch maßgeblich um die Steigerung des Wohnkomforts und der Sicherheit, zumindest meiner Meinung nach.

FHEM-Einsteiger? Unser E-Book hilft dir weiter. NEU: Teil 2 ist verfügbar!

Verpasse keine Inhalte mehr! Trag dich in unseren Newsletter ein und folge meintechblog auf Facebook oder Twitter.

Share Button
Jörg

Jörg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er veröffentlicht regelmäßig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos
Jörg
veröffentlicht unter: Howto, LoxBerry, Loxone Kommentar schreiben
Kommentare (5)
  1. Das ganze gibt's von loxone mit Funk(air) ich finde viel genauer ist ein sO Zähler. Verwende beides seit einen Jahr. Pv Überschuss wird mittels tyristersteller an einen heizstab gesendet. (Warmwasser)

    • Hi Mundl,
      das Loxone Zählerinterface IR Air habe ich mir natürlich auch überlegt. Wollte jedoch auf Funk verzichten.

      Und weshalb sollte das von dir angesprochene S0-Verfahren, welches nur Impulse liefert, besser sein als das hier vorgestellte D0-Verfahren, welches absolute Werte überträgt?

      Wenn der Miniserver mal nicht läuft (Neustart, Ausfall, Wartung, whatever), bekommt er keine in der Zwischenzeit eintrudelnden S0-Impulse mit und der Energiezähler zeigt falsche Gesamtwerte an. Das Problem hat man bei D0 nicht, da bei der Abfrage eben alle Werte komplett neu ausgelesen und übertragen werden. Sobald die Kommunikation nach einem Ausfall wieder steht, stimmen dann auch alle Werte sofort wieder.

      Grüße
      Jörg

      PS: Laut Loxwiki liefert der Loxone Zählerinterface IR Air absolute Werte. Ist es auch Impuls-kompatibel? Hab nicht so ganz verstanden, ob du die Loxone-Air-Lösung einsetzt oder nicht.

  2. Wie immer ein klasse Blogpost!
    Die Möglichkeit über das Mitschreiben und Visualisieren von Leistung und Verbrauch des Eigenheimes ist sehr interessant.
    Es würde mich freuen, wenn Du bei Gelegenheit mal über die tatsächliche Auswirkung deiner Einsparmaßnahmen berichten könntest.

    • Hi Ronald,
      vielen Dank!

      Sofern die Auswirkungen nennenswert sind, was ich hoffe, werde ich darüber berichten. Hoffe du bleibst am Ball!

      Grüße
      Jörg

    • Ich hoffe es ist auch einen kurzen Bericht oder ein kleines Update Wert, wenn die Auswirkungen nicht besonders nennenswert sind. Das wäre ja auch ein Ergebnis :)


Dein Kommentar

Trackbacks sind deaktiviert.