Спасибо! С андроидом будет отдельная песня. На прошлой сборке МД от Adzam я делал сценарий " Алиса , расскажи о погоде " из видео уроков. На странице в чате видел сообщение от Алисы , но голоса не было. Попробую на новой версии.ученик писал(а):.... Потом через андроид приложение даем голосовую команду скажи погоду и Алиса говорит погоду
[Модуль] OpenWeatherMap (openweather) Не актуально!
Модератор: immortal
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Модуль - Погода от OpenWeatherMap
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 215
- Зарегистрирован: Вс мар 05, 2017 2:18 pm
- Благодарил (а): 21 раз
- Поблагодарили: 6 раз
Re: Модуль - Погода от OpenWeatherMap
этот код если у вас нет функции chti тоже не заработает, автор ее вызывает для склонения правильного, надеюсь он даст эту функцию и скажет куда ее добавить.serghei писал(а):А для особо начинающего юзера ------ куда вставить этот код ?? )))) . ( Погода работает отлично. Алиса болтает без проблем.)
- Рейтинг: 1.16%
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Модуль - Погода от OpenWeatherMap
также интересно, в каком места заполняется ow_fact.tempYesterday, можно конечно самому заполнять например в час дня через таймер, но может у автора есть более интересное решение.
Код: Выделить всё
if (timeIs("13:00")) { sg('ow_fact.tempYesterday',gg('ow_fact.temperature'));}
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль - Погода от OpenWeatherMap
Модуль openwhether May её сам заполняет если он установленdirectman66 писал(а):также интересно, в каком места заполняется ow_fact.tempYesterday, можно конечно самому заполнять например в час дня через таймер, но может у автора есть более интересное решение.Код: Выделить всё
if (timeIs("13:00")) { sg('ow_fact.tempYesterday',gg('ow_fact.temperature'));}
Отправлено с моего MI PAD 2 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Модуль - Погода от OpenWeatherMap
Может есть какая-то настройка? У меня вообще отсутствовала эта переменная.lanket писал(а): Модуль openwhether May её сам заполняет если он установлен
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Модуль - Погода от OpenWeatherMap
Alex77 писал(а):Скажите а как и куда добавить chti функцию?
и как вы получили ow_fact.realFell такого свойства у меня нет в стандартном компоненте
Функцию chti можно положить например в lib/my.class.php или lib/myuserfunction.php, тогда ее можно будет использовать в любом месте системы.directman66 писал(а):также интересно, в каком места заполняется ow_fact.tempYesterday, можно конечно самому заполнять например в час дня через таймер, но может у автора есть более интересное решение.Код: Выделить всё
if (timeIs("13:00")) { sg('ow_fact.tempYesterday',gg('ow_fact.temperature'));}
Вот сама функция:
СпойлерПоказать
Код: Выделить всё
// Склонение числительных
// string - само число
// ch1 - час, день, год, месяц
// ch2 - часа, дня, года, месяца
// ch3 - часов, дней, лет, месяцев
function chti($string, $ch1, $ch2, $ch3)
{
$ff=Array('0','1','2','3','4','5','6','7','8','9');
if(substr($string,-2, 1)==1 AND strlen($string)>1) $ry=array("0 $ch3","1 $ch3","2 $ch3","3 $ch3" ,"4 $ch3","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
else $ry=array("0 $ch3","1 $ch1","2 $ch2","3 $ch2","4 $ch2","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
$string1=substr($string,0,-1).str_replace($ff, $ry, substr($string,-1,1));
return $string1;
}
у объекта openweather создан метод ChangeTemp, который вызывается при изменении свойства temperature, так же надо не забыть у свойства temperature выставить настройку хранить историю.
Код метода ChangeTemp:
СпойлерПоказать
Код: Выделить всё
$tempYesterday = getHistoryValue("ow_fact.temperature", strtotime("-1 day"), true);
sg("ow_fact.tempYesterday", $tempYesterday);
//Расчет температуры "По ощущениям"
$t = gg('ow_fact.temperature'); // температура на улице
$h = gg('ow_fact.humidity'); // влажность на улице %
$w = gg('ow_fact.wind_speed'); // данные о ветре из прогноза OpenWeather m/s
$w = $w*3.6/1.609;//m/s -> mph
$tF = $t *1.8+32; // перевод температуры в Farenheit
if ($t > 26.6) { // Считаем HeatIndex по Rothfusz
$_f = -42.379 + 2.04901523*$tF + 10.14333127*$h - 0.22475541*$tF*$h - 0.00683783*$tF*$tF - 0.05481717*$h*$h + 0.00122874*$tF*$tF*$h + 0.00085282*$tF*$h*$h -0.00000199*$tF*$tF*$h*$h;
if(($tF < 112) && ( $h<13 )) { // If the RH is less than 13% and the temperature is between 80 and 112 degrees F, then the following adjustment is subtracted from HI:
$_f = $_f-((13-$h)/4)*sqrt((17-abs($tF-95.))/17);
}
if(($tF < 88) && ($h > 85)) { // On the other hand, if the RH is greater than 85% and the temperature is between 80 and 87 degrees F, then the following adjustment is added to HI:
$_f = $_f + (($h - 85) / 10) * ((87 - $tF) / 5); //ADJUSTMENT = [(RH-85)/10] * [(87-T)/5]
}
} else if ($t <= 10) { // Считаем фактор WindChild
$_f = 35.74 + (0.6215 * $tF) - (35.75 * pow($w, 0.16)) + ((0.4275 * $tF) * pow($w, 0.16));
} else { //считаем по упрощенной формуле
$_f = 0.5*($tF+61+(($tF-68)*1.2)+($h*0.094));
}
// переводим в цельсии
$rf = round(($_f-32)/1.8,1);
sg("ow_fact.realFell", $rf);
- За это сообщение автора Dark_Veter поблагодарили (всего 4):
- directman66 (Пт май 19, 2017 1:25 pm) • ipz (Пт май 19, 2017 7:55 pm) • Alex77 (Сб май 20, 2017 11:30 pm) • ferenir (Вт июн 06, 2017 3:02 pm)
- Рейтинг: 4.65%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Модуль - Погода от OpenWeatherMap
у нас есть объекты только
ow_city
ow_day0 openweather
ow_day1 openweather
ow_day2 openweather
ow_fact openweather
ow_setting
нужно создавать метод у ow_fact ?
а также непонятно, как вызывать метод при изменении свойства?
ow_city
ow_day0 openweather
ow_day1 openweather
ow_day2 openweather
ow_fact openweather
ow_setting
нужно создавать метод у ow_fact ?
а также непонятно, как вызывать метод при изменении свойства?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Модуль - Погода от OpenWeatherMap
У меня есть объект openweather, а там уже вложенные объекты ow_city, ow_day0, ow_day1 ... ow_fact, ow_setting. По идее у вас должно быть так-же, модуль то один используется:). Надо в объекте openweather (это корневой объект) создать описанный выше метод ChangeTemp, затем там же создать свойство temperature, указав там опции хранить историю (например 7 дней) и Запускать метод при изменении (как раз созданный метод ChangeTemp)
- За это сообщение автора Dark_Veter поблагодарил:
- nick7zmail (Пт май 19, 2017 1:44 pm)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Модуль - Погода от OpenWeatherMap
openweather это класс )
- За это сообщение автора directman66 поблагодарил:
- Dark_Veter (Пт май 19, 2017 1:46 pm)
- Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Модуль - Погода от OpenWeatherMap
Точно! сори за неверную информацию)
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect