NEWS
Sonnenbatterie
-
Hallo,
ich finde einfach nicht, wie ich die Daten meiner Sonnenbatterie (Sonnen GmbH) auslesen und in ioBroker visualisieren kann.
Gibt es Lösungen in der Forumgemeinde? Für Hilfe wäre ich sehr dankbar.
Ein Newbie…
Daniel Golze
-
Hi,
Das ist immer abhängig vom Hersteller und welche Schnittstelle zur Verfügung steht.
Die meisten Anlagen unterstützen Modbus, schau Mal in die Dokumentation deiner anlage
Sent from my iPhone using Tapatalk
-
Hallo, ich besitze selbst leider keine Sonnenbatterie. Setze bei mir auf die Technik von SMA.
Je nach Produkt/Version kann man die Sonnenbatterie entweder
a) über eine RESTful API im heimischen Netzwerk auslesen:
http://<ip_adresse_der_sonnenbatterie>:7979/rest/devices/battery/<parameter></parameter></ip_adresse_der_sonnenbatterie>
EInige Werte für <parameter>sind bekannt:
M03 - Leistung Erzeugung in Watt M04 - Leistung Verbraucher in Watt M05 - State Of Charge (Ladezustand) bezogen auf die Bruttokapazität in % M06 - Betriebsart M07 - Verbrauch der Phasen L1 M08 - Verbrauch der Phasen L2 M09 - Verbrauch der Phasen L3 M10 - max. Verbrauch der Phasen L1 M11 - max. Verbrauch der Phasen L2 M12 - max. Verbrauch der Phasen L3 M34 - Entladeleistung der Sonnenbatterie in Watt M35 - Ladeleistung der Sonnenbatterie in Watt
Betriebsarten (aus M06), alles im Automatikmodus:
10 - Standby 11 - Erhaltungsladung (Zwangsladung bei 0% Ladezustand) 13 - Laden 15 - Entladen ... - ???
oder b) bei neuere Produkten bekommt man unter
http://<ip_adresse_der_sonnenbatterie>:8080/api/v1/status</ip_adresse_der_sonnenbatterie>
ein JSON mit Werten zurück. Dazu findest Du u.a. im https://homematic-forum.de/forum/viewtopic.php?f=26&t=42786 mehr Informationen.
Hast Du schon mal a) oder b) ausprobiert?</parameter>
-
Folgendes ist mir noch über den Weg gelaufen:
API Control Settings
The Sonnen eco 8 Single Phase offers connection to a DRED via a URL port (either Device IP as per a VPN connection or via the local IP Address known as Rest API. Each request and response is HTTP 1.1 compliant.
The primary URL is described as follows:
http://[DEVICE_IP]:8080/api[PATH]
• DEVICE_IP – Device IP is the VPN or Local Network IP Address of the device.
• PATH – Path is the based on the type of request
The charging/discharging power of the sonnen system can be controlled by setting a setpoint in watts. The HTTP PUT method is used to set the set point of the battery system. The corresponding value of set point either charge or discharge is kept until battery receives a new charging or discharging value.
• Charging Path - api/setpoint/charge/[value]
• Discharging Path - api/setpoint/discharge/[value]
An example of HTTP PUT request is shown below:
curl -v -X PUT http://192.168.33.185:8080/api/v1/setpoint/charge/1000 curl -v -X PUT http://192.168.33.185:8080/api/v1/setpoint/discharge/1000 PUT /api/v1/setpoint/charge/1000 HTTP/1.1 User-Agent: curl/7.35.0 Host: 192.168.33.185:8080 Accept: */* HTTP/1.1 200 OK Content-Length: 18 Content-Type: text/html; charset=UTF-8
The system status can be retrived by using an HTTP GET method. The return response is in JSON format.
• Status Path - api/status
The system status options are as follows;
Name Description Consumption_ W House comsumption in watts Production_W PV Production in watts Pac_total_W Inverter AC Power greater than ZERO is discharging Inverter AC Power less than ZERO is charging RSOC Relative state of charge USOC User state of charge Fac AC frequency in hertz. Uac AC voltage in volts Ubat Battery volatge in volts Timestamp System time IsSystemInstalled System is installed or not
An example of HTTP GET request is shown below:
curl -v -X GET http://192.168.33.185:8080/api/v1/status GET /api/v1/status HTTP/1.1 User-Agent: curl/7.35.0 Host: 192.168.33.185:8080 Accept: */* HTTP/1.1 200 OK Content-Length: 151 Content-Type: application/json { "Consumption_W": 0, "Fac": 0, "IsSystemInstalled": 1, "Pac_total_W": 0, "Production_W": 0, "RSOC": 0, "Timestamp": "2016-06-13 11:52:20", "USOC": 0, "Uac": 0, "Ubat": 0 }
The system return codes to a request response are as follows;
Return Code Description 0 Request successfully received 5 Invalid request path 13 Internal error 16 Invalid HTTP method
-
Super und vielen Dank für eure Hilfe.
Variante a) funktioniert. Da bekomme ich über meinen Webbrowser Ergebnisse angezeigt. Ein guter Schritt in die richtige Richtung.
Variante b) geht nicht. Da bekomme ich die Meldung, dass die Webseite nicht erreichbar ist.
Jetzt muss ich das nur noch über ioBroker visualisieren.
Gibt es da Tipps?
So ist es, wenn man auf die 50 zugeht und sich für solch einen Mist interessiert… :lol:
-
Willkommen im Club.
Hast Du mal einige Beispielausgaben? Im Forum findest du Skripte, die etwas ähnliches machen, wenn Du z.B. die Stichworte „http request einlesen“ in die Suche eingibst.
Das hier könnte auch ein Ansatz sein: viewtopic.php?f=32&t=10222&p=109090#p109511
-
http://192.168.2.xxxx:7979/rest/devices/battery/M04
dann schreibt er mir:
434.3
Das ist echt cooool…
-
Schau mal als Beispiel https://github.com/feross/simple-get an. Dort das Beispiel mit dem Titel „even simpler GET request“.
PS: Es sind halt nur Momentanwerte. Wenn sie dann mal in der ioBroker-Historie stehen, kannst Du sie mit dem Flot-Adapter als Diagramm anzeigen lassen. Tages- oder Monatswerte müsstest Du in Näherung berechnen oder einen zusätzlichen Stromzähler einbauen.
-
Zu meinem Leidwesen muss ich gestehen, dass ich null-Ahnung von Scripten habe und mich damit erst jetzt beschäftigen möchte. Kann ja nicht so schwer sein…
Kann mir vielleicht jemand anhand des Parameters http://192.168.2.13:7979/rest/devices/battery/M03 Schritt für Schritt erläutern, wie das anstelle? Den Adapter Simple-Get habe ich im ioBroker.
Wenn ich solche Dinge ersteinmal verstanden habe, dann klappt das meistens auch.
Derzeit ist mein ioBroker auf meinem Server (Windows Home Server) angesiedelt. Ich habe aber einen neuen Raspberry zu liegen, bei dem ich eigentlich Homematic installieren wollte (dauert noch wegen des fehlenden Homegear Addons für CCU3).
Entschuldigt bitte, dass ich hier nerve...
-
Kuck Dir den Adapter "Parser" an. Da kann man URLs eingeben, von denen Werte alle x Zeiteinheiten gelesen werden. Anschließend werden die gewünschten Werte in ioBroker Objekte geschrieben. Und die kannst Du dann später auswerten, sei es als einzelner Wert oder als Verlauf mittels History und Flot o.ä.
-
da baut gerade foxriver76 nen adapter für