[Сценарий] Погода от Яндекс

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

utia38
Сообщения: 82
Зарегистрирован: Ср авг 26, 2015 9:22 pm
Откуда: г.Обнинск, Калужская обл.
Благодарил (а): 1 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Погода (Яндекс)

Сообщение utia38 » Ср дек 02, 2015 2:44 pm

1) после того как сработан скрипт ВЕЗЕР ФРОМ ЯНДЕКС. в объекте с городом свойства заполнятся значениями.
2) так вот. эти ВСЕ значения или ИХ ЧАСТЬ можно использовать - например в МЕНЮ (а так в любой части с использованием типа данных HTML блок
3) создаем пункт в МЕНЮ УПРАВЛЕНИЯ - HTML и в код вставляем напрмер вот это (меняя на свои переменные %Moscow.Temp% на ваши значения)

<div align="center"><font size="5" color="orange" face="Arial"><b>Погода Москва</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Moscow.Image%.png" alt="%Moscow.Type%" title="%Moscow.Type%"> %Moscow.Type% <font size="5" color="orange" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление <font size="5" color="orange" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="orange" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="orange" face="Arial">%Moscow.WindSpeed%</font> м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="orange" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="orange" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>orange
Вложения
погода1.jpg
погода1.jpg (22.89 КБ) 12739 просмотров
погода2.jpg
погода2.jpg (119.84 КБ) 12739 просмотров
погода3.jpg
погода3.jpg (165.13 КБ) 12739 просмотров
Мазур
Сообщения: 133
Зарегистрирован: Чт ноя 26, 2015 3:52 pm
Благодарил (а): 32 раза
Поблагодарили: 1 раз

Re: Погода (Яндекс)

Сообщение Мазур » Ср дек 02, 2015 3:31 pm

Там ничего нет. (((
А в обьекте, в свойствах города существуют всего три графы city_id, city и temp которые я сам и заполнил.
1.jpg
1.jpg (76.68 КБ) 12726 просмотров
2.jpg
2.jpg (89.78 КБ) 12726 просмотров
utia38
Сообщения: 82
Зарегистрирован: Ср авг 26, 2015 9:22 pm
Откуда: г.Обнинск, Калужская обл.
Благодарил (а): 1 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Погода (Яндекс)

Сообщение utia38 » Ср дек 02, 2015 3:49 pm

попробуй в сценариях вручную вызвать скрипт погоды
и посмотри потом в свойства объекта твоего города
Вложения
погода4.jpg
погода4.jpg (67.99 КБ) 12712 просмотров
Мазур
Сообщения: 133
Зарегистрирован: Чт ноя 26, 2015 3:52 pm
Благодарил (а): 32 раза
Поблагодарили: 1 раз

Re: Погода (Яндекс)

Сообщение Мазур » Ср дек 02, 2015 3:59 pm

Белый экран. :(

Поменял скрипт на:
СпойлерПоказать
// Писать логи ( 0-нет, 1-только критические, 2-все )
$reclog = 1;

// Открываем лог, если нужно.
if ($reclog) { $log = getLogger('script.WeatherFromYandex'); }

// Адрес xml файла
$data_file = "http://export.yandex.ru/weather-ng/fore ... xml?".rand(1, 1000);

// Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
libxml_use_internal_errors(true);

// Установим контекст потока
$ta = 30; //Таймаут ожидания страницы от Яндекса (секунд)
$ctx = stream_context_create(array('http' => array('timeout' => $ta)));
libxml_set_streams_context($ctx);

$retries = 5; // Число попыток запроса xml у Яндекса
$count = 0; // Счетчик попыток
$xml = false;

while ( ($count !== $retries) && ($xml === false) ) {
if ( $reclog == 2 ) $log->trace('Запрос данных погоды от сервиса Яндекс.Погода. Попытка = ' . $count);
// Получаем xml от Яндекса и раскладываем на массив
$xml = @simplexml_load_file($data_file);
if ( $reclog == 2 ) {
if ( $xml === false ) $log->trace('Запрос данных погоды от сервиса Яндекс.Погода. Неуспешная попытка.');
else $log->trace('Запрос данных погода от Яндекса. Успешная попытка.');
}
// Пауза между попытками
sleep(1);
$count++;
}

if($xml === false) {
if ($reclog) $log->error('Не удалось получить данные от сервиса Яндекс.Погода.');
foreach(libxml_get_errors() as $error) {
if ($reclog) $log->error($error->message);
}
libxml_clear_errors();
}
else {

if( $fact = $xml->fact ) {

// получаем нужные свойства, как раньше

}

if( $day0 = $xml->day[0] ) {

// получаем нужные свойства, как раньше

}

if ( libxml_get_last_error() !== false ) {

if ($reclog) $log->error('Данные от сервиса Яндекс.Погода получены, но возникли ошибки: ');

foreach(libxml_get_errors() as $error) {
if ($reclog) $log->error($error->message);
}
}

libxml_clear_errors();
}
Температура в свойствах обьекта появилась
Мазур
Сообщения: 133
Зарегистрирован: Чт ноя 26, 2015 3:52 pm
Благодарил (а): 32 раза
Поблагодарили: 1 раз

Re: Погода (Яндекс)

Сообщение Мазур » Ср дек 02, 2015 5:01 pm

3) создаем пункт в МЕНЮ УПРАВЛЕНИЯ - HTML и в код вставляем напрмер вот это (меняя на свои переменные %Moscow.Temp% на ваши значения)

<div align="center"><font size="5" color="orange" face="Arial"><b>Погода Москва</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Moscow.Image%.png" alt="%Moscow.Type%" title="%Moscow.Type%"> %Moscow.Type% <font size="5" color="orange" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление <font size="5" color="orange" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="orange" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="orange" face="Arial">%Moscow.WindSpeed%</font> м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="orange" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="orange" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>orange[/quote]

Мистика! Этот код работает, но везде показывает 0. Так как прописан скрипт %Moscow.Temp%
Когда меняю на свой %Saint-Petersburg.Temp%
в меню так и пишет :


Температура %Saint-Petersburg.Temp%oC
Давление %Saint-Petersburg.Pressure% мм.рт.ст
Влажность %Saint-Petersburg.Humidity% %
Скорость ветра %Saint-Petersburg.WindSpeed% м/с 0
Восход солнца %Saint-Petersburg.SunRise%
Заход солнца %Saint-Petersburg.SunSet%
Последнее обновление %Saint-Petersburg.UpTime%
utia38
Сообщения: 82
Зарегистрирован: Ср авг 26, 2015 9:22 pm
Откуда: г.Обнинск, Калужская обл.
Благодарил (а): 1 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Погода (Яндекс)

Сообщение utia38 » Ср дек 02, 2015 6:43 pm

попробуй объект погоды Санкт-Пет. по английски назвать как ты в своем коде написал.
Мазур
Сообщения: 133
Зарегистрирован: Чт ноя 26, 2015 3:52 pm
Благодарил (а): 32 раза
Поблагодарили: 1 раз

Re: Погода (Яндекс)

Сообщение Мазур » Ср дек 02, 2015 6:52 pm

Не работает. :?
1.jpg
1.jpg (62.34 КБ) 12663 просмотра
utia38
Сообщения: 82
Зарегистрирован: Ср авг 26, 2015 9:22 pm
Откуда: г.Обнинск, Калужская обл.
Благодарил (а): 1 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Погода (Яндекс)

Сообщение utia38 » Ср дек 02, 2015 9:10 pm

ща погоди, видео урок сниму. ты пока все удали по погоде. объекты. сценарий и меню
utia38
Сообщения: 82
Зарегистрирован: Ср авг 26, 2015 9:22 pm
Откуда: г.Обнинск, Калужская обл.
Благодарил (а): 1 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Погода (Яндекс)

Сообщение utia38 » Ср дек 02, 2015 10:48 pm

Походу МД не нравятся ТИРЭ в названиях объекта, попробуй назвать объект Petersburg
и вставь в меню код

<div align="center"><font size="5" color="orange" face="Arial"><b>Погода С-Петербург</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Petersburg.Image%.png" alt="%Petersburg.Type%" title="%Petersburg.Type%"> %Petersburg.Type% <font size="5" color="orange" face="Arial">%Petersburg.Temp%</font><sup>o</sup>C<br>
Давление <font size="5" color="orange" face="Arial">%Petersburg.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="orange" face="Arial">%Petersburg.Humidity%</font> %<br>
Скорость ветра <font size="5" color="orange" face="Arial">%Petersburg.WindSpeed%</font> м/с %Petersburg.WindDir%<br>
<b>Восход солнца <font size="5" color="orange" face="Arial">%Petersburg.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="orange" face="Arial">%Petersburg.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Petersburg.updated%</font></b><br><br>

должно заработать
Вложения
погода5.jpg
погода5.jpg (190.09 КБ) 12637 просмотров
За это сообщение автора utia38 поблагодарил:
Мазур (Чт дек 03, 2015 9:36 am)
Рейтинг: 1.16%
Мазур
Сообщения: 133
Зарегистрирован: Чт ноя 26, 2015 3:52 pm
Благодарил (а): 32 раза
Поблагодарили: 1 раз

Re: Погода (Яндекс)

Сообщение Мазур » Чт дек 03, 2015 9:37 am

Заработало! Большое спасибо! :D

Подскажите как сделать обновление погоды раз в час?
В onNewMinute стоит 30 минут, но обновления не происходят. При запуске WeatherFromYandex в ручную, тоже ничего не происходит.
Ответить