Решил отказаться от погоды от msn так как: 1. Сервис msn последние годы работает криво и очень не надежно. 2. MSN никогда не являлся сервисом погоды, как таковым. MSN (Microsoft Network) — крупный интернет-провайдер и веб-портал, созданные компанией Microsoft и погода является только частью его деятельности. Данные о погоде они берут у Foreca, которая в свою очередь специализируется именно на погоде, но API у них очень дорогой. В общем msn это просто перекупщики не понятно зачем за них держаться так упорно.
OpenWeatherMap себя позиционирует, "как онлайн сервис, который предоставляет платный (есть функционально ограниченная бесплатная версия) API для доступа к данным о текущей погоде, прогнозам и историческим данным. В качестве источника данных используются официальные метеорологические службы, данные из метеостанций аэропортов, и данные с частных метеостанций, которые помогают повысить точность исходной погодной информации и, как следствие, точность прогнозов погоды."
Хотя к точности метеоданных есть вопросы к обоим.
- эта версия плагина выводит только текущие данные о погоде. - сделан по внешнему образу и подобию плагина WeatherMSN2, но с переработанной и очищенной программной начинкой, с некорорыми новыми позициями: порывы ветра, атмосферное давление, видимость и облачность в процентах. - работает только на FHD скинах. - делал и проверял на OpenATV 7.4, поэтому считаем, что только для этого имиджа и предназначен. - плагин обращается к серверу погоды только при его запуске каждый раз, но только, если с момента предыдущего обращения прошло не менее трех минут, в противном случае выводит предыдущие сохраненные данные. Но данные на сервере обновляются еще немного реже так, что никаких проблем не вижу. - есть у меня еще вопросы по кодам иконок погоды и направлению ветра, но здесь только со временем может прояснится. - файл owm.py легко можно переделать в конвертер, кому это интересно и нужно.
Порядок работы:
Спойлер:
- в ipk не паковал, распаковать архив. - регистрируемся на сайте
Скрытый текст Для просмотра нужно иметь не менее 3-х сообщений или Оформить подписку
и в My API Keys генерируем и копируем свой Key. Активным он станет только через сутки насколько я помню. - бесплатый Key дает возможность производить 60 обращений в минуту, или 1000000 в месяц, доступ к текущей погоде, трех часовому прогнозу погоды на пять дней и др. - прописываем ключ в файл owm.py в строку appid = '.......' в одинарных кавычках. Это строка № 22 - далее нужен код города, который прописываем, как число в строке city_id = .... без кавычек. Это строка № 21 - чтобы найти код города по его названию нужно в браузере ввести строку, для примера:
Скрытый текст Для просмотра нужно иметь не менее 3-х сообщений или Оформить подписку
где appid= - ваш ключ, а q=Minsk - ваш город, но только латинскими буквами. Городов с одинаковыми названиями может быть несколько и даже в разных странах, поэтому желательно после города указать идентификатор страны, например так:
Скрытый текст Для просмотра нужно иметь не менее 3-х сообщений или Оформить подписку
И даже в этом запросе приходит три местоположения с кодами "id": 625144, "id": 625142, "id": 625143. Выбираем нужный city_id. Если нет данных, то очевидно название города написано с ошибками и его нужно подкорректировать. Кстати, код города совпадает с кодом города от Foreca, только там вначале стоит число 100: для Минска у Foreca код 100625144, ну это к слову. - все равно так намного быстрее, чем городить огород в плагине с поиском местоположения, при этом город все равно вводить пультом. Да и местоположение за всю жизнь меняют считанные единицы, поэтому ввел один раз city_id и все. - после внесенных изменений папку OpenWeather2 скопировать в ресивер по пути /usr/lib/enigma2/python/Plugins/Extensions/ - перезагрузить GUI.
Не решенные пока проблемы:
Спойлер:
Картинки для анимации Луны и Солнца в *.gif формате, OpenATV 7.4 спокойно читает их и выводит плагином на экран. На других имиджах - не уверен. И если для Луны не очень трудно переделать, их всего 48 шт., то для Солнца их уже 288 шт. Просто переименовать их в *.png не годится, нужно каждую открыть нормальным графическим редактором и Сохранить, как *.png каждую, или Экспортировать, как *.png, сохранив каждой ее имя. Пакетная конвертация онлайн требует денег. В общем, если есть какие решения, или идеи по этому вопросу буду рад.
Также просьба к уважаемому starikus: если будет желание, вдохновение и возможность сделать красивую иконку к плагину, опираясь на логотип Open Weather map
- упаковал в IPK - тестировал на OpenATV 6.4 Python 2.7 - работает. - решил вопрос с конвертацией файлов gif в png - уменьшен общий размер - косметические правки
По конвертации картинок:
Спойлер:
Существует библиотека PIL, подключаем: from PIL import Image path1 = 'Путь к папке с исходными картинками' path2 = 'Путь к папке с конвертированными картинками' img = Image.open(path1 + 'picname.gif') # открываем GIF img.save(path2 + 'picname.png') # сохраняем как PNG
Если картинок много, то вычитываем из нужной папки их имена в список (массив) по нужному расширению например, потом циклом конвертируем каждый файл и сохраняем в нужное место сохранив имя. На 288 картинок ушло 5 - 7 сек. Работает и в компьютере и в ресивере. У PIL еще очень много возможностей, а та самая простейшая
Скрины с предыдущего плагина, не из этой темы. А ветер, когда говорят например Южный, это значит, что он дует с юга на север. Северный ветер дует с севера на юг. Остальное по аналогии. Стрелка именно это показывает. Возможно было бы лучше заменить "Направление ветра" на просто "Ветер:", если это смущает.
- добавил поддержку HD скинов - заменил наименование "Направление ветра" на "Ветер", сам ветер теперь "Северный", "Южный" и т.д. - мелкие правки, связанные с оптимизацией кода и уменьшением общего размера
Leonstar, почитайте первый пост темы Порядок работы, в строку 21 файла owm.py нужно ввести код вашего города, а в строку 22 ваш API Key, который можно получить у них на сайте после регистрации. После заполнения строк 21 и 22 правильными значениями - перезагрузите GUI.
Да там нет каких то специфических библиотек, все стандартное разве, что раньше python-requests нужно было доустанавливать на Python 2.7. Гонял на OpenATV 7.4 и 7.0 с разными Py3 и OpenATV 6.4 с Py2 - везде без проблем. Там же на FHD и HD скинах - на HD чуть похуже на мой взгляд. Там к самому Open Weather у меня есть вопросы. Почему то в текущей погоде приходят одинаковые данные температуры, максимальной и минимальной температуры - поэтому я min и max не использую. А так же ветер вот например 1.62 м/с, а порывы пишет 1,54 м/с, так же не должно быть, но такие странные данные иногда приходят.