UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
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).
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
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
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.
A da się dostosować skrypt tak żeby nie włączyć opcji logowania bez hasła w sieci lokalnej ??
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ć.
To odpuszczę temat u mnie w domu każdy ma inne uprawnienia 😉
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. })
Ja z programowania jestem noga więc jeżeli pod powiadasz że powinno zadziałać to jutro przetestuje.
Jeszcze nie miałem czasu do tego usiąść ...
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)
@wojtek_gtx wstaw tu ten zmodyfikowany skrypt , możne coś pomieszałeś
Teraz się zalogowałem i wszystko już się uaktualniło długo się nie odświeżało
w skrypcie jest aktualizacja co godzinę więc częściej nie będzie bo i po co
Spoko fajnie że zadziałało, dziękuję.
Odgrzeje trochę ten temat - czy nadal działa u Was ten skrypt ? U mnie od jakiś 2 miesięcy brak odczytów.
U mnie od jakiś 2 miesięcy brak odczytów
Chyba raczej od lipca, a powodem jest to
https://openweathermap.org/one-call-transfer
Uprzedzam, że usługa powyżej 1000 wywołań dziennie jest płatna, więc lepiej nie wołać częściej niż co godzinę i ustawić sobie limit w planie taryfowym