[Модуль] Погода от Яндекс (app_yaweather)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Погода от Яндекс"

Сообщение nick7zmail » Чт мар 24, 2016 3:05 pm

Aleks130699 писал(а): Не помогло, и в браузере эта страница не открывается.
Да сервера яндекса это тупят в последнее время...если пообновлять страницу, убрать/снова вставить city_id, тогде покажется xml-ка.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Модуль "Погода от Яндекс"

Сообщение alekszander » Пн апр 04, 2016 8:09 am

Не понятное что происходит с яндексом. Захожу с работы по ссылке, все отлично, зашел. При попытке зайти с дома по ссылке https://export.yandex.ru/weather-ng/forecasts/31960.xml "Страница не работает". Провайдер говорит что проблема на стороне яндекса. Запускаю прокси через канаду все открывается, только как заставить открывать мдм череыз проксю так и осталось непонятным. Обиделся на нас Яндекс.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "Погода от Яндекс"

Сообщение sergejey » Пн апр 04, 2016 2:23 pm

Есть небольшое пожелание к модулю - можно ли температуру со знаком сохранять? т.е. если +6, то сохранять именно "+6", а не "6". Графики нормально проглатывают оба варианта, но со знаком для наглядности лучше.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Модуль "Погода от Яндекс"

Сообщение alekszander » Ср апр 06, 2016 11:46 pm

В общем у кого не работает export.yandex.ru. Ниже ответ Яндекса по этому поводу.
Сервис export.yandex.ru существует сугубо для собственных продуктов и сервисов Яндекса и наших официальных партнеров. Он может в любой момент меняться или быть отключен. За всеми публичными API и технологиями, пожалуйста, обращайтесь на ресурс tech.yandex.ru.
ингвар
Сообщения: 142
Зарегистрирован: Вт ноя 25, 2014 2:06 pm
Благодарил (а): 33 раза
Поблагодарили: 0

Re: Модуль "Погода от Яндекс"

Сообщение ингвар » Вс апр 10, 2016 11:27 am

Так а как можно еще погоду вытягивать если export.yandex.ru не работает ?
Windows 10 + Raspberry Pi3 + ESP8266
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Погода от Яндекс"

Сообщение nick7zmail » Вс апр 10, 2016 12:02 pm

ингвар писал(а):Так а как можно еще погоду вытягивать если export.yandex.ru не работает ?
OpenWeather
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Модуль "Погода от Яндекс"

Сообщение alekszander » Пн апр 11, 2016 4:52 am

У кого не работает погода от Яндекс, есть временное решение.
Расскажу как делал у себя.
На файлопомойке (она на debian), создал небольшой скрипт вот с таким содержанием

Код: Выделить всё

#!/bin/bash
rm /var/www/UI/31960.xml
https_proxy="http://119.9.53.81:3128" wget -P /var/www/UI/ https://export.yandex.ru/weather-ng/forecasts/31960.xml --no-check-certificate
 
теперь по скрипту (знаю что он написан правой ногой стоя на голове)
путь для сохранения

Код: Выделить всё

/var/www/UI/ 
id города

Код: Выделить всё

31960.xml
прокси сервер (пока работает) если нет надо пробовать другие (поискать) http://proxy-besplatno.com/

Код: Выделить всё

https_proxy="http://119.9.53.81:3128" 
ну a дальше все знакомо.
Ссылка на сам файл

Код: Выделить всё

https://export.yandex.ru/weather-ng/forecasts/31960.xml     
Не проверять сертификат

Код: Выделить всё

 --no-check-certificate
После того как скрипт создан добавляем в cron

Код: Выделить всё

# m h  dom mon dow   command
* */1 * * * /root/download.sh
Далее в файле app_yaweather.class строка 245 меняете ссылку на свою менять только http://192.168.1.146/UI

Код: Выделить всё

$data_file = 'http://192.168.1.146/UI/'.$city.'.xml'; 
Собственно все. Но это временный костыль есть информация что яндекс планирует закрыть доступ к export.yandex.ru в конце апреля 2016 года. Но как говорится поживем увидим.
За это сообщение автора alekszander поблагодарил:
skysilver (Пн апр 11, 2016 12:15 pm)
Рейтинг: 1.16%
ToteMeiSter
Сообщения: 54
Зарегистрирован: Пн ноя 09, 2015 5:42 pm
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Модуль "Погода от Яндекс"

Сообщение ToteMeiSter » Пн апр 11, 2016 7:37 pm

Второй день пытаюсь скрипт через прокси заставить работать. Ваш вариант тоже норм, но хочется внутри модуля решение сделать.

Отправлено с моего ZTE V970 через Tapatalk
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Модуль "Погода от Яндекс"

Сообщение skysilver » Пн апр 11, 2016 9:47 pm

ToteMeiSter писал(а):Второй день пытаюсь скрипт через прокси заставить работать. Ваш вариант тоже норм, но хочется внутри модуля решение сделать.
Например, так можно попробовать.

Код: Выделить всё

//Функция get с поддержкой прокси
function get($url, $proxy) { 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
    curl_setopt($ch, CURLOPT_PROXY, "$proxy");
    $resp = curl_exec($ch);
    curl_close($ch);
    return $resp;
}
// Адрес прокси
$prox = 'IP:PORT';
// Запрос к Яндексу через функцию get
$yaXML = get("http://export.yandex.ru/weather-ng/forecasts/$city_id.xml", $prox);
// Сохраним полученную XML-ку локально
file_put_contents("$city_id.xml", $yaXML);
// Далее загружаем нашу XML-ку с локального сервера, проверяем на валидность
// и разбираем на параметры, как раньше.
$xml = @simplexml_load_file("http://localhost/$city_id.xml");
Само-собой, даже через прокси Яндекс не всегда отдает корректную xml-ку, поэтому надо делать несколько попыток и выполнять обработку ошибок. Также, думаю, нет смысла дергать сервак Яндекса чаще двух раз в час, - все-равно там данные редко обновляются.

А в целом, пора завязывать попытки реанимации погоды от Яндекса и сосредоточиться на добавлении в MajorDoMo других погодных сервисов. ;)
За это сообщение автора skysilver поблагодарил:
triada13 (Вт апр 12, 2016 7:59 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Модуль "Погода от Яндекс"

Сообщение ILGAS » Ср апр 13, 2016 2:36 pm

Сегодня у меня обновилась погода, опять доступен
https://export.yandex.ru/weather-ng/forecasts/[iii].xml
Ответить