Odczyt danych z falownika Fronius

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

A jest szansa na uruchomienia tez innych falowników?
Posiadam falownik FRONIUS, dostęp do parametrów jest bez loginu i hasła.

Można też pobierać parametry parsując JSON'a. Parametry są pod stałym linkiem "http://IP_FALOWNIKA/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"

Kod: Zaznacz cały

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid = "SSIDI";
const char* password = "password";

void setup () {

  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {

    delay(1000);
    Serial.println("Connecting..");
  }
  Serial.println("Connected..");
}

void loop() {

  if (WiFi.status() == WL_CONNECTED) { 

    HTTPClient http; 

    http.begin("http://IP_FALOWNIKA/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"); 
    int httpCode = http.GET();                                                             

    const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 60;

    DynamicJsonDocument doc(capacity);

    String payload = http.getString();   //Get the request response payload

    deserializeJson(doc, payload);
    
    JsonObject Body_Data = doc["Body"]["Data"];
    
    Serial.println("JSON print..");
    float Body_Data_DAY_ENERGY_Value = Body_Data["DAY_ENERGY"]["Value"];
    Serial.print("Ernergia: ");
    Serial.println(Body_Data_DAY_ENERGY_Value);

    int Body_Data_PAC_Value = Body_Data["PAC"]["Value"];
    Serial.print("Bieżąca moc całkowita: ");
    Serial.println(Body_Data_PAC_Value);
    Serial.println("JSON end print..");
    Serial.println("");

    http.end(); 
  }
  delay(10000);
}
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

bigthomas pisze: pn lis 02, 2020 4:17 pm A jest szansa na uruchomienia tez innych falowników?
Posiadam falownik FRONIUS, dostęp do parametrów jest bez loginu i hasła.
A jest szansa abyś wystawił falownik na jakimś publicznym ip? Jeśli tak, to podeślij na priv.
Widzimy się na Supla Offline Party vol. 2 :!:
Fryga
Posty: 49
Rejestracja: wt paź 13, 2020 5:57 pm
Lokalizacja: Mińsk Mazowiecki

@klew

mogę ci podesłać na priv to co ja wyciagnałem w Json z Froniusa. Sam falownik daje sporo informacji, najwięcej równie ciekawych do zarządzania energią (konsumpcja/produkcja/wynik) daje Fronius Smart Meter. Ze względu na cenę nie wziąłem go bo chcieli 1500netto plus instalacja a on też pluje danymi. Myślę że zastosuję hybrydowe podejście:
1. Licznik Zamel który mam i testuję w domu podłączę na wyjściu za licznikiem - da mi to samo za ok 2,5 - 3 razy mniej a już jest w Supla.
2. wlasnie opracowana ta metoda, na którą czekam ewentualnie pomogę.

Gdyby była taka metoda do wrzucenia danych z niego do supli, może niekoniecznie odpytywać co kilka sekund via RESTAPI ale wystarczy co minutę.
Ja u siebie wyłączyłem usypianie w nocy dataloggera (karty komunikacyjna froniusa), jak produkuje to i ma zużywać kilkanaście Wh.

Wysyłam na priv resztę danych, jak będzie trzeba to wystawię ci łącze via VPN do mojej podsieci bo niechciałbym wystawiać do DMZ falownika.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Fryga pisze: wt lis 03, 2020 6:09 pm
Ok, dzięki. Mam już dostęp do jednego falownika, więc spróbuję do tego usiąść na dniach.
Widzimy się na Supla Offline Party vol. 2 :!:
Fryga
Posty: 49
Rejestracja: wt paź 13, 2020 5:57 pm
Lokalizacja: Mińsk Mazowiecki

Mój jeszcze jest nieprodukcyjny ze względu na dłuuuugie oczekiwanie wymiany licznika na 2kierunkowy.

Ale jak będziesz miał bin beta. Chętnie podejdę do tematu i go odpalę wraz z falownikiem.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Fryga pisze: czw lis 05, 2020 7:57 pm Mój jeszcze jest nieprodukcyjny ze względu na dłuuuugie oczekiwanie wymiany licznika na 2kierunkowy.

Ale jak będziesz miał bin beta. Chętnie podejdę do tematu i go odpalę wraz z falownikiem.
Jeśli dobrze pójdzie, to jutro będzie to gotowe. Tylko nie robię binów gotowych. Będzie przykład dodany do biblioteki do samodzielnej kompilacji w Arduino IDE.
Mogę pomóc z postawieniem środowiska Arduino IDE (o ile go nie masz zainstalowanego) oraz z kompilacją. Ewentualnie może ktoś na forum poratuje przygotowując bina ;)
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

bigthomas pisze: pn lis 02, 2020 4:17 pm
Fryga pisze: wt lis 03, 2020 6:09 pm
Wrzuciłem na mojego brancha (https://github.com/klew/arduino) odczytywanie danych z falownika Fronius.
Czytamy: całkowitą produkcję energii, prąd, napięcie, częstotliwość oraz moc (wszystkie parametry po stronie AC).

Jest też przykład w Arduino IDE dodany.
Aktualnie odczyt jest co 15s, ale dodam opcję zmiany tego czasu. Licznik pokazuje energię jako "pobór" - będzie też dodana opcja zmiany na "energia zwrócona".

Licznik daje możliwość odczytu również parametrów po stronie DC. Niestety za bardzo te dane na chwilę obecną nie pasują do licznika elektrycznego w Supli

@pzygmunt, może dałoby radę zrobić kanał dedykowany falownikom? Można by wtedy pokazywać prąd, napięcie po stronie AC oraz DC. Aktualny kanał można by do tego wykorzystać i w drugiej fazie podawać parametry DC, ale niestety parametr "frequency" jest kopiowany na widok wszystkich faz.

Sam odczyt danych jest z ręcznym parsowaniem jsona. Ponownie - nie chciałem dodawać dependencji do zewnętrznych bibliotek, a druga sprawa to oszczędzanie pamięci. Mój "parser" ma bufor na 80 bajtów ;). Co prawda, nie jest to parser, ale robotę robi.
Screenshot_20201106-144222.jpg
Screenshot_20201106-144222.jpg (65.08 KiB) Przejrzano 5539 razy
Widzimy się na Supla Offline Party vol. 2 :!:
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

Na ESP8266 kompiluje się i działa... pełne testy dopiero jutro bo dziś juz pochmurnie i ciemno.
Ale na ESP32 niestety w serialu dochodzi do momentu próby łączenia się z siecią:

Kod: Zaznacz cały

15:38:17.849 -> Rebooting...
15:38:17.849 -> ets Jun  8 2016 00:22:57
15:38:17.849 -> 
15:38:17.849 -> rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
15:38:17.889 -> configsip: 0, SPIWP:0xee
15:38:17.889 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
15:38:17.889 -> mode:DIO, clock div:1
15:38:17.889 -> load:0x3fff0018,len:4
15:38:17.889 -> load:0x3fff001c,len:1216
15:38:17.889 -> ho 0 tail 12 room 4
15:38:17.889 -> load:0x40078000,len:9720
15:38:17.889 -> ho 0 tail 12 room 4
15:38:17.889 -> load:0x40080400,len:6352
15:38:17.889 -> entry 0x400806b8
15:38:18.127 -> Supla - starting initialization
15:38:18.127 -> Validating storage state section with current device configuration
15:38:18.167 -> Initializing network layer
15:38:18.167 -> WIFI: establishing connection with SSID: "SSID_NAZWA"
15:38:18.247 -> Using Supla protocol version 12
15:38:18.247 -> Current status: [7] SuplaDevice initialized
15:38:18.247 -> Current status: [21] No connection to network
15:39:23.341 -> Connection fail counter overflow. Trying to setup network interface again
15:39:23.341 -> WIFI: establishing connection with SSID: "SSID_NAZWA"
15:39:23.341 -> wifi Station disconnected
15:39:23.341 -> wifi Station disconnected
15:40:28.441 -> Connection fail counter overflow. Trying to setup network interface again
15:40:28.441 -> WIFI: establishing connection with SSID: "SSID_NAZWA"
15:40:28.441 -> wifi Station disconnected
15:40:28.441 -> wifi Station disconnected
15:40:28.441 -> wifi Station disconnected
Testy robię z tego samego miejsca dla ESP32 i ESP8266 więc to nie brak dostępu do sieci.
Zresztą siła sygnału na ESP8266 pokazuje na 90%.
Sprawdzałem dwie różne płytki ESP32 i to samo, inne projekty dot. supli na tym ESP działały OK.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

bigthomas pisze: pt lis 06, 2020 2:45 pm Testy robię z tego samego miejsca dla ESP32 i ESP8266 więc to nie brak dostępu do sieci.
Zresztą siła sygnału na ESP8266 pokazuje na 90%.
Sprawdzałem dwie różne płytki ESP32 i to samo, inne projekty dot. supli na tym ESP działały OK.
Na esp32 nie sprawdzałem.
Tam jest ogólnie problem z tymi timerami, więc w zasadzie wszystko się może zdarzyć. Jeśli coś działało to przez przypadek i równie dobrze może przestać działać ;).
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”