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
Cześć,
Postanowiłem zrobić to samo i:
- Po sprawdzeniu url: http://192.168.1.15/status.html nie widzę zmiennych, za to mam dziwnie formatowaną stronę:
- 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
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
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
Sensory owszem pojawiły się, ale niestety nie mam ich w konfiguracji modułu energia.
Poczekaj pojawią się
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.
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”
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.
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.