Pomiar produkcji PV z użyciem API Huawei zintegrowanego z Fibaro HC3 jako QuickApp

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

TechnologiaHobby

Korzystamy z instalacji PV Huawei na dachu naszego domu. Ma panel webowy i aplikację pozwalające podglądać każdy szczegół jej ustawień i warunków pracy. Chciałbym jednak zintegrować produkcję mocy PV z moim Fibaro HC3. A więc:

Po pierwsze: utwórz użytkownika Northbound API w panelu webowym. Wybierz wszystkie uprawnienia do pozyskiwania danych.

Następnie pobierz token uwierzytelniający:

Bash
curl -X POST "https://eu5.fusionsolar.huawei.com/thirdData/login" \
-H "Content-Type: application/json" \
-d '{
"userName": "USERNAME",
"systemCode": "PASSWORD"
}' -v

W odpowiedzi otrzymasz xsfr-token w danych nagłówków. Teraz używając tego tokena uwierzytelniającego, musisz pobrać listę instalacji (stacji):

Text
url -X POST "https://eu5.fusionsolar.huawei.com/thirdData/getStationList" \
  -H "Content-Type: application/json" \
  -H "xsrf-token: TOKEN" \
  -d '{}' -v

Teraz używając swojego ID stacji, pobierz listę swoich urządzeń:

Bash
curl -X POST "https://eu5.fusionsolar.huawei.com/thirdData/getDevList" \
-H "Content-Type: application/json" \
  -H "xsrf-token: TOKEN" \
  -d '{
"stationCodes": "NE=123456789"
}' -v

Aby pobrać dane w pewnym sensie czasu rzeczywistego, musisz znać ID swojego urządzenia z poprzedniego żądania:

Bash
curl -X POST "https://eu5.fusionsolar.huawei.com/thirdData/getDevRealKpi" \
-H "Content-Type: application/json" \
  -H "xsrf-token: TOKEN" \
  -d '{
"devIds": "112233445566778899",
"devTypeId":"1"
}' -v

Teraz powinieneś szukać pola active_power, które jest mocą produkcji Twojej instalacji PV (w watach).

Powiedzmy teraz, że chcesz mieć to w Fibaro. Zdecydowałem się na QuickApp (Lua) w następujący sposób:

Lua
function QuickApp:onInit()
    self:debug("onInit Huawei Falownik")
    self:loop()
end

function QuickApp:loop()
    fibaro.setTimeout(1000*60*5, function() 
        self:debug("Huawei Falownik")
        self:debug("Huawei Falownik: login")
        local token   = ''
        local url     = "https://eu5.fusionsolar.huawei.com/thirdData/login"
        local payload = json.encode({userName="USERNAME",systemCode="PASSWORD"})
        net.HTTPClient():request(url, {
            options={
            data    = payload,
            method  = 'POST',
            headers = {
                ["Content-Type"] = "application/json"
            },
            timeout = tcpTimeout,
            },
            success = function(response) 
                token = response.headers['xsrf-token']
                self:debug("Huawei Falownik: getDevRealKpi")
                local url2 = "https://eu5.fusionsolar.huawei.com/thirdData/getDevRealKpi"
                local payload2 = json.encode({devIds="112233445566778899",devTypeId="1"})
                net.HTTPClient():request(url2, {
                    options={
                    data    = payload2,
                    method  = 'POST',
                    headers = {
                        ["Content-Type"] = "application/json",      
                        ["xsrf-token"]= token
                    },
                    timeout = tcpTimeout,
                    },
                    success = function(response) 
                        print(response.status) 
                        print(response.data) 
                        activepower=json.decode(response.data)['data'][1]['dataItemMap']['active_power']
                        self:updateProperty("value", activepower*1000)
                        self:debug(activepower)
                    end,
                    error = function(message)
                        print("error:", message) 
                    end 
                })
            end,
            error = function(message)
                print("error:", message)
            end 
        })
        self:loop(text)
    end)
end

Na koniec możesz skonfigurować miernik produkcji z użyciem tej QuickApp. Ostatnią rzeczą do zapamiętania jest ograniczanie ruchu po stronie Huawei, więc pobieraj dane powiedzmy raz na 5 minut lub podobnie, w przeciwnym razie zamiast danych otrzymasz komunikat o błędzie.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Pomiar produkcji PV z użyciem API Huawei zintegrowanego z Fibaro HC3 jako QuickApp”, 16 stycznia 2026, https://michalasobczak.pl/pl/posts/pv-production-metering-using-huawei-api-integrated-with-fibaro-hc3-as-quickapp.html