Automatyczny reset ...
 
Powiadomienia
Wyczyść wszystko

Domoticz Automatyczny reset routera przy braku internetu

112 Wpisów
4 Użytkownicy
0 Reactions
5,935 Wyświetleń
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@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
(@bobrow)
Wpisów: 387
Weteran
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
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@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
(@bobrow)
Wpisów: 387
Weteran
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
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

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
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

A wyłączenie możesz sobie ustawić w samym przełączniku 

 
Dodane : 22/07/2022 2:22 pm
(@bobrow)
Wpisów: 387
Weteran
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
(@bobrow)
Wpisów: 387
Weteran
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
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Nie wiem u mnie działa 

Oczywiście nie 80 sek ! 

 
Dodane : 22/07/2022 2:27 pm
(@bobrow)
Wpisów: 387
Weteran
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
(@bobrow)
Wpisów: 387
Weteran
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
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

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
(@bobrow)
Wpisów: 387
Weteran
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
(@bobrow)
Wpisów: 387
Weteran
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
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Switch wyłączam po 20s 

 
Dodane : 22/07/2022 4:06 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

odpaliłem to na potrzeby tego tematu ale za trzy godziny mogę wstawić kolejne logi 

1
 
Dodane : 22/07/2022 5:06 pm
(@bobrow)
Wpisów: 387
Weteran
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
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Wtyczka wyciągana z RJ z przyłącza

 
Dodane : 22/07/2022 6:12 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

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
(@bobrow)
Wpisów: 387
Weteran
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
Strona 4 / 6
Udostępnij: