NEWS
Sunny Webbox auslesen
-
Hi
Leider kann mein Wechselrichter kein Modbus
Deshalb habe ich mir mit node-red beholfen. Gerne teile ich hier meinen (kurzen) Flow:
! ````
[{"id":"26209696.d9df6a","type":"inject","z":"b91b12a6.46e4f","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":true,"x":106.5,"y":117,"wires":[["79922db.f866dd4"]]},{"id":"e341827d.1cbe8","type":"function","z":"b91b12a6.46e4f","name":"Response","func":"var data = JSON.parse(msg.payload);\nvar topic = "node-red.0.SunnyWebBox";\n\nvar values = [\n {\n topic: topic + ".GriPwr",\n payload: Math.round(data.result.overview[0].value)\n },\n { \n topic: topic + ".GriEgyTdy",\n payload: Math.round(data.result.overview[1].value * 100) / 100\n },\n { \n topic: topic + ".GriEgyTot",\n payload: Math.round(data.result.overview[2].value / 10) / 100\n },\n msg\n];\n\nreturn values;","outputs":"3","noerr":0,"x":442.5,"y":117,"wires":[["5271e047.ad8e2"],["31139304.ceec6c"],["d0741014.2f8bf"]]},{"id":"5271e047.ad8e2","type":"ioBroker out","z":"b91b12a6.46e4f","name":"GriPwr","topic":"","ack":"true","autoCreate":"true","x":657.5,"y":55,"wires":[]},{"id":"31139304.ceec6c","type":"ioBroker out","z":"b91b12a6.46e4f","name":"GriEgyTdy","topic":"","ack":"true","autoCreate":"true","x":667.5,"y":117,"wires":[]},{"id":"d0741014.2f8bf","type":"ioBroker out","z":"b91b12a6.46e4f","name":"GriEgyTot","topic":"","ack":"true","autoCreate":"true","x":667.5,"y":180,"wires":[]},{"id":"79922db.f866dd4","type":"http request","z":"b91b12a6.46e4f","name":"Request","method":"GET","ret":"txt","url":"http://192.168.188.20/smarthome/sunny.php","x":268.5,"y":117,"wires":[["e341827d.1cbe8"]]},{"id":"643bc7fa.9bc438","type":"comment","z":"b91b12a6.46e4f","name":"Sunny Webbox Adapter","info":"","x":133,"y":61,"wires":[]}]Der eigentliche Request geschieht über ein PHP-Script um das "Cross-origin resource sharing (CORS)" zu umschiffen. >! ```` "1.0", 'proc'=>"GetPlantOverview", 'id'=>"1", 'format'=>"JSON" ); >! request($webboxip,$GetPlantOverview); >! function request($webboxip,$requestarray) { $request = json_encode($requestarray); >! $request = 'RPC='.rawurlencode($request); >! $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, "http://".$webboxip."/rpc"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_HEADER , 0); curl_setopt($ch, CURLOPT_POST, 1 ); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); >! $response = curl_exec ($ch); if (curl_errno($ch)) { $err=1; $errtext = curl_error($ch); } curl_close($ch); >! echo $response; }
Ich denke, das sollte alles selbsterklärend sein. Falls nicht, fragen
Gruß,
Frank
-
Hi, das hört sich ja sehr vielversprechend an!!! Ich hab auch ne Webbox und kann kein Modbus verwenden. Aber eine Frage hab ich zu der ganzen Geschichte. Ich habe die Datei sunny.php angelegt, wo muss ich die hinpacken damit ich da dran komme? Danke
-
Ich noch mal, mit der Datei hat das schon mal geklappt. Jetzt bekomme ich aber eine Fehermeldung. "SyntaxError: Unexpected token". Muss ich noch irgendwas zusätzlich installieren damit die php Datei ausgeführt wird? Das sind im Moment für mich noch bömische Dörfer :?
-
Hi
Nee, da muss sonnst nix mehr installiert werden (php scheint ja bei dir zu laufen). Wird denn ein korrekter json-String im Browser ausgegeben, wenn du die sunny.php direkt aufrufst?
So sollte das aussehen:
{"format":"JSON","result":{"overview":[{"unit":"W","meta":"GriPwr","name":"GriPwr","value":"0"},{"unit":"kWh","meta":"GriEgyTdy","name":"GriEgyTdy","value":"0"},{"unit":"kWh","meta":"GriEgyTot","name":"GriEgyTot","value":"37422.605"},{"unit":"","meta":"OpStt","name":"OpStt","value":""},{"unit":"","meta":"Msg","name":"Msg","value":""}]},"proc":"GetPlantOverview","version":"1.0","id":"1"}
Gruß,
Frank
-
Moin. Das ich php brauche hab ich mir dann im nachhinein auch gedacht. Ich hab dann lighttpd mit php5 installiert. Ob ich das so richtig gemacht habe weiß ich nicht, läuft ja nicht. Die Frage ist, wie da die richtige Vorgehensweise ist. Wie hast Du das mit php gemacht? Wenn ich die sunny.php im Browser aufrufe tut sich auch nichts. Weißer Bildschirm.
-
Also das PHP-Script liefert keine Rückmeldung. Evtl. ist die Curl-Extension nicht installiert. Mache mal eine info.php mit dem Inhalt:
und schau mal ob das alles so passt (cURL support). Auch mal ins Log vom Webserver schauen.
Oder nimm Xampp - da ist alles mit an Bord
https://www.apachefriends.org/de/index.html
Ansonsten Zeile für Zeile durchquälen und jeweils mal die Variablen ausgeben (echo oder print_r).
Die Rückgabe sollte wie oben dargestellt als JSON-String erfolgen.
Gruß,
Frank
-
Ok, danke. info.php ging gestern auch, ich glaube das die Curl-Extension nicht installiert ist. Ich probier das nachher mal. ioBroker läuft übrigens auf einem Cubietruck. Ich kenn Xampp nur für Windows, läuft das da auch?
-
Kann ich dir nicht genau sagen, da ich selbst auch Windows einsetze. Aber es gibt ja ein Paket für Linux…einfach mal probieren. Oder die Curl-Extension nachinstallieren...
Und wenn dann alles läuft, könnte das so aussehen
1006_2016-01-26_11_22_49-smarthome.png -
Hey das macht ja nen richtig Guten!!!
So in der Art habe ich mir das auch gedacht. Ich denke ich werde das erst mal mit der Curl-Extension ausprobieren. Ich will da nicht so viel rumtesten, sonst muss ich die ganze Kiste nachher neu machen. Läuft alles gerade so schön.
Ich habe an der Webbox 2 Wechselrichter, da sollte ich doch auch an die jeweiligen Werte kommen?
Deine Uhr mit dem Datum gefällt mir
Womit (und wie) hast Du das Diagramm gemacht? Fragen über Fragen :roll:
Gruß,
Andre
-
Diagramm wurde mit dem Flot-Adapter von iobroker gemacht.
-
Hi Frank, et fluppt!!!
Ich hab alles noch mal runtergeworfen, lighttpd, php und die curl-extension installiert. Ging auf anhieb!!! :mrgreen: Jetzt muss ich nur noch rausfinden wie ich an die Werte der beiden Wechselrichter komme.
Könntest Du mir eventuell posten wie du das mit dem Flot Adapter genau gemacht hast?
Danke noch mal für die Hilfe
Gruß,
Andre
-
Hi,
Ich bin auch daran interessiert meinen SMA Wechselrichter STP 6000 TL 20 mit Sunny Homemanager auszulesen.
Darf ich fragen welche Wechselrichter und welche Webbox genau ihr habt?
Laut Mailverkehr mit SMA funktioniert Modbus doch mit der Web Connect Box, siehe hier:
http://forum.iobroker.de/viewtopic.php? … f3a#p18859
Danke und Gruß
-
Hi Frank, et fluppt!!!
Ich hab alles noch mal runtergeworfen, lighttpd, php und die curl-extension installiert. Ging auf anhieb!!! :mrgreen: Jetzt muss ich nur noch rausfinden wie ich an die Werte der beiden Wechselrichter komme.
Könntest Du mir eventuell posten wie du das mit dem Flot Adapter genau gemacht hast?
Danke noch mal für die Hilfe
Gruß,
Andre `
Hi
Installier dir mal einen der beiden History-Adapter. Dann gibts unter Objekte bei den den Datenpunkten einen neuen Button (Uhrsymbol). Draufklicken und aktivieren/konfigurieren.
Dann kann man in der Flot-Instanz (Link unter Titel) diesen Datenpunkt auswählen. Dann den generierten Link als iFrame in das Webinterface einbinden (wie das Einbinden im vis geht weiß ich jetzt nicht - ich benutze ja eine Eigenentwicklung, sollte dort aber noch einfacher sein).
Gruß,
Frank
3435_screenshot__48_.png -
Hi,
Ich bin auch daran interessiert meinen SMA Wechselrichter STP 6000 TL 20 mit Sunny Homemanager auszulesen.
Darf ich fragen welche Wechselrichter und welche Webbox genau ihr habt?
Laut Mailverkehr mit SMA funktioniert Modbus doch mit der Web Connect Box, siehe hier:
http://forum.iobroker.de/viewtopic.php? … f3a#p18859
Danke und Gruß `
Hallo
Wechselrichter ist ein SB4200TLHC und die "ganz normale" Sunny Webbox ohne Bluetooth.
Soweit ich weiß bei der Webbox grundsätzlich ja, aber der Wechselrichter muss das auch unterstützen. Bin mir aber nicht sicher - hat jedenfalls mit meiner Anlage nicht geklappt
Gruß,
Frank
-
Ich habe auch die normale Webbox und meine Wechselrichter können auch kein Modbus. Die Lösung von Frank funktioniert Prima. Ich würde halt nur gerne die Leistung der einzelnen Wechselrichter (ich hab 2) zusätzlich ausgeben. Da komm ich aber nicht weiter.
Flot funktioniert mitlerweile auch.
-
Ok.
Danke für die Infos. Dann werde ich versuchen das auch mal umzusetzen sobald ich Zeit habe.
Gruß
-
Kann ich dir nicht genau sagen, da ich selbst auch Windows einsetze. Aber es gibt ja ein Paket für Linux…einfach mal probieren. Oder die Curl-Extension nachinstallieren...
Und wenn dann alles läuft, könnte das so aussehen
`
Hi,
kann mir wer sagen wie ich den Flot Adapter einstellen muss damit er mir die Kurve so zeichnet?
Also die Hauptlinie scheinbar etwas kräftiger und das gefüllte etwas schwächer.
Ich benutze für meine Views den "Carbon Fibre" Hintergrund. Kann ich den auch irgenwie im Flot Adapter für die Charts verwenden?
Danke und Gruß
-
Moinmoin, ging ja hier leider nicht weiter. Gibt es schon neue Erkenntnisse? Ich komm immer noch nicht an die Werte der einzelnen WR. Das mit dem Flot Adapter würde mich auch interessieren.
Kann ich dir nicht genau sagen, da ich selbst auch Windows einsetze. Aber es gibt ja ein Paket für Linux…einfach mal probieren. Oder die Curl-Extension nachinstallieren...
Und wenn dann alles läuft, könnte das so aussehen
`
Hi,
kann mir wer sagen wie ich den Flot Adapter einstellen muss damit er mir die Kurve so zeichnet?
Also die Hauptlinie scheinbar etwas kräftiger und das gefüllte etwas schwächer.
Ich benutze für meine Views den "Carbon Fibre" Hintergrund. Kann ich den auch irgenwie im Flot Adapter für die Charts verwenden?
Danke und Gruß `
-
Hi,
habe leider noch keine Lösung zum Flot Adapter gefunden/bekommen.
Hast du SMA Wechselrichter? Viele sind nach Firmware Updates Modbus fähig.
Gruß
Mirko
-
habe leider noch keine Lösung zum Flot Adapter gefunden/bekommen. `
Schade, eventuell könnte uns ja jemand einen Tipp gebenHast du SMA Wechselrichter? Viele sind nach Firmware Updates Modbus fähig. `
Ja, ich hab 2 SMA Wechselrichter und eine Webbox. Über Modbus komme ich an die Daten der Webbox (Gesamtertrag der Anlage usw.) Ich komm aber nicht an die einzelnen WR Daten dran.