A powiedz mi jeszcze jak ten skrypt rozkminia wschod i zachod slonca i czy da sie to edytowac?
Naprawdę chcecie liczyć impulsy , zamiast normalnie czytać energię i inne rzeczy po modbusie....
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
@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
@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?
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ąć
@isom licznik już taki robiłem do wiatromierza. Muszę tylko konwerter zbudować, bo z tego co widzę to na wy są impulsy 24V.
@pawell32 konwerter to chyba zbyt duże słowo , transoptor z dobranym rezystorem i wyjście do GPIO
@isom może zbyt duże 🙂 ale dokładnie takie
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
@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
@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ć
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.
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
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"
@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"
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?
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"
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
}


