OpenWeatherMap zamiast stacji meteo

  • 3 Odpowiedzi
  • 5999 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline admin

  • Administratorzy
  • ***** 10
  • 1
OpenWeatherMap zamiast stacji meteo
« dnia: Marzec 24, 2015, 08:36:28 pm »
Wirtualne urządzenie pobiera dane o pogodzie z serwisu OpenWeatherMap.org, wyświetla je w interfejsie i może wysłać nam na smartfona.
Żeby ustawić swoją miejscowość to trzeba w 2 i 3 lini wstawić swoje miasto i zmienić państwo jeśli to nie jest w pl oraz identyfikator smartfona który znajdziemy w http://IP_CENTRALI/api/devices
Dane można ściągać co 10 minut. Jeśli ktoś chciałby częściej, to musi się zarejestrować w serwisie. (do 3000 razy na minutę jest free)
« Ostatnia zmiana: Marzec 25, 2015, 05:45:15 pm wysłana przez sztywniak »
*

Offline andre

  • Moderator Globalny
  • ***** 258
  • 3
  • Nazwa i wersja ID: HA(AIS)+HC2 4.570,GRENTON1.0+LK v2.0+BLE+RPi...
Odp: OpenWeatherMap zamiast stacji meteo
« Odpowiedź #1 dnia: Marzec 25, 2015, 02:20:07 pm »
Pytanie czy tylko u mnie jest problem z wyświetlaniem wartości po przecinku?Jak pobieram dane jest wszystko prawidłowo
a jak wysyła push wyświetla zera po przecinku?
*

Offline sztywniak

  • ***** 601
  • 23
  • Nazwa i wersja ID: HC2 3.60/ 4.37, Vera 1.7.1018
Odp: OpenWeatherMap zamiast stacji meteo
« Odpowiedź #2 dnia: Marzec 25, 2015, 02:53:37 pm »
w kodzie od przycisku PUSH musisz dodać funkcję "round" taką jak w przycisku pobierz.
Dodatkowo w liniach poniżej musisz dodać ten round żeby zaokrąglił.
Dokładnie tak jak w przycisku PUSH

function round(n)
  return math.floor((math.floor(n*2) + 1)/2)
end

selfId = fibaro:getSelfId()
miejsc="Ostrów Wielkopolski"
panstwo="pl"
local smartfon=878
HC3 = Net.FHttp("api.openweathermap.org")
danem, statusm = HC3:GET("/data/2.5/weather?q="..miejsc..","..panstwo.."&units=metric&lang=pl")
ajson=json.decode(danem)
tempmin=round(ajson.main.temp_min)
tempmax=round(ajson.main.temp_max)
cisn=round(ajson.main.pressure)
wilg=round(ajson.main.humidity)
wiatr=round(ajson.wind.speed)
zach=ajson.clouds.all
pogo=ajson.weather[1].description
fibaro:debug(pogo)
fibaro:call(selfId,"setProperty","ui.Label1.value",tempmin)
fibaro:call(selfId,"setProperty","ui.Label2.value",tempmax)
fibaro:call(selfId,"setProperty","ui.Label3.value",cisn)
fibaro:call(selfId,"setProperty","ui.Label4.value",wilg)
fibaro:call(selfId,"setProperty","ui.Label5.value",wiatr)
fibaro:call(selfId,"setProperty","ui.Label6.value",zach)
fibaro:call(selfId,"setProperty","ui.Label91.value",pogo)
wysylka="Pogoda: "..pogo..", Temp: "..tempmin
if tempmin~=tempmax then
wysylka=wysylka.."-"..tempmax
end
wysylka=wysylka..", Cisn: "..cisn..", Wilg: "..wilg..", Wiatr: "..wiatr
fibaro:call(smartfon, "sendPush", wysylka, wysylka)

Zaraz zaktualizuję wirtualkę w pierwszym poście. Dzięki andre za zwrócenie uwagi ;-)
*

Offline marcinp22

  • * 9
  • 0
  • Nazwa i wersja ID: Fibaro HC2
Odp: OpenWeatherMap zamiast stacji meteo
« Odpowiedź #3 dnia: Listopad 29, 2016, 12:17:47 am »
czy przy obecnej wersji HC2 to nadal powinno działać?

niestety nie mogę tego odpalić :-(