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

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

Модератор: immortal

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

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

Сообщение nick7zmail » Ср май 17, 2017 3:36 pm

Выберите страну, и не закрывая гляньте в дебаг...мб ошибки какие...

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kirush
Сообщения: 132
Зарегистрирован: Ср май 17, 2017 10:38 am
Благодарил (а): 5 раз
Поблагодарили: 11 раз

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

Сообщение kirush » Ср май 17, 2017 3:48 pm

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

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

Сообщение nick7zmail » Ср май 17, 2017 4:02 pm

kirush писал(а):Первым делом смотрел - пусто там ;(
Выкрутился вбиванием всего вручную.
Ну интересно же разобраться))
а в папку <МД>/cached/openweather скачался city_list.txt?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Чт май 18, 2017 2:42 pm

подскажите, нет ли готового решения генерации строки с текущей погодой и прогнозом на день для проговаривания Алисой погоды с данными этого плагина?

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

$text='Сейчас на улице '.gg('tooday.now').' градусов. '.gg("tooday.nowhum").'  Утром ожидается '.gg('tooday.morning').' градусов.';
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Чт май 18, 2017 3:05 pm

Ну вы же написали почти готовую строку...только объект.свойство надо брать из объекта ow_fact и ow_day0 (на счет второго не уверен, системы под рукой нет)

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Чт май 18, 2017 3:26 pm

Если бы было так просто ))

Если сейчас утро то нужно проговаривать текущую + прогноз на день+ вечер, если сейчас вечер, то нужно собирать другие параметры (ночь, утро, гололед и т.д.) Также наверно надо добавить рекомендации: не забыть взять зонт или одеться потеплее или не брать лишнюю одежду. Просто спросил, может уже есть у кого готовое решение, чтоб не изобретать велосипед. Мои вариант собирался с данных gismeteo, поэтому несколько отличается. Мое решение пока только в мыслях )
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

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

Сообщение Dark_Veter » Чт май 18, 2017 3:39 pm

Может вот так подойдет, если чуть под себя поправить?
СпойлерПоказать

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

//на всякий случай обновим погоду
//include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
//$openweather = new app_openweather();
//$openweather->get_weather(gg('ow_city.id'));
//////////

$status .= "Сейчас на улице " . gg("ow_fact.weather_type") . ", ";

$w = round(gg("ow_fact.temperature"));
$status .= 'температура ' . chti($w, 'градус', 'градуса', 'градусов')  . " цельсия, ";

//Температура "По ощущениям"
$realFellTemp = round(gg("ow_fact.realFell"));
if ($w != $realFellTemp) {
    $status .= "ощущается как " . chti($realFellTemp, 'градус', 'градуса', 'градусов')  . " цельсия, ";
}
$w = gg("ow_fact.realFell");
if ($w < -40) {
    $status .= 'мы морозов не боимся! ';
} elseif ($w < -30) { 
     $status .= 'одевайтесь теплее, очень холодно, ';
} elseif ($w < -20) {
    $status .= 'самое время есть мороженое, ';
} elseif ($w < -10) {
    $status .= 'холодновато, ';
} elseif ($w <- 3)  {
    $status .= 'не особо холодно, ';
} elseif ($w < 3) {
    $status .= 'значит, возможно, гололёд, ';
} elseif ($w < 10) {
    $status .= 'прохладно, ';
} elseif ($w < 22)  {
    $status .= 'тепло, ';
} elseif ($w < 30) {
    $status .= 'жарко, ';
} elseif ($w > 30) {
    $status .= 'ташкент, ';
} 




// Сравнение со вчерашним днем
$tNew = round((float) getGlobal('ow_fact.temperature'));
$tOld = round((float) getGlobal('ow_fact.tempYesterday'));
$tDelta = abs($tNew - $tOld);

if ($tNew > $tOld) {
     $status .= "теплее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew < $tOld) {
     $status .= "холоднее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew == $tOld) {
     $status .= "так же как и вчера. ";
}

$h = round(gg("ow_fact.humidity"));

$status .= "Относительная влажность " . chti($h, 'процент', 'процента', 'процентов') . ". ";

$pressure = (float) gg("ow_fact.pressure_mmhg");
if ($pressure < 738) {
    $status .= 'Атмосферное давление пониженное';
} elseif ($pressure > 768) {
    $status .='Атмосферное давление повышенное';
} else {
    $status .= 'Атмосферное давление в пределах нормы';
}
 $status .= " (" . chti(round($pressure), 'миллиметр', 'миллиметра', 'миллиметров') . " ртутного столба). ";

// ветер
$WindSpeed = (float) gg("ow_fact.wind_speed");
if ($WindSpeed < 1) {
    $status .= "Ветра нет";
} elseif ($WindSpeed < 2) {
    $status .= "Легкий ветер, ";
} elseif ($WindSpeed < 5) {
    $status .= "Слабый ветер";
} elseif ($WindSpeed < 8) {
    $status .= "Умеренный ветер";
} elseif ($WindSpeed < 10) {
    $status .= "Свежий ветер";
} elseif ($WindSpeed < 14) {
    $status .= "Сильный ветер";
} elseif ($WindSpeed < 17) {
    $status .= "Очень сильный ветер";
} elseif ($WindSpeed < 21) {
    $status .= "Ветер очень-очень сильный";
} elseif ($WindSpeed < 28) {
    $status .= "Шторм";
} else {
    $status .= "Ураган";
}
if ($WindSpeed >= 1) {
    $status .= " (" . chti(round($WindSpeed), 'метр', 'метра', 'метров') . " в секунду), ";
    $windDirections = array('севера', 'северо-востока', 'востока', 'юго-востока', 'юга', 'юго-запада', 'запада', 'северо-запада', 'севера');
     $degree = gg('ow_fact.wind_direction');
     $WindDir = $windDirections[round($degree / 45)];
    $status .= " дующий с " . $WindDir;
}
$status .= ". ";
// Прогноз погоды на сегодня
if (timeBetween("01:00", "10:00")) {
    $status .= "Сегодня утром ожидается ";
    $w = round(gg("ow_day0.temp_morn"));
} elseif (timeBetween("10:00", "14:00")) {
     $status .= "Сегодня днем ожидается ";
    $w = round(gg("ow_day0.temp_day"));
} elseif (timeBetween("14:00", "20:00")) {
     $status .= "Сегодня вечером ожидается ";
    $w = round(gg("ow_day0.eve"));
} else {
     $status .= "Сегодня ночью ожидается ";
    $w = round(gg("ow_day0.temp_night")); 
}

$status .= chti($w, 'градус', 'градуса', 'градусов') . " цельсия, " . gg("ow_day0.weather_type") . ". ";

// Погода на завтра
$w = round(gg("ow_day1.temperature"));
$status .= 'Завтра ожидается ' . chti($w, 'градус', 'градуса', 'градусов') . " цельсия, ";
$status .= gg("ow_day1.weather_type") . ".";

say($status, 1);
 
Последний раз редактировалось Dark_Veter Пт май 19, 2017 11:40 am, всего редактировалось 1 раз.
За это сообщение автора Dark_Veter поблагодарили (всего 4):
lanket (Чт май 18, 2017 4:23 pm) • Alex77 (Чт май 18, 2017 9:31 pm) • serghei (Чт май 18, 2017 9:39 pm) • directman66 (Пт май 19, 2017 6:09 am)
Рейтинг: 4.65%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
Alex77
Сообщения: 215
Зарегистрирован: Вс мар 05, 2017 2:18 pm
Благодарил (а): 21 раз
Поблагодарили: 6 раз

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

Сообщение Alex77 » Чт май 18, 2017 9:29 pm

Скажите а как и куда добавить chti функцию?
и как вы получили ow_fact.realFell такого свойства у меня нет в стандартном компоненте
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

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

Сообщение serghei » Чт май 18, 2017 9:46 pm

А для особо начинающего юзера ------ куда вставить этот код ?? )))) . ( Погода работает отлично. Алиса болтает без проблем.)
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

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

Сообщение ученик » Чт май 18, 2017 10:16 pm

serghei писал(а):А для особо начинающего юзера ------ куда вставить этот код ?? )))) . ( Погода работает отлично. Алиса болтает без проблем.)
Создай сценарий с этим кодом и отправь на выполнение по какому ни-буть условию
например создаем сценарий погода туда вставляем код, сохраняем. Заходим в шаблоны поведения пишем шаблон скажи погоду
и в строке выполнить при совпадении вставляем наш сценарий с кодом погоды. Потом через андроид приложение даем голосовую команду скажи погоду и Алиса говорит погоду
За это сообщение автора ученик поблагодарил:
serghei (Чт май 18, 2017 10:25 pm)
Рейтинг: 1.16%
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
Закрыто