[Модуль] Яндекс погода 2018

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

Модераторы: Bagir, Ivan, Vit, immortal, PAV

directman66
Сообщения: 1478
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 216 раз
Поблагодарили: 224 раза

[Модуль] Яндекс погода 2018

Сообщение directman66 » Чт май 03, 2018 6:30 pm

Начал разработку модуля получения текущей и прогноза погоды с сайта api.weather.yandex.ru с использованием ключей и id устройства android приложения. Сервис яндекса данные отдает без проблем, в модуле использованы параметры моей сессии. На будущее вынесены настройки uuid и deviceid, если таковая необходимость назреет.

Для добавления своего города - нужно узнать из строки браузера номер своего города.

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

https://yandex.ru/pogoda/2  
Например для Санкт-Петербурга это значение 2 нужно добавить в таблицу yaweather_cities на примере уже имеющихся данных и поставить 1 напротив поля check.

Заполнение основных параметров (температура, давление и тд) произойдет после перезапуска основного цикла.

Тестируйте:
https://connect.smartliving.ru/addons/c ... 3/106.html
СпойлерПоказать
new.png
new.png (59.47 КБ) 1394 просмотра


Обновление:
1) Добавлен прогноз погоды на день (утро/день/вечер/ночь)

2) Прогноз на 7 дней вынесен в отдельную вкладку.

3) Добавлен выбор избранного города, создается объект yw_mycity, куда будут копироваться свойства избранного города. Для выбора избранного города необходимо нажать "сердечко" на нужном.
yw_mycity избавит от необходимости править чужие сценарии, например для уведомления о погоде.

4) Добавлена возможность указать вместо id города его координаты. Необходимо в поле latlon таблицы yaweather_cities указать значение в формате lat=47.240585&lon=38.870989. В качестве id города можно указать любое значение, latlon будет в качестве более приоритетного параметра. Вместо имени города спутника указывается имя большого города. Прогноз указан на город, соответсвующий коорданатам. Перед установкой обновления нужно полностью удалить плагин.

5)Добавлена возможность вывода информации на домашних страницах и меню.
[#module name="yandexweather" #] - выводит погоду на сегодня и прогноз на 7 дней
[#module name="yandexweather" type="TODAY"#] - выводит погоду на сегодня
[#module name="yandexweather" type="FORECAST"#] - выводит прогноз на 7 дней

6) Новые города теперь добавляются из модуля. Какие-то глюки вылазят, но записи в базе появляются. После добавления обновите страницу, чтобы убедиться в наличии изменений.

7) Добавлены скины для темной темы:
[#module name="yandexweather" skin="2"#] - выводит погоду на сегодня и прогноз на 7 дней
[#module name="yandexweather" type="TODAY" skin="2"#] - выводит погоду на сегодня
[#module name="yandexweather" type="FORECAST" skin="2"#] - выводит прогноз на 7 дней
По умолчанию, если не указывать - используется skin="1" -для белой темы.
8) Добавлены виджеты для меню
[#module name="yandexweather" type="TODAYMINI" #]
[#module name="yandexweather" type="TODAYMINI" skin="2" #]
9)
Проговаривает текущую погоду голосом:

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

include_once(DIR_MODULES . 'yandexweather/yandexweather.class.php');
$yw = new yandexweather();
$yw->sayweather(); 
Проговаривает голосом прогноз погоды:

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

include_once(DIR_MODULES . 'yandexweather/yandexweather.class.php');
$yw = new yandexweather();
$yw->sayforecast(); 
10) уведомление об изменении погоды. Необходимо полностью переустановить плагин. После удаления нужно удалить все объекты класса YandexWeather и удалить сам класс. Затем можно установливать. После первичной установки, после нажатия кнопки GET требуется перезапуск основного цикла или перезагрузка Мажордомо. Виджеты для меню будут работать только после еще одной перезагрузки.
11) Добавлено голосовое информирование прогноза погоды (инструкция на вкладке help).
12) Добавил кнопку UPD для заполнения требуемых данных без перезапуска основного цикла.
13) Добавлен мега компактный информер с показателем тренда погоды. Сам пользуюсь таким. Теперь не нужно кодить и сценарии писать, достаточно вставить в меню или домашнюю страницу [#module name="yandexweather" type="TEXTMINI" " #]
Для корректной работы трэнда погоды, необходимо удалить и установить модуль повторно.
14) Добавлен функционал добавления уведомлений в будильник, при нажатии кнопок "Будильник погода" или "Будильник прогноз",
автоматически создаются необходимые записи, которые можно редактировать через модуль "Будильник".
Обновление:
15) Добавлена настройка уровня сообщения MSG_LEVEL
16) Добавлена возможность интеграции в меню телеграм. Из меню можно запросить текущую погоду, прогноз и виджет, который скачивает с сайта яндекс погоды картинку по вашему городу!
СпойлерПоказать
Изображение
Подробная информация о данном виджете viewtopic.php?f=5&t=2768&p=81400&hilit=xvfb+run#p81393

Добавление меню в модуль телеграм производится со вкладки "Уведомления"
17) Исправлены ошибки. Прогноз погоды теперь снова проговаривается.

ВНИМАНИЕ! После первичной установки, после нажатия кнопки GET требуется нажать кноку UPD в настройках приложения.



Сделал общий файл на google drive, записывайте отсутствующие номера городов, добавлю в штатный список, как наберется достаточное количество.

https://docs.google.com/spreadsheets/d/ ... sp=sharing

Идеи для развития модуля просьба скидывать в эту задачу https://connect.smartliving.ru/tasks/181.html через кнопку "Добавить предложение".
_________________________________________
Поддержать разработку и развитие модуля:
Банковская карта: 5106211026111760
Yandex деньги: 41001189619405
Внутренний счет в Connect
и другие способы по договоренности (Сбербанк, ГПБ).
С уважением, directman66.
Последний раз редактировалось directman66 Пн июл 16, 2018 3:49 pm, всего редактировалось 28 раз.
За это сообщение автора directman66 поблагодарили (всего 10):
dr.pavlov.alex (Пт май 04, 2018 7:28 pm) • webms (Вт май 08, 2018 8:13 pm) • slgeo (Пн май 14, 2018 4:39 pm) • Anton_V (Чт май 17, 2018 11:44 pm) • workpage (Вс май 20, 2018 7:13 pm) • Amarok (Пн май 21, 2018 10:53 am) • ypiter2006 (Пн май 28, 2018 6:38 pm) • antpino (Чт май 31, 2018 7:57 pm) • Igor.P (Вс июн 03, 2018 3:44 pm) • banderos (Вт июн 19, 2018 9:30 pm)
Рейтинг: 16.13%
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Аватара пользователя
savenko_egor
Сообщения: 633
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 89 раз
Поблагодарили: 112 раз
Контактная информация:

Re: [Модуль] DLNA

Сообщение savenko_egor » Чт май 03, 2018 6:33 pm

Не понял... Это у меня Тапка глючит или так тему создали?
СпойлерПоказать
Изображение[\spoiler]
directman66
Сообщения: 1478
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 216 раз
Поблагодарили: 224 раза

Re: [Модуль] Яндекс погода

Сообщение directman66 » Чт май 03, 2018 6:46 pm

добавлен в маркет )

корректное заполнение сведений основного окна произойдет после процедуры maintance, которая вызывается при старте системы.
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 40 раз

Re: [Модуль] Яндекс погода

Сообщение DimSun75 » Чт май 03, 2018 7:06 pm

directman66 писал(а):
Чт май 03, 2018 6:46 pm
добавлен в маркет )
не работает.

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

Error
Details
http://192.168.1.222/admin.php?md=panel&action=market&ok_msg=Plugin+%27yandexweather%27+%282018-05-03+18%3A21%3A08%29+installed.
1060: Duplicate column name 'part'
ALTER TABLE yaweather_cities ADD `part` varchar(30);
Backtrace
#0 /var/www/lib/mysqli.class.php(395): custom_error->__construct('1060: Duplicate...', 0)
#1 /var/www/lib/mysqli.class.php(177): mysql->Error('ALTER TABLE yaw...')
#2 /var/www/lib/mysqli.class.php(479): mysql->Exec('ALTER TABLE yaw...')
#3 /var/www/lib/module.class.php(581): SQLExec('ALTER TABLE yaw...')
#4 /var/www/modules/yandexweather/yandexweather.class.php(414): module->dbInstall(' yaweather_citi...')
#5 /var/www/lib/module.class.php(427): yandexweather->dbInstall(' yaweather_citi...')
#6 /var/www/modules/yandexweather/yandexweather.class.php(321): module->install()
#7 /var/www/lib/module.class.php(359): yandexweather->install()
#8 /var/www/modules/yandexweather/yandexweather.class.php(24): module->checkInstalled()
#9 /var/www/modules/control_modules/control_modules.class.php(219) : eval()'d code(1): yandexweather->yandexweather()
#10 /var/www/modules/control_modules/control_modules.class.php(219): eval()
#11 /var/www/lib/module.class.php(359): control_modules->install()
#12 /var/www/modules/control_modules/control_modules.class.php(19): module->checkInstalled()
#13 /var/www/admin.php(28): control_modules->control_modules()
#14 {main}
directman66
Сообщения: 1478
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 216 раз
Поблагодарили: 224 раза

Re: [Модуль] Яндекс погода

Сообщение directman66 » Чт май 03, 2018 7:11 pm

DimSun75 писал(а):
Чт май 03, 2018 7:06 pm



не работает.
видимо зависит от настроек php.

Исправил указанную тут ошибку.
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 40 раз

Re: [Модуль] Яндекс погода

Сообщение DimSun75 » Чт май 03, 2018 7:26 pm

Ошибка ушла. Но табличка пустая. Точнее есть два города moscow и yekaterinburg. Заполнено время обновления и все. В объектах куча свойств заполнено, правильно или нет, трудно проверить

Обновление модуля крайнее
directman66
Сообщения: 1478
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 216 раз
Поблагодарили: 224 раза

Re: [Модуль] Яндекс погода

Сообщение directman66 » Чт май 03, 2018 7:42 pm

Да все верно, после перезапуска мажордомо заполнятся все остальные поля. Как принудительно инициировать заполнение PROPERTY_NAME таблицы pvalues я еще не нашел. Оно происходит автоматически после перезагрузки.
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 40 раз

Re: [Модуль] Яндекс погода

Сообщение DimSun75 » Чт май 03, 2018 8:03 pm

Да, заработало. Предложение: может сразу разбить на несколько объектов, как в openweather например, а-то слишко много свойств на один объект
directman66
Сообщения: 1478
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 216 раз
Поблагодарили: 224 раза

Re: [Модуль] Яндекс погода

Сообщение directman66 » Чт май 03, 2018 8:05 pm

Изначально так и было, по 10 объектов на каждый прогноз. Но работать с такой кучей данных намного сложнее, если несколько городов. Поэтому все сложил в один "контейнер". Тут дело привычки.
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Аватара пользователя
djprizrak
Сообщения: 36
Зарегистрирован: Пн фев 12, 2018 10:58 am
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: [Модуль] Яндекс погода

Сообщение djprizrak » Чт май 03, 2018 10:53 pm

Узнать код города можно по ссылке вашего города, и открыв Просмотреть код, в <body class= найти "rid":КОД
Ответить