[Модуль] Погода от Openweather

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

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

Andy111
Сообщения: 15
Зарегистрирован: Вт апр 25, 2017 1:17 pm
Благодарил (а): 11 раз
Поблагодарили: 0

Re: [Модуль] Погода от Openweather

Сообщение Andy111 » Вт дек 05, 2017 9:45 pm

О, Ужас!

Температура отсутствует у остальных "дней" кроме первого... Остальные параметры на месте.

Ан, нифига, количества осадков тоже нет...

Ключ 5-дневный.
Вложения
OpenWeatherNoTempGlitch.png
OpenWeatherNoTempGlitch.png (67.19 КБ) 1397 просмотров
Аватара пользователя
nick7zmail
Сообщения: 5325
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 109 раз
Поблагодарили: 1242 раза

Re: [Модуль] Погода от Openweather

Сообщение nick7zmail » Вт дек 05, 2017 10:03 pm

Вы только это заметили? Это с самого начала для пятидневных ключей так, и об этом я предупреждал...потому что это дневная и ночная температура была для 16-дневных...а какая дневная/ночная температура может быть в конкретное время...Единственный недочет, пожалуй, это то, что эта температура никуда не выведена...но в свойствах объектов она есть =). Упущение, что она никуда не выведена - исправим, не переживайте =).
Raspberry Pi3 + Broadlink + esp8266 (blynk) + Arduino Mega (AMS)
Уважаемые пользователи! Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Помощь пользователям | Создание сцен
Logrus
Сообщения: 931
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 167 раз
Поблагодарили: 112 раз

Re: [Модуль] Погода от Openweather

Сообщение Logrus » Чт дек 07, 2017 10:03 am

Так мысль уже давно бродит ))) тут в ветке и про снег, ее сильней пнули, имхо нужно и на 5 и на 16 дней прогнозы сразу (иметь возможность выбрать, кому доступны) ...
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Аватара пользователя
nick7zmail
Сообщения: 5325
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 109 раз
Поблагодарили: 1242 раза

Re: [Модуль] Погода от Openweather

Сообщение nick7zmail » Чт дек 07, 2017 11:14 am

Зачем вам и на 5 и на 16? Оо...не предстваляю...если хотите подробный - берите на 5, если нет нужды на 16. А у новых ключей дак вообще выбора такого нет.
Raspberry Pi3 + Broadlink + esp8266 (blynk) + Arduino Mega (AMS)
Уважаемые пользователи! Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Помощь пользователям | Создание сцен
Logrus
Сообщения: 931
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 167 раз
Поблагодарили: 112 раз

Re: [Модуль] Погода от Openweather

Сообщение Logrus » Чт дек 07, 2017 11:26 am

1. со старым апи ключем такая возможность есть
2. мне летом нужен длинный на 16 дней (зимой хватает на 8)
3. у них (5 и 16) расчет по разным моделям
4. у 5 дневного есть свои плюсы, но у меня нет выбора нужен и на 16 дней
можно и далее продолжить
5. а кому-то нафиг прогноз не нужен, только фактическую или наоборот (это к метеостанциям в том числе)
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Logrus
Сообщения: 931
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 167 раз
Поблагодарили: 112 раз

Re: [Модуль] Погода от Openweather

Сообщение Logrus » Вс дек 10, 2017 8:43 pm

https://majordomo.smartliving.ru/forum/ ... 140#p65335
в скрипт WeatherFromOpenWeather (есть, что переделать)
СпойлерПоказать

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

$weatherToday = '<b>Сегодня</b> до ';
$temp=gg('ow_day0.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherToday.=$temp.'°';
$weatherToday.=', '.gg('ow_day0.weather_type').'. ';

$weatherToday.='Ветер '.round(gg('ow_day0.wind_speed'))." м/с. ";
//$weatherToday.='направление '.round(gg('ow_day0.wind_direction')).". ";

$weatherToday.='Влажность '.round(gg('ow_day0.humidity'))." %. ";
$weatherToday.='Давление '.round(gg('ow_day0.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherToday.='Ночью до ';
$temp=gg('ow_day0.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherToday.=$temp.'°.';

$weatherTomorrow = '<b>Завтра</b> днём до ';
$temp=gg('ow_day1.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrow.=$temp.'°';
$weatherTomorrow.=', '.gg('ow_day1.weather_type').'. ';
//$weatherTomorrow.='Влажность '.round(gg('ow_day1.humidity')).'. ';
$weatherTomorrow.='Давление '.round(gg('ow_day1.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherTomorrow.='Ночью до ';
$temp=gg('ow_day1.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrow.=$temp.'°.';

$weatherTomorrowAfter = '<b>Послезавтра</b> днём до ';
$temp=gg('ow_day2.temp_max');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrowAfter.=$temp.'°';
$weatherTomorrowAfter.=', '.gg('ow_day2.weather_type').'. ';
//$weatherTomorrowAfter.='Влажность '.round(gg('ow_day2.humidity')).'. ';
$weatherTomorrowAfter.='Давление '.round(gg('ow_day2.pressure_mmhg')).' миллиметров ртутного столба. ';
$weatherTomorrowAfter.='Ночью до ';
$temp=gg('ow_day2.temp_night');
$temp = round($temp);
if($temp>0){$temp="+".$temp;} //Если значение температуры положительно, для наглядности добавляем "+"
$weatherTomorrowAfter.=$temp.'°.';

sg('ThisComputer.weatherToday', $weatherToday);
sg('ThisComputer.weatherTomorrow', $weatherTomorrow);
sg('ThisComputer.weatherTomorrowAfter', $weatherTomorrowAfter);

if (timeIs("21:00")) {runScriptSafe('frostCalc');}
в самом конце добавил (наверное еще добавить условие с кнопки, типа проверять на заморозки)

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

if (timeIs("21:00")) {runScriptSafe('frostCalc');} 
создал скрипт frostCalc

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

$t13 = getHistoryValue("ow_fact.temperature", strtotime("-8 hour"), true);
$t21 = gg('ow_fact.temperature');

if ($t13 == "" or $t21 == "") {
     say("Недостаточно данных для расчета заморозков.",-1);
     return;}
$z = "0%";
$x = $t13 - $t21;

    if ($t21 >= $t13 ) {
     say("Расчет заморозков невозможен. Температура растет."); 
     return;}
    if ($t21 < 0 ) {
     say("Расчет заморозков невозможен. Температура ниже нуля."); 
     return;}

    if ($t21 < 11 && $x < 11 ){
        $t_graph = array(
            0 => array(0.375, 11, 0),
            1 => array(0.391, 8.7, 10),
            2 => array(0.382, 6.7, 20),
            3 => array(0.382, 4.7, 40),
            4 => array(0.391, 2.7, 60),
            5 => array(0.4, 1.6, 80));

        $z = "100%";
        for ( $i = 0; $i < count($t_graph); $i++ ){
            $y1 = $t_graph[$i][0] * $x + $t_graph[$i][1];
    
            if ( $t21 > $y1){
                $z = $t_graph[$i][2]."%";
                break;
            }
        }
    }
$frost="Вероятность заморозков: ";
$frost.=$z;
say($frost,-1);
sg("ow_fact.frost",$frost); 
say закомментировать как проверится работоспособность
в 21:00 отписала
21:00 Алиса: Расчет заморозков невозможен. Температура ниже нуля.
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Logrus
Сообщения: 931
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 167 раз
Поблагодарили: 112 раз

Re: [Модуль] Погода от Openweather

Сообщение Logrus » Вт дек 12, 2017 5:45 pm

Никита, а можно вывод ow_fact.wind_direction в action_usual.html и view_weather.html
округлять, то до 5-ти знаков после запятой
сейчас так Ветер: ЮЮЗ (200.002°) 1.35 м/с

вообще точность выше градуса нужна (я про при получении)?
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Аватара пользователя
nick7zmail
Сообщения: 5325
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 109 раз
Поблагодарили: 1242 раза

Re: [Модуль] Погода от Openweather

Сообщение nick7zmail » Вт дек 12, 2017 6:23 pm

Logrus писал(а):Никита, а можно вывод ow_fact.wind_direction в action_usual.html и view_weather.html
округлять, то до 5-ти знаков после запятой
сейчас так Ветер: ЮЮЗ (200.002°) 1.35 м/с
До 5 знаков после запятой? Вам 3х уже мало? Серьезно? Что за бред?))
Raspberry Pi3 + Broadlink + esp8266 (blynk) + Arduino Mega (AMS)
Уважаемые пользователи! Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Помощь пользователям | Создание сцен
Logrus
Сообщения: 931
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 167 раз
Поблагодарили: 112 раз

Re: [Модуль] Погода от Openweather

Сообщение Logrus » Вт дек 12, 2017 6:45 pm

мне и 3-х много ))) а бывает и 5-ть
перечитай )))
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Аватара пользователя
nick7zmail
Сообщения: 5325
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 109 раз
Поблагодарили: 1242 раза

Re: [Модуль] Погода от Openweather

Сообщение nick7zmail » Вт дек 12, 2017 8:26 pm

Раз 20 прочитал...всё равно вижу "Никита, а можно вывод ow_fact.wind_direction в action_usual.html и view_weather.html округлять то до 5-ти знаков после запятой", и запятая как будто бы не в тему там поставлена...с ней тоже нормально не читается =D.

А вообще - в одном из ближайших обновлений планировал ввести округление всех параметров.
Raspberry Pi3 + Broadlink + esp8266 (blynk) + Arduino Mega (AMS)
Уважаемые пользователи! Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Помощь пользователям | Создание сцен
Ответить