У меня не пропадает, всё ок.kas5858 писал(а):Почему картинки пропадают, через несколько секунд?
Шаблон класса / Class Template
Модератор: immortal
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Шаблон класса / Class Template
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 364
- Зарегистрирован: Вс янв 15, 2017 5:34 pm
- Откуда: Москва
- Благодарил (а): 100 раз
- Поблагодарили: 53 раза
Re: Шаблон класса / Class Template
По WIFI я сделал значок, при подключении появляется, при отключении исчезает (как в телефоне).
- Вложения
-
- 43.PNG (9 КБ) 7423 просмотра
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Connect
Connect
- igorewa
- Сообщения: 515
- Зарегистрирован: Ср дек 21, 2016 11:54 pm
- Откуда: Киев
- Благодарил (а): 12 раз
- Поблагодарили: 43 раза
Re: Шаблон класса / Class Template
А расскажите как сделать что бы иконка батареи отображала состояние остатка заряда. метод ChangeBattLevel в классе Users я прописал , но не могу понять откуда должны браться иконки севшей или заряженной батареиkas5858 писал(а):По WIFI я сделал значок, при подключении появляется, при отключении исчезает (как в телефоне).
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
-
- Сообщения: 364
- Зарегистрирован: Вс янв 15, 2017 5:34 pm
- Откуда: Москва
- Благодарил (а): 100 раз
- Поблагодарили: 53 раза
Re: Шаблон класса / Class Template
По коду в свойства и в шаблон.igorewa писал(а):А расскажите как сделать что бы иконка батареи отображала состояние остатка заряда. метод ChangeBattLevel в классе Users я прописал , но не могу понять откуда должны браться иконки севшей или заряженной батареиkas5858 писал(а):По WIFI я сделал значок, при подключении появляется, при отключении исчезает (как в телефоне).
Код: Выделить всё
Код:
$charg=$this->getProperty('Charging');
$level=$this->getProperty('BattLevel');
$this->setProperty('battPic','fa fa-battery-empty'); //здесь продумать нужно
if ($charg==1) {
$this->setProperty("battPic",'fa fa-plug');
} else {
if ($level > 88 && $level <= 100) {
$this->setProperty("battPic",'fa fa-battery-full');
} else if ($level > 62 && $level <= 88) {
$this->setProperty("battPic",'fa fa-battery-three-quarters');
} else if ($level > 37 && $level <= 62) {
$this->setProperty("battPic",'fa fa-battery-half');
} else if ($level > 12 && $level <= 37) {
$this->setProperty("battPic",'fa fa-battery-quarter');
} else if ($level < 12) {
$this->setProperty("battPic",'fa fa-battery-empty');
}
}
- Вложения
-
- 3.PNG (55.85 КБ) 7415 просмотров
-
- 1.PNG (2.86 КБ) 7418 просмотров
-
- 2.PNG (6.78 КБ) 7418 просмотров
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Connect
Connect
- igorewa
- Сообщения: 515
- Зарегистрирован: Ср дек 21, 2016 11:54 pm
- Откуда: Киев
- Благодарил (а): 12 раз
- Поблагодарили: 43 раза
Re: Шаблон класса / Class Template
kas5858 Благадарю , получилось.
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Шаблон класса / Class Template
Кстати если убрать фиксированную высоту/длину - div вполне себе подстраивается под окружение)) но почему-то я отказался от этого...возможно где-то что-то слетало из-за этого...точно не помню...но вроде так работает
Менял только cssПоказать
Код: Выделить всё
<style>
@import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css");
.container {
background-color: rgba(0, 0, 0, 0.3);
border-radius: 15px;
border:1px solid #444;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
}
.container img {
width: 80px;
height: 80px;
float: left;
padding-right: 10px;
padding-bottom: 10px;
}
.batt {
padding-right: 20px;
padding-top: 5px;
float: right;
}
.name {
font-size: 140%;
font-family: fantasy;
}
.loc {
font-size: 100%;
padding-top: 10px;
padding-bottom: 10px;
}
.time {
font-size: 60%;
color:grey;
}
</style>
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2091
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 460 раз
Re: Шаблон класса / Class Template
Попробую, спасибо (но ты точно сам уже не раз сталкивался с нехваткой времени на всё, даже мелочи ))) я уже неделю за нодемку взяться не могу, а для меня там с нуля все нужно начать и вышка по ТАУ вот никаким боком не поможет)
оффтопик:
это чтение, запись тоже по разному
%.BattLevel% % <span class="batt_icon fa fa-%.BattPic%" aria-hidden="true"></span>
%.BattLevel% % <span class="batt_icon %.BattPic%" aria-hidden="true"></span>
это к невнимательности и про разный подход, изначально старался описывать все полностью (я про систему в целом), у программистов точно даже по этому поводу (не знаю как назвать) дисциплины целые есть, т.е. разные подходы
было:
Sensor_state_air_quality_word_A1
Sensor_percentage_CPU_usage
вчера все объекты в мдм переименовывал/сокращал, количество датчиков растет, с-ма становится менее отзывчивой, а такая мелочь как длинное название объекта датчика, и в логи пишется с частотой опроса, и в названии таймеров, как иммортал говорил по 5 гб в сутки между Мускл и апачем, и т.д.
ох, сколько времени потратил, но кпу аверадж минутный очень грубо и примерно с 0.8 до 0.2 упал 0_0 сейчас 0.04 (Никита и про частоту опроса, не настаиваю. но подумай, а?)
я к чему вот вроде б мелочь, кому-то ее даже при обучении вбили и она для кого-то естественна, а кто-то грабли собирает ))) (я про себя и как надоели эти шишки)
оффтопик:
это чтение, запись тоже по разному
%.BattLevel% % <span class="batt_icon fa fa-%.BattPic%" aria-hidden="true"></span>
%.BattLevel% % <span class="batt_icon %.BattPic%" aria-hidden="true"></span>
это к невнимательности и про разный подход, изначально старался описывать все полностью (я про систему в целом), у программистов точно даже по этому поводу (не знаю как назвать) дисциплины целые есть, т.е. разные подходы
было:
Sensor_state_air_quality_word_A1
Sensor_percentage_CPU_usage
вчера все объекты в мдм переименовывал/сокращал, количество датчиков растет, с-ма становится менее отзывчивой, а такая мелочь как длинное название объекта датчика, и в логи пишется с частотой опроса, и в названии таймеров, как иммортал говорил по 5 гб в сутки между Мускл и апачем, и т.д.
ох, сколько времени потратил, но кпу аверадж минутный очень грубо и примерно с 0.8 до 0.2 упал 0_0 сейчас 0.04 (Никита и про частоту опроса, не настаиваю. но подумай, а?)
я к чему вот вроде б мелочь, кому-то ее даже при обучении вбили и она для кого-то естественна, а кто-то грабли собирает ))) (я про себя и как надоели эти шишки)
Последний раз редактировалось Logrus Вс дек 24, 2017 7:05 am, всего редактировалось 1 раз.
- Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Шаблон класса / Class Template
Про частоту опроса в модуле бродлинка то?
Тут немного другая тема...но так уж и быть, отвечу.
Для начала свой пример приведу. У меня 3 устройства РМ, МП1 и СП3. Дак вот...на всех стоит время обновления 1 час...серьезно...мне этого за глаза хватает, и я не понимаю зачем чаще...
Еконтролом никто не пользуется, всё переключения происходят из Мд...а Соответственно в МД и так всегда статус актуальный. Раз в час опрос просто на всякий случай...вдруг что рассинхронизируется.
Единственное устройство, которое нуждается в частом опросе - это S1 (датчики движения и тп) для остального не вижу смысла обновлять более чем раз в час...а, ну разве что выключатели sc1. Для них вполне подойдет 20сек. 1 минуты не знаю зачем юзать...только любителям четкого анализа (и то быстро надоест)...10 миут уже можно и для датчиков (не моментальных) и для чего хотите использовать...
А что у вас может случится за 5 минут, чего вы не увидите в 10 минутном цикле? Мне вот просто интересно...
Тут немного другая тема...но так уж и быть, отвечу.
Для начала свой пример приведу. У меня 3 устройства РМ, МП1 и СП3. Дак вот...на всех стоит время обновления 1 час...серьезно...мне этого за глаза хватает, и я не понимаю зачем чаще...
Еконтролом никто не пользуется, всё переключения происходят из Мд...а Соответственно в МД и так всегда статус актуальный. Раз в час опрос просто на всякий случай...вдруг что рассинхронизируется.
Единственное устройство, которое нуждается в частом опросе - это S1 (датчики движения и тп) для остального не вижу смысла обновлять более чем раз в час...а, ну разве что выключатели sc1. Для них вполне подойдет 20сек. 1 минуты не знаю зачем юзать...только любителям четкого анализа (и то быстро надоест)...10 миут уже можно и для датчиков (не моментальных) и для чего хотите использовать...
А что у вас может случится за 5 минут, чего вы не увидите в 10 минутном цикле? Мне вот просто интересно...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Шаблон класса / Class Template
Итак - вернемся к шаблонам...чуть подкорректировал...вот мой конечный вариант.
Красным цветом подсвечивается, когда данных нет более двух часов (за "живость" отвечает свойство alive у пользователя (значение 1/0)), автоматически меняет размер (при вставке на сцену надо указывать ширину и высоту элемента), батарейка разукрашивается в зеленый/желтый/красный в зависимости от заряда (код тот же, что и с иконкой, только добавляем ещё в 1 свойство цвет)...Шаблон классаПоказать
Код: Выделить всё
<style>
@import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css");
.container {
//background-color: rgba(0, 0, 0, 0.3);
background-color:%.alive|"rgba(255, 0, 0, 0.3);rgba(0, 0, 0, 0.3)"%;
border-radius: 15px;
border:1px solid #444;
padding: 10px;
}
.container img {
width: 80px;
height: 80px;
float: left;
padding-right: 10px;
}
.batt {
padding-top: 5px;
padding-right: 5px;
float: right;
}
.name {
font-size: 140%;
font-family: fantasy;
}
.loc {
font-size: 100%;
padding-top: 10px;
padding-bottom: 10px;
}
.time {
font-size: 60%;
color:grey;
}
</style>
<div class="container">
<img src="%.user_icon%">
<div class="batt">
<font size="2" style="padding-bottom: 2px;">%.BattLevel% %</font> <span class="fa fa-%.BattPic%" style="color: %.BattColor%" aria-hidden="true"></span>
</div>
<div class="info">
<div class="name">%.user_name%</div>
<div class="loc"><span class="loc_icon fa fa-map-marker" aria-hidden="true"></span> %.seenAt%</div>
<div class="time"><span class="ref_icon fa fa-refresh" aria-hidden="true"></span> %.TimeUpdated%</div>
</div>
<div style="clear:both;"></div>
</div>
- За это сообщение автора nick7zmail поблагодарили (всего 5):
- Logrus (Пн дек 25, 2017 10:54 am) • StrangerIV (Чт ноя 22, 2018 11:57 am) • kosem (Чт май 02, 2019 7:53 pm) • vladj (Чт мар 05, 2020 2:29 pm) • AndreyAA (Вт ноя 17, 2020 11:12 am)
- Рейтинг: 5.81%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: Шаблон класса / Class Template
здорово но есть несколько маленьких-маленьких моментов:Logrus писал(а):т.к. коннект не работает, добавлю, имхо тёзке полезно будет (не хвальба, наверное и ошибки присутствуют, может что и улучшить/изменить есть, с цветом еще не разбирался)
вообще, Никита, зело полезное дело сделал, я вот на это без описания и реального примера смотрел и ... ничего
конечно, главную красивость, "фишку" убрал (я аву ту не нашел, с шапки подключал, а текста много, обтекает не красиво), но как выше было сказано - это подключается и в сцены, и в дашборд, и в меню - за три клика!!!СпойлерПоказатьшаблон отображенияметод ChangeBattLevel в классе Users (тут с вилкой при зарядке) (связанное свойство BattLevel)Код: Выделить всё
<style> @import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"); .container { background-color: rgba(0, 0, 0, 0.3); width: 240px; height: 110px; border-radius: 15px; border:1px solid #444; } .batt { font-size: 85%; padding-right: 10px; padding-top: 10px; float: right; } .mail { font-size: 85%; padding-right: 10px; padding-top: 10px; float: right; } .info { padding-left: 10px; padding-right: 10px; padding-top: 10px; height: 100px; } .name { font-size: 85%; font-family: fantasy; } .wifi { font-size: 75%; padding-top: 5px; padding-bottom: 5px; } .loc { font-size: 75%; padding-top: 5px; padding-bottom: 5px; } .time { font-size: 60%; color:grey; } </style> <div class="container"> <div class="batt"> %.BattLevel% % <span class="batt_icon %.BattPic%" aria-hidden="true"></span> </div> <div class="mail"> %.GMailUnread% <span class="mail_icon fa fa-envelope" aria-hidden="true"></span> </div> <div class="info"> <div class="name">%.fullName%</div> <div class="wifi"><span class="wifi_icon fa fa-wifi" aria-hidden="true"></span> %.isHome%</div> <div class="time"><span class="ref_icon fa fa-refresh" aria-hidden="true"></span> %.isHomeUpdate%</div> <div class="loc"><span class="loc_icon fa fa-map-marker" aria-hidden="true"></span> %.Location%</div> <div class="time"><span class="ref_icon fa fa-refresh" aria-hidden="true"></span> %.updatedText%</div> </div> </div>
метод SetLocation в классе Users (связанное свойство Coordinates)Код: Выделить всё
$charg=$this->getProperty('Charging'); $level=$this->getProperty('BattLevel'); $this->setProperty('battPic','fa fa-battery-empty'); //здесь продумать нужно if ($charg==1) { $this->setProperty("battPic",'fa fa-plug'); } else { if ($level > 88 && $level <= 100) { $this->setProperty("battPic",'fa fa-battery-full'); } else if ($level > 62 && $level <= 88) { $this->setProperty("battPic",'fa fa-battery-three-quarters'); } else if ($level > 37 && $level <= 62) { $this->setProperty("battPic",'fa fa-battery-half'); } else if ($level > 12 && $level <= 37) { $this->setProperty("battPic",'fa fa-battery-quarter'); } else if ($level < 12) { $this->setProperty("battPic",'fa fa-battery-empty'); } }
метод setUpdatedText в классе Users (связанное свойство CoordinatesUpdated)Код: Выделить всё
$Coordinates=$this->getProperty("Coordinates"); $lat=substr($Coordinates,0,strpos($Coordinates,",")); $lon=substr($Coordinates,strpos($Coordinates,",")+1); $this->setProperty('latitude',$lat); $this->setProperty('longitude',$lon); if($this->getProperty('HomeDistance')>100){ $data_file="http://geocode-maps.yandex.ru/1.x/?geocode=E".$lon.",N".$lat; // адрес xml файла $xml = simplexml_load_file($data_file); // раскладываем xml на массив $res=$xml->{'GeoObjectCollection'}->{'featureMember'}[0]->{'GeoObject'}->{'metaDataProperty'}->{'GeocoderMetaData'}->{'AddressDetails'}->{'Country'}->{'AddressLine'}; $this->setProperty("Location",$res); }else{ $this->setProperty("Location",'Дом'); $this->callMethod('gotHome'); }
может что и пропустилКод: Выделить всё
@include_once(ROOT . 'languages/devices_' . SETTINGS_SITE_LANGUAGE . '.php'); @include_once(ROOT . 'languages/devices_default' . '.php'); $ot = $this->object_title; $updatedTime = $this->getProperty('CoordinatesUpdatedTimestamp'); $passed = time() - $updatedTime; $newTimeout=0; if ($passed<10) { $newTimeout = 10; $this->setProperty('updatedText',LANG_DEVICES_PASSED_NOW); } elseif ($passed<60) { $newTimeout = 10; $this->setProperty('updatedText',$passed.' '.LANG_DEVICES_PASSED_SECONDS_AGO); } elseif ($passed<60*60) { $newTimeout = 60; $this->setProperty('updatedText',round($passed/60).' '.LANG_DEVICES_PASSED_MINUTES_AGO); /* } elseif ($passed<12*60*60) { $newTimeout = 60 * 60; $this->setProperty('updatedText',round($passed/60/60).' '.LANG_DEVICES_PASSED_HOURS_AGO); */ } elseif ($passed<20*60*60) { //just time $newTimeout = 60 * 60; $this->setProperty('updatedText',date('H:i',$updatedTime)); } else { //time and date $this->setProperty('updatedText',date('Y-m-d H:i',$updatedTime));// } if ($newTimeout > 0) { setTimeOut($ot.'_updateTime','callMethod("'.$ot.'.setUpdatedText");',$newTimeout); }
1) В методе ChangeBattLevel
строку:
Код: Выделить всё
} else if ($level < 12) {
Код: Выделить всё
} else if ($level <= 12) {
2) Не много не согласованно с предыдущим товарищем, а именно:nick7zmail писал(а):Итак - вернемся к шаблонам...чуть подкорректировал...вот мой конечный вариант.Красным цветом подсвечивается, когда данных нет более двух часов (за "живость" отвечает свойство alive у пользователя (значение 1/0)), автоматически меняет размер (при вставке на сцену надо указывать ширину и высоту элемента), батарейка разукрашивается в зеленый/желтый/красный в зависимости от заряда (код тот же, что и с иконкой, только добавляем ещё в 1 свойство цвет)...
Шаблон классаПоказатьКод: Выделить всё
<style> @import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"); .container { //background-color: rgba(0, 0, 0, 0.3); background-color:%.alive|"rgba(255, 0, 0, 0.3);rgba(0, 0, 0, 0.3)"%; border-radius: 15px; border:1px solid #444; padding: 10px; } .container img { width: 80px; height: 80px; float: left; padding-right: 10px; } .batt { padding-top: 5px; padding-right: 5px; float: right; } .name { font-size: 140%; font-family: fantasy; } .loc { font-size: 100%; padding-top: 10px; padding-bottom: 10px; } .time { font-size: 60%; color:grey; } </style> <div class="container"> <img src="%.user_icon%"> <div class="batt"> <font size="2" style="padding-bottom: 2px;">%.BattLevel% %</font> <span class="fa fa-%.BattPic%" style="color: %.BattColor%" aria-hidden="true"></span> </div> <div class="info"> <div class="name">%.user_name%</div> <div class="loc"><span class="loc_icon fa fa-map-marker" aria-hidden="true"></span> %.seenAt%</div> <div class="time"><span class="ref_icon fa fa-refresh" aria-hidden="true"></span> %.TimeUpdated%</div> </div> <div style="clear:both;"></div> </div>
в коде где так:
Код: Выделить всё
<span class="fa fa-%.BattPic%" style="color: %.BattColor%" aria-hidden="true">
Код: Выделить всё
<span class="%.BattPic%" style="color: %.BattColor%" aria-hidden="true">
3) Ну и также для согласованности с товарищем Logrus лучше наверно так:
Код: Выделить всё
<div class="loc"><span class="loc_icon fa fa-map-marker" aria-hidden="true"></span> %.Location%</div>
<div class="time"><span class="ref_icon fa fa-refresh" aria-hidden="true"></span> %.updatedText%</div>
- Рейтинг: 1.16%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-