[Модуль] OpenWeatherMap (openweather) Не актуально!

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

Модератор: immortal

Denis_k
Сообщения: 583
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение Denis_k » Вт дек 06, 2016 3:38 pm

Denis_k писал(а):
zoz писал(а):как вариант закат и рассвет можно просто переназначить с конвертацией:

sg('ThisComputer.SunRiseTime', date('H:i',gg('ow_fact.sunrise')));
sg('ThisComputer.SunSetTime', date('H:i',gg('ow_fact.sunset')));

ну и удалить их в веб переменных.
А где это делается?
Отвечаю сам себе:
Эти строки добавляются в
Timer-> onNewMinute, например после строки

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

setGlobal('timeNow',date('H:i')); 
PS. Естественно все глобальные переменные удалены за ненадобностью.
За это сообщение автора Denis_k поблагодарил:
~220v (Ср апр 08, 2020 9:36 pm)
Рейтинг: 1.23%
MD на raspberry pi3
Cashmarik
Сообщения: 52
Зарегистрирован: Вс дек 18, 2016 7:29 am
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Модуль - Погода от OpenWeatherMap

Сообщение Cashmarik » Пн дек 19, 2016 5:02 pm

Здравствуйте, не работает модуль не показывает температуру, год стоит 1970 пишет такие ошибки:

Warning: file_get_contents(http://openweathermap.org/img/w/.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\_majordomo\htdocs\modules\app_openweather\app_openweather.class.php on line 422

Warning: file_get_contents(http://openweathermap.org/img/w/.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\_majordomo\htdocs\modules\app_openweather\app_openweather.class.php on line 422

Warning: file_get_contents(http://openweathermap.org/img/w/.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\_majordomo\htdocs\modules\app_openweather\app_openweather.class.php on line 422
xxxShahxxx
Сообщения: 115
Зарегистрирован: Вт дек 06, 2016 2:22 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Модуль - Погода от OpenWeatherMap

Сообщение xxxShahxxx » Ср дек 21, 2016 12:09 pm

Надо получить API код на сайте OpenWeather.
xxxShahxxx
Сообщения: 115
Зарегистрирован: Вт дек 06, 2016 2:22 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Модуль - Погода от OpenWeatherMap

Сообщение xxxShahxxx » Чт дек 22, 2016 3:29 pm

xor писал(а):Пользуюсь функциями (добавил в файл C\_majordomo\htdocs\lib\my_funcs.php)
Народ подскажите по этому поводу. как настроить отображение направления ветра буквами по этому принципу? создать файлик с таким кодом? А потом что дальше с ним делать? Куда и к чему прикреплять. вообще не могу понять как это прикрутить.
Аватара пользователя
xor
Сообщения: 1679
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 185 раз
Поблагодарили: 490 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение xor » Чт дек 22, 2016 3:42 pm

Создаете файл с описанием вашей функции, выкладывание по указанному адресу. Перезапускаете МЖДМ, пользуетесь функцией в скриптах, консоли, методах, для заполнения свойств.

Отправлено с моего Nexus 5 через Tapatalk
Alex_kn
Сообщения: 13
Зарегистрирован: Чт ноя 10, 2016 6:29 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение Alex_kn » Чт дек 22, 2016 5:16 pm

.. а можно для чайников по подробнее ... пожалуйста..
Аватара пользователя
xor
Сообщения: 1679
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 185 раз
Поблагодарили: 490 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение xor » Чт дек 22, 2016 10:56 pm

Допустим, есть у погодного объекта Погода свойство Направление_ветра_в_градусах. Нам нужно получить свойство Название_направления_ветра.
Расскажу как сделано у меня, то же самое можно делать по-другому.
Давно уже удалил модуль OpenWeather, но в папке у меня обнаружился файл htdocs/lib/OpenWeather/OpenWeather.php
Там (респект автору) обнаружилось много полезняшек, в том числе и функция

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

   /**
    * Get wind direction name by direction in degree 
    * @param $degree Degree
    * @return
    */
   private static function GetWindDirection
     ($degree)
   {
      $windDirection = ['<#LANG_N#>', '<#LANG_NNE#>', '<#LANG_NE#>', '<#LANG_ENE#>', '<#LANG_E#>', '<#LANG_ESE#>', '<#LANG_SE#>', '<#LANG_SSE#>', '<#LANG_S#>', '<#LANG_SSW#>', '<#LANG_SW#>', '<#LANG_WSW#>', '<#LANG_W#>', '<#LANG_WNW#>', '<#LANG_NW#>', '<#LANG_NNW#>', '<#LANG_N#>'];
         
      return $windDirection[round($degree / 22.5)];
   } 
, какую я и подогнал под себя

myWindDirFull($degree) - полно
myWindDirection($degree) - кратко
Найди 146 отличий))Показать

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

  /**
    * Get wind direction name by direction in degree 
    * @param mixed $degree Wind degree
    * @return string
    */
    function myWindDirection($degree)
   {
      $windDirection = ['С', 'ССВ', 'СВ', 'ВСВ', 'В', 'ВЮВ', 'ЮВ', 'ЮЮВ', 'Ю', 'ЮЮЗ', 'ЮЗ', 'ЗЮЗ', 'З', 'ЗСЗ', 'СЗ', 'ССЗ', 'С'];
      $direction = $windDirection[round($degree / 22.5)];
      
      return $direction;
   }

  /**
    * Get wind direction name by direction in degree 
    * @param mixed $degree Wind degree
    * @return string
    */
    function myWindDirFull($degree)
   {
      $windDirection = ['Северный', 'Северо-северо-восточный', 'Северо-восточный', 'Восточно-северо-восточный', 'Восточный', 'Восточно-юго-восточный', 'Юго-восточный', 'Юго-юго-восточный', 'Южный', 'Юго-юго-западный', 'Юго-западный', 'Западно-юго-западный', 'Западный', 'Западно-северо-западный', 'Северо-западный', 'Северо-северо-западный', 'Северный'];
      $direction = $windDirection[round($degree / 22.5)];
      
      return $direction;
}
Для своих функций у меня заведен файлик c:\_majordomo\htdocs\lib\my_funcs.php,
куда я всякую вкусность складываю - туда и добавляем новые наши функции. Следим, чтобы файл сохранялся в кодировке UTF-8 without BOM, в начале <?php

Перезагружаем МЖДМ, проверяем в консоли myWindDirection(10)
Если заработало, можем определить свойство Погода.Название_направления_ветра
Там, где обновляется свойство Погода.Направление_ветра_в_градусах дописываем

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

setGlobal('Погода.Название_направления_ветра',myWindDirFull(getGlobal(Погода.Направление_ветра_в_градусах)));
 
Для того, чтобы получить краткое наименование, соотв. используем функцию myWindDirection
C_3AXAPOB
Сообщения: 509
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 100 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение C_3AXAPOB » Сб дек 24, 2016 12:15 am

Проблема!
Через некоторое время после установки модуль забивает кодом:
СпойлерПоказать
include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
$openweather = new app_openweather();
$openweather->get_weather(gg('ow_city.id')); //START openweather module
$updateTime = gg('ow_setting.updateTime');
if($updateTime > 0)
{
$count = gg('ow_setting.countTime');
if($count >= $updateTime)
{
include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
$app_openweather = new app_openweather();
$app_openweather->get_weather(gg('ow_city.id'));
sg('ow_setting.countTime', 1);
}
else
{
$count++;
sg('ow_setting.countTime', $count);
}
}
// END openweather module//START openweather module
весь метод onNewHour, больше 1000 строк!
Что делать?
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 323 раза

Re: Модуль - Погода от OpenWeatherMap

Сообщение Ivan » Сб дек 24, 2016 1:01 am

Да задолбало это если чесно. Нужно править модуль.
Автор. Сделай обновление через циклы пожалуйста
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Varrcan
Сообщения: 24
Зарегистрирован: Чт июл 30, 2015 10:04 pm
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: Модуль - Погода от OpenWeatherMap

Сообщение Varrcan » Пн янв 09, 2017 5:02 pm

Не могу установить модуль, вываливается ошибка SQL.
Строка 680:

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

SQLExec("insert into 
COUNTRY(COUNTRY_ID, COUNTRY_GUID, COUNTRY_NAME, LM_DATE, COUNTRY_CODE, COUNTRY_PHONE_CODE, LATITUDE, LONGITUDE) 
values (19, '3B71F5B5-2AC2-9154-404D-191ABFBC4729', 'Belgium', 'BE', NOW(), '32', NULL, NULL);");
 
'BE' и NOW() нужно поменять местами
Закрыто