Powiadomienia
Wyczyść wszystko
Domoticz
25
Wpisów
3
Użytkownicy
0
Reactions
3,678
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

