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

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

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

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

[Модуль] Яндекс погода 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 КБ) 514 просмотров


Обновление:
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 для заполнения требуемых данных без перезапуска основного цикла.


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


Идеи для развития модуля просьба скидывать в эту задачу https://connect.smartliving.ru/tasks/181.html через кнопку "Добавить предложение".
_________________________________________
Поддержать разработку и развитие модуля:
Банковская карта: 5106211026111760
Yandex деньги: 41001189619405
Внутренний счет в Connect
и другие способы по договоренности (Сбербанк, ГПБ).
С уважением, directman66.
Последний раз редактировалось directman66 Пт май 25, 2018 3:11 pm, всего редактировалось 24 раза.
За это сообщение автора directman66 поблагодарили (всего 6):
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)
Рейтинг: 10%
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
Аватара пользователя
savenko_egor
Сообщения: 600
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 86 раз
Поблагодарили: 106 раз
Контактная информация:

Re: [Модуль] DLNA

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

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

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

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

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

корректное заполнение сведений основного окна произойдет после процедуры maintance, которая вызывается при старте системы.
CONNECT: http://connect.smartliving.ru/profile/1502 Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
DimSun75
Сообщения: 317
Зарегистрирован: Вс янв 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
Сообщения: 1304
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 198 раз
Поблагодарили: 156 раз

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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