[Сценарий] Погода от Яндекс
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Погода (Яндекс)
Только учти момент-как как версия МД старая(0.8) при попытке обновлений шапка рассыпается.А вообше дома держу Алиску
постоянно включенной только из за погоды и радио.
постоянно включенной только из за погоды и радио.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 178
- Зарегистрирован: Вс янв 05, 2014 5:37 am
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: Погода (Яндекс)
Есть сайт http://www.meteoservice.ru. Можно оттуда брать информацию о погоде.
Ссылка: http://www.meteoservice.ru/content/export.html
Информация хранится в XML.
Правда обновляется информация не часто - раза 2-3 в сутки.
Может найдется специалист сделать скрипт или модуль ...
Ссылка: http://www.meteoservice.ru/content/export.html
Информация хранится в XML.
Правда обновляется информация не часто - раза 2-3 в сутки.
Может найдется специалист сделать скрипт или модуль ...
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Погода (Яндекс)
Спросите у ADZAM-a откуда он берёт погоду.Сейчас тестирую его последнюю версию из галереи домашних страниц-погода
вообще супер! Даже скринсейвер погодный есть.
вообще супер! Даже скринсейвер погодный есть.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 210
- Зарегистрирован: Пт апр 12, 2013 2:27 pm
- Откуда: Уфа
- Благодарил (а): 28 раз
- Поблагодарили: 16 раз
Re: Погода (Яндекс)
Закрыли не полностью экспорт. Можно погоду вытащить с яндекс-пробок.
Вот так вытаскивается текущая погода
Код: Выделить всё
$temp=$xml->weather->day->day_part->temperature;
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
-
- Сообщения: 50
- Зарегистрирован: Пт янв 17, 2014 1:47 am
- Откуда: Карпинск, Свердловская область
- Благодарил (а): 135 раз
- Поблагодарили: 12 раз
Re: Погода (Яндекс)
Очень хороший прогноз погоды есть на sinoptik.com.ru
Много городов и прогноз весьма точный. Может есть люди, которые смогут модуль для этого сайта сделать?
Много городов и прогноз весьма точный. Может есть люди, которые смогут модуль для этого сайта сделать?
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Погода (Яндекс)
А ссылка на xml какая?DiArt писал(а):Закрыли не полностью экспорт. Можно погоду вытащить с яндекс-пробок.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 210
- Зарегистрирован: Пт апр 12, 2013 2:27 pm
- Откуда: Уфа
- Благодарил (а): 28 раз
- Поблагодарили: 16 раз
Re: Погода (Яндекс)
Вечером напишу. И заодно свой "причёсанный" скрипт выложу.Amarok писал(а):А ссылка на xml какая?DiArt писал(а):Закрыли не полностью экспорт. Можно погоду вытащить с яндекс-пробок.
Там минус только в том что не всё отдаёт.
Нет прогноза на неделю и нет фазы луны и ещё чего-то.
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Погода (Яндекс)
Amarok писал(а):А ссылка на xml какая?
Код: Выделить всё
https://export.yandex.ru/bar/reginfo.xml
Код: Выделить всё
https://export.yandex.ru/bar/reginfo.xml?region=<номер региона>
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 210
- Зарегистрирован: Пт апр 12, 2013 2:27 pm
- Откуда: Уфа
- Благодарил (а): 28 раз
- Поблагодарили: 16 раз
Re: Погода (Яндекс)
Как и обещал выкладываю свой скрипт:
ID города узнаем тут: https://export.yandex.ru/bar/reginfo.xml записываем в переменную
У меня обьект с погодой называется У вас он будет по другому называться меняете поиском все названия обьекта на свои.
Скрипт у меня называется Pogoda_Ufa, вы меняете в строчке на своё название
В общем я только поменял пути файла и разложил массив xml на текущие показания.
В принципе из этого можно будет поправить и модуль.
Да, и ещё. Если раньше картинки у меня сохранялись YandexUfa.Image только с названием например skc_n, то сейчас в эту же переменную сохраняется полный путь файла картинки, например: https://yastatic.net/weather/i/icons/bl ... /skc_n.png
*** Сообщение запрещено. Сообщение похоже на спам. ***
ID города узнаем тут: https://export.yandex.ru/bar/reginfo.xml записываем в переменную
Код: Выделить всё
$city_id=172
Код: Выделить всё
YandexUfa
Скрипт у меня называется Pogoda_Ufa, вы меняете в строчке
Код: Выделить всё
setTimeOut("timer_Pogoda_timeout", "runScript('Pogoda_Ufa');", 2);
В общем я только поменял пути файла и разложил массив xml на текущие показания.
В принципе из этого можно будет поправить и модуль.
Да, и ещё. Если раньше картинки у меня сохранялись YandexUfa.Image только с названием например skc_n, то сейчас в эту же переменную сохраняется полный путь файла картинки, например: https://yastatic.net/weather/i/icons/bl ... /skc_n.png
Код: Выделить всё
$city_id=172; //Уфа
//$city_id=getGlobal('YandexUfa.Id'); //ID города узнаем тут: https://export.yandex.ru/bar/reginfo.xml
$data_file="https://export.yandex.ru/bar/reginfo.xml?region=$city_id.xml?".rand(); // адрес xml файла
$xml = simplexml_load_file($data_file); // раскладываем xml на массив
if($xml === false ) { // Проверить можно также !is_object( $xml ) или !$xml
setTimeOut("timer_Pogoda_timeout", "runScript('Pogoda_Ufa');", 2); //Также как и называется ваш скрипт У меня он Pogoda_Ufa
return;
}
// температура сейчас
$temp=$xml->weather->day->day_part->temperature;
if (date('G')==13) {sg("YandexUfa.Temp13h",$temp);}
if (date('G')==21) {sg("YandexUfa.Temp21h",$temp);}
$temp = getTempSign($temp); // Если значение температуры положительно, для наглядности добавляем "+"
// сохраняем основные параметры текущей погоды
sg("YandexUfa.City",$xml->weather->day->title);
sg("YandexUfa.Temp",$temp);
sg("YandexUfa.Type",$xml->weather->day->day_part->weather_type);
sg("YandexUfa.Pressure",$xml->weather->day->day_part->pressure);
// Влажность
sg("YandexUfa.Humidity",$xml->weather->day->day_part->dampness);
sg("YandexUfa.WindSpeed",$xml->weather->day->day_part->wind_speed);
sg("YandexUfa.Image",$xml->weather->day->day_part->image);
sg("YandexUfa.Image2",$xml->weather->day->day_part->{'image-v3'});
// Направление ветра
sg("YandexUfa.WindDir",$xml->weather->day->day_part->wind_direction);
// Солнце: восход/закат
sg("YandexUfa.SunRise",$xml->weather->day->sun_rise);
sg("YandexUfa.SunSet",$xml->weather->day->sunset);
$DayStart = explode(":",gg("YandexUfa.SunRise"));
$DayEnd = explode(":",gg("YandexUfa.SunSet"));
$h_start = (int)$DayStart[0];
$m_start = (int)$DayStart[1];
$h_end = (int)$DayEnd[0];
$m_end = (int)$DayEnd[1];
$dh = $h_end - $h_start;
$dm = $m_end - $m_start;
if ($dm<0){
$dh=$dh-1;
$dm=$dm+60;
}
sg("YandexUfa.LongTag","$dh:$dm");
// длинный текстовый прогноз погоды
// $metcast="";
$metcast="На улице ".gg("YandexUfa.Type").".";
// ветер
$WindSpeed=(float)gg("YandexUfa.WindSpeed");
if ($WindSpeed<1) { $metcast.=' Ветра, скорее всего, нет.';
} elseif ($WindSpeed<3) { $metcast.=' Возможен слабый ветер.';
} elseif ($WindSpeed<8) { $metcast.=' Возможен умеренный ветер.';
} elseif ($WindSpeed<13) { $metcast.=' Возможен сильный ветер.';
} elseif ($WindSpeed<20) { $metcast.=' Возможен довольно сильный ветер.';
} elseif ($WindSpeed<28) { $metcast.=' Возможен штормовой ветер.';
} else { $metcast.=' Ветер очень очень сильный, УРАГАН, ';
}
//$metcast.= gg("YandexUfa.WindDirText");
$w=round(strip_tags(gg("YandexUfa.Temp")));
$tempw=$w;
if($w < "0"){ $tempw=abs($w); }
if($w > "0"){ $templus=" плюс "; }
if($tempw >= 11 and $tempw <= 14){ $tempcels=" градусов";}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){ $tempcels=" градусов"; }
if($tempw == 1){ $tempcels=" градус"; }
if($tempw >= 2 and $tempw <= 4){ $tempcels=" градуса"; }
}
$metcast2.=$metcast;
$metcast.=' Температура '.gg("YandexUfa.Temp").' '.$tempcels.'.';
$tm=(float)gg("YandexUfa.Temp");
if ($tm<-40) { $metcast.=' Мы морозов не боимся!';
} elseif ($tm<-30) { $metcast.=' Очень холодно, оденьтесь теплее.';
} elseif ($tm<-20) { $metcast.=' Самое время есть мороженое.';
} elseif ($tm<-10) { $metcast.=' Холодновато.';
} elseif ($tm<-3) { $metcast.=' Не особо холодно.';
} elseif ($tm<3) { $metcast.=' Значит, возможно, гололёд.';
} elseif ($tm<10) { $metcast.=' Тепловато.';
} elseif ($tm<25) { $metcast.=' Тепло.';
} elseif ($tm<30) { $metcast.=' Жарко.';
} elseif ($tm>30) { $metcast.=' Ташкент.';
}
$metcast2.=' Давление '.gg("YandexUfa.Pressure").' мм рт.ст.';
$metcast2.=' Влажность '.gg("YandexUfa.Humidity").' %';
sg('YandexUfa.metcast',$metcast2);
$metcast.=' Восход солнца сегодня в '.gg("YandexUfa.SunRise").',';
$metcast.=' закат в '.gg("YandexUfa.SunSet").'.';
$metcast.=' долгота дня '.getGlobal('YandexUfa.LongTag').'.';
sg('YandexUfa.WeatherDnes',$metcast);
/////-------------------///
//Дата и время последнего обновления
sg("YandexUfa.UpdatedTime", date( "H:i", time()));
sg("YandexUfa.updatedDateTime", date( "H:i - d.m.Y", time()));
say('Погода обновлена',0);
// КОНЕЦ ОСНОВНОГО БЛОКА
// Функция - добавления "+" к положительной температуре
function getTempSign($temp)
{
$temp = (int)$temp;
return $temp > 0 ? '+'.$temp : $temp;
}
// Функция - получить направления ветра в МАССИВ
function getWindDirection($wind)
{
$wind = (string)$wind;
$wind_direction = array('s'=>'↑ ю',
'n'=>'↓ с',
'w'=>'→ з',
'e'=>'← в',
'sw'=>'↗ юз',
'se'=>'↖ юв',
'nw'=>'↘ сз',
'ne'=>'↙ св');
$wind_dirtxt = array('s'=>'южный',
'n'=>'северный',
'w'=>'западный',
'e'=>'восточный',
'sw'=>'юго-западный',
'se'=>'юго-восточный',
'nw'=>'северо-западный',
'ne'=>'северо-восточный');
return array ($wind_direction[$wind], $wind_dirtxt[$wind]);
}
// Функция - получить локализованный день недели
function getDayDate($date)
{
$date = strtotime($date);
// $months = array('','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$days = array('ВС','ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ');
// return $days[date('w', $date)].', '.(int)date('d',$date).' '.$months[date('n', $date)].' '.date('y',$date).' г.';
return $days[date('w', $date)];
}
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT