Powiadomienia
Wyczyść wszystko

Skrypt dzVents Prognoza opadów i temperatury na podstawie OpenWatherMap

13 Wpisów
3 Użytkownicy
3 Likes
1,489 Wyświetleń
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

Od jakiegoś czasu zacząłem używać skryptu dzVents, który aktualizuje prognozy opadów deszczu i temperatury zewnętrznej w Domoticz.

Skrypt pobiera aktualne dane i przewidywane zmiany z serwisu OpenWatherMap i pozwala na uzyskanie danych nawet z małych miast w Polsce.

Żeby móc korzystać z tego serwisu, trzeba założyć darmowe konto i otrzymać API KEY (bezpłatny).

Jak to zrobić można przeczytać tu https://openweathermap.org/guide#how

Kolejne warunki jakie muszą być spełnione to :

Domoticz w wersji ostatniej stabilnej, lub wyższej (beta), wynika to ze zmian w skryptach dzVents po wersji dzVents 2.4.28.

Działa na ostatniej wersji Smarticz do pobrania na http://smarticz.eu/

Ustawiona w Konfiguracji opcja logowania bez hasła w sieci lokalnej ( fotka poniżej).

 

logowanie

Prawidłowe ustawienia swojej lokalizacji w Ustawieniach Domoticz ( długość i szerokość geograficzna). Skrypt na podstawie tych parametrów pobiera dane pogodowe.

Jeżeli macie spełnione te warunki, to po dodaniu skryptu otrzymacie taki zestaw prognozowanych danych jak poniżej

Prognoza

Co trzeba zrobić w samym domoticzu:

Utworzyć zmienną użytkownika, typ „Ciąg znaków” i jako wartość tej zmiennej wstawić otrzymany API KEY. Ma to wyglądać tak jak poniżej

zmienna

Utworzyć dziewięć wirtualnych czujników temperatury i nazwać je zgodnie z fotką przedstawiającą wszystkie czujniki ( powyżej), albo nazwać dowolnie modyfikując te zmiany w skrypcie.

Utworzyć pięć czujników Custom Sensor z etykietami Axis „mm”. Można oczywiście zmienić domyślne ikony na „Deszcz”.

Utworzyć jedno urządzenie typu TEKST i nazwać „Prognoza”.

Na koniec skopiować zawartość poniższego skryptu, jeśli nazwano urządzenia tak jak na moich fotkach to nic nie modyfikujemy.

Wchodzimy w zdarzenia, dodaj nowe zdarzenie dzVents  - All , usuwamy przykłady,  wklejamy zawartość i zapisujemy.

Co warto sobie dostosować:

Skrypt jest uruchamiany co godzinę, jeśli dla kogoś to zbyt często można to zmienić ustawiając inny czas uruchamiania w „timer”, np. wstawienie zamiast 'every hour' ,  'at 06:00' ustawi uruchamianie skryptu codziennie o 6 rano .

Reszta jest opisana w samym skrypcie, zmiana LOG_DEBUG, na LOG_ERROR, wyłącza zapisywane logów i warto ją zrobić po sprawdzeniu czy skrypt działa poprawnie.

Do czego wykorzystać te prognozy, to już indywidualna inwencja, na pewno przyda się zapaleńcom ogrodowym przy planowaniu harmonogramu nawadniania, czy ogrodnikom, a że sezon ogórkowy i na forum i w realu, to polecam wypróbować działanie skryptu.

 
Dodane : 14/08/2020 10:40 am
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

A da się dostosować skrypt tak żeby nie włączyć opcji logowania bez hasła w sieci lokalnej ??

 
Dodane : 22/08/2020 5:50 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

Skrypt pobiera dane o lokalizacji z ustawień w domoticz , dzięki temu ma też informacje o aktualnym czasie, wschodach i zachodach słońca . Do tego potrzebuje dostęp do tych ustawień w domoticzu. Nie pobierze tych danych przy zabezpieczeniu hasłem. Nie jestem w stanie tego zmienić.

 
Dodane : 23/08/2020 8:24 pm
wojtek_gtx reacted
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

To odpuszczę temat u mnie w domu każdy ma inne uprawnienia 😉

 
Dodane : 23/08/2020 9:03 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Może by tak podać ręcznie dane o lokalizacji. Oczywiście dla tych co mają hasła w Domoticzu.

Dodać do skryptu i do Domoticza jeszcze 2 zmienne typu string

openWeatherLat - tu wpisać szerokość

openWeatherLon - tu wpisać długość

A skrypt  poprawić tak

po

local openWeatherAPIKey = dz.variables('openWeatherAPIKey').value -- Type string var required

dodać

local openWeatherLat = dz.variables('openWeatherLat').value
local openWeatherLon = dz.variables('openWeatherLon').value

oraz na końcu zamienić

dz.openURL({
                url = openWeatherURL  ..
                        '&lat=' .. dz.settings.location.latitude ..
                        '&lon='  .. dz.settings.location.longitude ..
                        '&appid=' .. openWeatherAPIKey,

               callback = scriptVar, -- see httpResponses above.
            })

na dz.openURL({ url = openWeatherURL .. '&lat=' .. openWeatherLat .. '&lon=' .. openWeatherLon .. '&appid=' .. openWeatherAPIKey, callback = scriptVar, -- see httpResponses above. })
 
Dodane : 23/08/2020 10:34 pm
isom and wojtek_gtx reacted
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

Ja z programowania jestem noga więc jeżeli pod powiadasz że powinno zadziałać to jutro przetestuje.

 
Dodane : 23/08/2020 11:06 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

To co zaproponował @steel_rat , to dobre rozwiązanie.

 
Dodane : 25/08/2020 10:35 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

Jeszcze nie miałem czasu do tego usiąść ...

 
Dodane : 26/08/2020 12:05 am
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

utworzyłem wszystko według instrukcji od @isom

 

Dodałem dwie zmienne i oraz zmianę jak zasugerował @steel_rat

Niestety nie zadziałało

W Logach nie mam nic (póki co)

 
Dodane : 28/08/2020 3:41 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@wojtek_gtx wstaw tu ten zmodyfikowany skrypt , możne coś pomieszałeś

 
Dodane : 28/08/2020 6:52 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

Teraz się zalogowałem i wszystko już się uaktualniło długo się nie odświeżało

 
Dodane : 28/08/2020 9:00 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

w skrypcie jest aktualizacja co godzinę więc częściej nie będzie bo i po co 

 
Dodane : 28/08/2020 9:03 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 538
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

Spoko fajnie że zadziałało, dziękuję.

 
Dodane : 28/08/2020 9:16 pm
Udostępnij: