[Сценарий] Погода от Яндекс
-
- Сообщения: 82
- Зарегистрирован: Ср авг 26, 2015 9:22 pm
- Откуда: г.Обнинск, Калужская обл.
- Благодарил (а): 1 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Погода (Яндекс)
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
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 (22.89 КБ) 12740 просмотров
-
- погода2.jpg (119.84 КБ) 12740 просмотров
-
- погода3.jpg (165.13 КБ) 12740 просмотров
-
- Сообщения: 133
- Зарегистрирован: Чт ноя 26, 2015 3:52 pm
- Благодарил (а): 32 раза
- Поблагодарили: 1 раз
Re: Погода (Яндекс)
Там ничего нет. (((
А в обьекте, в свойствах города существуют всего три графы city_id, city и temp которые я сам и заполнил.
А в обьекте, в свойствах города существуют всего три графы city_id, city и temp которые я сам и заполнил.
-
- Сообщения: 82
- Зарегистрирован: Ср авг 26, 2015 9:22 pm
- Откуда: г.Обнинск, Калужская обл.
- Благодарил (а): 1 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Погода (Яндекс)
попробуй в сценариях вручную вызвать скрипт погоды
и посмотри потом в свойства объекта твоего города
и посмотри потом в свойства объекта твоего города
- Вложения
-
- погода4.jpg (67.99 КБ) 12713 просмотров
-
- Сообщения: 133
- Зарегистрирован: Чт ноя 26, 2015 3:52 pm
- Благодарил (а): 32 раза
- Поблагодарили: 1 раз
Re: Погода (Яндекс)
Белый экран.
Поменял скрипт на:
Температура в свойствах обьекта появилась
Поменял скрипт на:
СпойлерПоказать
// Писать логи ( 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();
}
$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: Погода (Яндекс)
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%
<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%
-
- Сообщения: 82
- Зарегистрирован: Ср авг 26, 2015 9:22 pm
- Откуда: г.Обнинск, Калужская обл.
- Благодарил (а): 1 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Погода (Яндекс)
попробуй объект погоды Санкт-Пет. по английски назвать как ты в своем коде написал.
-
- Сообщения: 82
- Зарегистрирован: Ср авг 26, 2015 9:22 pm
- Откуда: г.Обнинск, Калужская обл.
- Благодарил (а): 1 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Погода (Яндекс)
ща погоди, видео урок сниму. ты пока все удали по погоде. объекты. сценарий и меню
-
- Сообщения: 82
- Зарегистрирован: Ср авг 26, 2015 9:22 pm
- Откуда: г.Обнинск, Калужская обл.
- Благодарил (а): 1 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Погода (Яндекс)
Походу МД не нравятся ТИРЭ в названиях объекта, попробуй назвать объект 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>
должно заработать
и вставь в меню код
<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 (190.09 КБ) 12638 просмотров
- Рейтинг: 1.16%
-
- Сообщения: 133
- Зарегистрирован: Чт ноя 26, 2015 3:52 pm
- Благодарил (а): 32 раза
- Поблагодарили: 1 раз
Re: Погода (Яндекс)
Заработало! Большое спасибо!
Подскажите как сделать обновление погоды раз в час?
В onNewMinute стоит 30 минут, но обновления не происходят. При запуске WeatherFromYandex в ручную, тоже ничего не происходит.
Подскажите как сделать обновление погоды раз в час?
В onNewMinute стоит 30 минут, но обновления не происходят. При запуске WeatherFromYandex в ручную, тоже ничего не происходит.