FosCo
21. August 2020 um 11:49
1
Da ich es grade für jemanden rausgesucht hatte, hier einmal ein kurzes Snippet für die Einbindung Discovergy zu FHEM
defmod di2r HTTPMOD https://USER:PASSWORD@api.discovergy.com/public/v1/last_reading?meterId=METERID 10
attr di2r userattr reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name
attr di2r event-min-interval 300
attr di2r reading01JSON values_energy
attr di2r reading01Name energy
attr di2r reading02JSON values_energyOut
attr di2r reading02Name energyOut
attr di2r reading03JSON values_power
attr di2r reading03Name power
attr di2r room Dashboard,Photovoltaik,Stromzähler
attr di2r stateFormat {sprintf("%.f W", ReadingsVal($name,"power",0)/1000)}
USER=User des Logins beim Discovergy Portal (bei mir ist das meine Email)
PASSWORD=Das dazugehörige Passwort, leider im Klartext, keine andere Möglichkeit bei der derzeitigen DGY API (@API_DGY : Es wäre super, wenn man hier einen TOKEN generieren könnte, ähnlich Github, Passwörter im Klartext finde ich persönlich sehr sehr unschön )
METERID=Findet Ihr unter https://api.discovergy.com/public/v1/meters als jeweils ersten Parameter des Zählers (login ebenfalls mit user/password)
6 „Gefällt mir“
Hallo @FosCo ,
vielen Dank für die tolle Dokumentation!
FosCo:
meterId=METERID 10
Allerdings kannst Du mir noch erklären, wofür die „10“ hinter der MeterID steht?
Herzliche Grüße aus der Eifel
FosCo
4. Januar 2021 um 07:41
3
Hi @Eifel-Holger die 10 ist Teil des httpmod Moduls in fhem.
Normal wird alle 60sec aktualisiert, da ich mein live Widget damit betreibe hab ich es auf 10sec gestellt.
@API_DGY wenn euch das zu häufig ist, Dreh ich es gerne runter oder halt auch im frohen neuen Jahr +1 für was lokales
1 „Gefällt mir“
Super - vielen Dank für die schnelle Antwort - ist bei mir seit heute im Einsatz
FosCo
4. Januar 2021 um 09:02
5
Gern!
Mein nachgebautes Widget sieht inzwischen so aus.
Die Tagessumme kommt vom WR, der Rest von discovergy:
1 „Gefällt mir“
MVoss
3. September 2021 um 09:06
6
Wie muss ich in USER das @ maskieren?
FosCo
3. September 2021 um 09:26
7
Du kannst das Attribut requestHeader verwenden mit „Authorization: Basic HASHVALUE“, wobei HASHVALUE Base64 encoded „mail:passwort“ ist. Ich mag keine Klartext-Passwörter im fhem
Erstellen lässt sich der base64-String wie z.B. hier beschrieben: Basic Authentication Generator (Encode Credentials to Base 64) | API Connector
Irgendwie ging das auch auf der bash, aber im Javascript ist es noch einfacher im Browser mit den Dev-Tools.
1 „Gefällt mir“
MVoss
3. September 2021 um 09:58
8
Danke für die schnelle Antwort. Nun funktioniert es.
1 „Gefällt mir“
FosCo
22. November 2022 um 15:10
9
Da ich nicht mehr editieren kann, hier mein aktueller Code inklusive Tagessummen:
defmod midnightEnergyOut dummy
defmod midnightEnergyOutAt at 2022-11-23T00:00:00 {fhem("set midnightEnergyOut " . (ReadingsVal("di2r","energyOut",0)))}
defmod midnightEnergy dummy
defmod midnightEnergyAt at 2022-11-23T00:00:00 {fhem("set midnightEnergy " . (ReadingsVal("di2r","energy",0)))}
defmod di2r HTTPMOD https://api.discovergy.com/public/v1/last_reading?meterId=METERID 30
attr di2r userattr get0Header.authorization
attr di2r reading01JSON values_energy
attr di2r reading01Name energy
attr di2r reading02JSON values_energyOut
attr di2r reading02Name energyOut
attr di2r reading03JSON values_power
attr di2r reading03Name power
attr di2r requestHeader Authorization: Basic HASHVALUE
attr di2r room Dashboard,Photovoltaik,Stromzähler
attr di2r stateFormat {sprintf("%.f W", ReadingsVal($name,"power",0)/1000)}
attr di2r userReadings powerW {use Math::Round qw/round/;; Math::Round::round((ReadingsVal($name,"power",0)/1000));;;;},\
energyToday {use Math::Round qw/round/;; Math::Round::round(((ReadingsVal($name,"energy",0)-ReadingsVal("midnightEnergy","state",0))/10000000));;;;},\
energyOutToday {use Math::Round qw/round/;; Math::Round::round(((ReadingsVal($name,"energyOut",0)-ReadingsVal("midnightEnergyOut","state",0))/10000000));;;;},
METERID und HASHVALUE muss wie oben beschrieben gesetzt werden.
Hintergrund des Updates war die PV-Prognose, hier beschrieben: Leistungsprognose für Wechselrichter