@bobrow faktycznie rozczarowałeś mnie , a jest mi tym bardziej przykro że telefonów było sporo , nic nie zostało z mojego gadania :))
Może zrekompensujesz mi to wklejonym kodem, który będzie działal ?
Pewnie nie przyswajam na raz za dużo informacji , albo SKS...
A teraz tak czysto teoretycznie-czy ten zapis jest prawidłowy ?
return {
on = {
timer = { 'every 3 minutes' },
httpResponses = { 'NBPEUR' }
},
execute = function(domoticz, item)
if (item.isTimer) then
domoticz.openURL({
url = 'http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json',
method = 'GET',
callback = 'NBPEUR'
})
end
if (item.isHTTPResponse and item.ok) then
domoticz.devices('Kurs EUR').updateCustomSensor(item.json.rates[1]['mid'])
elseif domoticz.devices('Kurs EUR').lastUpdate.minutesAgo >= 10 then
domoticz.devices('Reset router').switchOn().forSec(60)
domoticz.log('Reset router',domoticz.LOG_INFO)
end
end
}
Co 3 min sprawdza NBP , co 10 min czy było łącze i 1 min switch-chyba powinno się zapinać ?
PS
Jednak potrafię wklejać kod... 😎
@bobrow tak to ma prawo działać, ale zbyt często chcesz pytać NBP o kurs , To obciąża twoją maszynę bo za każdym razem czeka na odpowiedz i robi się za gęsto , nie umiem tego inaczej wytłumaczyć
Twoje zapytanie do NBP musi zostać przetworzone i konkretna odpowiedz musi zostać wysłana jest to zapisane w
domoticz.devices('Kurs EUR').updateCustomSensor(item.json.rates[1]['mid'])
No widzisz-dla mnie to jasne ,że może być problem tylko z odpytaniem. Wtedy powinienem mieć tylko cykliczne resety (teoretycznie jeśli nie będzie odpowiedzi z NBP).
Fajnie , tylko jest jedno ALE-załącza się po 1 cyklu ten reset (po ok 1,5min) i zostaje na ON...
Nie rozumiem dlaczego ,jeśli powinno się to spinać czasowo -nawet z negatywnymi wynikami zapytań ?
Zapytanie to jedno , a funkcja set for to drugie ? 😯
Takie coś będzie pewnie działać bez błędów
return {
on = {
timer = { 'every 20 minutes' },
httpResponses = { 'NBPEUR' }
},
execute = function(dz, item)
local reset = dz.devices('Reset')
local kurs = dz.devices('Kurs EURO')
if (item.isTimer) then
dz.openURL({
url = 'http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json',
method = 'GET',
callback = 'NBPEUR'
})
end
if (item.isHTTPResponse and item.ok) then
kurs.updateCustomSensor(item.json.rates[1]['mid'])
dz.log('Kurs ok', dz.LOG_INFO)
elseif kurs.lastUpdate.minutesAgo >= 40 then
reset.switchOn()
dz.log('Problem z połączeniem',dz.LOG_ERROR)
end
end
}
A wyłączenie możesz sobie ustawić w samym przełączniku
Oczywiście-tylko dlaczego to nie działa na tej funkcji set for ?
Mam coś źle zapisane ?
Pytam ,bo jak zacznę coś płodzić -to żebym się nie kręcił jak Mały Kazio...
Nie wiem u mnie działa
Oczywiście nie 80 sek !
Ale właściwie to nie do końca rozwiąże się ten problem-jeden cykl tj po 10min set for 60s -i ok , załączyło się i po 60s wyłączyło...ale po ok 90s wyjście załączyło się na stałe...dlaczego po takim kulawym czasie ?
Zapis jest trochę inny od poprzedniego.
np tu
dz.log('Kurs ok', dz.LOG_INFO)
i podobnie tu
dz.log('Problem z połączeniem',dz.LOG_ERROR)
Opisałeś sobie tylko inną nazwą logi ? Dlaczego ?
wpisałem sobie logi takie żeby wiedzieć co sie dzieje a jak nie rozumiesz zasad czasowych to ustaw w przełączniku wyłącz po 20 sek i będzie spokój
No dobrze-zakręciłem się , myślałem że te logi dotyczą samych fizycznych tj istniejących w domoticzu funkcji.
A to po prostu nazwa tego co się wydarzyło linijkę wyżej.
Kiedy wyciąłem tylko set for , niestety dalej wariuje reset...
Zrobiłem więc przeróbkę do testów Twój ostatni zapis
on = {
timer = { 'every 3 minutes' },
httpResponses = { 'NBPEUR' }
},
execute = function(dz, item)
local reset = dz.devices('Reset router')
local kurs = dz.devices('Kurs EUR')
if (item.isTimer) then
dz.openURL({
url = 'http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json',
method = 'GET',
callback = 'NBPEUR'
})
end
if (item.isHTTPResponse and item.ok) then
kurs.updateCustomSensor(item.json.rates[1]['mid'])
dz.log('Kurs ok', dz.LOG_INFO)
elseif kurs.lastUpdate.minutesAgo >= 10 then
reset.switchOn()
dz.log('Problem z połączeniem',dz.LOG_ERROR)
end
end
}
Dostosowałem oczywiści moje nazewnictwo funkcji. Testuje się
Nie chce być upierdliwym, ale dalej jest tak samo ...poniżej błędy
Switch wyłączam po 20s
Ale chyba nie masz resetu- u mnie wszystko jest ok do momentu kiedy wyciągnę wtyczkę ze ściany do routera.Potem też jest ok tj działa reset i wyłącza się router.Po odliczeniu czasu działania wraca zasilanie i wtedy zaczyna się cyrk…w tym czasie livebox się uruchamia (ale nie zdąży,przed synchronizacją działa reset choć nie było warunków).Cała sieć wifi postawiona na drugim rouetrze-ta sieć jest przez chwilę bez internetu…
Wtyczka wyciągana z RJ z przyłącza
Jutro wstawię logi z resetem bo muszę go sztucznie wywołać. A ta sieć na pewno działa bez tego Liveboxa?
A…u mnie trawa skoszona…taras,wino i śpiew…Że livebox…tia-niestety w obecnym stanie świadomości potwierdzam ,że livebox daje tylko internet do domoticza….
Jedziemy dalej…teraz hity naszego rocka…
pozdrawiamy
