в систему переменные будут попадать такими же дробными, а с помощью написанного примера можно выводить переменную уже непосредственно в скрипте или меню. Это пример только для фактической температуры (ow_fact.temperature).craber писал(а): Спасибо. Только округлилось как-то выборочно.
[Модуль] OpenWeatherMap (openweather) Не актуально!
Модератор: immortal
-
- Сообщения: 43
- Зарегистрирован: Пт дек 26, 2014 6:37 pm
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль - Погода от OpenWeatherMap
-
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
- Благодарил (а): 16 раз
- Поблагодарили: 13 раз
Re: Модуль - Погода от OpenWeatherMap
Господа! Уже голову поломал с розой ветров! В модуле направление ветра указано в градусах угла по азимуту, а мне надо нормальное направление для проговаривание через функцию say. Может кто поделится куском кода для преобразования? Углы высчитал для каждого направления, а вот с кодом БЕДА: соображалки не хватает!
Может я что то не туда прописываю?
На экран выводит только слово Ветер
Может я что то не туда прописываю?
Код: Выделить всё
// Направление ветра
$dir =round(gg('ow_fact.wind_direction'));
if (112.5>=$dir && $dir<=157.5){
$direct= "Юго-Восточный";
}else if (0>=$dir && $dir<=22.5){
$direct="Северный";
}else if (22.6>=$dir && $dir<=67.5){
$direct= "Северо-Восточный";
}
$status.=' Ветер'. $direct;
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Модуль - Погода от OpenWeatherMap
Пользуюсь функциями (добавил в файл C\_majordomo\htdocs\lib\my_funcs.php)
Код: Выделить всё
/**
* 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;
}
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 2
- Зарегистрирован: Пн окт 24, 2016 11:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 0
Re: Модуль - Погода от OpenWeatherMap
Подскажите, а куда вставить код ? Не могу разобраться.jeks0n писал(а):например, так:craber писал(а):У меня модуль выдает значения 2.46°C, -1.83°C
Подскажите как и где округлить значения температуры до целых?
Код: Выделить всё
$t_fact=round(getGlobal('ow_fact.temperature'),0);
-
- Сообщения: 43
- Зарегистрирован: Пт дек 26, 2014 6:37 pm
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль - Погода от OpenWeatherMap
ну например в сценарии ReadWeatherToday
теперь везде в скриптах или меню где выводили переменную "ow_fact.temperature", выводим "t_fact".
Тоже самое делаем с другими нужными переменными (прогноз на ночь или на завтра и т.п.)
Код: Выделить всё
$t_fact=round(getGlobal('ow_fact.temperature'),0); //округляем фактическую температуру и назначаем ее значение в переменную $t_fact;
setGlobal('t_fact',$t_fact); //назначаем глобальную переменную $t_fact с текущим значением температуры;
Тоже самое делаем с другими нужными переменными (прогноз на ночь или на завтра и т.п.)
- Рейтинг: 1.16%
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Модуль - Погода от OpenWeatherMap
Под виндой так и не работает выбор города. Переустановка с удалением хвостов не помогает.
-
- Сообщения: 2
- Зарегистрирован: Пн окт 24, 2016 11:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 0
Re: Модуль - Погода от OpenWeatherMap
jeks0n спасибо за пояснения, очень доходчиво.
Все заработало на Raspberry, только после рестарта, последнего.
Кнопочку нажал
Все заработало на Raspberry, только после рестарта, последнего.
Кнопочку нажал
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Re: Модуль - Погода от OpenWeatherMap
jeks0n писал(а):ну например в сценарии ReadWeatherTodayтеперь везде в скриптах или меню где выводили переменную "ow_fact.temperature", выводим "t_fact".Код: Выделить всё
$t_fact=round(getGlobal('ow_fact.temperature'),0); //округляем фактическую температуру и назначаем ее значение в переменную $t_fact; setGlobal('t_fact',$t_fact); //назначаем глобальную переменную $t_fact с текущим значением температуры;
Тоже самое делаем с другими нужными переменными (прогноз на ночь или на завтра и т.п.)
создал данный сценарий, после применения алиса проговорила погоду.... странно
в сцене прописал в место ow_fact.temperature, t_fact, данные не выводит
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Re: Модуль - Погода от OpenWeatherMap
помогите все таки сделать получаемую температуру не в виде 2,68 а 2,6. плизззз=)