[Дизайн] Дизайн сцен - Погода (вертикальная)

Оформление сцен, меню, страниц

Модераторы: immortal, newz20

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

Re: Дизайн сцен - Погода (вертикальная)

Сообщение nick7zmail » Пн июл 10, 2017 7:18 am

Так, для сведения, если ещё не разобрались (на счет сменного фона)...создаёте объект на сцене - изображение, у него несколько состояний...в каждом состоянии - своё изображение, и там есть условие отображения, в котором можно задать условие - в зависимости от какого-либо свойства...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Дизайн сцен - Погода (вертикальная)

Сообщение immortal » Ср авг 30, 2017 10:59 pm

допилил погоду топикстартера.

Требования к сцене: установленный модуль Погода от OpenWeatherMap

Установка:
1. Создаем сценарий calculate_realfeel
calculate_realfeelПоказать

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

$t = gg('ow_day0.temperature'); // температура на улице
$h = gg('ow_day0.humidity'); // влажность на улице
$w = gg('ow_day0.wind_speed'); // данные о ветре из прогноза OpenWeather
$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:
    //ADJUSTMENT = [(RH-85)/10] * [(87-T)/5]
    $_f=$_f+(($h-85)/10)*((87-$tF)/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,0);
//и пропишем значение
sg("ThisComputer.reelFeel",$rf);
// внесем дни недели прогноза
$numD=gg("ow_setting.forecast_interval");
$day[0]="ВСК";
$day[1]="ПНД";
$day[2]="ВТР";
$day[3]="СРД";
$day[4]="ЧТВ";
$day[5]="ПТН";
$day[6]="СБТ";
for ($i = 1; $i < $numD; $i++) {
 $dayNum = date("w", strtotime($date .' +'.$i.' day'));
 $name = $day[date("w", strtotime($date .' +'.$i.' day'))];
 sg("ow_day".$i.".name", $name);
 } 
2. Заходим в настройки Погода от OpenWeatherMap и устанавливаем внастройках После обновления выполнить сценарий: calculate_realfeel

3. onNewHour привести к следующему виду (добавить):
onNewHourПоказать

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

$h=(int)date('G',time());
if (gg('ThisComputer.DateD')!=date("d", time())) {
$day[0]="воскресенье";
$day[1]="понедельник";
$day[2]="вторник";
$day[3]="среда";
$day[4]="четверг";
$day[5]="пятница";
$day[6]="суббота";
$month[1]="января";
$monthAlt[1]="ЯНВАРЬ";
$monthShrt[1]="ЯНВ";
$month[2]="февраля";
$monthAlt[2]="ФЕВРАЛЬ";
$monthShrt[2]="ФЕВ";
$month[3]="марта";
$monthAlt[3]="МАРТ";
$monthShrt[3]="МАРТ";
$month[4]="апреля";
$monthAlt[4]="АПРЕЛЬ";
$monthShrt[4]="АПР";
$month[5]="мая";
$monthAlt[5]="МАЙ";
$monthShrt[5]="МАЙ";
$month[6]="июня";
$monthAlt[6]="ИЮНЬ";
$monthShrt[6]="ИЮНЬ";
$month[7]="июля";
$monthAlt[7]="ИЮЛЬ";
$monthShrt[7]="ИЮЛЬ";
$month[8]="августа";
$monthAlt[8]="АВГУСТ";
$monthShrt[8]="АВГ";
$month[9]="сентября";
$monthAlt[9]="СЕНТЯБРЬ"; 
$monthShrt[9]="СЕН"; 
$month[10]="октября";
$monthAlt[10]="ОКТЯБРЬ";
$monthShrt[10]="ОКТ";
$month[11]="ноября";
$monthAlt[11]="НОЯБРЬ";
$monthShrt[11]="НБР";
$month[12]="декабря";
$monthAlt[12]="ДЕКАБРЬ";
$monthShrt[12]="ДЕК";
sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);
sg("ThisComputer.MonthShrt",$monthShrt[date("n")]);
} 
$h=(int)date('G',time());
//часы с нулем впереди
if($h<10)
{$h1="0".$h;} 
else 
{$h1=$h;}; 
sg("ThisComputer.timeHH",$h1); 
4. распаковать в корень сайта архив
cms.zip
(1.99 МБ) 650 скачиваний
(добавлена стрелка направления ветра и несколько фонов, нет зимних фонов)

5. создать сцену без фонового изображения

6. импортировать элементы
Elements22-50-30.elements.zip
(42.51 КБ) 309 скачиваний
Отличия от погоды топикстартера:
- данные только из OpenWeatherMap
- стрелка направления ветра
- картинки панелей не в css и нет необходимости в правке css файла

В планах:
- оптимизация под приложение MajorDroid
- фоны погоды в элементы сцены

Добавил в шапку.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Аватара пользователя
xor
Сообщения: 2036
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 283 раза
Поблагодарили: 628 раз

Re: Дизайн сцен - Погода (вертикальная)

Сообщение xor » Чт авг 31, 2017 1:08 am

Там ошибки в расчете реалфил.
Напр, при расчете WindChild не умножение на 0.16, а возведение в степень.
см. http://tehtab.ru/guide/guidetricks/windchillingeffect/
viewtopic.php?f=18&t=2939
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Дизайн сцен - Погода (вертикальная)

Сообщение nick7zmail » Чт авг 31, 2017 6:01 am

В OnNewHour можно было не писать такой "Трактат", а воспользоваться модулем DateFormat))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Дизайн сцен - Погода (вертикальная)

Сообщение immortal » Чт авг 31, 2017 9:14 am

xor писал(а):Там ошибки в расчете реалфил.
Напр, при расчете WindChild не умножение на 0.16, а возведение в степень.
см. http://tehtab.ru/guide/guidetricks/windchillingeffect/
viewtopic.php?f=18&t=2939
спасибо, поправил.
В OnNewHour можно было не писать такой "Трактат", а воспользоваться модулем DateFormat))
лучше выкладывать код, я лишь добавил нужные мне значения, выложите код, я отредактирую.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Дизайн сцен - Погода (вертикальная)

Сообщение nick7zmail » Чт авг 31, 2017 10:07 am

immortal писал(а): лучше выкладывать код, я лишь добавил нужные мне значения, выложите код, я отредактирую.
Не совсем понял, какой код вы хотите...я имел ввиду модуль Формат Даты в маркете дополнений viewtopic.php?f=5&t=3751
Он собственно этим и занимается, выставляет нужные месяца, дни недели и т.п. в определенном формате в нужные свойства...сделан как раз для того, чтобы избавить пользователя от таких "доработок" (дополнительного кода) в OnNewHour.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Дизайн сцен - Погода (вертикальная)

Сообщение immortal » Чт авг 31, 2017 3:15 pm

nick7zmail писал(а):
immortal писал(а): лучше выкладывать код, я лишь добавил нужные мне значения, выложите код, я отредактирую.
Не совсем понял, какой код вы хотите...я имел ввиду модуль Формат Даты в маркете дополнений viewtopic.php?f=5&t=3751
Он собственно этим и занимается, выставляет нужные месяца, дни недели и т.п. в определенном формате в нужные свойства...сделан как раз для того, чтобы избавить пользователя от таких "доработок" (дополнительного кода) в OnNewHour.
понял, пошел разбираться
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Дизайн сцен - Погода (вертикальная)

Сообщение immortal » Чт авг 31, 2017 8:56 pm

добавил в шапку оптимизированную сцену для приложения MajorDroid
СпойлерПоказать
droid_pogoda.jpg
droid_pogoda.jpg (334.25 КБ) 8796 просмотров
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Sasha95
Сообщения: 57
Зарегистрирован: Ср авг 02, 2017 10:16 pm
Благодарил (а): 17 раз
Поблагодарили: 1 раз

Re: Дизайн сцен - Погода (вертикальная)

Сообщение Sasha95 » Пт сен 01, 2017 1:09 pm

Добрый день. Кто-то делал, чтоб на заднем фоне была анимация погоды, той что на улице. Например, если идет дождь, то на заднем фоне пусть капает дождик и т.п.
Я сам уже пробовал такое делать. Но так и не нашёл красивых анимаций дождя и т.п.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Дизайн сцен - Погода (вертикальная)

Сообщение nick7zmail » Пт сен 01, 2017 1:19 pm

Я делал анимацию...потом отказался от этой идеи - сильно напрягает браузер при загрузке страниц (загрузка дольше идет).
Вариантов несколько
1) гифка. Гифку сложно найти адекватную, но можно сделать)) Проблема в том, что гифка нормального формата с плавной анимацией, на несколько секунд анимации весит больше 15 мегабайт...не очень вариант
2) видео. Всего лишь избавляет от необходимости делать гифку, минусы те же + гемор с плеером...у меня завелось, но далеко не с первого раза
3) флеш. Флеш весит меньше, работает бодрее, но и качество слишком "мультяшное"
4) Анимация по средствам css. Самый хороший вариант наверное...но я, честно, не пробовал...слишком много мороки прорисовывать это всё дело.
5) Находил какой-то вариант - готовый сайт погодный с анимированным фоном, и красивым дизайном...сделан кстати на флеше...ссылка точно на форуме где-то есть...можно его целиком iframe-ом вставить...но я хз откуда там данные берутся...но вроде работает...

Лично я забил на эту идею, пользуюсь openweather...на сцене анимированы только сами блоки (см. дизайн сцен 2, там оттуда сцена).

UPD: вот кстати этот сайт...про который говорил...ссылка сразу на генератор html кода. http://yowindow.ru/weatherwidget.php
Последний раз редактировалось nick7zmail Пт сен 01, 2017 10:27 pm, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить