Monitoring farmy solarnej SofarSolar

No to ja nie bardzo pomogę, bo nie miałem takiego przypadku, ale,
może odśwież ręcznie przez www i zobacz jak wyglądają wartości.
Jak w przeglądarce będziesz miał takie kosmiczne dane, to znaczy, że nie jest to sprawa złej definicji SCRAPE i samego HA tylko gdzieś u źródła.
wpisz tylko IP swojego falownika

view-source:http://x.x.x.x/status.html

PS
Rzuć okiem na wcześniejszą dyskusję, Robinl30 zastosował rozwiązanie oparte na NR, które pobiera znacznie więcej danych niż daje ww status.html.

1 polubienie

Coś nie tak u źródła, dlatego raczej narazie sobie to podaruję, a skonfiguruję hultenvp/solis-sensor
Mimo wszystko dzięki za chęć pomocy.

A czy próbował ktoś w integracji hultenvp/solis-sensor wpiąć dwa konta? Jest to w jakiś sposób do wykonania?

A że tak zapytam Falownik Sofar nie ma protokołu MODBUS/TCP ?
Jest dodatek SunSpec który zaciąga dane z falownika do HA przez Modbus-a

Temat wygląda jak Wstęga Möbiusa - niby do przodu a jednak w kółko. :wink:
Prawie na wszystkie problemy jest już odpowiedź, wystarczy przeczytać jeszcze raz.

Cześć.
Macie może jakiś pomysł aby odczytać ze strony https://m.ginlong.com/ wczorajsze dane?

Cześć,

Podsyłam link do działającego rozwiązania odczytującego lokalne dane z loggera i wysyłającego komunikaty do MQTT kompatybilne z discovery MQTT w Home Assistant. Urządzenie wykrywane jest automatycznie i działa z modułem Energii.

Zrzuty ekranu:

Pozdrawiam,
Paweł

1 polubienie

Cześć.

Prosił bym o szybkie przypomnienie jak dodać integrację.

To nie jest integracja HA tylko osobny proces uruchamianych w cron, ktory wyniki umieszcza w Mqtt.
W ten sposób tego nie dodasz

Aha… Takich rzeczy jeszcze nie robiłem. Gdzie można znaleźć informacje jak się do tego zabrać.

Możesz zainstalować gotową integrację solarman w HACS GitHub - StephanJoubert/home_assistant_solarman: Home Assistant component for Solarman collectors used with a variety of inverters.
po instalacji dopisz do configuration.yaml

sensor:
  - platform: solarman
    name: PV-SofarSolar
    inverter_host: 192.168.0.100  # ip lokalne twojego falownika
    inverter_port: 8899
    inverter_serial: 1720747149  # twój numer seryjny logera ( nadajnika) wifi
    scan_interval: 30
    lookup_file: sofar_lsw3.yaml

Następnie możesz edytować plik konfiguracyjny sofar_lsw3.yaml i przetłumaczyć na język polski

Poniżej gotowe

requests:
  - start: 0x0000
    end:  0x0027
  - start: 0x0105
    end: 0x0114


parameters:
 - group: solar
   items: 
    - name: "Moc wyjściowa string 1"
      class: "power"
      state_class: "measurement"      
      uom: "W"
      scale: 10
      rule: 1
      registers: [0x000A]
      icon: 'mdi:solar-power'

    - name: "Moc wyjściowa string 2"
      class: "power"
      state_class: "measurement"      
      uom: "W"
      scale: 10
      rule: 1
      registers: [0x000B]
      icon: 'mdi:solar-power'

    - name: "Napięcie DC string 1"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1 
      registers: [0x0006]
      icon: 'mdi:solar-power'

    - name: "Napięcie DC string 2"
      class: "voltage"    
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x0008]
      icon: 'mdi:solar-power'      

    - name: "Prąd DC string 1"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.01
      rule: 1
      registers: [0x0007]
      icon: 'mdi:solar-power'      

    - name: "Prąd DC string 2"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.01
      rule: 1
      registers: [0x0009]
      icon: 'mdi:solar-power'      

    - name: "Dzisiejsza produkcja"
      class: "energy"
      state_class: "total"      
      uom: "kWh"
      scale: 0.01
      rule: 1
      registers: [0x0019]
      icon: 'mdi:solar-power'      

    - name: "Narastająca produkcja"
      class: "energy"
      state_class: "total_increasing"      
      uom: "kWh"
      scale: 1
      rule: 3
      registers: [0x0016,0x0015]
      icon: 'mdi:solar-power'      

    - name: "Czas pracy falownika łącznie"
      class: ""
      state_class: "measurement"      
      uom: "h"
      scale: 1
      rule: 3
      registers: [0x0018,0x0017]
      icon: 'mdi:clock-outline'   

    - name: "Czas pracy falownika  dzisiaj"
      class: ""
      state_class: "measurement"      
      uom: "min"
      scale: 1
      rule: 1
      registers: [0x001A]
      icon: 'mdi:clock-outline'      

 - group: Output
   items: 
    - name: "Aktualna moc falownika"
      class: "power"
      state_class: "measurement"      
      uom: "W"
      scale: 10
      rule: 1
      registers: [0x000C]
      icon: 'mdi:home-lightning-bolt'

    - name: "Moc bierna falownika"
      class: ""
      state_class: "measurement"      
      uom: "kVar"
      scale: 0.01
      rule: 1
      registers: [0x000D]
      icon: 'mdi:home-lightning-bolt'

    - name: "Częstotliwość wyjściowa"
      class: "frequency"
      state_class: "measurement"      
      uom: "Hz"
      scale: 0.01
      rule: 1
      registers: [0x000E]
      icon: 'mdi:home-lightning-bolt'

    - name: "Napięcie AC faza L1"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x000F]
      icon: 'mdi:home-lightning-bolt'

    - name: "Prad fazy 1"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.01
      rule: 1
      registers: [0x0010]
      icon: 'mdi:home-lightning-bolt'

    - name: "Napięcie AC faza L2"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x0011]
      icon: 'mdi:home-lightning-bolt'

    - name: "Prad fazy 2"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.01
      rule: 1
      registers: [0x0012]
      icon: 'mdi:home-lightning-bolt'

    - name: "Napięcie AC faza L3"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x0013]
      icon: 'mdi:home-lightning-bolt'

    - name: "Prad fazy 3"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.01
      rule: 1
      registers: [0x0014]
      icon: 'mdi:home-lightning-bolt'







 - group: Inverter
   items: 
    - name: "Status falownika"
      class: ""
      state_class: "measurement"      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0000]
      lookup: 
      -  key: 0
         value: "Gotowosc"
      -  key: 1
         value: "Testowanie"
      -  key: 2
         value: "Normalna"
      -  key: 3
         value: "Błąd"
      -  key: 4
         value: "Permanent"
      icon: 'mdi:wrench'         

    - name: "Temperatura modułu falownika"
      class: "temperature"
      uom: "°C"
      scale: 1
      rule: 1
      registers: [0x001B]
      icon: 'mdi:thermometer'

    - name: "Temperatura wewnętrzna falownika"
      class: "temperature"
      state_class: "measurement"      
      uom: "°C"
      scale: 1
      rule: 1
      registers: [0x001C]
      icon: 'mdi:thermometer'      

    - name: "Napięcie szyny falownika"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x001D]
      icon: 'mdi:home-lightning-bolt'

    - name: "PV1 voltage sample by slave CPU"
      class: "voltage"
      state_class: "measurement"      
      uom: "V"
      scale: 0.1
      rule: 1
      registers: [0x001E]
      icon: 'mdi:home-lightning-bolt'

    - name: "PV1 current sample by slave CPU"
      class: "current"
      state_class: "measurement"      
      uom: "A"
      scale: 0.1
      rule: 1
      registers: [0x001F]
      icon: 'mdi:home-lightning-bolt'

    - name: "Czas odliczania"
      class: ""
      state_class: "measurement"      
      uom: "s"
      scale: 1
      rule: 1
      registers: [0x0020]
      icon: ''

    - name: "Alarm ostrzegawczy falownika"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0021]
      icon: ''

    - name: "Input mode"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0022]
      icon: ''

    - name: "Communication Board inner message"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0023]
      icon: ''

    - name: "Wartosc rezystabcji izolacji PV1"
      class: ""
      state_class: "measurement"      
      uom: "Ω"
      scale: 1
      rule: 1
      registers: [0x0024]
      icon: ''

    - name: "Wartosc rezystabcji izolacji PV"
      class: ""
      state_class: "measurement"      
      uom: "Ω"
      scale: 1
      rule: 1
      registers: [0x0025]
      icon: ''

    - name: "Wartosc rezystabcji izolacji falownika"
      class: ""
      state_class: "measurement"      
      uom: "Ω"
      scale: 1
      rule: 1
      registers: [0x0026]
      icon: ''

    - name: "Kraj"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0027]
      lookup: 
      -  key: 0
         value: "Germany"
      -  key: 1
         value: "CEI0-21 Internal"
      -  key: 2
         value: "Australia"
      -  key: 3
         value: "Spain RD1699"
      -  key: 4
         value: "Turkey"
      -  key: 5
         value: "Denmark"
      -  key: 6
         value: "Greece"
      -  key: 7
         value: "Netherland"
      -  key: 8
         value: "Belgium"
      -  key: 9
         value: "UK-G59"
      -  key: 10
         value: "China"
      -  key: 11
         value: "France"
      -  key: 12
         value: "Poland"
      -  key: 13
         value: "Germany BDEW"
      -  key: 14
         value: "Germany VDE0126"
      -  key: 15
         value: "Italy CEI0-16"
      -  key: 16
         value: "UK-G83"
      -  key: 17
         value: "Greece Islands"
      -  key: 18
         value: "EU EN50438"
      -  key: 19
         value: "EU EN61727"
      -  key: 20
         value: "Korea"
      -  key: 21
         value: "Sweden"
      -  key: 22
         value: "Europa  22"
      -  key: 23
         value: "CEI0-21 External"
      -  key: 24
         value: "Cyprus"
      -  key: 25
         value: "India"
      -  key: 26
         value: "Philippines"
      -  key: 27
         value: "New Zeland"
      -  key: 28
         value: "Reserve"
      -  key: 29
         value: "Reserve"
      icon: ''

 - group: Alert
   items: 
    - name: "Fault 1"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0001]
      lookup: 
      -  key: 0
         value: "Brak błędów"
      -  key: 1
         value: "ID01 Grid Over Voltage Protection"
      -  key: 2
         value: "ID02 Grid Under Voltage Protection"
      -  key: 4
         value: "ID03 Grid Over Frequency Protection"
      -  key: 8
         value: "ID04 Grid Under Frequency Protection"
      -  key: 16
         value: "ID05 PV Under Voltage Protection"
      -  key: 32
         value: "ID06 Grid Low Voltage Ride through"
      -  key: 64
         value: "ID07"
      -  key: 128
         value: "ID08"
      -  key: 256
         value: "ID09 PV Over Voltage Protection"
      -  key: 512
         value: "ID10 PV Input Current Unbalanced"
      -  key: 1024
         value: "ID11 PV Input Mode wrong configuration"
      -  key: 2048
         value: "ID12 Ground-Fault circuit interrupters fault"
      -  key: 4096
         value: "ID13 Phase sequence fault"
      -  key: 8192
         value: "ID14 Hardware boost over current protection"
      -  key: 16384
         value: "ID15 Hardware AC over current protection"
      -  key: 32768
         value: "ID16 Grid current is too high"
      icon: 'mdi:wrench'  

    - name: "Fault 2"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0002]
      lookup: 
      -  key: 0
         value: "Brak błędów"
      -  key: 1
         value: "ID17 Grid current sampling error"
      -  key: 2
         value: "ID18 DCI sampling error"
      -  key: 4
         value: "ID19 Grid voltage sampling error"
      -  key: 8
         value: "ID20 GFCI device sampling error"
      -  key: 16
         value: "ID21 Main chip fault"
      -  key: 32
         value: "ID22 Hardware auxiliary power fault"
      -  key: 64
         value: "ID23 Bus voltage zero fault"
      -  key: 128
         value: "ID24 Output current not balanced"
      -  key: 256
         value: "ID25 Bus under voltage protection"
      -  key: 512
         value: "ID26 Bus over voltage protection"
      -  key: 1024
         value: "ID27 Bus voltage unbalanced"
      -  key: 2048
         value: "ID28 DCI is too high"
      -  key: 4096
         value: "ID29 Grid current is too high"
      -  key: 8192
         value: "ID30 Input current is too high"
      -  key: 16384
         value: "ID31"
      -  key: 32768
         value: "ID32"
      icon: 'mdi:wrench'  

    - name: "Fault 3"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0003]
      lookup: 
      -  key: 0
         value: "Brak błędów"
      -  key: 1
         value: "ID33 Reserved"
      -  key: 2
         value: "ID34 Reserved"
      -  key: 4
         value: "ID35 Reserved"
      -  key: 8
         value: "ID36 Reserved"
      -  key: 16
         value: "ID37 Reserved"
      -  key: 32
         value: "ID38 Reserved"
      -  key: 64
         value: "ID39 Reserved"
      -  key: 128
         value: "ID40 Reserved"
      -  key: 256
         value: "ID41 Reserved"
      -  key: 512
         value: "ID42 Reserved"
      -  key: 1024
         value: "ID43 Reserved"
      -  key: 2048
         value: "ID44 Reserved"
      -  key: 4096
         value: "ID45 Reserved"
      -  key: 8192
         value: "ID46 Reserved"
      -  key: 16384
         value: "ID47 Reserved"
      -  key: 32768
         value: "ID48 Reserved"
      icon: 'mdi:wrench'  

    - name: "Fault 4"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0004]
      lookup: 
      -  key: 0
         value: "Brak błędów"
      -  key: 1
         value: "ID49 Grid voltage sampling value between master and slave DSP vary widely"
      -  key: 2
         value: "ID50 Grid frequency sampling value between master and slave DSP vary widely"
      -  key: 4
         value: "ID51 DCI sampling value between master and slave DSP vary widely"
      -  key: 8
         value: "ID52 GFCI sampling value between master and slave DSP vary widely"
      -  key: 16
         value: "ID53 Communication failure between master and slave DSP failure"
      -  key: 32
         value: "ID53 Communication failure between slave and communication board"
      -  key: 64
         value: "ID55 Relay fault"
      -  key: 128
         value: "ID56 Insulation resistance between PV array and the earth is too low"
      -  key: 256
         value: "ID57 Inverter temp is too high"
      -  key: 512
         value: "ID58 Boost temp is too high"
      -  key: 1024
         value: "ID59 Environment temp is too high"
      -  key: 2048
         value: "ID60 Brak podłączenie falownika do kabla PE"
      -  key: 4096
         value: "ID61 Reserved"
      -  key: 8192
         value: "ID62 Reserved"
      -  key: 16384
         value: "ID63 Reserved"
      -  key: 32768
         value: "ID64 Reserved"
      icon: 'mdi:wrench'  

    - name: "Fault 5"
      class: ""
      state_class: ""      
      uom: ""
      scale: 1
      rule: 1
      registers: [0x0005]
      lookup: 
      -  key: 0
         value: "Brak błędów"
      -  key: 1
         value: "ID65 Grid current is too high and causes unrecoverable fault"
      -  key: 2
         value: "ID66 Bus voltage is too high and causes unrecoverable fault"
      -  key: 4
         value: "ID67 Grid current is unbalanced and causes unrecoverable fault"
      -  key: 8
         value: "ID68 Input current is unbalanced and causes unrecoverable fault"
      -  key: 16
         value: "ID69 Bus voltage is unbalanced and causes unrecoverable fault"
      -  key: 32
         value: "ID70 Grid current is too high and causes unrecoverable fault"
      -  key: 64
         value: "ID65 PV Input Mode Configuration is wrong and causes unrecoverable fault"
      -  key: 128
         value: "ID72 Reserved"
      -  key: 256
         value: "ID73 Reserved"
      -  key: 512
         value: "ID74 Input current is too high and causes unrecoverable fault"
      -  key: 1024
         value: "ID75 Error reading from EEPROM"
      -  key: 2048
         value: "ID76 Error writing to EEPROM"
      -  key: 4096
         value: "ID77 Relay fauilure causes unrecoverable fault"
      -  key: 8192
         value: "ID78 Reserved"
      -  key: 16384
         value: "ID79 Reserved"
      -  key: 32768
         value: "ID80 Reserved"
      icon: 'mdi:wrench'  

Po wykonaniu w/w restart HA i powinieneś otrzymać gotowe sensory


W razie problemów pisz :slight_smile:

3 polubienia

No i dodane.
Nam nadzieje że działa to lokalnie.
Co do pliku sofar_lsw3.yaml nie mogę go znaleźć.

masz w katalogu
config\custom_components\solarman

Zmienione.
Teraz czekam do jutra aż wyjdzie słoneczko i włączy się sofarek :slight_smile:

Edit:

Dane zaczynają spływać lecz są jakieś dziury.
moc soofar

Dzisiaj zainstalowałem ten dodatek - co prawda spolszczenie albo źle plik skopiowałem albo coś w nim nie tak ale generalnie działa i to na tą chwilę całkiem nieźle

Jak już Wam to chodzi, to spróbujcie to co wykonał kolega @RobinI30 , w Node-red,
działa lepiej wykresy są stabilne i niewrażliwe na aktualizację

SolarSofar.json (669 bajtów)
Pozdrowienia :slight_smile:

1 polubienie

Początkowo myślałem że to problem sieci WiFi pingo do dongla były ponad 100ms i po poprawieniu sieci zmalały do kilku ms ale nadal nie jestem zadowolony.
dziury
Zabieram się za NR i w debug widzę jakieś dane ale nie przekazuje mi do Mqtt

a ustawiłeś swoje dane Mqtt ?

Wydaje mi się że tak.
nasłuch mqtt
ale nie widzę encji.
mqtt1
mqtt2


ip logera 192.168.188.247
ip hq i mqtt 192.168.188.150
dongl serwer

Tak dane zapisują się w mqtt, ale w stan wait za chwilę przejdzie w disconnect i przestanie odpytywać falownik. Więc do jutra nic nie zrobisz.

Encje musisz dodać ręcznie, z automatu nic się nie zrobi.
Nie wszystkich interesują wszystkie dane i dlatego dodajesz tylko te, które chcesz.

ludzie … ile raz trzeba w kóło powtarzać to co już jest napisane wyżej?

Integracja Tobie działa więc poczekaj do jutra aby dokończyć. Będziesz miał trochę czasu aby się do tego teoretycznie przygotować;)