Powiadomienia
Wyczyść wszystko
Domoticz
25
Wpisów
3
Użytkownicy
0
Reactions
2,923
Wyświetleń
@piotras78 w blockly nie użyjesz wartości Rain- suma opadów , możesz natomiast użyć wartość rate - bieżący opad czyli ta wartość z mm/h .
Żeby użyć wartości suma opadów trzeba ją najpierw pobrać np co godzinę i dopiero na tej podstawie można aktualizować inny przełącznik w domoticz
Dodatkowo suma opadów mniejsza niż 1 mm nie zostanie wyświetlona w miejscu, które zaznaczyłeś , dopiero przy wartości 1mm i > będzie widoczna ta wartość.
Nie wiem do czego chcesz używać tego parametru i jak działa twój czujnik opadów więc trudno jest coś doradzić - pomóc
Dodane : 14/06/2021 1:06 pm
Czujnik działa z dokładnością do jednej dziesiątej.
Potrzebuje sumę dobowych opadów do sterowania podlewaniem trawnika.
Zrobiłem sobie z forum prognozę opadów na kolejne dni i zamysł jest taki że jezeli w dniu poprzednim spadnie poniżej 0.8 i prognoza na następny dzień jest tez poniżej 0.8 to ma podlać trawnik a jezeli spadło powyżej to ma nie podlewac.
Wartość rate nie jest mi kompletnie potrzebna bo pokazuje tylko chwilowo przy opadach ile spadło na m2
Dodane : 14/06/2021 4:01 pm
@isom Czy możesz mi podpowiedzieć jak napisać taką aktualizację innego czujnika o dane z opadów dobowych.
Próbowałem cos takiego ale nie działa:
return {
on = {
['timer'] = {'every 1 minutes'}
},
logging = { level = domoticz.LOG_ERROR,
marker = "deszcz..24h" },
execute = function(dz)
local temp = dz.devices('Waldbeck Halley - Rain').rain
dz.devices('xxx').updateRain(temp, dz.temp_NOINFO)
end
}
Dodane : 16/06/2021 9:20 pm
@piotras78 dane z czujnika są zapisywane w bazie i można je wyciągnąć za pomocą poleceń json
/json.htm?type=graph&sensor=rain&idx=IDX&range=day /json.htm?type=graph&sensor=rain&idx=IDX&range=week /json.htm?type=graph&sensor=rain&idx=IDX&range=month /json.htm?type=graph&sensor=rain&idx=IDX&range=year
Odpowiednio dla dnia, tygodnia itd
Nie mam podobnego czujnika ani stacji pogodowej , ale w sieci jest dość prosty skrypt , który pobiera dane z wartości range=month i jeśli ta wartość jest mniejsza od ustawionego progu ( minAmount - w skrypcie ) załącza na godzinę przełącznik (waterPump - w skrypcie ).
Dodatkowo jest parametr daysToEvaluate - ustala z ilu dni mają być pobrane dane do porównania z wartością minAmount .
Myślę że to dobra baza żeby zbudować coś co będzie dla ciebie użyteczne , może po prostu zmienić końcówkę skryptu i ustawić włącz jak mniej a wyłącz jak więcej opadu od ustalonego progu .
Zaznaczam że skrypt nie był testowany w moim środowisku bo nie mam na czym i nie potrzebuję
local scriptVar = 'water the plants' return { on = { timer = { 'at 04:00', -- change to the time you want to check the amount of rain in the set number of days }, httpResponses = { scriptVar, }, }, logging = { level = domoticz.LOG_DEBUG, -- change to domoticz.LOG_ERROR when script works as expected marker = scriptVar, }, execute = function(dz, item) local minAmount = 1 -- in mm rain local daysToEvaluate = 3 -- in days local rainDevice = dz.devices('myRain') -- name enclosed in quotes or number without quotes local waterPump = dz.devices('Beregening') if item.isDevice or item.isTimer then dz.openURL( { url = dz.settings['Domoticz url'] .. '/json.htm?type=graph&sensor=rain&idx=' .. rainDevice.idx .. '&range=month', callback = scriptVar, }) return end local function getmm(rt) local startDate = (dz.time.addMinutes(-1 * daysToEvaluate * 24 * 60)).rawDate local mm = 0 dz.log('startDate: ' .. startDate, dz.LOG_DEBUG) for index, record in ipairs(rt) do if record.d > startDate then mm = mm + record.mm end end return mm end if item.ok and item.isJSON then local mmRain = getmm(item.json.result, days ) if mmRain < minAmount then waterPump.cancelQueuedCommands() waterPump.switchOn() waterPump.switchOff().afterSec(3600) dz.log('Not enough rain in the last ' .. daysToEvaluate .. ' days (' .. mmRain .. ' mm). Switching waterpump on for 1 hour', dz.LOG_DEBUG) else dz.log('Enough rain in the last ' .. daysToEvaluate .. ' days (' .. mmRain .. 'mm). No need to turn on waterpump.', dz.LOG_DEBUG) end else dz.log('No valid response from domoticz ',dz.LOG_ERROR) dz.log(item,dz.LOG_ERROR) end end }
Dodane : 17/06/2021 8:58 am
@isom Ok - dzięki. Potestuje i zobaczę co z tego wyjdzie.
W tej chwili mam już ustawione podlewanie zależne od temperatury, nasłonecznienia, wilgotności i prognozowanych opadów - w chwili obecnej jest w fazie testów ale działa całkiem ok
Dodane : 17/06/2021 1:03 pm
Strona 2 / 2
Poprzednia