Instalacja Fotowolt...
 
Powiadomienia
Wyczyść wszystko

Instalacja Fotowoltaiczna - Fronius Symo - Fronius Smart Meter -skrypt LUA

138 Wpisów
7 Użytkownicy
1 Likes
15.5 K Wyświetleń
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 

A powiedz mi jeszcze jak ten skrypt rozkminia wschod i zachod slonca i czy da sie to edytowac?

 
Dodane : 18/04/2021 6:51 pm
(@mig41)
Wpisów: 615
Ekspert
 

Naprawdę chcecie liczyć impulsy  , zamiast normalnie czytać energię i inne rzeczy po modbusie.... 

 
Dodane : 18/04/2021 7:15 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 
Dodane przez: @marcingajda

Naprawdę chcecie liczyć impulsy  , zamiast normalnie czytać energię i inne rzeczy po modbusie.... 

Modbus jest drogi a liczenie impulsow po kablu zupelnie wystarczy. A apka ladnie pokaze w solar.web

 

 
Dodane : 18/04/2021 7:20 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@marcingajda generalnie nic nie trzeba liczyć , inwerter fronius ma dedykowane wejście i sam zlicza te impulsy . Na podstawie tych impulsów oblicza np to co zjada dom i odejmując to od produkcji oblicza to co oddałeś do ZE . Wszystko zależy gdzie ten licznik zamontujesz oczywiście .

Liczenie impulsów jest potrzebne jak chcesz dane z licznika przesłać do serwera automatyki .

@kniazio skrypt zaczyna odpytywać falownik 30 min przed wschodem słońca i jak dostaje info że inwerter jest jeszcze w uśpieniu to nie aktualizuje czujników, dopiero jak dostanie wyraźny sygnał że świeci zielony led  i status kod =7 , zaczyna aktualizować czujniki . To samo po zachodzie słońca , dokąd dostaje zielony led i 7 to przez 30 min działa

 
Dodane : 18/04/2021 8:18 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 
Dodane przez: @isom

@marcingajda generalnie nic nie trzeba liczyć , inwerter fronius ma dedykowane wejście i sam zlicza te impulsy . Na podstawie tych impulsów oblicza np to co zjada dom i odejmując to od produkcji oblicza to co oddałeś do ZE . Wszystko zależy gdzie ten licznik zamontujesz oczywiście .

Liczenie impulsów jest potrzebne jak chcesz dane z licznika przesłać do serwera automatyki .

@kniazio skrypt zaczyna odpytywać falownik 30 min przed wschodem słońca i jak dostaje info że inwerter jest jeszcze w uśpieniu to nie aktualizuje czujników, dopiero jak dostanie wyraźny sygnał że świeci zielony led  i status kod =7 , zaczyna aktualizować czujniki . To samo po zachodzie słońca , dokąd dostaje zielony led i 7 to przez 30 min działa

Super. Odnosnie odpowiedzi dla @marcingajda to gdzie wlasciwie ten liczik ma byc wpiety?

 

 
Dodane : 18/04/2021 8:37 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Przy tym tanim rozwiązaniu najlepiej żeby mierzył to co zjada dom czyli za głównym zabezpieczeniem w rozdzielni.

Powiedz elektrykowi że chcesz mierzyć to co pobiera dom i powinien wiedzieć jak go wpiąć 

 
Dodane : 18/04/2021 8:41 pm
pawell32
(@pawell32)
Wpisów: 1195
Guru
 

@isom  licznik już taki robiłem do wiatromierza. Muszę tylko konwerter zbudować, bo z tego co widzę to na wy są impulsy 24V.

 
Dodane : 18/04/2021 10:04 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@pawell32 konwerter to chyba zbyt duże słowo , transoptor z dobranym rezystorem i wyjście do GPIO

 
Dodane : 18/04/2021 11:03 pm
pawell32
(@pawell32)
Wpisów: 1195
Guru
 

@isom może zbyt duże 🙂 ale dokładnie takie

 
Dodane : 18/04/2021 11:04 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 

Panowie jest problem z tym moim licznikiem :). Falownik wpiety jest pod wtyke silowa w garazu pod domem i elektryk twierdzi ze nie da sie popdpiac licznika tak zeby liczyl zuzycie

 
Dodane : 19/04/2021 8:01 am
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kniazio ty nie masz problemu z licznikiem tylko z monterami PV :)) U mnie by tak nie podłączyli , albo bym nie podpisał odbioru , ale to nie temat do poruszania takich problemów.

Jak chcesz wiedzieć dlaczego bym nie podpisał to rozpocznij nowy temat w dziale fotowoltaika 

 
Dodane : 19/04/2021 10:15 am
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 

@isom

Wszedzie tak montuja 🙂

U moich kolegow ostanio tez tak zamontowali ( 3 instalacje)

 
Dodane : 19/04/2021 10:20 am
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kniazio zapewniam cię , że nie u wszystkich :)) . Ja jak wyłączę prąd w domu bo np robię  remont to cała produkcja z PV idzie do ZE , U ciebie i twoich kolegów inwerter zrobi stop.

Ale to nie jedyny mankament . Powtarzam nie ten temat żeby się z tym rozwijać 

 
Dodane : 19/04/2021 12:50 pm
pawell32
(@pawell32)
Wpisów: 1195
Guru
 

tak tylko dopowiem, że jeśli ktoś chce kupić taki licznik to bez rozszerzenia >MID<.

Jak się dowiedziałem, nowe MID są dokładniejsze, ale nie mają aktywnego wyjścia impulsowego.

 
Dodane : 20/04/2021 12:03 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 
Dodane przez: @isom

Pisz co wypluwa to coś wymyślimy 

 

Podlaaczylem dzisiaj licznik impulsowy do Froniusa

Apka pokazuje co ma pokazywac.

testujac polecenia Api natknalem sie na takie cos:

 http://192.168.1.199/solar_api/v1/GetPowerFlowRealtimeData.fcgi 

Odpowiedz na powyzsze z Froniusa:

	
Body	
Data	
Inverters	
1	
DT	110
E_Day	9690
E_Total	295571.03125
E_Year	295571.3125
P	0
Site	
E_Day	9690
E_Total	295571.03125
E_Year	295571.3125
Meter_Location	"load"
Mode	"vague-meter"
P_Akku	null
P_Grid	459.71139113614186
P_Load	-459.71139113614186
P_PV	null
rel_Autonomy	0
rel_SelfConsumption	null
Version	"12"
Head	
RequestArguments	{}
Status	
Code	0
Reason	""
UserMessage	""
Timestamp	"2021-04-28T21:25:08+02:00"

P_Grid 459.71139113614186
P_Load -459.71139113614186  te dane pokrywaja sie jakby z tym co wskazuje apka czyli moje zuzycie

Pisales ze jesli znajde dane ktore wypluwa Fronius to cos poradzisz w temacie skryptu 🙂

Bylo by elegancko gdyby Domoticz widzial te dane

Screenshot 20210429 061043

Znalazlem tez takie polecenie API

 http://192.168.1.199/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System 

Odpowiedz Froniusa:

	
Body	
Data	
0	
Details	
Manufacturer	"Fronius"
Model	"S0 Meter at inverter 1"
Serial	"n.a."
Enable	1
EnergyReal_WAC_Minus_Relative	23
Meter_Location_Current	1
PowerReal_P_Sum	-245.91842130542912
TimeStamp	1619683538
Visible	1
Head	
RequestArguments	
DeviceClass	"Meter"
Scope	"System"
Status	
Code	0
Reason	""
UserMessage	""
Timestamp	"2021-04-29T10:05:39+02:00"
 
Dodane : 28/04/2021 9:32 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kniazio łatwo nie jest i ty nie ułatwiasz wstawiając wartości z różnych okresów . Zobacz na początek taki prosty skrypt

local fronek = 'Fronius_Meter'

return
{
    on =
    {
        timer =
        {'every minute at daytime'},

        httpResponses =
        {
        fronek,
        },
    },

    logging =
    {
        level = domoticz.LOG_DEBUG,
        marker = Fronius_licznik,
    },

    execute = function(dz, item)
        
        local IPFronius = dz.variables('UV_FroniusIP').value

        if item.isTimer then
            dz.openURL(
            {
                url = 'http://'..IPFronius..'solar_api/v1/GetMeterRealtimeData.cgi?Scope=System',
                callback = fronek,
            })
            return
        end

        if item.ok and item.isJSON then
            local rt = item.json.Body.Data
            dz.devices('PowerReal_P_Sum').updateCustomSensor( (rt.PowerReal_P_Sum and rt.PowerReal_P_Sum.Value ) or 0) 
		
        else
            dz.log('Wystąpił problem podczas obsługi żądania', dz.LOG_ERROR)
            dz.log(item, dz.LOG_DEBUG)
        end

    end
}

U mnie  skrypt wywala błąd bo nie mam licznika , jak widzisz skrypt pobiera IP Froniusa z tej samej zmiennej co skrypt gółwny , więc wystarczy tylko utworzyć CustomSensor "PowerReal_P_Sum"

 
Dodane : 30/04/2021 12:43 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 

@isom

Error opening url:  http://192.168.1.199solar_api/v1/GetMeterRealtimeData.cgi?Scope=System 

 

Błąd poprawiłem ale nic nie liczy narazie

A nie dalo by sie zeby pokazywal ile dom pobiera i ile wysyla do PGE?

z tego linku np:

 http://192.168.1.199/solar_api/v1/GetPowerFlowRealtimeData.fcgi 

Odpowiedz froniusa:

	
Body	
Data	
Inverters	
1	
DT	110
E_Day	11297
E_Total	325372
E_Year	325372
P	1704
Site	
E_Day	11297
E_Total	325372
E_Year	325372
Meter_Location	"load"
Mode	"vague-meter"
P_Akku	null
P_Grid	-1225.9123733794668
P_Load	-478.08762662053323
P_PV	1704
rel_Autonomy	100
rel_SelfConsumption	28.05678559979655
Version	"12"
Head	
RequestArguments	{}
Status	
Code	0
Reason	""
UserMessage	""
Timestamp	"2021-04-30T15:32:41+02:00"

LOG

 2021-04-30 15:41:00.548 Status: dzVents: Info: ------ Start internal script: FMeter:, trigger: every minute at daytime
2021-04-30 15:41:00.549 Status: dzVents: Debug: OpenURL: url =  http://192.168.1.199/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System 
2021-04-30 15:41:00.549 Status: dzVents: Debug: OpenURL: method = GET
2021-04-30 15:41:00.549 Status: dzVents: Debug: OpenURL: post data = nil
2021-04-30 15:41:00.549 Status: dzVents: Debug: OpenURL: headers = nil
2021-04-30 15:41:00.549 Status: dzVents: Debug: OpenURL: callback = Fronius_Meter
2021-04-30 15:41:00.549 Status: dzVents: Info: ------ Finished FMeter 

P.S. Pytanie czy Domoticz przyjmuje wartości ujemne?

 
Dodane : 30/04/2021 3:13 pm
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 
 http://192.168.1.199/solar_api/v1/GetPowerFlowRealtimeData.fcgi 

	
Body	
Data	
Inverters	
1	
DT	110
E_Day	63.10000228881836
E_Total	334137
E_Year	334137.3125
P	156
Site	
E_Day	63.10000228881836
E_Total	334137
E_Year	334137.3125
Meter_Location	"load"
Mode	"vague-meter"
P_Akku	null
P_Grid	172.27618674266148 - Pobór z PGE
P_Load	-328.2761867426615 - Pobór przez ój dom
P_PV	156
rel_Autonomy	47.520961403846734
rel_SelfConsumption	100
Version	"12"
Head	
RequestArguments	{}
Status	
Code	0
Reason	""
UserMessage	""
Timestamp	"2021-05-01T05:50:42+02:00"
 http://192.168.1.199/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System 

	
Body	
Data	
0	
Details	
Manufacturer	"Fronius"
Model	"S0 Meter at inverter 1"
Serial	"n.a."
Enable	1
EnergyReal_WAC_Minus_Relative	41
Meter_Location_Current	1
PowerReal_P_Sum	-330.16539921637866 - pobór przez mój dom (to samo co P_Load w tym co powyżej)
TimeStamp	1619841047
Visible	1
Head	
RequestArguments	
DeviceClass	"Meter"
Scope	"System"
Status	
Code	0
Reason	""
UserMessage	""
Timestamp	"2021-05-01T05:50:47+02:00"

 

 
Dodane : 01/05/2021 5:57 am
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Trochę musiałem z tym powalczyć ale powinno działać , Nazwy czujników ustaw na razie takie jak w  skrypcie , wszystkie to CustomSensor

Skrypt startuje 10 minut przed wschodem słońca i działa do zachodu słońca + 30 minut

Czujniki E_Total i E_Day są po to żebym widział czy działa , ty możesz je usunąć ze skryptu 

return
{
    on =
    {
        timer =
        {'every minute between 10 minutes before sunrise and 30 minutes after sunset'},

        httpResponses =
        {
        scriptVar,
        },
    },

    logging =
    {
        level = domoticz.LOG_DEBUG,
        marker = Fronius_Meter,
    },

    execute = function(dz, item)
        
        local IPFronius = dz.variables('UV_FroniusIP').value  -- zmienna w domoticz typ string IPFronius

        if item.isTimer then
            dz.openURL(
            {
                url = 'http://'..IPFronius..'/solar_api/v1/GetPowerFlowRealtimeData.fcgi',
                callback = scriptVar,
            })
            return
        end

        if item.ok and item.isJSON then
            local rt = item.json.Body.Data.Site
            if not(rt) then 
                dz.log('There is no Body.Data in the JSON', dz.LOG_ERROR)
                dz.utils.dumpTable(item.json) 
            else
                dz.devices('Fronius_E_Total').updateCustomSensor( rt.E_Total or 0) -- wszystkie czujniki CustomSensor
                dz.devices('Fronius_E_Day').updateCustomSensor( rt.E_Day or 0)     
                dz.devices('Pobór_PGE').updateCustomSensor( rt.P_Grid or 0)
                dz.devices('Pobór_Dom').updateCustomSensor( rt.P_Load or 0)
                dz.devices('P_PV').updateCustomSensor( rt.P_PV or 0)
            end
        else
            dz.log('There was a problem handling the request', dz.LOG_ERROR)
            dz.log(item, dz.LOG_DEBUG)
        end

    end
}
 
Dodane : 02/05/2021 8:11 am
kniazio
(@kniazio)
Wpisów: 209
Pomocny Donator 2K21
 

@isom

Wydaje mi sie ze skryt powinien dzialac cala dobe bo dom pobiera energie cala dobe

 
Dodane : 02/05/2021 8:18 am
Strona 5 / 7
Udostępnij: