[Модуль] Open Weather (app_openweather)
Модератор: immortal
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] Погода от Openweather
хм...может только со старыми ключами работает...не требует cnt
А это в 5-дневном апи, или в 16-дневном?
А это в 5-дневном апи, или в 16-дневном?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2079
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [Модуль] Погода от Openweather
ключ старый, апи 16 дней
5-ти дневное даже не проверял, не интересует
5-ти дневное даже не проверял, не интересует
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Andy111
- Сообщения: 25
- Зарегистрирован: Вт апр 25, 2017 1:17 pm
- Благодарил (а): 32 раза
- Поблагодарили: 2 раза
Re: [Модуль] Погода от Openweather
nick7zmail писал(а):хм...может только со старыми ключами работает...не требует cnt
А это в 5-дневном апи, или в 16-дневном?
Ура! Заработало!!! (С) Кот Матроскин.
Премного благодарю!
Ключ 5-ти дневный.
- andrey040670
- Сообщения: 458
- Зарегистрирован: Пн июл 31, 2017 10:00 pm
- Благодарил (а): 161 раз
- Поблагодарили: 85 раз
Re: [Модуль] Погода от Openweather
Переустановил систему с нуля, обновил ядро, обновил major'a (backup не накатывал) установил модуль, итог: 8 и более дней нет.
И на каждый отсутствующий день сыпет варнинги:
Если ставить от 1 до 7 дней варнингов нет.
такой вариант тоже не проходит, предупреждений нет, а данные обнуляются.
PHP Version 5.6.30-0+deb8u1
P/s
Ключ апрельский.
Это что запрашивает модуль:
А это: <cnt=16>
И на каждый отсутствующий день сыпет варнинги:
Код: Выделить всё
Warning: date() expects parameter 2 to be long, string given in /var/www/modules/app_openweather/app_openweather.class.php on line 280
Warning: date() expects parameter 2 to be long, string given in /var/www/modules/app_openweather/app_openweather.class.php on line 281
Warning: gmdate() expects parameter 2 to be long, string given in /var/www/modules/app_openweather/app_openweather.class.php on line 282
Код: Выделить всё
$out["FORECAST"][$i]["sunrise"] = date("H:i:s", strtotime(gg('ow_day'.$i.'.sunrise')));
$out["FORECAST"][$i]["sunset"] = date("H:i:s", strtotime(gg('ow_day'.$i.'.sunset')));
$out["FORECAST"][$i]["day_length"] = gmdate("H:i", strtotime(gg('ow_day'.$i.'.day_length')));
PHP Version 5.6.30-0+deb8u1
P/s
Ключ апрельский.
Это что запрашивает модуль:
//api.openweathermap.org/data/2.5/forecast/daily?id=555746&mode=…Показать
{"city":{"id":555746,"name":"Istra","coord":{"lon":36.8642,"lat":55.9178},"country":"RU","population":0},"cod":"200","message":3.5819319,"cnt":7,"list":[{"dt":1512205200,"temp":{"day":-0.2,"min":-2.68,"max":-0.2,"night":-2.68,"eve":-2.32,"morn":-0.63},"pressure":1011.17,"humidity":0,"weather":[{"id":800,"main":"Clear","description":"ясно","icon":"01d"}],"speed":5.36,"deg":222,"clouds":23},{"dt":1512291600,"temp":{"day":-0.21,"min":-5.03,"max":-0.21,"night":-4.66,"eve":-5.03,"morn":-1.59},"pressure":1008.43,"humidity":95,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":1.87,"deg":317,"clouds":88,"snow":0.27},{"dt":1512378000,"temp":{"day":-4.13,"min":-5,"max":-3.48,"night":-4.9,"eve":-3.93,"morn":-4.64},"pressure":996.27,"humidity":96,"weather":[{"id":601,"main":"Snow","description":"снегопад","icon":"13d"}],"speed":2.84,"deg":32,"clouds":92,"snow":4.94},{"dt":1512464400,"temp":{"day":-5.52,"min":-7.33,"max":-4.63,"night":-4.63,"eve":-4.92,"morn":-6.83},"pressure":998.15,"humidity":91,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.91,"deg":243,"clouds":76,"snow":0.96},{"dt":1512550800,"temp":{"day":-3.78,"min":-6.63,"max":-3.78,"night":-6.36,"eve":-6.63,"morn":-5.82},"pressure":1002.67,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":2.67,"deg":304,"clouds":55,"snow":0.14},{"dt":1512637200,"temp":{"day":-6.55,"min":-7.24,"max":-6.55,"night":-6.57,"eve":-6.57,"morn":-7.24},"pressure":1004.06,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.67,"deg":166,"clouds":85,"snow":0.18},{"dt":1512723600,"temp":{"day":-3.42,"min":-6.44,"max":2.29,"night":2.29,"eve":-1.38,"morn":-6.44},"pressure":1001.84,"humidity":0,"weather":[{"id":601,"main":"Snow","description":"снегопад","icon":"13d"}],"speed":7.47,"deg":179,"clouds":96,"snow":6.55}]}
//api.openweathermap.org/data/2.5/forecast/daily?id=555746&mode=…Показать
{"city":{"id":555746,"name":"Istra","coord":{"lon":36.8642,"lat":55.9178},"country":"RU","population":0},"cod":"200","message":2.1191186,"cnt":16,"list":[{"dt":1512205200,"temp":{"day":-0.2,"min":-2.68,"max":-0.2,"night":-2.68,"eve":-2.32,"morn":-0.63},"pressure":1011.17,"humidity":0,"weather":[{"id":800,"main":"Clear","description":"ясно","icon":"01d"}],"speed":5.36,"deg":222,"clouds":23},{"dt":1512291600,"temp":{"day":-0.21,"min":-5.03,"max":-0.21,"night":-4.66,"eve":-5.03,"morn":-1.59},"pressure":1008.43,"humidity":95,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":1.87,"deg":317,"clouds":88,"snow":0.27},{"dt":1512378000,"temp":{"day":-4.13,"min":-5,"max":-3.48,"night":-4.9,"eve":-3.93,"morn":-4.64},"pressure":996.27,"humidity":96,"weather":[{"id":601,"main":"Snow","description":"снегопад","icon":"13d"}],"speed":2.84,"deg":32,"clouds":92,"snow":4.94},{"dt":1512464400,"temp":{"day":-5.52,"min":-7.33,"max":-4.63,"night":-4.63,"eve":-4.92,"morn":-6.83},"pressure":998.15,"humidity":91,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.91,"deg":243,"clouds":76,"snow":0.96},{"dt":1512550800,"temp":{"day":-3.78,"min":-6.63,"max":-3.78,"night":-6.36,"eve":-6.63,"morn":-5.82},"pressure":1002.67,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":2.67,"deg":304,"clouds":55,"snow":0.14},{"dt":1512637200,"temp":{"day":-6.55,"min":-7.24,"max":-6.55,"night":-6.57,"eve":-6.57,"morn":-7.24},"pressure":1004.06,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.67,"deg":166,"clouds":85,"snow":0.18},{"dt":1512723600,"temp":{"day":-3.42,"min":-6.44,"max":2.29,"night":2.29,"eve":-1.38,"morn":-6.44},"pressure":1001.84,"humidity":0,"weather":[{"id":601,"main":"Snow","description":"снегопад","icon":"13d"}],"speed":7.47,"deg":179,"clouds":96,"snow":6.55},{"dt":1512810000,"temp":{"day":0.49,"min":-3.78,"max":3.28,"night":-3.78,"eve":-1.02,"morn":3.28},"pressure":993.46,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":7.13,"deg":280,"clouds":96,"snow":0.67},{"dt":1512896400,"temp":{"day":-4.53,"min":-5.55,"max":-4.43,"night":-5.55,"eve":-4.43,"morn":-4.84},"pressure":1000.04,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":7.25,"deg":299,"clouds":82,"snow":0.57},{"dt":1512982800,"temp":{"day":-5.01,"min":-6.3,"max":-3.66,"night":-3.66,"eve":-4.61,"morn":-6.3},"pressure":1006.28,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.9,"deg":311,"clouds":98,"snow":0.3},{"dt":1513069200,"temp":{"day":-0.63,"min":-2.77,"max":0.78,"night":0.78,"eve":0.59,"morn":-2.77},"pressure":1014.14,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":6.36,"deg":256,"clouds":95,"snow":0.18},{"dt":1513155600,"temp":{"day":1.53,"min":-2.11,"max":1.96,"night":-2.11,"eve":-0.46,"morn":1.96},"pressure":1005.77,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":7.33,"deg":295,"clouds":89,"snow":0.68},{"dt":1513242000,"temp":{"day":-1.97,"min":-3.78,"max":-1.97,"night":-3.78,"eve":-2.82,"morn":-3.07},"pressure":1007.48,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":4.8,"deg":285,"clouds":90,"snow":0.24},{"dt":1513328400,"temp":{"day":-4.91,"min":-8.09,"max":-4.39,"night":-8.09,"eve":-6.76,"morn":-4.39},"pressure":1014.29,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":2.21,"deg":310,"clouds":52,"snow":0.75},{"dt":1513414800,"temp":{"day":-7.82,"min":-10.91,"max":-7.82,"night":-10.32,"eve":-10.91,"morn":-10.21},"pressure":1023.39,"humidity":0,"weather":[{"id":600,"main":"Snow","description":"небольшой снегопад","icon":"13d"}],"speed":3.26,"deg":178,"clouds":79,"snow":0.05},{"dt":1513501200,"temp":{"day":-7.84,"min":-9.34,"max":-6.91,"night":-6.91,"eve":-7.64,"morn":-9.34},"pressure":1023.92,"humidity":0,"weather":[{"id":800,"main":"Clear","description":"ясно","icon":"01d"}],"speed":4.67,"deg":182,"clouds":59,"snow":0.03}]}
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
-
- Сообщения: 2079
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [Модуль] Погода от Openweather
офф.: Никита, посмотрел, вроде б должен сам справится, но как обновить форк до последних изменений (чет я потыкался и тормозом себя ощутил((( )
ow_setting.forecast_interval засунуть в переменную по примеру апи-ключа и в строку запроса (пока только для 16 дней сделать)
ow_setting.forecast_interval засунуть в переменную по примеру апи-ключа и в строку запроса (пока только для 16 дней сделать)
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 1
- Зарегистрирован: Сб ноя 25, 2017 3:13 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: [Модуль] Погода от Openweather
Здравствуйте
подскажите есть ли возможность получить из модуля прогноз суммарный за день (температура минимум/максимум и т.д.), а не за каждые три часа?
и если не сложно укажите работающий способ получения текстового описания направления ветра? (способы из шапки у меня не работают)
заранее спасибо
подскажите есть ли возможность получить из модуля прогноз суммарный за день (температура минимум/максимум и т.д.), а не за каждые три часа?
и если не сложно укажите работающий способ получения текстового описания направления ветра? (способы из шапки у меня не работают)
заранее спасибо
- andrey040670
- Сообщения: 458
- Зарегистрирован: Пн июл 31, 2017 10:00 pm
- Благодарил (а): 161 раз
- Поблагодарили: 85 раз
Re: [Модуль] Погода от Openweather
Пока как временное решение, сделал так:
В /var/www/modules/app_openweather/get_weather.inc.php изменил 3 строки формирования урл, добавил "&cnt=16"
Можно брать "&cnt=" из свойств.
Извините но в PHP я не в зуб ногой, а пока хоть так.
Да и работаю пока удалённо без ssh, sftp через встроенный модуль phpfm.
В /var/www/modules/app_openweather/get_weather.inc.php изменил 3 строки формирования урл, добавил "&cnt=16"
Код: Выделить всё
$query = "http://api.openweathermap.org/data/2.5/weather?id=" . $cityID . "&mode=json&units=" . $unit . "&cnt=16" . "&lang=ru" . "&appid=" . $apiKey;
Извините но в PHP я не в зуб ногой, а пока хоть так.
Да и работаю пока удалённо без ssh, sftp через встроенный модуль phpfm.
Последний раз редактировалось andrey040670 Вс дек 03, 2017 6:19 am, всего редактировалось 1 раз.
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
-
- Сообщения: 2079
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [Модуль] Погода от Openweather
VlasVic, с ветром должно работать, но по нормальному там это в самом модуле нужно до ума довести (если Никита ткнет на пример, я не знаю как писать значения, да и с массивами там, короче тоже темный лес, то возможно попытаться)
с погодой 5-ти дневной по 3 часа, возможно, но такого видимо еще никто не делал
пример (честно стырено))) ), подгони под себя
пример вывода текстом, можно и голосом
в Объекты/Сценарии скрипт WeatherFromOpenWeather
там и с расчетом заморозков (видимо неправильно функцию используют, ну не может расчет вероятности основываться на прогнозируемых величинах, т.е. вероятность от вероятности, да еще и без одного из входных параметров за 15:00 и 21:00, первого то насколько понял, нет, нужно в текущей это считать, но нужна история)
и т.д.
еще из полезного, честно стырен метод и Никита подсказал про родительский класс (на скрине), что б история только за фактическую была
ChangeTemp
п.с. можно в шапку ссылку добавлять )))
СпойлерПоказать
все работает
пример (честно стырено))) ), подгони под себя
СпойлерПоказать
Код: Выделить всё
$weatherToday = '<b>Сегодня</b> до ';
$temp=gg('ow_day0.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherToday.=$temp.'°';
$weatherToday.=', '.gg('ow_day0.weather_type').'. ';
$weatherToday.='Ветер '.round(gg('ow_day0.wind_speed'))." м/с. ";
//$weatherToday.='направление '.round(gg('ow_day0.wind_direction')).". ";
$weatherToday.='Влажность '.round(gg('ow_day0.humidity'))." %. ";
$weatherToday.='Давление '.round(gg('ow_day0.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherToday.='Ночью до ';
$temp=gg('ow_day0.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherToday.=$temp.'°.';
$weatherTomorrow = '<b>Завтра</b> днём до ';
$temp=gg('ow_day1.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrow.=$temp.'°';
$weatherTomorrow.=', '.gg('ow_day1.weather_type').'. ';
//$weatherTomorrow.='Влажность '.round(gg('ow_day1.humidity')).'. ';
$weatherTomorrow.='Давление '.round(gg('ow_day1.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherTomorrow.='Ночью до ';
$temp=gg('ow_day1.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrow.=$temp.'°.';
$weatherTomorrowAfter = '<b>Послезавтра</b> днём до ';
$temp=gg('ow_day2.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrowAfter.=$temp.'°';
$weatherTomorrowAfter.=', '.gg('ow_day2.weather_type').'. ';
//$weatherTomorrowAfter.='Влажность '.round(gg('ow_day2.humidity')).'. ';
$weatherTomorrowAfter.='Давление '.round(gg('ow_day2.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherTomorrowAfter.='Ночью до ';
$temp=gg('ow_day2.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrowAfter.=$temp.'°.';
sg('ThisComputer.weatherToday', $weatherToday);
sg('ThisComputer.weatherTomorrow', $weatherTomorrow);
sg('ThisComputer.weatherTomorrowAfter', $weatherTomorrowAfter);
и т.д.
еще из полезного, честно стырен метод и Никита подсказал про родительский класс (на скрине), что б история только за фактическую была
СпойлерПоказать
Код: Выделить всё
//Температура 24ч. назад для сравнения
$tempYesterday = getHistoryValue("ow_fact.temperature", strtotime("-1 day"), true);
sg("ow_fact.tempYesterday", $tempYesterday);
//Расчет температуры "По ощущениям"
$t = gg('ow_fact.temperature'); // температура на улице
$h = gg('ow_fact.humidity'); // влажность на улице %
$w = gg('ow_fact.wind_speed'); // данные о ветре из прогноза OpenWeather m/s
$w = $w*3.6/1.609;//m/s -> mph
$tF = $t *1.8+32; // перевод температуры в Farenheit
if ($t > 26.6) { // Считаем HeatIndex по Rothfusz
$_f = -42.379 + 2.04901523*$tF + 10.14333127*$h - 0.22475541*$tF*$h - 0.00683783*$tF*$tF - 0.05481717*$h*$h + 0.00122874*$tF*$tF*$h + 0.00085282*$tF*$h*$h -0.00000199*$tF*$tF*$h*$h;
if(($tF < 112) && ( $h<13 )) { // If the RH is less than 13% and the temperature is between 80 and 112 degrees F, then the following adjustment is subtracted from HI:
$_f = $_f-((13-$h)/4)*sqrt((17-abs($tF-95.))/17);
}
if(($tF < 88) && ($h > 85)) { // On the other hand, if the RH is greater than 85% and the temperature is between 80 and 87 degrees F, then the following adjustment is added to HI:
$_f = $_f + (($h - 85) / 10) * ((87 - $tF) / 5); //ADJUSTMENT = [(RH-85)/10] * [(87-T)/5]
}
} else if ($t <= 10) { // Считаем фактор WindChild
$_f = 35.74 + (0.6215 * $tF) - (35.75 * pow($w, 0.16)) + ((0.4275 * $tF) * pow($w, 0.16));
} else { //считаем по упрощенной формуле
$_f = 0.5*($tF+61+(($tF-68)*1.2)+($h*0.094));
}
// переводим в цельсии
$rf = round(($_f-32)/1.8,1);
sg("ow_fact.realFell", $rf);
- Рейтинг: 2.33%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] Погода от Openweather
Да хрен бы его знал как это нормально делается)) Сам с форком МД наверное час промучился пока нормально скопировалось...у меня был полугодовалой давности...че я ток не тыкал.ю..и сносил с диска, снова форкал, и в веб интерфейсе чето тыкал...короче хрен пойми каким чудом, но еле еле получилось...в общем я пока не разобрался =DLogrus писал(а):офф.: Никита, посмотрел, вроде б должен сам справится, но как обновить форк до последних изменений (чет я потыкался и тормозом себя ощутил((( )
ow_setting.forecast_interval засунуть в переменную по примеру апи-ключа и в строку запроса (пока только для 16 дней сделать)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] Погода от Openweather
Итак настал этот день))) Добрались у меня руки наконец дописать функционал, который давно хотел сделать.
Работа с погодными станциями (экспорт погоды на OpenWeather)
Сразу говорю - функционал пока очень тестовый. Сам буду проверять по ходу. Но вроде как, в общем и целом - работает.
Что для этого надо...в первую очередь активировать функцию работы с погодными станциями. После чего у вас появится вкладка "Станции". При входе на неё вы увидите интерфейс регистрации погодной станции (пока на английском, сори, потом доделаю)
Что нужно указать:
- external_id - айди станции (желательно латинскими, без пробелов и спец символов)
- name - любое имя...можно по местоположению)
- latitude longitude altitude - понятное дело широта, долгота, высота.
Если всё сделано правильно - отобразится страница с именем станции.
Чтобы что-то отправить - надо это что-то внести))) вносятся данные в объект ow_ws.
Т.е. при получении данных с вашей погодной станции дополнительно отсылайте их в соответствующие свойства объекта ow_ws, например при обновлении температуры вписываем дополнительно код в связанный метод, или в скрипт получения данных:
Там вручную создаются свойства, соответствующие названиям из таблицы http://openweathermap.org/stations
Пару дополнений по свойствам:
Вложенные массивы clouds и weather прописываются через "землю". Например если хотите внести weather[]:descriptor передавайте его в weather_descriptor.
В свойство dt по идее должно попадать время получения данных. Т.е. когда забираете данные со своей станции и передаёте их в ow_ws - можете передать время "забора" данных в ow_ws.dt через функцию time(), т.е.
Если в dt ничего не будет указано (либо свойство будет вовсе отсутствовать) - на сайт передастся время отправки данных (что в принципе не так страшно, но точнее будет первый вариант).
На этом, думаю, пока всё...тестируйте, пишите. Предложения по доработке интерфейса и функционала принимаются.
Чем больше погодных станций подключено - тем более точный прогноз получаем в итоге на сайте, и соответственно, в системе.
Работа с погодными станциями (экспорт погоды на OpenWeather)
Сразу говорю - функционал пока очень тестовый. Сам буду проверять по ходу. Но вроде как, в общем и целом - работает.
Что для этого надо...в первую очередь активировать функцию работы с погодными станциями. После чего у вас появится вкладка "Станции". При входе на неё вы увидите интерфейс регистрации погодной станции (пока на английском, сори, потом доделаю)
Что нужно указать:
- external_id - айди станции (желательно латинскими, без пробелов и спец символов)
- name - любое имя...можно по местоположению)
- latitude longitude altitude - понятное дело широта, долгота, высота.
Если всё сделано правильно - отобразится страница с именем станции.
Чтобы что-то отправить - надо это что-то внести))) вносятся данные в объект ow_ws.
Т.е. при получении данных с вашей погодной станции дополнительно отсылайте их в соответствующие свойства объекта ow_ws, например при обновлении температуры вписываем дополнительно код в связанный метод, или в скрипт получения данных:
Код: Выделить всё
sg('ow_ws.temperature', $temp); //где $temp - как раз полученная температура.
И, соответственно отправляются раз в час, как и забирается вся остальная погода.Parameter Type & Units Description
station_id The internal ID of the station which is generated during creation
dt Unix Timestamp Time of measurement
temperature Celsius The air temperature
wind_speed m/s Wind speed
wind_gust m/s Maximum speed of wind gusts
wind_deg Degrees from 0 to 360 Wind direction
pressure Hectopascal Atmospheric pressure
humidity % Relative air humidity
rain_1h mm Rainfall in the last hour
rain_6h mm Rainfall in the last 6 hours
rain_24h mm Rainfall for the last days
snow_1h mm Snow in the last hour
snow_6h mm Snow in the last 6 hours
snow_24h mm Snow for the last days
dew_point Celsius Dew point
humidex Celsius Index of temperature and humidity
heat_index Celsius Heat index
visibility_distance km Distance of direct visibility, METAR
visibility_prefix N, E, S, W Prefix at distinctions of visibility in the directions, METAR
clouds[]:distance m Height of the lower bound of overcast, METAR
clouds[]:condition SKC, NSC, FEW, SCT, BKN, OVC Cloud amount, METAR
clouds[]:cumulus CB, TCU Convective overcast, METAR
weather[]:precipitation Additional description, METAR
weather[]:descriptor Additional description, METAR
weather[]:intensity Additional description, METAR
weather[]:proximity Additional description, METAR
weather[]:obsruration Additional description, METAR
weather[]:other Additional description, METAR
Пару дополнений по свойствам:
Вложенные массивы clouds и weather прописываются через "землю". Например если хотите внести weather[]:descriptor передавайте его в weather_descriptor.
В свойство dt по идее должно попадать время получения данных. Т.е. когда забираете данные со своей станции и передаёте их в ow_ws - можете передать время "забора" данных в ow_ws.dt через функцию time(), т.е.
Код: Выделить всё
sg('ow_ws.dt', time());
На этом, думаю, пока всё...тестируйте, пишите. Предложения по доработке интерфейса и функционала принимаются.
Чем больше погодных станций подключено - тем более точный прогноз получаем в итоге на сайте, и соответственно, в системе.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<