Opower (US utilities) Smart-Home-Integration, kostenlos und Open Source

Strom- und Gasverbrauch, Kosten und Rechnungsprognose von US-Versorgern auf Opower (PG&E…).
Bringt den Strom- und Gasverbrauch deines Kontos bei einem US-Versorger nach Gladys: den Verbrauch des Vortags, den laufenden Monat, seine Kosten und die Rechnungsprognose des laufenden Abrechnungszeitraums. Strom speist außerdem die Energieüberwachung von Gladys 5.2, Stunde für Stunde, zu der Zeit, in der er wirklich verbraucht wurde.
Viele US-Versorger zeigen deinen Verbrauch über dieselbe Plattform an, Opower (Oracle). Diese Integration meldet sich mit deinem eigenen Konto auf der Website deines Versorgers an, wie es seine Mobil-App tut.
Nicht mit Oracle Opower oder den Versorgern verbunden. Developed without the hardware: feedback welcome — ohne Zähler und ohne Konto entwickelt: Rückmeldungen sind willkommen (GitHub-Issues oder Gladys-Forum). Die Anmeldungen sind aus der Open-Source-Bibliothek von Home Assistant portiert, konnten aber nicht an den echten Websites ausprobiert werden.
Überblick
- Ein Gladys-Gerät pro Zähler: Strom und Gas, wenn dein Konto beides hat.
- Strom: der Verbrauch, Stunde für Stunde (oder Tag für Tag) datiert, geht in die Energieüberwachung von Gladys; dazu der letzte vollständige Tag, der laufende Monat und die Rechnungsprognose, in kWh und Dollar.
- Gas: dieselben Übersichten, in Kubikmetern (m³) und Dollar.
- Ein Dashboard-Widget, zwei Szenen-Auslöser und eine Szenen-Aktion.
- Die Daten werden alle 12 Stunden gelesen. Die Versorger veröffentlichen sie ein bis zwei Tage später.
Unterstützte Versorger
Die Anmeldung ist bei jedem Versorger anders. Diese werden unterstützt:
| Versorger | Anmeldung |
|---|---|
| AEP Ohio | Benutzername und Passwort |
| AEP Texas | Benutzername und Passwort |
| Appalachian Power | Benutzername und Passwort |
| Atlantic City Electric | Bestätigungscode (E-Mail oder SMS) |
| Baltimore Gas and Electric (BGE) | Bestätigungscode (E-Mail oder SMS) |
| Commonwealth Edison (ComEd) | Bestätigungscode (E-Mail oder SMS) |
| Consolidated Edison (ConEd) | Passwort, und der Authenticator-Schlüssel bei Zwei-Faktor-Anmeldung |
| Delmarva Power | Bestätigungscode (E-Mail oder SMS) |
| Duquesne Light Company (DQE) | Benutzername und Passwort |
| Indiana Michigan Power | Benutzername und Passwort |
| Kentucky Power | Benutzername und Passwort |
| Orange & Rockland Utilities (O&R) | Passwort, und der Authenticator-Schlüssel bei Zwei-Faktor-Anmeldung |
| Pacific Gas and Electric Company (PG&E) | Passwort, manchmal ein Bestätigungscode (E-Mail oder SMS) |
| PECO Energy Company (PECO) | Bestätigungscode (E-Mail oder SMS) |
| Potomac Electric Power Company (Pepco) | Bestätigungscode (E-Mail oder SMS) |
| Public Service Company of Oklahoma (PSO) | Benutzername und Passwort |
| Puget Sound Energy (PSE) | Benutzername und Passwort (experimentell: der Echttest mit einem erfundenen Konto endete auf einer Fehlerseite) |
| Southwestern Electric Power Company (SWEPCO) | Benutzername und Passwort |
Noch nicht unterstützt
Diese Opower-Versorger kennt die Referenzbibliothek, sie sind aber noch nicht portiert: AES Indiana, Burbank Water and Power (BWP), Clark Public Utilities, City of Austin Utilities, Evergy, Eversource, Glendale Water and Power (GWP), Northern Indiana Public Service Company (NIPSCO), Rhode Island Energy, Seattle City Light (SCL), Southern Maryland Electric Cooperative (SMECO), Sacramento Municipal Utility District (SMUD), Southwest Gas. Duke Energy und Portland General Electric werden auch von der Referenzbibliothek nicht bedient. Frag auf GitHub nach deinem: jeder braucht seine eigene Anmeldung.
Voraussetzungen
- Gladys 5.2.0 oder neuer.
- Ein Online-Konto bei deinem Versorger (das seiner Website), mit einem Smart Meter für stündliche Stromdaten. Ohne Smart Meter liefert der Versorger nur Tages- oder Monatswerte.
- Gladys muss das Internet erreichen (die Website des Versorgers und opower.com).
Konfiguration
- Installiere unter Integrationen → Von GitHub installieren
https://github.com/guim31/gladys-opower. - Wähle im Tab Konfiguration deinen Versorger und gib Benutzername (oder E-Mail) und Passwort seiner Website ein.
- Wähle den zu importierenden Verlauf: die Stromtage, die beim ersten Lesen an die Energieüberwachung gehen (standardmäßig 30 Tage, bis zu einem Jahr). Erhöhst du ihn später, wird der längere Verlauf beim nächsten Lesen importiert.
- Wähle die Sprache der Gerätenamen (standardmäßig Französisch): die Namen werden beim Hinzufügen eines Zählers festgelegt.
- Speichere. Die Integration meldet sich an und listet deine Zähler im Tab Entdecken auf: füge sie hinzu.
Die Aktion Anmelden und jetzt aktualisieren liest alles sofort, statt auf den nächsten 12-Stunden-Zyklus zu warten (höchstens einmal pro Viertelstunde).
Bestätigungscode (PG&E, Exelon)
PG&E und die Exelon-Gesellschaften (ComEd, PECO, BGE, Pepco, Delmarva, Atlantic City Electric) können einen per E-Mail oder SMS gesendeten Code verlangen. Die Konfiguration zeigt dann „Bestätigungscode nötig“ und listet, wohin der Code gehen kann.
- Nutze die Aktion Bestätigungscode senden und wähle E-Mail oder SMS.
- Wenn der Code ankommt, nutze innerhalb von 10 Minuten Code eingeben.
Die Integration behält dann, was der Versorger zum Wiedererkennen dieses
Geräts gibt (in /data), und die nächsten Anmeldungen brauchen keinen Code.
Die Exelon-Gesellschaften verlangen beim ersten Mal immer einen Code und
geben dann ein Token, das bei jedem Lesen erneuert wird; nehmen sie es nicht
mehr an (nach einer langen Pause), wird ein neuer Code verlangt. Der
Szenen-Auslöser Anmeldung beim Versorger nötig sagt dir Bescheid.
Authenticator-Schlüssel (ConEd, O&R)
ConEd- und O&R-Konten mit Zwei-Faktor-Anmeldung per Authenticator-App brauchen den geheimen Authenticator-Schlüssel: den Text-Schlüssel, der beim Einrichten der App angezeigt wurde (kein 6-stelliger Code). Die Integration berechnet die Codes selbst. Hast du den Schlüssel nicht mehr, richte die Zwei-Faktor-Anmeldung auf coned.com neu ein und kopiere den angezeigten Schlüssel.
Geräte
Jeder Zähler ist ein Gerät, benannt nach dem Versorger, der Zählerart und den letzten Ziffern des Kontos, z. B. „PG&E Strom …0003“.
Stromzähler
| Funktion | Einheit | Was es ist |
|---|---|---|
| Verbrauch | kWh | Der 30-Minuten-Verbrauch, datiert, für die Energieüberwachung (Stundenwerte in zwei Hälften geteilt) |
| Tagesverbrauch | kWh | Statt des vorigen, für einen täglich gelesenen Zähler |
| Verbrauch letzter Tag | kWh | Der letzte vollständige Tag, den der Versorger veröffentlicht hat |
| Kosten letzter Tag | $ | Seine Kosten, wenn der Versorger Kosten liefert |
| Verbrauch Monat | kWh | Der laufende Kalendermonat, nur vollständige Tage |
| Kosten Monat | $ | Seine Kosten, nur wenn jeder seiner Tage Kosten hat |
| Prognose Verbrauch (Rechnung) | kWh | Der vom Versorger für den Abrechnungszeitraum prognostizierte Verbrauch |
| Rechnungsprognose | $ | Die vom Versorger für den Abrechnungszeitraum prognostizierte Rechnung |
Ein Haushalt mit Net Metering (Solar) kann an einem Tag, an dem er mehr eingespeist als verbraucht hat, einen negativen Verbrauch zeigen.
Gaszähler
Dieselben Übersichten, ohne die Verbrauchsfunktion: letzter Tag, Monat und prognostizierter Verbrauch in m³, ihre Kosten in Dollar. Gladys hat weder Therm noch CCF als Einheit, daher werden die Gasmengen umgerechnet:
- CCF (100 Kubikfuß): × 2,832 m³, exakt;
- Therm (eine Energieeinheit): × 2,731 m³, über den mittleren Brennwert des an US-Haushalte gelieferten Erdgases (1.037 Btu pro Kubikfuß, EIA). Dein Gas kann um einige Prozent abweichen: deine Rechnung nennt den Faktor deines Versorgers.
Energieüberwachung
Gladys 5.2 kann einen in der Vergangenheit datierten Verbrauch importieren: die Integration sendet jede halbe Stunde zu ihrer echten Zeit über den eigenen Endpunkt des Kerns und schickt bei jedem Lesen die letzten drei Tage erneut (die Versorger korrigieren ihre jüngsten Daten; Gladys schreibt nur, was sich geändert hat). Die Energie-Diagramme und die aus deinem Tarif berechneten Kosten stimmen also, auch wenn die Daten ein bis zwei Tage später ankommen.
Absichtlich wird kein kumulierter Zählerstand veröffentlicht: Gladys würde einen einen Tag zu spät empfangenen Zählerstand in eine einzige halbe Stunde Verbrauch verwandeln.
Damit Gladys die Kosten berechnet, wähle in den Energie-Einstellungen die Funktion Verbrauch deines Stromzählers als Hauptzähler und lege dort deinen Vertrag an. Die Funktionen Rechnungsprognose und Kosten kommen von deinem Versorger und hängen nicht von diesem Vertrag ab.
Gas geht nicht in die Energieüberwachung: Gladys 5.2 bewertet nur Strom, und ein Gasverbrauch würde zum Strom addiert.
Dashboard-Widget
Energieübersicht Versorger zeigt für einen Zähler (den ersten Stromzähler, wenn du keinen wählst): den letzten vollständigen Tag und sein Datum, den laufenden Monat, die Kosten des Monats, die Rechnungsprognose (orange, wenn sie über dem gleichen Zeitraum des Vorjahres liegt), die letzten 14 Tage als Balken, dazu die Kosten des letzten Tages, den prognostizierten Verbrauch, den Vorjahreswert und den Abrechnungszeitraum. Wartet die Anmeldung auf dich, sagt das Widget warum.
Szenen-Auslöser und Aktion
- Neuer Verbrauchstag verfügbar (Auslöser): der Versorger hat einen neuen
vollständigen Tag für einen Zähler veröffentlicht, oft ein bis zwei Tage
später. Wähle optional den Zähler. Variablen: der Tag (
date, JJJJ-MM-TT), sein Verbrauch, seine Einheit und Kosten, Verbrauch und Kosten des Monats, die Rechnungsprognose. Einmal pro neuem Tag ausgelöst; das erste Lesen nach der Installation setzt nur den Startpunkt. - Anmeldung beim Versorger nötig (Auslöser): der Versorger verlangt einen Bestätigungscode oder lehnt das Passwort ab. Die Ablesungen stoppen, bis du handelst. Filtere optional nach dem Grund (Code, Passwort). Einmal pro Problem ausgelöst.
- Zählerübersicht lesen (Aktion): liefert den letzten vollständigen Tag, seinen Verbrauch und seine Kosten, Verbrauch und Kosten des Monats und die Rechnungsprognose eines Zählers für die nächsten Aktionen der Szene. Ein unbekannter Wert bleibt leer.
Szenen-Beispiele
- Tagesbericht: Auslöser Neuer Verbrauchstag verfügbar (Stromzähler) → Nachricht senden „{{triggerEvent.data.date}}: {{triggerEvent.data.usage}} kWh, {{triggerEvent.data.cost}} $. Rechnungsprognose: {{triggerEvent.data.forecast_cost}} $.“
- Rechnung im Blick: Auslöser Neuer Verbrauchstag verfügbar, Bedingung auf die Gerätefunktion Rechnungsprognose größer als dein Budget → Benachrichtigung.
- Keine Daten verlieren: Auslöser Anmeldung beim Versorger nötig → Nachricht senden „Opower braucht einen Bestätigungscode: Integrationen → Opower öffnen“.
- Wochenübersicht: eine wöchentlich geplante Szene → Zählerübersicht lesen → die Kosten des Monats und die Prognose in einer Nachricht senden.
Aktualisierung und Kontingente
- Ein Lesen alle 12 Stunden (das Tempo der Home-Assistant-Integration), neuer Versuch nach einer Stunde, wenn der Versorger nicht antwortet. Jedes Lesen meldet sich neu an (die Sitzungen der Versorger dauern Minuten).
- Ein Lesen kostet einige Anfragen pro Zähler: den stündlichen Verbrauch des Monats (zwei Anfragen), die Tageskosten (eine), die Prognose (eine pro Konto) und die Anmeldung selbst. Das erste Lesen importiert den gewählten Verlauf: bis zu 15 Anfragen für ein Jahr an Stunden.
- Die Integration fragt selbst ab: sie hängt nicht von der Abfrage durch Gladys ab.
- Die Nutzungsbedingungen des Versorgers gelten für dein Konto: diese Integration liest nur deine eigenen Daten, langsam.
Fehlerbehebung
- „Der Versorger lehnt die Anmeldung ab“: prüfe Benutzername und Passwort auf der Website des Versorgers. Ein ConEd/O&R-Konto braucht auch den Authenticator-Schlüssel. Zu viele Fehlversuche können das Konto beim Versorger sperren.
- „Bestätigungscode nötig“: siehe Bestätigungscode oben. Der 12-Stunden-Zyklus fordert keinen neuen Code an, solange einer erwartet wird (10 Minuten).
- „Versorger nicht erreichbar“: die Website oder opower.com hat nicht geantwortet; neuer Versuch jede Stunde. Hält das an, hat der Versorger vielleicht seine Anmeldung geändert: eröffne ein GitHub-Issue mit den Logs.
- Kein Zähler aufgelistet: das Konto hat keinen Strom- oder Gaszähler, den Opower bedient (Wasser wird nicht unterstützt).
- Der letzte Tag ist von vorgestern: normal, die Versorger veröffentlichen verspätet.
- Logs: setze
LOG_LEVEL=debug, um jedes Lesen zu sehen. Die Logs zeigen nie das Passwort, die Codes oder die Tokens.
Grenzen
- Developed without the hardware: feedback welcome — ohne Zähler und ohne Konto entwickelt. Die Anmeldungen folgen der Referenzbibliothek und ihren Tests, nicht den echten Websites: die ersten echten Versuche können Unterschiede zeigen.
- Die Daten sind ein bis zwei Tage verspätet: keine Momentanleistung, kein „heute“.
- Stundenwerte werden in zwei gleiche halbe Stunden geteilt.
- Net Metering: die Energieüberwachung zählt eine Einspeisestunde als 0; die Übersichten behalten die Nettowerte.
- Gas ist in m³ (Therms über einen Mittelwert umgerechnet) und nicht in der Energieüberwachung.
- Mehrere Konten: eine Anmeldung pro Integration. Die Exelon-Gesellschaften lesen nur das Standardkonto der Anmeldung.
- Die Kosten-Funktionen sind die Zahlen des Versorgers, in Dollar. Die Kosten, die Gladys in der Energieüberwachung berechnet, kommen aus dem Vertrag, den du in Gladys anlegst, nicht vom Versorger.
- Wasserzähler werden nicht unterstützt.
Datenschutz und Daten
Das Passwort und der Authenticator-Schlüssel bleiben in der
Gladys-Konfiguration. Die Datei /data/opower-state.json behält, was den
Bestätigungscode erspart (Geräte-Cookies, das Exelon-Refresh-Token), und pro
Zähler, bis wohin die Energieüberwachung gespeist wurde. Nur die Integration
kann sie lesen. Nichts geht woandershin als zur Website deines Versorgers, zu
opower.com und zu deinem Gladys.
Danksagung
Die Anmeldungen und die Aufrufe der Opower-API sind aus tronikos/opower (Apache-2.0) portiert, der Bibliothek der Opower-Integration von Home Assistant (Apache-2.0); ihre Tests lieferten die Antwortformen, die hier in den Tests verwendet werden.
Konfigurationseinstellungen
Diese Einstellungen fragt Opower (US utilities) in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein Versorgerkonto | section | Nein | Melde dich mit Benutzername und Passwort der Website deines Versorgers an. Die Daten kommen ein bis zwei Tage später und werden alle 12 Stunden gelesen. Nicht mit Oracle Opower oder den Versorgern verbunden. |
| Versorger | select | Ja | Vorerst werden nur die aufgeführten Versorger unterstützt. |
| Benutzername oder E-Mail | string | Ja | |
| Passwort | secret | Ja | |
| Geheimer Authenticator-Schlüssel (ConEd, O&R) | secret | Nein | Nur für ConEd- und O&R-Konten mit Zwei-Faktor-Anmeldung per Authenticator-App: der beim Einrichten angezeigte Schlüssel. |
| Zu importierender Verlauf | select | Nein | Stromtage, die beim ersten Lesen an die Energieüberwachung von Gladys gehen. |
| Sprache der Gerätenamen | select | Nein | Die Namen werden beim Hinzufügen eines Zählers zu Gladys festgelegt. |
| Bestätigungscode (PG&E, Exelon) | section | Nein | PG&E und die Exelon-Gesellschaften (ComEd, PECO, BGE, Pepco, Delmarva, ACE) können einen per E-Mail oder SMS gesendeten Code verlangen: nutze die zwei Aktionen unten, „Bestätigungscode senden“ und dann „Code eingeben“. Die Anmeldung wird danach gespeichert. |
So installierst du Opower (US utilities) in Gladys
- Öffne in Gladys Integrationen: Opower (US utilities) erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-opower:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-opower.
Opower (US utilities) benötigt Gladys >=5.2.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Opower (US utilities) ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation