Powiadomienia
Wyczyść wszystko
Domoticz
112
Wpisów
4
Użytkownicy
0
Reactions
5,935
Wyświetleń
@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 ?
Dodane : 22/07/2022 1:44 pm
Autor tematu
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... 😎
Dodane : 22/07/2022 1:56 pm
@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'])
Dodane : 22/07/2022 2:02 pm
Autor tematu
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 ? 😯
Dodane : 22/07/2022 2:16 pm
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 }
Dodane : 22/07/2022 2:17 pm
A wyłączenie możesz sobie ustawić w samym przełączniku
Dodane : 22/07/2022 2:22 pm
Autor tematu
Oczywiście-tylko dlaczego to nie działa na tej funkcji set for ?
Mam coś źle zapisane ?
Dodane : 22/07/2022 2:25 pm
Autor tematu
Pytam ,bo jak zacznę coś płodzić -to żebym się nie kręcił jak Mały Kazio...
Dodane : 22/07/2022 2:26 pm
Nie wiem u mnie działa
Oczywiście nie 80 sek !
Dodane : 22/07/2022 2:27 pm
Autor tematu
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 ?
Dodane : 22/07/2022 2:29 pm
Autor tematu
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 ?
Dodane : 22/07/2022 3:11 pm
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
Dodane : 22/07/2022 3:19 pm
Autor tematu
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ę
Dodane : 22/07/2022 3:37 pm
Autor tematu
Nie chce być upierdliwym, ale dalej jest tak samo ...poniżej błędy
2022-07-22 16:39:10.659 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
2022-07-22 16:39:10.812 Error: dzVents: Error: (3.1.7) HTTP/1.1 response: 28 ==>> Timeout was reached
2022-07-22 16:45:10.276 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
2022-07-22 16:45:10.423 Error: dzVents: Error: (3.1.7) HTTP/1.1 response: 28 ==>> Timeout was reached
2022-07-22 16:48:00.361 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
2022-07-22 16:48:00.579 Error: dzVents: Error: (3.1.7) HTTP/1.1 response: 6 ==>> Couldn't resolve host name
2022-07-22 16:51:01.120 Error: dzVents: Error: (3.1.7) An error occurred when calling event handler Test internetu wg kursu €
2022-07-22 16:51:01.120 Error: dzVents: Error: (3.1.7) ...zVents/generated_scripts/Test internetu wg kursu €.lua:18: attempt to index a nil value (field 'json')
2022-07-22 16:54:00.397 Error: dzVents: Error: (3.1.7) Problem z połączeniem
2022-07-22 16:55:30.608 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
2022-07-22 16:55:30.763 Error: dzVents: Error: (3.1.7) HTTP/1.1 response: 28 ==>> Timeout was reached
2022-07-22 16:55:30.781 Error: dzVents: Error: (3.1.7) Problem z połączeniem
2022-07-22 16:57:00.444 Error: dzVents: Error: (3.1.7) Problem z połączeniem
2022-07-22 16:57:10.488 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
2022-07-22 16:57:10.643 Error: dzVents: Error: (3.1.7) HTTP/1.1 response: 28 ==>> Timeout was reached
2022-07-22 16:57:10.661 Error: dzVents: Error: (3.1.7) Problem z połączeniem
2022-07-22 17:00:00.544 Error: dzVents: Error: (3.1.7) Problem z połączeniem
2022-07-22 17:00:00.588 Error: Error opening url: http://api.nbp.pl/api/exchangerates/rates/a/eur?format=json
Po każdym zadziałaniu tego resetu router wstaje ok 1,5 minuty-nie rozumiem dlaczego po jego zadziałaniu nie liczy czasu testu 2 min i kontroli 10 min , tylko ok 90s
Żyje to swoim nędznym życiem...
Dodane : 22/07/2022 4:05 pm
Autor tematu
Switch wyłączam po 20s
Dodane : 22/07/2022 4:06 pm
odpaliłem to na potrzeby tego tematu ale za trzy godziny mogę wstawić kolejne logi
Dodane : 22/07/2022 5:06 pm
Autor tematu
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…
Dodane : 22/07/2022 6:10 pm
Autor tematu
Wtyczka wyciągana z RJ z przyłącza
Dodane : 22/07/2022 6:12 pm
Jutro wstawię logi z resetem bo muszę go sztucznie wywołać. A ta sieć na pewno działa bez tego Liveboxa?
Dodane : 22/07/2022 8:39 pm
Autor tematu
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
Dodane : 22/07/2022 10:28 pm