Powiadomienia
Wyczyść wszystko
Domoticz
138
Wpisów
7
Użytkownicy
1
Reactions
21.4 K
Wyświetleń
Ładnie jest teraz :))
Dodane : 02/05/2021 9:50 am
Dzięki koledze @isom który napisał dla mnie skrypt pobierający dane z dodatkowego licznika mam w domoticzu dostęp do dodatkowych danych
Oto skrypt:
local scriptVar = 'Fronius'
return
{
on =
{
timer =
{'every minute'},
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('PGE').updateCustomSensor( rt.P_Grid or 0)
dz.devices('Dom').updateCustomSensor( rt.P_Load or 0)
dz.devices('Samowystarczalność').updateCustomSensor( rt.rel_Autonomy or 0)
dz.devices('Potrzeby_własne').updateCustomSensor( rt.rel_SelfConsumption or 0)
end
else
dz.log('There was a problem handling the request', dz.LOG_ERROR)
dz.log(item, dz.LOG_DEBUG)
end
end
}
A oto efekt skryptu:
Dodatkowe dane to kafelki o nazwach: PGE, Dom, Samowystarczalność
Pozdrawiam kolegę @isom. Jeszcze raz wielkie dzięki.
Dodane : 02/05/2021 11:47 am
Ciekawe czy temperature falownika da sie wyiagnac z Api? Szukalem bezskutecznie jakby co.
Dodane : 02/05/2021 3:31 pm
Można po dodaniu dodatkowego modułu do falownika
Dodane : 02/05/2021 5:25 pm
Można po dodaniu dodatkowego modułu do falownika
Znowu dodatkowego? Tyle kasy kosztuje ten falownik i zeby zmierzyc mu temp to trzeba cos dokupowac?. Skandal 🙂
Zartowalem 🙂 Zapniemy DS18B20 i bedzie git.
P.S. A jednak cos jest
http://192.168.1.199/solar_api/v1/GetArchiveData.cgi?Scope=System&StartDate=02.05.2021&EndDate=02.05.2021&Channel=Temperature_Powerstage
Odp:
{
"Body" :
{
"Data" :
{
"inverter/1" :
{
"Data" :
{
"Temperature_Powerstage" :
{
"Unit" : "°C",
"Values" :
{
"0" : 0,
"10200" : 0,
"10500" : 0,
"10800" : 0,
"11100" : 0,
"11400" : 0,
"11700" : 0,
"1200" : 0,
"12000" : 0,
"12300" : 0,
"12600" : 0,
"12900" : 0,
"13200" : 0,
"13500" : 0,
"13800" : 0,
"14100" : 0,
"14400" : 0,
"14700" : 0,
"1500" : 0,
"15000" : 0,
"15300" : 0,
"15600" : 0,
"15900" : 0,
"16200" : 0,
"16500" : 0,
"16800" : 0,
"17100" : 0,
"17400" : 0,
"17700" : 0,
"1800" : 0,
"18000" : 0,
"18300" : 0,
"18600" : 34,
"18900" : 35,
"19200" : 36,
"19500" : 37,
"19800" : 38,
"20100" : 38,
"20400" : 39,
"20700" : 39,
"2100" : 0,
"21000" : 40,
"21300" : 40,
"21600" : 40,
"21900" : 41,
"22200" : 41,
"22500" : 41,
"22800" : 41,
"23100" : 42,
"23400" : 42,
"23700" : 42,
"2400" : 0,
"24000" : 43,
"24300" : 43,
"24600" : 43,
"24900" : 41,
"25200" : 41,
"25500" : 42,
"25800" : 43,
"26100" : 43,
"26400" : 44,
"26700" : 44,
"2700" : 0,
"27000" : 43,
"27300" : 42,
"27600" : 43,
"27900" : 44,
"28200" : 44,
"28500" : 45,
"28800" : 44,
"29100" : 43,
"29400" : 43,
"29700" : 44,
"300" : 0,
"3000" : 0,
"30000" : 45,
"30300" : 45,
"30600" : 45,
"30900" : 45,
"31200" : 44,
"31500" : 44,
"31800" : 45,
"32100" : 46,
"32400" : 46,
"32700" : 45,
"3300" : 0,
"33000" : 45,
"33300" : 45,
"33600" : 45,
"33900" : 46,
"34200" : 46,
"34500" : 47,
"34800" : 46,
"35100" : 46,
"35400" : 45,
"35700" : 46,
"3600" : 0,
"36000" : 46,
"36300" : 47,
"36600" : 46,
"36900" : 46,
"37200" : 46,
"37500" : 46,
"37800" : 46,
"38100" : 47,
"38400" : 47,
"38700" : 46,
"3900" : 0,
"39000" : 45,
"39300" : 46,
"39600" : 46,
"39900" : 46,
"40200" : 46,
"40500" : 46,
"40800" : 47,
"41100" : 47,
"41400" : 47,
"41700" : 46,
"4200" : 0,
"42000" : 45,
"42300" : 45,
"42600" : 46,
"42900" : 46,
"43200" : 46,
"43500" : 46,
"43800" : 45,
"44100" : 45,
"44400" : 45,
"44700" : 45,
"4500" : 0,
"45000" : 45,
"45300" : 45,
"45600" : 45,
"45900" : 45,
"46200" : 46,
"46500" : 46,
"46800" : 47,
"47100" : 47,
"47400" : 48,
"47700" : 49,
"4800" : 0,
"48000" : 49,
"48300" : 50,
"48600" : 51,
"48900" : 51,
"49200" : 51,
"49500" : 51,
"49800" : 51,
"50100" : 50,
"50400" : 50,
"50700" : 49,
"5100" : 0,
"51000" : 49,
"51300" : 48,
"51600" : 48,
"51900" : 48,
"52200" : 48,
"52500" : 48,
"52800" : 48,
"53100" : 48,
"53400" : 47,
"53700" : 47,
"5400" : 0,
"54000" : 47,
"54300" : 47,
"54600" : 47,
"54900" : 47,
"55200" : 47,
"55500" : 47,
"55800" : 47,
"56100" : 47,
"56400" : 47,
"56700" : 48,
"5700" : 0,
"57000" : 48,
"57300" : 49,
"57600" : 48,
"57900" : 48,
"58200" : 48,
"58500" : 47,
"58800" : 47,
"59100" : 48,
"59400" : 48,
"59700" : 49,
"600" : 0,
"6000" : 0,
"60000" : 49,
"60300" : 49,
"60600" : 48,
"60900" : 47,
"61200" : 47,
"61500" : 48,
"61800" : 48,
"62100" : 48,
"62400" : 48,
"62700" : 49,
"6300" : 0,
"63000" : 49,
"63300" : 49,
"63600" : 49,
"63900" : 49,
"64200" : 49,
"64500" : 49,
"64800" : 48,
"65100" : 48,
"65400" : 48,
"65700" : 48,
"6600" : 0,
"66000" : 48,
"66300" : 47,
"66600" : 47,
"66900" : 48,
"67200" : 48,
"67500" : 47,
"67800" : 47,
"68100" : 46,
"68400" : 47,
"68700" : 47,
"6900" : 0,
"69000" : 47,
"69300" : 47,
"69600" : 46,
"69900" : 46,
"70200" : 46,
"70500" : 46,
"70800" : 46,
"71100" : 46,
"71400" : 0,
"71700" : 0,
"7200" : 0,
"72000" : 0,
"72300" : 0,
"72600" : 0,
"72900" : 0,
"73200" : 0,
"73500" : 0,
"73800" : 0,
"74100" : 0,
"74400" : 0,
"74700" : 0,
"7500" : 0,
"75000" : 0,
"75300" : 0,
"75600" : 0,
"75900" : 0,
"76200" : 0,
"76500" : 0,
"76800" : 0,
"77100" : 0,
"77400" : 0,
"77700" : 0,
"7800" : 0,
"78000" : 0,
"78300" : 0,
"78600" : 0,
"78900" : 0,
"79200" : 0,
"79500" : 0,
"79800" : 0,
"80100" : 0,
"80400" : 0,
"80700" : 0,
"8100" : 0,
"81000" : 0,
"81300" : 0,
"81600" : 0,
"81900" : 0,
"82200" : 0,
"82500" : 0,
"82800" : 0,
"83100" : 0,
"83400" : 0,
"83700" : 0,
"8400" : 0,
"84000" : 0,
"84300" : 0,
"84600" : 0,
"84900" : 0,
"85200" : 0,
"85500" : 0,
"85800" : 0,
"86100" : 0,
"8700" : 0,
"900" : 0,
"9000" : 0,
"9300" : 0,
"9600" : 0,
"9900" : 0
},
"_comment" : "channelId=65795"
}
},
"DeviceType" : 110,
"End" : "2021-05-02T23:59:59+02:00",
"NodeType" : 97,
"Start" : "2021-05-02T00:00:00+02:00"
}
}
},
"Head" :
{
"RequestArguments" :
{
"Channel" :
[
"Temperature_Powerstage"
],
"EndDate" : "2021-05-02T23:59:59+02:00",
"HumanReadable" : "True",
"Scope" : "System",
"SeriesType" : "Detail",
"StartDate" : "2021-05-02T00:00:00+02:00"
},
"Status" :
{
"Code" : 0,
"ErrorDetail" :
{
"Nodes" : []
},
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2021-05-03T06:43:51+02:00"
}
}
Jesli wypluwa dane archiwalne to musza gdzies byc tez dane real
Dodane : 03/05/2021 5:05 am
Znalazlem w sieci taki oto skrypt który zlicza miesięczne wartosci energii:
Niestety nie liczy mojego zuzycia przez dom poniewaz wartosci mojego zuzycia sa ze znakiem minus i skrypt wywala blad.
Czy jest ktos na forum kto dal by rade to poprawic zeby liczylo z minusem?
Oto skrypt:
local httpResponses = 'oneMonthTotal'
return {
on = {
timer = { 'every minute' }, -- if you get data from previous months you only have to do this once a month at a quiet time
-- timer = { 'on 1/* at 04:17' }, -- if you get data from previous months you only have to do this once a month at a quiet time
httpResponses = { httpResponses .. '*' }
},
logging = {
level = domoticz.LOG_DEBUG, -- set to LOG_ERROR when script works as expected
marker = httpResponses
},
execute = function(dz, item)
-- ****************************** Your settings below this line ***************************************************
usageDevice = dz.devices(3235) -- Replace xxxx with ID of energyDevice you want to track
oneMonthTotal = dz.devices(3299) -- Create as virtual managed counter (energy) and change yyyy to the ID of the new device
-- ****************************** No changes required below this line *********************************************
local function logWrite(str,level)
dz.log(tostring(str),level or dz.LOG_DEBUG)
end
local function triggerJSON(id, period, delay)
local delay = delay or 0
local URLString = dz.settings['Domoticz url'] .. '/json.htm?type=graph&sensor=counter&range=' ..
period .. '&idx=' .. id
dz.openURL({ url = URLString,
method = 'GET',
callback = httpResponses .. '_' .. period}).afterSec(delay)
end
local function calculateoneMonthTotal(rt)
local oneMonthTotal = 0
local dateFmt = '%Y-%m'
monthMinus1 = os.date(dateFmt,os.time{day=1, year=dz.time.year, month=dz.time.month - 1 })
for id, result in ipairs(rt) do
if result.d:sub(1,7) == monthMinus1 then
logWrite(result.d .. ' ==>> ' .. result.v)
oneMonthTotal = oneMonthTotal + result.v
end
end
return oneMonthTotal * 1000
end
if not item.isHTTPResponse then
triggerJSON(usageDevice.id, 'year')
elseif item.ok then -- statusCode == 2xx
oneMonthTotal.update(0,calculateoneMonthTotal(item.json.result))
else
logWrite('Could not get (good) data from domoticz. Error (' .. (item.statusCode or 999) .. ')' ,dz.LOG_ERROR)
logWrite(item.data)
end
end
}
A to zrodlo skryptu:
https://domoticz.com/forum/viewtopic.php?t=30473
Dodane : 25/05/2021 2:34 pm
@kniazio twoje błędy, które wstawiłeś na angielskim forum , wskazują , że próbujesz coś liczyć ale używasz do tego złego urządzenia , jak podstawisz w tym skrypcie zamiast CustomSensor Licznik enegrii chwilowej to skrypt będzie działał .
Ty używasz w skrypcie, który napisałem CustomSensora a nie urządzenia energetycznego
Dodane : 25/05/2021 9:32 pm
@kniazio twoje błędy, które wstawiłeś na angielskim forum , wskazują , że próbujesz coś liczyć ale używasz do tego złego urządzenia , jak podstawisz w tym skrypcie zamiast CustomSensor Licznik enegrii chwilowej to skrypt będzie działał .
Ty używasz w skrypcie, który napisałem CustomSensora a nie urządzenia energetycznego
No wlasnie zauwazylem ze jak podepne pod skrypt pomiar o nazwie Aktualnie to skrypt liczy. Ale nie rozumiem tego poniewaz pomiar "Aktualnie" jest brany tak samo z Api Froniusa jak pomiar "Dom" tyle ze ze znakiem minus. Tak wiec jest mozliwosc zliczania pomiaru "Dom" czy jej nie ma ?
Dodane : 26/05/2021 4:48 am
@kniazio Na "Aktualne" działa bo ten czujnik oprócz wartości chwilowej zlicza też uzysk dzienny a CustomSensor "Dom" tego nie robi :))
Minusy w matematyce też da się sumować i mnożyć więc możliwość jest tylko trzeba sobie poczytać wiki DzVents i zamienić w skrypcie Custom sensor na poprawne urządzenie
Dodane : 26/05/2021 7:29 am
A jakas podpowiedz dla poczatkujacego donatora:)
Zmiana w skrypcie mnie nie uzadza poniewaz ja chce zliczac wartosc ujemna czyli to co dom zuzywa. Co mi da zmiana na zliczanie z urzadzenia "Aktualnie" skoro ono juz jest zliczane
Dodane : 26/05/2021 9:29 am
Dodalem do twojego skryptu "DomZ"
dz.devices('PGE').updateCustomSensor( rt.P_Grid or 0)
dz.devices('Dom').updateCustomSensor( rt.P_Load or 0)
dz.devices('DomZ').updateCounter( rt.P_Load or 0)
dz.devices('Samowystarczalność').updateCustomSensor( rt.rel_Autonomy or 0)
dz.devices('Potrzeby_własne').updateCustomSensor( rt.rel_SelfConsumption or 0)
Dodalem sensor Counter ktory u dolu pokazuje mi to samo co "Dom" czyli OK ale u gory okazuje jakies glupoty. Czy trzeba cos ustawic we wlasciwosciach tego sensora?
Dodane : 26/05/2021 11:08 am
Witam po dlugim czasie.
Dzisiaj zrobilem aktualizacje oprogramowania Fronius
Czy ktos wie co zmienilo sie w Api bo skrypt przestal mi zliczac i pokazywac energie biezaca
Link przestal dzialac
Dodane : 30/07/2021 11:28 am
Panowie problem rozwiazany:
Trzeba w skrypcie zmienic jedna literke w url do API, "D" na "d" i wszystko smiga
http://192.168.1.199/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData - nie dziala
http://192.168.1.199/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData - dziala
Pozdrawiam
Dodane : 30/07/2021 3:14 pm
isom zareagował
Ponieważ po zmianie "ID" na "Id" w url, wszystko działa również na starszej wersji softu falownika, edytowałem i zmieniłem to we wcześniejszych wpisach.
Dzięki @kniazio
Dodane : 31/07/2021 6:12 am
@kniazio Na "Aktualne" działa bo ten czujnik oprócz wartości chwilowej zlicza też uzysk dzienny a CustomSensor "Dom" tego nie robi :))
Minusy w matematyce też da się sumować i mnożyć więc możliwość jest tylko trzeba sobie poczytać wiki DzVents i zamienić w skrypcie Custom sensor na poprawne urządzenie
Na jakie urzadzenie zmienic CustomSensor? Co mam wpisac w skrypcie zamiast CustomSensor?
dz.devices('PGE').updateCustomSensor( rt.P_Grid or 0)
dz.devices('Dom').updateCustomSensor( rt.P_Load or 0)
dz.devices('Samowystarczalność').updateCustomSensor( rt.rel_Autonomy or 0)
dz.devices('Potrzeby_własne').updateCustomSensor( rt.rel_SelfConsumption or 0)
end
Doszedlem do tego ze zrobilem licznik instant+counter i w skrypcie dodalem :
dz.devices('Power_usage').updateElectricity( rt.P_Load or 0)
ale w Today jakies glupoty liczy. Raz dodaje raz odejmuje . Ogolnie kicha
EDIT
Po kilkunastu godzinach pojawily sie slupki w wykresie Week
W wykresie Last 24 jednak wyglada to jakos dziwnie.
Ciekawe na ile jest to wiarygodne zuzycie
Poradzicie cos?
Dodane : 24/08/2021 3:16 pm
Strona 7 / 7
Poprzednia









