Powerrouter

MyPowerrouter.com wird abgestellt - Raspberry PI als Ersatz

Tage im Haus: 1811

Achtung!

Mein Powerrouter hat leider seinen Geist aufgegeben und wurde von Viebrock zurückgenommen. Er ist auch schon abgebaut! Ich versuche, so weit es mir möglich ist, dass Projekt am laufen zu halten und werde auch in Zukunft das Abbild für den PI auf meinem Server lassen. Jeder kann es sich weiterhin kostenlos herunterladen.

Gerade geht es heiß her im Internet wenn es um das Thema Powerrouter geht. Nedap stellt den Online-Monitoring-Service zum 01. Mai ein. So wie ich das in den Foren gesehen habe poppen jetzt aus allen Richtungen sehr kreative Ideen aus dem Boden.

Da ich ebenfalls für meinen Nedap Powerrouter eine Lösung brauche und mir viele andere Ideen etwas zu invasiv für mein restliches Netzwerk sind, habe auch ich mich an die Arbeit gemacht und etwas zurecht getüftelt. Es musste etwas sein das keinen Einfluss auf den rest meines Netzwerkes hat. Etwas, das man einfach irgendwo dazwischen stecken kann und ohne Zutun funktioniert.

Mein Setup

Also habe ich mit einen Raspberry Pi B+ von 2015 und einen USB-Netzwerkadapter geschnappt, ein aktuelles Raspberry Pi OS installiert und mal geschaut was man alles braucht und direkt los gelegt. So soll es dann hinterher angeschlossen werden:

Das ganze System ein Mal komplett installiert, angeschlossen und siehe da... nach zwei Tagen sind schon sehr informative Daten da.

Was dazu gebraucht wird

  • Raspberry PI (Version ist eigentlich egal. Selbst bei meinem B+ läuft es gut. Er sollte aber einer sein mit Netzwerkanschluss B+, 2, 3, 3+ und 4 gehen ohne Probleme). Natürlich sind die ab dem Pi 2 eine ganze Ecke schneller und eher geeignet, gerade wenn man nach einigen Monaten viele Daten hat.
    Am besten nehmt ihr ein Kit, weil da schon fast alles dabei ist, was man so braucht, wie bspw. hier:
    • Pi 3+ (aktuell kein Kit verfügbar, sobald ich wieder eins finde, werd ich den link wieder hinterlegen)
    • Pi 4 (*) (Der Pi 4 ist zwar viel leistungsstärker, verbraucht aber auch etwas mehr Strom und entwickelt u.U. etwas mehr Hitze)
  • MicroSD-Karte mindestens 8GB bspw. die SanDisk Ultra 32 GB (*)
  • Raspberry Pi Netzteil bspw. offizielles Pi 3 Netzteil (*) oder offizielles Pi 4 Netzteil (*)
  • Optional (falls kein Kit gekauft wurde, so eins bei ist) kann man dem Pi auch ein Gehäuse gönnen bspw. Pi 4 (*) oder für Pi B+, 2, 3 und 3+ (*) beim Pi 4 lohnt sich ggf. auch ein Gehäuse, dass den Pi gut kühlt, wie bspw. ein Passiv Pi 4 Gehäuse (*).
    Wer den Pi vielleicht an der Wand montieren möchte, kann auch solche Gehäuse nehmen. Sowohl für den Pi B+, 2, 3 und 3+ (*) als auch für den Pi 4 (*) - da kann man dann auch den Lüfter mit im Gehäuse montieren, was wahrscheinlich der Langlebigkeit des Raspberry Pi's gut tut.
  • Einen USB-Netzwerkadapter. Man kann fast jeden nehmen. Ich habe einen alten von Apple mit USB 2.0, aber selbst die 2€ teile aus Fernost funktionieren fast alle ohne irgend ein zutun. Man braucht auch kein USB 3.0 oder 1Gbit, da der Netzwerkanschluss des Powerrouters nur 10Mbit hat.

Abbilder für den Raspberry Pi

VersionDownload LinkAlternativer download LinkGrößeBemerkung
v0.1.10LinkLink3,2 GB
v0.2.3LinkLink3,2 GB- Statusmeldungen vom Powerrouter
- Pushbenachrichtigungen auf Mobiltelefon via Pushover möglich
v0.2.4 (aktuell)LinkLink3,2 GBMehrere Powerrouter können in Grafana differenziert werden

Installation

  • Ladet euch mein Abbild (ich empfehle die aktuelle Version) des Raspberry Pi Betriebsystems herunter und legt es euch irgendwo ab, wo ihr ein wenig Platz habt.
  • Ladet euch den Raspberry Pi Imager hier herunter und installiert ihn euch
  • Steckt die MicroSD-Karte mit einem SD-Kartenlesegerät in euren Computer oder falls ihr einen im Rechner/Notebook habt, tut der es natürlich auch
  • Öffnet den Raspberry Pi Imager
    • Klickt auf OS WÄHLEN
    • Klickt ganz unten auf Eigenes Image
    • Öffnet eure heruntergeladene Zip Datei (muss nicht unbedingt entpackt werden)
    • Klickt jetzt auf SD-KARTE
    • Wählt hier bitte mit äußerster Sorgfalt euren SD-Kartenleser aus, wo die MicroSD-Karte drin steckt
      (ACHTUNG: Auf dem ausgewähltem Gerät wird ALLES gelöscht und das Raspberry Pi Betriebsystem installiert)
    • Vergewissert euch bitte nochmal, dass ihr wirklich den SD-Kartenleser mit der zu beschreibenden MicroSD-Karte ausgewählt habt
    • Klickt auf SCHREIBEN
  • Wenn der Pi Imager fertig ist, steckt die frisch beschriebene SD-Karte in den Raspberry Pi
  • Verbindet den Raspberry Pi mittels Netzwerkkabel mit eurem Internet-Router
  • Verbindet den Powerrouter mit dem USB-Netzwerkadapter
  • Steckt den USB-Netzwerkadapter in einen USB Port des Raspberry Pi
  • Verbindet den Pi mit dem Netzteil (und schaltet ihn ein, wenn das Netzteil einen Schalter hat)

Abrufen der Daten

Zuallererst müsst ihr die IP Adresse des Raspberry Pi herausfinden. Ggf. reicht es den Pi über powerinterface.local oder powerinterface.fritz.box aufzurufen. Wenn alles funktioniert hat (bitte habt hier ein paar Minuten Geduld mit dem Pi, er muss alle Dienste hoch fahren, und das kann u.U. vier-fünf Minuten dauern) und der Pi schon die erste Anfrage des Powerrouters erhalten hat, solltet ihr eine ähnliche Seite angezeigt bekommen, wie die mypowerrouter.com Seite als "Aktuelle Werte" darstellt, nur eben in statischer Form (Bild kann ggf. durch das Softwareupdate abweichen).

Grafana: http://[RASPBERRY_PI_IP]:3000 bzw. powerinterface.local:3000 bzw. powerinterface.fritz.box:3000
AdGuard: http://[RASPBERRY_PI_IP]:5000 bzw. powerinterface.local:5000 bzw. powerinterface.fritz.box:5000
Werte für externe Systeme, wie Loxone: http://[RASPBERRY_PI_IP]/values.json bzw. powerinterface.local/values.json bzw powerinterface.fritz.box/values.json

Aber wir wollen uns ja schöne Grafen anzeigen lassen, also müssen wir die IP Adresse mit dem zusatz :3000 in die Browser-Adresszeile eintragen. Wir werden von einer Anmelde-Maske begrüßt in der wir die Zugangsdaten (s.u.) eintragen. Achtung: wir bekommen jetzt eine fast identische Maske erneut angezeigt, allerdings will Grafana hier, dass wir ein neues Passwort vergeben, weil wir das Standardpasswort benutzt haben.

In Grafana kann man nun oben auf das Home klicken, dann kann man das Dashboard Aktuelle Werte auswählen und erhält die statistischen Informationen die der Powerrouter weitergeleitet hat.

Ich habe noch ein weiteres Dashboard angelegt mit dem Titel Powerrouterdaten. Das sind noch Informationen die ich in der Datenbank gefunden habe. Das sind überwiegend die Werte die man direkt am Powerrouter selbst ablesen kann. Die beiden Werte energyPlatformProduced und energyPlatformConsumed konnte ich keiner klaren Information zuordnen und habe daher die Umbenennung weg gelassen.

Benutzerdaten

  • Grafana
    • Benutzername: admin
    • Passwort: admin
  • AdGuard
    • Benutzername: root
    • Passwort: toor
  • SSH
    • Benutzername: pi
    • Passwort: raspberry
  • InfluxDb
    • Benutzername: grafana
    • Passwort: grafana

Für die "Will ich selber machen"

Ich habe folgendes gemacht... Vielleicht hilft es dem ein- oder anderen

  • Internen (onboard) Netzwerkport (eth0) kriegt vom Router eine IP Adresse via DHCP
  • Zusätzlicher USB-Netzwerkport (eth1) hat eine feste IP Adresse (192.168.0.1) und sich selbst als Gateway
  • DHCP Server installiert und für das zusätzliche Netzwerkinterface (eth1) ausschließlich konfiguriert
  • Mittels firewalld habe ich dem System mitgeteilt, dass es als "Router" fungieren soll. Jegliche Kommunikation vom USB-Netzwerkanschluss wird an den internen Netzwerkanschluss einfach weitergeleitet.
  • AdGuard installiert und auf Port 5000 konfiguriert
  • In AdGuard die Adresse logging1.powerrouter.com per DNS-Rewrite auf die 192.168.0.1 weitergeleitet
  • Einen InfluxDb Datenbankserver installiert
  • In der InfluxDb eine Datenbank home angelegt
  • In der InfluxDb einen Benutzer grafana mit dem Passwort grafana angelegt
  • Aktuelles NodeJS installiert
  • Das Powerinterface von ngrie kopiert
    • Die vorherige Version v0.1.10 wiederhergestellt (die leitet die Anfragen an logging1.powerrouter.com weiter, damit das mypowerrouter.com Portal weiterhin funktioniert)
    • Die falsche IP Adresse die im Code steht durch die Adresse logging1.powerrouter.com ersetzt (der PI selbst nutzt ja den DNS vom Router)
    • Die InfluxDb konfiguriert und den Eintrag für die Weiterleitung in der config.yml hinterlegt
  • Grafana auf dem Port 3000 Installiert
    • In Grafana die Influx Datenbank als Data-Source konfiguriert
    • Zwei Dashboards gebastelt, was etwas Info darüber ausgibt was dem nahe kommt, was man aktuell auf mypowerrouter.com sehen könnt.
  • Über firewalld die Ports 22, 80, 3000, 5000 und 8086 für beide Interfaces freigegeben

Grafana Dashboards

Für diejenigen die das Powerinterface bereits im Einsatz haben oder es anders nutzen wollen, hier sind die beiden Dashboards:

Danke

Hier möchte ich mich bei allen bedanken.
Danke an Niklas Grießer, der das Powerinterface entwickelt hat, worauf das hier basiert.
Danke an Tino und Frank für die Grafana Dashboard Vorlagen
Vielen lieben Dank an alle die mir bis hier her einen oder mehrere Kaffee spendiert haben, finde ich wirklich grandios von euch!!!

Affiliate

Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.

Loxone 1x1 - Nedap Powerrouter

Tage im Haus: 252

Ich habe jetzt schon vermehrt anfragen erhalten, wie ich die Implementierung der Powerrouter Daten ins Loxone System gelöst habe.

Bis heute hatte ich dafür ein kleines PHP-Skript, dass sich die Daten von der MyPowerrouter.com Seite abruft, das Resultat aufbereitet und dieses Skript habe ich dann vom Loxone Miniserver dann abrufen lassen. Ja genau. Das ist relativ umständlich und ggf. hat man kein Interesse daran irgendwo einen PHP-Server laufen zu lassen nur um an ein paar Daten ran zu kommen, geschweige denn, dass sich jeder dieses Wissen aneignen möchte.

Mit der neusten Version der Loxone Config (in meinem Falle ist das 8.1.11.10) ist der Loxone Miniserver imstande die Daten direkt von der MyPowerrouter.com Seite abzurufen und darzustellen.
In den vorherigen Versionen war es durch einen Fehler leider nicht Möglich.

Ihr fragt euch vielleicht: "Häää? Wie mypowerrouter.com? Das Gerät steht doch bei mir im HWR/Keller!?". Ja, dass ist korrekt, aber der Powerrouter hat leider keine direkte Schnittstelle (zumindest kenne ich sie nicht) um die Daten abzurufen. Der Powerrouter ist aber von Werk aus so eingestellt, dass sobald er Internetzugang erhält, er die Daten an die Seite mypowerrouter.com weiterleitet. Ich gehe davon aus, dass er dies sogar mehrmals die Minute macht.

Wie erhalte ich die Daten?

Der Powerouter muss an das Internet angeschlossen werden. Dazu das Netzwerkkabel (mit Batterie sind es dann zwei Netzwerkkabel) mit in einen Router/Switch/Hub stecken, der Internetzugang hat.

Was wird benötigt?

  1. Powerrouter mit Internetanbindung
  2. Einen Account auf der mypowerrouter.com Seite
  3. Benutzername
  4. Passwort
  5. Powerrouter Kennziffer

Account anlegen

Um an die Daten des Powerrouters zu kommen müsst ihr euch bei mypoweerouter.com registriert haben. Dazu müsst ihr auf der Seite mypowerrouter.com/registration die Daten eingeben, die ihr von eurem Installateur erhalten habt (falls nicht, Installateur kontaktieren und euch die Daten besorgen).

Zugangsdaten

Mit der vollständigen Registrierung habt ihr dann einen Benutzernamen und ein Passwort, diese werden benötigt.

Powerrouter Kennziffer

Einmal auf der mypowerrouter.com anmelden, dann oben auf "PowerRouter" klicken. Dann landet ihr auf der Detailseite eures Powerrouters. In der Adressleiste des Browserfensters steht jetzt eine neue Adresse die dann in etwa so aussieht:

https://mypowerrouter.com/power_routers/12345
 

Notiert euch die Nummer die in dieser Adressleiste steht (in meinem Beispiel die 12345), dies bezeichne ich jetzt einfach mal als die Powerrouter Kennziffer.

Vorlage importieren

Ladet euch die Datei VI_Powerrouter Aktuelle Werte herunter und speichert sie bspw. auf eurem Desktop ab.

In Loxone wählt ihr nun im Peripheriebaum Miniserver -> Virtuelle Eingänge aus. Oben in der Menüleiste erscheinen jetzt alle Möglichkeiten Eingänge zu hinterlegen. Der Menüpunkt Vordefinierte HTTP-Geräte ist aufklappbar und hier könnt ihr eine Vorlage importieren:

Wählt jetzt die soeben heruntergeladene Datei aus und klickt auf öffnen. Bestätigt die Frage ob die Vorlage direkt angelegt werden soll mit Ja.

Glückwunsch, ihr habt jetzt den Powerrouter Daten HTTP-Eingang jetzt in eurer Loxone Config. In dem neuen Virtuellen Eingang (Miniserver -> Virtuelle Eingänge -> Powerrouter Daten) ist eine URL hinterlegt. Dort drin müsst ihr Benutzername, Passwort und die Powerrouter Kennziffer entsprechend anpassen. Achtet bitte darauf, dass die Struktur nicht verändert wird. Zwischen Benutzername und dem Passwort ist ein Doppelpunkt und direkt nach dem Passwort folgt ein @ Symbol. Diese beiden Zeichen dürfen nicht entfernt werden. Vor- und nach der Powerrouter Kennziffer muss ein Schrägstrich sein.

Wenn ihr die Daten in der URL geändert habt, dann einfach speichern und In Miniserver speichern drücken.

Viel Spaß mit den neuen Werten

Manuelle konfiguration

Loxone - Adresse abrufen

  • Wählt in eurem Peripheriebaum Miniserver->Virtuelle Eingänge
  • Klickt oben auf Virtueller HTTP Eingang
  • Den neuen Eintrag im Peripheriebaum mit der Bezeichnung Eingang VHI1 zu MyPowerrouter umbenennen
  • In das URL-Feld tragt ihr dann diese lange Adresse ein:
    https://BENUTZERNAME:PASSWORT@mypowerrouter.com/power_routers/12345/logs/1minutes.json?normalize_logs=true&include_last_log=true&solar_power=true&solar_power_input1=true&solar_voltage_input1=true&solar_current_input1=true&solar_temperature_input1=true&solar_power_input2=true&solar_voltage_input2=true&solar_current_input2=true&solar_temperature_input2=true&dcac_grid_power=true&dcac_grid_voltage=true&dcac_frequency=true&dcac_local_power=true&dcac_local_voltage=true&battery_state_of_charge=true&battery_bus_power=true&battery_voltage=true&battery_current=true&battery_pack_temperature=true&platform_grid_power=true&grid_sensor_power_l1=true&grid_sensor_voltage_l1=true&grid_sensor_current_l1=true&grid_sensor_power_l2=true&grid_sensor_voltage_l2=true&grid_sensor_current_l2=true&grid_sensor_power_l3=true&grid_sensor_voltage_l3=true&grid_sensor_current_l3=true&responseContentDataType=json
    Tragt dazu euren Benutzernamen, euer Passwort und die Powerrouter Kennziffer an den Fett markierten Stellen ein.
  • Ändert den Abfragezyklus [s] von 10 auf 60 Sekunden

Bis hier hin ist der Miniserver schon mal so eingestellt, dass er jetzt die Informationen von der Powerrouter Seite abruft. Jetzt müssen wir uns die Werte, die wir haben wollen nur noch in die Visualisierung holen.

Öffnet bitte dazu ein Internet-Browser-Fenster und ruft die Adresse (URL), die ihr in dem Virtuellen HTTP Eingang hinterlegt habt auf. Die Rückmeldung die ihr erhaltet sieht unaufgeräumt und unleserlich aus, dieses format nennt sich JSON. Wenn ihr genauer hinschaut stehen dort die Informationen die wir haben wollen im Format "TextInDoppeltenAnführungszeichen": Wert bspw.:

"platform_grid_power":1200.0

Was dann die Sensor Leistung wiederspiegelt (Das was am Netzsensor in eurem Schaltschrank sozusagen den Verbrauch darstellt). Jeden Wert einmal zu erläutern würde hier jetzt den Rahmen sprengen. Vergleicht die Werte von dieser langen Adresse einfach mit den Informationen auf der mypowerrouter.com -> PowerRouter -> Aktuelle Werte Seite und geht dann für jeden einzelnen Wert, den ihr in eurer Visualisierung haben wollt wie folgt vor.

Loxone - Wert in Visualisierung

  • Markiert den MyPowerrouter Eintrag im Peripheriebaum
  • Klickt auf Virtueller HTTP Eingang Befehl 
  • Ändert die Bezeichnung von Befehl VCI1 zu der äquivalenten Bezeichnung aus der mypowerrouter Seite
  • Setzt einen Haken in der Kategorie Visualisierung bei Verwenden um sie in der Visualisierung anzuzeigen
  • Wählt die Benutzergruppen die das sehen können sollen (oder lasst es einfach auf Alle)
  • Kategorie auswählen
  • Wählt bei Raum den Eintrag nicht verwenden
  • Tragt bei Befehlserkennung die Information ein die ihr haben wollt bspw.: "platform_grid_power":\v (inkl. Anführungszeichen, Doppelpunkt und \v)
  • Setzt einen Haken unter der Kategorie Anzeige bei nur Statusanzeige
  • Möchtet ihr etwas an die Information anhängen bspw. Watt so könnt ihr das in dem Feld Einheit zusätzlich zu dem wert <v>  eintragen (<v> Watt)

Dokument Speichern, im Miniserver speichern. Nun müsstet ihr in der App, unter der von euch gewählten Kategorie, die Information dargestellt bekommen.