[Modul] Discovergy Smartmeter

Um die Werte eines Discovergy Smartmeters auszuelesen, habe ich ein Modul geschrieben, welches die Daten über die offizielle API von Discovergy abholt.

Zu finden in meiner IP-Symcon Modulsammlung:
https://github.com/CodeKing/de.codeking.symcon.discovergy

Screenshot

Installation
Einfach die Discovergy Smartmeter Instanz hinzufügen und mit den normalen Zugangsdaten anmelden.

P.S.: Nicht über die negativen Werte wundern, meine PV Anlage produziert gerade ein wenig :slight_smile:

Danke,

läuft ohne Probleme.

Michael

Freut mich! :wink:
Bitte nochmal das Modul nochmal aktualisieren. Die Token wurden nach Ablauf nicht korrekt erneuert, wurde jetzt gefixt.

Viele Grüße,

Frank

Geht leider auch nicht. Der behauptet das der Account keinem Zähler zugeordnet ist.

Michael

Merkwürdig. Ich habe jetzt nochmal ein Update auf Verdacht gemacht, probier das doch bitte nochmal.
Ansonsten einmal das Modul neu anlegen und weiter beobachten.

Sollte es dann immer noch zu Problemen führen, integriere ich noch eine anschaltbare Logfunktion.
Bei mir liefs aber mit dem gestrigen Update bereits wieder, die Daten werden bei mir sekündlich abgefragt.

Viele Grüße,

Frank

Moin, hab das Modul jetzt noch mal neu angelegt, jetzt geht es.

Danke

So, bitte nochmal aktualisieren, nun werden abgelaufene tokens korrekt erneuert. Konnte ich eben bei mir nochmal live testen.

Konnte leider erst jetzt testen.

Es sieht aber so aus, als wenn es jetzt auch ohne was neu anzulegen geht.

Es wird :slight_smile:

Michael

Moin,

wir haben jetzt auch einen Gaszähler in Einsatz. Die Seriennummer, die Zählernummer, den Typ und den Messtype bekomme ich angezeigt, nur ab dann bekomme ich nur noch die Meldung " Undefined index power , energy, usw". Ich nehme an, das es die bei den Gaszählern nicht gibt.
Eine Idee, wie ich da weiter komme?

Danke Michael

Hi Michael,

ja das wird mit Sicherheit so sein.
Hier müsste man das Modul erweitern, damit vorher geprüft wird um was für ein Gerät es sich handelt (Strom / Gaszähler) und dann entsprechend die verfügbaren Variablen setzt.

Ich schau mir das im Laufe der Woche mal an und versuche das anhand der API Dokumentation umzusetzen.

Viele Grüße,

Frank

Ich habe mir das eben mal angesehen.
Leider sind in der Doku die möglichen Felder nicht hinterlegt.

Ich habe eben mal fix ein Update erstellt, welches die Werte im „Meldungen“ Fenster mitloggt (wenn Logging im Modul aktiviert wurde).

Könntest du dir das Update bitte einmal ziehen, die Werte aktualisieren und die Ausgabe im Meldungen Fenster „Discovergy Values“ hier rein kopieren? Und bitte die Werte einmal kurz kommentieren was was ist und wie das am Ende lesbar umformatiert werden muss, ich selber hab nur Öl und kenne mich mit Gas nicht wirklich aus :wink:

Viele Grüße,

Frank

Hi Frank,

erst einmal Danke für Deine schnelle reaktion.

hier die Werte:

25.04.2018 07:49:28 | Discovergy Meters | [{„Serial“:„XXXXXXXX“,„Meter ID“:„DEXXXXXXXXXXXG0000106000000000002“,„Type“:„ELS“,„Measurement Type“:„GAS“},]

25.04.2018 07:50:29 | Discovergy Values | {„volume“:53250,„status“:0}

Wobei der Wert „volume“ der Zählerstand in qm ist und durch 1000 geteilt werden muss.
Wie gesagt die „Smartmeter Daten“ sind soweit korekt, nur die „Verbrauchsdaten“ werden nicht dargestellt.

Viele Grüße

Michael

Hi Frank

hab jetzt mal die module.php etwas angepasst :wink:
unter „protected $profile_mappings“
habe ich die Zeile " ‚Volume‘ => ‚~Gas‘ " eingefügt

und unter "case ‚GAS‘ "
diese:
$this->data[$meter_id] = [
‚Volume‘ => $values[‚volume‘] / 1000
];

damit bekomme ich die Werte.

Michael

Hi Michael,

ah prima, wollte mich grade kurz dran setzen - bin da bisher leider nicht zu gekommen.
Ich habe deine Änderungen jetzt ins Modul übernommen.

Viele Grüße,

Frank

Wichtiger Hinweis:
Da meine Modulsammlung immer größer wurde, habe ich diese über Pfingsten in einzelne Module aufgesplittet.
Eine Weiterentwicklung findet ab jetzt nur noch in der Repository https://github.com/CodeKing/de.codeking.symcon.discovergy statt.

Da sich die GUIDs nicht geändert haben können die bisherigen Instanzen bestehen bleiben, es muss lediglich die alte Repository ‚de.codeking.symcon‘ in den Modulen gelöscht und die neue hinzugefügt werden. Sollten weitere Module von mir zum Einsatz kommen, müssen diese im gleichen Zug neu hinzugefügt werden.

Hi Codeking,
vielen Dank für Dein klasse Modul. Leider habe ich das Problem, dass wir 2 Zähler haben - einen normalen der auch wunderbar ausgelesen wird und einen für unsere Wärmepumpe der irgendwie nicht ausgelesen wird.

18.11.2018, 17:37:32 | TimerPool | Discovergy Smartmeter (UpdateData): <br />
<b>Notice</b>: Undefined index: energy in <b>/var/lib/symcon/modules/de.codeking.symcon.discovergy/Discovergy/module.php</b> on line <b>207</b><br />
<br />
<b>Notice</b>: Undefined index: power in <b>/var/lib/symcon/modules/de.codeking.symcon.discovergy/Discovergy/module.php</b> on line <b>214</b><br />

Der Zähler spricht von Bilndbezug und Wirkbezug. Im Portal kommen die Daten sauber an.

Kann evtl. abstellen das die Zähler reinkommen oder evtl. dern Zähler mit in die Auswertung aufnehmen? Gerne kann ich Dir mal meinen Zugang per PN senden.

Grüße

Enno

Hi Codeking,
leider kommt bei einem meiner Zähler noch immer der vorher genannte Fehler - kannst du da evtl. mal schauen.

Das ist ein Wärmepumpenzähler, der anscheinend eine Spur anders arbeitet.

error-disc.PNG

Danke

Enno

Hallo ich mal wieder einen neuen Zähler, wo ich nicht mit weiter komme:-(

hoffe auf Hilfe.

Danke
Michael

gefunden, man muss in der module.php bei den Discovergy Values die OBIS Kennzahlen eintragen. Also z.B. 1.25 anstatt power.

Hi,
kannst Du evtl einen Screenshot von den Änderungen posten? Was hast Du für einen Zähler - ich habe einen Wärmepumpenzähler und der funktioniert leider nicht mit dem Modul - Fehler habe ich oben mal gepostet. War es bei Dir auch so ein Fehler?