Autor Thema: Modul: SolarEdge API Abruf  (Gelesen 1138 mal)

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Modul: SolarEdge API Abruf
« am: 03 August 2018, 18:49:41 »
dann jetzt hier noch mal eine eigenes Thema dazu.
Ich habe mir die Mühe gemacht und ein Modul gebastelt dass die aktuellen Daten sowie die kumulativen Leistungen  einer SolarEdge Anlage ber die offizielle API abruft. Dank @CoolTux konnte ich das auf Basis seines Moduls für die TeslaPowerwall auch in eine vernünftige Form gießen.

1. Was kann das Modul?
Abgerufen werden currentPowerFlow und energyDetails. Es wird also der aktuelle "Energiefluss" (PV, Batterie, Netz, Last=Verbrauch) als Reading dargestellt. Ausserdem werden kumulative Energiemengen über den gesamten Tag sowie des letzten Viertelstundenabschnitt dargestellt ( Produktion, Eigenverbrauch, Netzbezug etc.)

2. Was brauche ich dafür?
Zunächst eine PV-Anlage mit SolarEdge Wechselrichter und Anbindung an das SolarEdge MonitoringPortal. Dort kann man im Admin-Bereich einen API-Key aktivieren. Diesen API-Key und die Site-ID (steht dort direkt darunter und in der URL) braucht man für den Abruf.

3. Wie benutze ich das Modul?
Das Modul muss in den fhem Ordner kopiert werden und dann entweder per "reload 70_SolarEdgeAPI.pm" oder mittels Neustart von fhem geladen werden. Ggf. muss das Perl JSON Modul installiert werden.

Der Befehl um ein SolarEdgeAPI-Device anzulegen lautet:

define <name> SolarEdgeAPI <API-Key> <SiteId> <Interval (optional)>
Was muss ich beachten?
Ich bin kein ausgewiesener Perl-Progammierer, nur weil das Modul bei mir läuft, muss das nicht heißen, dass es nicht Fehler verursachen oder die FHEM-Instanz zum Abstürzen bringen kann.
SolarEdge gibt ein Limit von 300 Abrufen pro Tag, welches Intervall sich da am besten eignet, muss man austesten.

Und wenn mal was nicht funktioniert?
Ich versuche gerne zu helfen. Entweder Ihr meldet Fehler oder Verbesserungsvorschläge hier oder auf github https://github.com/felixmartens/fhem. Je nachdem wie es meine Zeit zulässt werde ich versuchen mich zu kümmern.



v0.0.1 (03.08.2018) : Erstes Release auf neuer CodeBasis
Download im Anhang.
« Letzte Änderung: 03 August 2018, 18:51:29 von felixm »

Offline kingmathers

  • Full Member
  • ***
  • Beiträge: 206
Antw:Modul: SolarEdge API Abruf
« Antwort #1 am: 06 August 2018, 01:37:57 »
Ich kriege meine SolarEdge Anlage in den nächsten Wochen und werde es dann gerne ausprobieren. Vielen Dank für die Mühe!

Energiefluss Netz kann dann wahrscheinlich positiv oder negativ sein oder? Also ich kann sehen ob (und wie viel) ich gerade einspiese oder ob ich zusätzlichen Strom aus dem Netz beziehe?
Raspberry Pi B+, FS20, 1-Wire, HM

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Antw:Modul: SolarEdge API Abruf
« Antwort #2 am: 13 August 2018, 00:23:47 »
Genau, der Energiefluss Netz und Batterie können negativ und positiv sein je nachdem ob Bezug oder Einspeisung erfolgt.

Offline cocojambo

  • Full Member
  • ***
  • Beiträge: 396
Antw:Modul: SolarEdge API Abruf
« Antwort #3 am: 16 August 2018, 19:38:26 »
Ich habe bereits meine SolarEdge Anlage mit 5Kw Inverter und der 10KW LG-Batterie auf AC Basis. Ich beschäftige mich zur Zeit damit die einzelnen Werte aus dem Inverter mit dem Modbus auszulesen. Was mich daran noch stört, ist das der Inverter keine Summen der Lade- und Entladeenergie bereitstellt, sondern die müßte man dann selbst aufadieren. Es gibt zwar einen Import und Export Batterie Counter, aber der setzt sich in dem Moment zurück wenn der Status der Batterie sich ändert.
Ist das denn mit der API anders? Gibt es da denn aufadierte Summen? Dann könnte ich die zusätzlich zu den SolarEdge Daten und den SolarLog Daten der Wechselricher zur Auswertung nutzen und zu bestimmten Zeiten abrufen.
Alles andere funktioniert schon einiger Massen.
Gruß aus Köln
Norbert
FHEM5.8|FB7490|FB3370|3xraspi|2xHM-LAN-CFG|CUL868 v3|CUNO868 V1.55|HUE-Bridge|Harmony-Hub|5xHM-LC-Sw-PI-2|3xHM-WDS30-T2-SN|1xHM-LC_Sw4-DR| 3xF20S20|2xFS20S4|8xFS20ST|7xFS20SIG2|2xFS20S4U|2xFS20SU|6xFS20KSE|2xFS20DI|2xFS20SM8|2xFS20WS|3xS300TH|1xASH2200|1xEM1000

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Antw:Modul: SolarEdge API Abruf
« Antwort #4 am: 16 August 2018, 20:45:07 »
Aktuell wird der Status und die aggregierten Summen und abgerufen. Bei den Summen wird aktuell jeweils die Tagessumme und die der letzten 15 min für Netzbezug, Eigenverbrauch etc. angezeigt. Aber auch Monats und Jahresssumme ließen sich realisieren.
Dafür hätte ich im Gegenzug Interesse an der Modbus Konfiguration wegen der höheren zeitlichen Auflösung ;)

Offline kmidt

  • New Member
  • *
  • Beiträge: 23
Antw:Modul: SolarEdge API Abruf
« Antwort #5 am: 24 August 2018, 11:40:44 »
Mega, danke für Deine Mühe. Werde das mal testen, sobald ich API-Key von meinem Monteur bekommen habe.
Habe leider keinen Adminaccount

Offline kmidt

  • New Member
  • *
  • Beiträge: 23
Antw:Modul: SolarEdge API Abruf
« Antwort #6 am: 27 August 2018, 14:48:32 »
Hi !!

Es habe es ausprobiert. Lief 2 Tage super.

jetzt bekomme ich folgenden Fehler :

   429

Error malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<ht...") at ./FHEM/70_SolarEdgeAPI.pm line 409

Offline Bengt79

  • Newbie
  • Beiträge: 1
Antw:Modul: SolarEdge API Abruf
« Antwort #7 am: 27 August 2018, 23:10:53 »
Moin moin,

da ich neuer Besitzer einer wundervollen Photovoltaik-Anlage mit Wechselrichter der Firma SolarEdge bin, wollte ich natürlich auch die Daten
in mein FHEM ziehen.....
die API ist installiert, API und Location vom Installateur erhalten...
Fehler 403 scheint auf zuviele Anfragen oder falsche Daten hinzuweisen, korrekt ?
Leider kann ich den API-Key nicht prüfen, da ich kein Admin-User besitze....
kann ich etwas anderes als Fehler ausschliessen ?

LG
Björn

Lösung: Neuer API-Key hat geholfen..... da war wohl jemand beim Installateur ein wenig zu schnell... :D
« Letzte Änderung: 31 August 2018, 15:07:22 von Bengt79 »

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Antw:Modul: SolarEdge API Abruf
« Antwort #8 am: 03 September 2018, 18:44:37 »
Erstmal sorry für die späte Antwort, ich würde irgendwie nicht informiert.
Zu den Fehler codes:
Zitat
Specific API Usage Limitations
Specific APIs may enforce different usage limitations based on parameters sent by the client. Refer to the next sections for
details on specific API usage limitations.
If there is a violation of a specific API validation, the HTTP 403 – forbidden status code is returned.
Daily Limitation
Use of the monitoring server API is subject to a query limit of total 300 requests for a specific account token and a specific site ID
from the same source IP.
APIs that do not have a specific ID (e.g. Site List, Account List) will be counted as part of the total query limit.
For example, a user can execute 10 daily site list (account level) API calls, and then 290 API calls for every site in the account (e.g.
290 calls using the account token for “siteId 12345”and 290 calls using the account token for ”siteId 12346”).
An additional request to site 12345 or 12346 will result in HTTP 429 error – too many requests. .
Concurrency Limitation
The monitoring server API allows up to 3 concurrent API calls from the same source IP. Any additional concurrent calls will return
HTTP 429 error – too many requests.
To execute APIs concurrently without exceeding the above limitation, it is the client responsibility to implement a throttling
mechanism on the client side.
       

403 scheint eine nicht autorisierte Nutzung zu sein. Zu viele requests sollten 429 werfen.

Ich würde ja tippen dass du das poll-delay zu kurz gewählt hast und deshalb zu viele Anfragen raus gehen. Virtuos mal auf auto stellen?
Außerdem Bitte prüfen von wann die Fehlermeldung ist. Es wird im Reading immer die letzte Fehlermeldung angezeigt. Bitte schau doch mal wann das reading zuletzt aktualisiert wurde. Und mal gegeprüfen ob die anderen Readings danach wieder aktualisiert wurden.

Wenn das alles weiterhin auf ein Problem hinweist würde ich  versuchen das Modul neu einzurichten. Ggf den API Abruf per Hand im Browser zu testen und zu sehen ob da auch ein Fehler angezeigt wird.


Ggf merke doch doch mal mit den Ergebnissen der weiteren Untersuchung zurück.

Grüße Felix
« Letzte Änderung: 03 September 2018, 18:46:33 von felixm »

Offline marcus5020

  • New Member
  • *
  • Beiträge: 13
Antw:Modul: SolarEdge API Abruf
« Antwort #9 am: 04 September 2018, 16:39:21 »
Hallo !

Wie macht ihr das mit dem Fehler 429 - "too many requests" - bei mir funktioniert´s, wenn ich die Abfrage auf 120 sec. stelle - aber dann wird halt auch die Anzeige in FTUI nicht wirklich "online" dargestellt und man kann nicht wirklich gut entscheiden, ob momentan "genug Energie runterkommt" ...
Automatisch den API-Key ändern wäre fein, aber das geht wohl nicht ...

Hat sonst jemand Ideen oder Vorschläge ?
Vielen Dank
Marcus

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Antw:Modul: SolarEdge API Abruf
« Antwort #10 am: 04 September 2018, 21:24:54 »
Hi ich gebe mich momentan mit dem aktualisieren alle 3min zufrieden. Ich weiß gar nicht wie oft die Daten in der API von WR aktualisiert werden. Ich glaube echtes live wird nur pet Modbus gehen. Wenn 120sec geht kann man ggf noch mehr rausholen wenn man nachts nachts seltener abruft. Das macht das Modul ja wenn delay auf auto steht allerdings war ich da noch vorsichtig mit 210sec tagsüber und 900 nachts. Ich werde das mal testen mit kleineren Zahlen.

Offline kmidt

  • New Member
  • *
  • Beiträge: 23
Antw:Modul: SolarEdge API Abruf
« Antwort #11 am: 17 September 2018, 23:58:19 »
Was ist mit virtuos auf Auto stellen gemeint ?
Wo macht man das und was bewirkt es ?

Offline felixm

  • New Member
  • *
  • Beiträge: 15
Antw:Modul: SolarEdge API Abruf
« Antwort #12 am: 18 September 2018, 00:54:57 »
Sorry ich habe mich da etwas undeutlich ausgedrückt. Es geht ums das Attribut interval. Damit kann entweder eine feste Sekundenzahl als Intervall eingestellt werden oder auto um tagsüber alle 210 und nachts alle 900sec abzurufen. Einzustellen zB mit attr SolarEdgeWR interval auto.
Die 210 und 900 ergeben sich so dass man in 24h auf 300 Abfragen kommt, das ist laut Dokumentation die Grenze.

 

decade-submarginal