Szukam narzędzia do monitoringu inwertera SofaSolar przez Wi-Fi.
Na razie znalazłem SofarSolarMQTT niestety mimo pojawienia się encji dane nie są przesyłane do MQTT.
Dodatek jest niezbyt skomplikowany w konfiguracji a ustawienia AP inwertera również zmieniłem tak jak opisano w pomocy.
Czy zna ktoś inny dodatek do monitorowania inwertera Sofar lub udało mu się uruchomić ten dodatek?
McKenzi
(McKenzi)
28 Wrzesień 2020 08:08
2
Używałem tego dodatku przez chwilę jednak zauważyłem dziwne zachowanie po restarcie systemu.
Nie drążyłem tematu i przesiadłem się na pobieranie danych z portalu solarman.pv oraz ginlong.com .
(falownik domyślnie wysyła dane do portalu ginlong.com )
Do tego celu używam Node-Red-a . Jeżeli jesteś zainteresowany takim rozwiązaniem to mogę wrzucić flow.
1 polubienie
Jestem zainteresowany takim rozwiązaniem. Będę bardzo wdzięczny za instrukcje.
McKenzi
(McKenzi)
28 Wrzesień 2020 10:16
4
Zakładamy konto na portalu : https://m.ginlong.com/ i dodajemy urządzenie. (data loger)
Importujemy flow do NR i w pierwszej nodzie funkcyjnej zmieniamy dane logowania na swoje:
(userName , password)
Po pobraniu info z portalu ostatnia noda funkcyjna wyciąga interesujące nas dane
(można je dowolnie modyfikować )
Noda MQTT OUT wymaga podmiany pola „Server” + ewentualnie Username i Password.
( zależy od ustawień naszego brokera)
Następnie w HA dodajemy sensory wg. schematu (config.yaml)
platform: mqtt
name: PV-Power
state_topic: “pv/values”
unit_of_measurement: ‘kW’
value_template: “{{ value_json.Current_power }}”
device_class: power
Dodajemy do UI :
Dane pobierane są co 5 min.
ginlong.json (5,7 KB)
Żródło: https://flows.nodered.org/flow/1a1e2bac1ecfe8f40527ad930fe788f0
2 polubienia
Dziękuję bardzo.
Zobaczę czy mi zwykłemu Januszowi uda się to uruchomić.
McKenzi
(McKenzi)
28 Wrzesień 2020 14:28
6
W razie pytań można pisać. Musi się udać.
Udało mi się skonfigurować flow w Node-RED i nawet pobiera dane.
Dodałem do pliku configuration.yaml sekcję (sensor: !include sensor.yaml) i w pliku o tej nazwie dodałem sensory.
Niestety encje które się pojawiły po restarcie nie wyświetlają pobranych danych.
Wpisałem adres użytkownika i hasło oraz IP serwera z brokerem MQTT, czyli mojego HA i jak widać na pierwszym obrazie jest połączony.
Gdzie popełniłem błąd, że encje nie pobierają wartości z brokera.
McKenzi
(McKenzi)
29 Wrzesień 2020 17:31
8
Posiadasz inne sensory na MQTT żeby potwierdzić że ta komunikacja działa?
W HA należy dodać użytkownika , Konfiguracja->użytkownicy. (nazwę oraz hasło należy wpklepać do nody MQTT out w NR)
Zakładam że integracja MQTT jest zainstalowana.
Miałem znak specjalny w haśle, usunąłem go ale pomimo zmiany nie działa i mam takie logi z Mosquitto broker.
Nie mam innych sensorów MQTT.
Nasłuch tematu wygląda tak.
Zakładam więc, że broker działa.
Znalazłem błąd.
platform: mqtt
name: Total_production
state_topic: ‘pv/values’
unit_of_measurement: ‘kWh’
value_template: “{{ value_json.Total_production }}”
device_class:
A było tak.
state_topic: “pv/values”
Inne ciapki też trzeba ręcznie wpisać wklejone jakoś nie zadziałały.
Tom_Py
(Tom Py)
6 Luty 2021 10:51
13
Dzięki za skrypt, udało się to uruchomić w HA z inwerterem Sofar Solar SF4ES004 chociaż należało trochę zmienić konfigurację czujnika np.
platform: mqtt
name: ‘PV-Power’
state_topic: ‘pv/values’
unit_of_measurement: ‘W’
value_template: ‘{{ value_json.Current_power }}’
device_class: power
Please let me know how I can do it at home
Ja pobieram dane z falownika po sieci lokalnej, działa to fajnie i bez większego problemu.
W tej metodzie otrzymujemy tylko trzy przydatne odczyty
aktualna moc
dzienna produkcja
całość produkcji
poniżej ściąga z konfiguracji
podmień user i pass oraz lokalne IP i powinno działać
Sensory bezpośrednie pobierające dane z falownika SolarSofar 8.8KTX
platform: scrape
resource: http://10.0.0.250/status.html
name: Produkcja_ogolem_sofar
authentication: basic
username: ****
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://10.0.0.250/status.html
name: Produkcja_aktualna_sofar
authentication: basic
username: ****
password: ****
select: “script”
index: 1
value_template: ‘{{ (( value.split(’’;’’)[5] ) | replace (’‘var webdata_now_p =’’,’’’’ ) |replace(’’"’’, ‘’’’) |float) }}’
scan_interval: 30
unit_of_measurement: “W”
platform: scrape
resource: http://10.0.0.250/status.html
name: Produkcja_dzisiaj_sofar
authentication: basic
username: ******
password: *****
select: “script”
index: 1
value_template: ‘{{ (( value.split(’’;’’)[6] ) | replace (’‘var webdata_today_e = ‘’,’’’’)|replace(’’"’’, ‘’’’)|float )}}’
scan_interval: 90
unit_of_measurement: “kWh”
co dotyczy danych zassane poprzez MQTT z ginlong, jest ich dużo więcej
1 polubienie
welna9
(Michał Baran)
9 Wrzesień 2021 07:29
16
Witam. Czy ten kod mam wkleić do pliku configuration.yaml ?
tak tylko podmień na swoje dane :))
welna9
(Michał Baran)
10 Wrzesień 2021 05:22
18
Tak zrobiłem tylko wywala mi błąd przy sprawdzaniu konfiguracji:
…
Component error: password - Integration ‘password’ not found.
Component error: authentication - Integration ‘authentication’ not found.
Component error: platform - Integration ‘platform’ not found.
Component error: index - Integration ‘index’ not found.
Component error: name - Integration ‘name’ not found.
Invalid config for [select]: expected a dictionary. Got OrderedDict([(‘default_config’, {}), (‘platform’, ‘scrape’), (‘resource’, ‘http://192.168.0.160/status.html ’), (‘name’, ‘Produkcja_ogolem_sofar’), (‘authentication’, ‘basic’), (‘username’, ‘admin’), (‘password’, ‘admin’), (‘select’, ‘“script”’), (‘index’, 1), (‘value_template’, ‘‘{{ (( value.split(’’;’’)[7] ) | replace (’‘var webdata_total_e = ‘’,’’’’) |replace(’’"’’, ‘’’’)|float ) }}’’), (‘scan_interval’, 300), (‘unit_of_measurement’, ‘“kWh”’)]). (See ?, line ?).
Component error: value_template - Integration ‘value_template’ not found.
Component error: resource - Integration ‘resource’ not found.
Component error: scan_interval - Integration ‘scan_interval’ not found.
Component error: unit_of_measurement - Integration ‘unit_of_measurement’ not found.
Component error: username - Integration ‘username’ not found.
…
welna9:
c’), (‘username’, ‘admin’), (‘password’, ‘admin
wpisz w przeglądarkę
view-source:http://192.168.0.160/status.html
powinieneś zobaczyć
Jest tam więcej informacji ale przydatne są tylko te 3
można pobierać jeszcze informacje o alarmach
Czy masz ustawione jakieś hasło w sofarze?,
jeżeli nie usuń linie password: lub utwórz hasło w sofarze
- platform: scrape
resource: http://192.168.0.160/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://10.0.0.160/status.html
name: Produkcja_aktualna_sofar
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"
- platform: scrape
resource: http://10.0.0.160/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"
'
Pozdrawiam
welna9
(Michał Baran)
10 Wrzesień 2021 14:56
20
Po wpisaniu w przeglądarkę:
view-source:http://192.168.0.160/status.html
widzę informacje jak pokazałeś wyżej. Natomiast po wklejeniu kodu do configu:
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
#SOFARSOLAR
platform: scrape
resource: http://192.168.0.160/status.html
name: Produkcja_ogolem_sofar
authentication: basic
username: admin
password: admin
select: "script"
index: 1
value_template: '{{ (( value.split('';'')[7] ) | replace (''var webdata_total_e = '','''') |replace(''"'', '''')|float ) }}'
scan_interval: 300
unit_of_measurement: "kWh"
wyrzuca mi znowu takie błędy przy sprawdzaniu konfiguracji:
Component error: password - Integration ‘password’ not found.
Component error: authentication - Integration ‘authentication’ not found.
Component error: platform - Integration ‘platform’ not found.
Component error: index - Integration ‘index’ not found.
Component error: name - Integration ‘name’ not found.
Invalid config for [select]: expected a dictionary. Got OrderedDict([(‘default_config’, {}), (‘platform’, ‘scrape’), (‘resource’, ‘http://192.168.0.160/status.html ’), (‘name’, ‘Produkcja_ogolem_sofar’), (‘authentication’, ‘basic’), (‘username’, ‘admin’), (‘password’, ‘admin’), (‘select’, ‘script’), (‘index’, 1), (‘value_template’, ‘{{ (( value.split(’;’)[7] ) | replace (‘var webdata_total_e = ‘,’’) |replace(’"’, ‘’)|float ) }}’), (‘scan_interval’, 300), (‘unit_of_measurement’, ‘kWh’)]). (See ?, line ?).
Component error: value_template - Integration ‘value_template’ not found.
Component error: resource - Integration ‘resource’ not found.
Component error: scan_interval - Integration ‘scan_interval’ not found.
Component error: unit_of_measurement - Integration ‘unit_of_measurement’ not found.
Component error: username - Integration ‘username’ not found