Monitoring farmy solarnej SofarSolar

Tylko na tych platformach to działa, załóż konto na https://home.solarman.cn/main.html a na wszystkich poniżej będzie będzie już ok

m.ginlong.com

myevolvecloud.com/main.html

https://home.solarman.cn/main.html

1 polubienie

Cześć,
Postanowiłem zrobić to samo i:

  1. Po sprawdzeniu url: http://192.168.1.15/status.html nie widzę zmiennych, za to mam dziwnie formatowaną stronę:
    image
  2. Nawet po wpisaniu jednej konfiguracji w HA mam błąd składni:
    Invalid config for [sensor.scrape]: invalid template (TemplateSyntaxError: unexpected char ‘’’ at 19) for dictionary value @ data[‘value_template’]. Got ‘‘{{ (( value.split(’’;’’)[7] ) | replace (’‘var webdata_total_e = ‘’,’’’’) |replace(’’"’’, ‘’’’)|float ) }}’’. (See ?, line ?).
    Czy to jakiś banał, czy może coś więcej? Dzięki za pomoc.

możesz pobierać dane prosto z falownika playforma scrape
wpisz w configuration.yamal następującą linie
sensor scrape: !include scrape.yaml
następnie utwórz plik scrape.yaml
a w nim wpisz;

####################################################################################################
##     SCRAPE    pobieranie danych ze stron WWW                                                   ##
##                                                                                                ##
##                    https://www.home-assistant.io/integrations/scrape                           ##
##                                                                                                ##
##          Dane pobierane ze strony SOLARSOFAR local IP                                          ##
####################################################################################################

# Sensory bezpośrednie pobierające dane z falownika SolarSofar 8.8KTX
- platform: scrape
  resource: http://10.0.0.250/status.html  #  twoje IP
  name: Produkcja_calkowita_sofarsolar_local  #nazwa sensora jaki chcesz widzieć w HA
  authentication: basic
  username: # twoja nazwa w falowniku 
  password: # twoje hasło w falowniku
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[7] ) | replace (''var webdata_total_e = '','''') |replace(''"'', '''')|float(0)  ) }}'
  scan_interval: 15
  unit_of_measurement: "kWh"
- platform: scrape
  resource: http://10.0.0.250/status.html   # twoje ip
  name: Produkcja_aktualna_sofarsolar_local
  authentication: basic
  username: #twoja nazwa
  password: # twoje hasło
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[5] ) | replace (''var webdata_now_p ='','''' ) |replace(''"'', '''') |float(0)) }}'
  scan_interval: 15
  unit_of_measurement: "W"
- platform: scrape
  resource: http://10.0.0.250/status.html #  twoje ip falownika
  name: Produkcja_dzienna_sofarsolar_local
  authentication: basic
  username: # twoja nazwa
  password: # twoje hasło w falowniku
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[6] ) | replace (''var webdata_today_e = '','''')|replace(''"'', '''')|float(0) )}}'
  scan_interval: 15
  unit_of_measurement: "kWh"

Otrzymujesz
image

Ta platforma niestety działa tylko gdy pracuje falownik, restart HA w nocy powoduje brak encji do rana

Masz gotowca musi działać
podmien tylko twoje dane ,
ip falownika
user, jeśli jest
password ,jeśli jest

nie testowałem bez hasła i user-a
ustaw sobie w ustawieniach falownika

image

1 polubienie

Bardzo podoba mi się twoje rozwiązanie tylko w żaden sposób nie mogę sobie poradzić aby te sensory pojawiły się w konfiguracji modułu energia, oraz pomimo włączonego trybu zaawansowanego nie mam opcji dostosowania.

a z czego w końcu korzystasz, jakie sensory masz jaka platforma
scrape? czy solis ?

platforma scrape. Pojawiły się trzy sensory Produkcja aktualna, dzienna i całkowita. Dane są prawidłowe tylko nie mogę ich wybrać w module energia. Nie wiem też dlaczego nie mam opcji dostosowania przy włączonych funkcjach zaawansowanych.

Plik sofar.yaml

sensor:
- platform: scrape
  resource: http://192.168.20.60/status.html
  name: Produkcja_ogolem_sofar
  authentication: basic
  username: admin
  password:
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[7] ) | replace (''var webdata_total_e ='','''' ) |replace(''"'', '''') |float) }}'
  scan_interval: 300
  unit_of_measurement: "kWh"
- platform: scrape
  resource: http://192.168.20.60/status.html
  name: Produkcja_aktualna_sofar
  authentication: basic
  username: admin
  password: 
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[5] ) | replace (''var webdata_now_p ='','''' ) |replace(''"'', '''') |float) }}'
  scan_interval: 30
  unit_of_measurement: "W"
  device_class: energy
  state_class: measurement
- platform: scrape
  resource: http://192.168.20.60/status.html
  name: Produkcja_dzisiaj_sofar
  authentication: basic
  username: admin
  password: 
  select: "script"
  index: 1
  value_template: '{{ (( value.split('';'')[6] ) | replace (''var webdata_today_e ='','''' ) |replace(''"'', '''') |float) }}'
  scan_interval: 90
  unit_of_measurement: "kWh"
  device_class: energy
  state_class: measurement

zrób sobie coś takiego, w pliku configuration.yaml wpisz linię.
utility_meter: !include power_meter.yaml

następnie utwórz plik power_meter.yaml
a w nim wpisz

meter_sofar_dzien:
  source: sensor.produkcja_ogolem_sofar
  cycle: daily
meter_sofar_miesiac:
  source: sensor.produkcja_ogolem_sofar
  cycle: monthly
meter_sofar_rok:
  source: sensor.produkcja_ogolem_sofar
  cycle: yearly
meter_sofar_narastajaco:
  source: sensor.produkcja_ogolem_sofar

otrzymasz sensory liczące produkcję dziennie, miesięcznie, rocznie i narastająco.
Analogicznie można zrobić z tego jeszcze kwadrans, godzinę, dwa mieące.
następnie w panelu energia dodasz do produkcji następujący sensor.
Powinien pojawić się w narzędziach deweloperskich
sensor.meter_sofar_narastajaco

1 polubienie

Sensory owszem pojawiły się, ale niestety nie mam ich w konfiguracji modułu energia.

Poczekaj pojawią się :slight_smile:

Dlaczego produkcja ogółem a nie produkcja_dzisiaj_sofar? Czy zliczanie nie powinno się odbywać z wartości chwilowej?

Ponieważ te “mierniki” reagują tylko na przyrosty, więc to nie ma znaczenia.
Nie korzystamy z dziennych produkcji, ponieważ meter w swoim interwale zeruje się w innym momencie niż produkcja i z tego powodu w statystykach rejestrują cię “cuda”… najogólniej mówiąc.

1 polubienie

Tak jak Kolega RobinI30 Ci odpisał

No to drążąc temat dalej, aby osiągnąć ideał:
Mój sensor total z webdata_total_e daje mi przyrosty ze słabą dokładnością bo co 1kWh. To w zakładce ENERGY uwidacznia się produkcją godzinową, która jest wyłącznie wielokrotnością 1kWh.
Zastosowałem więc webdata_today_e, ale wtedy ze względu na dziwne wahania widoczne na załączonym obrazku pokazuje też bardzo niedokładnie.
Czy jest szansa na jakieś rozwiązanie tego problemu stosując jednak użycie platformy SCRAPE ?

Trzeba kontrolować sensowność otrzymanych danych, jak również obsługiwać poprawnie utraty transmisji z falownikiem na skutek błędu lub nocnego wyłączenia.
Przejście na SCRAPE będzie miało podobne problemy.
Prawidłowa obsługa błędów o wiele trudniejsza niż sam odczyt. Większość zakłada, że wszysto zawsze będzie działać i ten aspekt pomija.
W twoim przypadku webdata_total_e chwilowo =0, co w rzeczywistości jest niemożliwe.
Na początek odczyt uznałbym za prawidłowy gdy >0.
Zauważyłem podobne problemy pisząc integracje do Sofara w NR.

No to jest oczywiste, tak jak i wzrosty wykraczające po za pewną średnią kroczącą.
Ale w jaki sposób w HA mogę takie wartości pomijać? Czy można prosić o przybliżenie, gdzie taką analizę mogę wykonać i w jaki sposób pomijać wartości błędne?

, jakoś w value_template, ale o to musisz musisz poprosić czarodziei od HA, albo na własną rękę poszukać przykładów z “if” :slight_smile:
Nie wiem jak… używam NR
Pracowałem nad tym i zauważyłem, że Sofar potrafi zwrócić wartość z d…y - zgadzała się nawet suma kontrolna ramki. Odrzucałem więc również wartości które wykraczały poza maksymalną wydajność falownika.

1 polubienie

Dzięki Robin
Widziałem że cała korespondencja zawarta jest na Elektrodzie, https://www.elektroda.pl/rtvforum/topic3698233-90.html
A skoro wszystko jest oparte na Node-RED, to aż się prosi weryfikować poszczególne wartości jeszcze zanim zostaną ogłoszone przez MQTT.
Postaram się wszystko jakoś tutaj ogarnąć.
Jeszcze raz dzięki.

Witam, wiem ze to chmura a chcemy lokalnie wyciagac te dane z Sofara - ktos uzywa - hultenvp/solis-sensor: HomeAssistant integration for the Ginlong Solis PV Monitoring portal. This integration supports the current Platform v2.0 portal (m.ginlong.com) which supports Solis and Solarman PV inverter brands. Also supports new SolisCloud platform (github.com)
Ostatnio bylo duzo prac i calkiem fajnie to dziala - mozna uzywac dziennego sensora produkcji - jest resetowany o polnocy.

U mnie to działa, lecz wersja 2.0 dawała jakieś błędy i część danych było 0
od wersji 2.01 działa to całkiem fajnie

Możesz coś więcej o tej integracji? Jakie dane można wyciągnąć i czy działa to w miarę stabilnie.